3ds Max C++ API Reference
ISceneContainer Class Referenceabstract

Abstracts the contents of the scene to be rendered. More...

#include <ISceneContainer.h>

Classes

class  IChangeNotifier
 Notification callback interface for ISceneContainer. More...
 

Public Member Functions

virtual INodeGetRootNode () const =0
 Returns the root node of the scene to be rendered. More...
 
virtual std::vector< INode * > GetGeometricNodes (const TimeValue t, Interval &validity) const =0
 Returns the set of geometric nodes to be rendered. More...
 
virtual std::vector< INode * > GetLightNodes (const TimeValue t, Interval &validity) const =0
 Returns the set of geometric nodes to be rendered. More...
 
virtual std::vector< INode * > GetHelperNodes (const TimeValue t, Interval &validity) const =0
 Returns the set of geometric nodes to be rendered. More...
 
virtual Box3 GetSceneBoundingBox (const TimeValue t, Interval &validity) const =0
 Returns the bounding box of all geometric and light nodes to be rendered. More...
 
Notification

Registers a notifier callback, to be called when interactive changes occur.

virtual void RegisterChangeNotifier (IChangeNotifier &notifier) const =0
 Unregisters a notification callback, previously registered with RegisterChangeNotifier(). More...
 
virtual void UnregisterChangeNotifier (IChangeNotifier &notifier) const =0
 Unregisters a notification callback, previously registered with RegisterChangeNotifier(). More...
 

Protected Member Functions

virtual ~ISceneContainer ()
 Protected destructor prevents destruction through this interface. More...
 

Detailed Description

Abstracts the contents of the scene to be rendered.

This interface exposes methods for retrieving the contents of the scene, the set of nodes to be rendered.

Constructor & Destructor Documentation

◆ ~ISceneContainer()

virtual ~ISceneContainer ( )
inlineprotectedvirtual

Protected destructor prevents destruction through this interface.

101 {}

Member Function Documentation

◆ GetRootNode()

virtual INode* GetRootNode ( ) const
pure virtual

Returns the root node of the scene to be rendered.

The root node may be used to enumerate the contents of the scene to be rendered, but such an an enumeration has to carefully consider each node's properties, such as renderable and hidden, as these properties may imply that the node should be included or excluded from the render.

Remarks
Consider retrieving the set of nodes using GetSceneNodes().

◆ GetGeometricNodes()

virtual std::vector<INode*> GetGeometricNodes ( const TimeValue  t,
Interval validity 
) const
pure virtual

Returns the set of geometric nodes to be rendered.

This method abstracts the logic necessary to enumerate the scene nodes correctly. It takes into account the standard set of node properties - such as hidden, renderable, and selected - along with the render settings to exclude all nodes that should not be rendered. The standard behaviour is:

  • Geometric and light nodes are included if flagged as renderable.
  • Geometric objects are included if not hidden, unless render hidden objects has been enabled by the user.
  • If render selected is being used, then geometric objects are included only if selected.
  • Helper nodes are always all included.
    Parameters
    tThe time at which to evaluate the nodes.
    validity[in, out] The validity of the evaluated nodes is intersected into the input value of this parameter.

◆ GetLightNodes()

virtual std::vector<INode*> GetLightNodes ( const TimeValue  t,
Interval validity 
) const
pure virtual

Returns the set of geometric nodes to be rendered.

This method abstracts the logic necessary to enumerate the scene nodes correctly. It takes into account the standard set of node properties - such as hidden, renderable, and selected - along with the render settings to exclude all nodes that should not be rendered. The standard behaviour is:

  • Geometric and light nodes are included if flagged as renderable.
  • Geometric objects are included if not hidden, unless render hidden objects has been enabled by the user.
  • If render selected is being used, then geometric objects are included only if selected.
  • Helper nodes are always all included.
    Parameters
    tThe time at which to evaluate the nodes.
    validity[in, out] The validity of the evaluated nodes is intersected into the input value of this parameter.

◆ GetHelperNodes()

virtual std::vector<INode*> GetHelperNodes ( const TimeValue  t,
Interval validity 
) const
pure virtual

Returns the set of geometric nodes to be rendered.

This method abstracts the logic necessary to enumerate the scene nodes correctly. It takes into account the standard set of node properties - such as hidden, renderable, and selected - along with the render settings to exclude all nodes that should not be rendered. The standard behaviour is:

  • Geometric and light nodes are included if flagged as renderable.
  • Geometric objects are included if not hidden, unless render hidden objects has been enabled by the user.
  • If render selected is being used, then geometric objects are included only if selected.
  • Helper nodes are always all included.
    Parameters
    tThe time at which to evaluate the nodes.
    validity[in, out] The validity of the evaluated nodes is intersected into the input value of this parameter.

◆ GetSceneBoundingBox()

virtual Box3 GetSceneBoundingBox ( const TimeValue  t,
Interval validity 
) const
pure virtual

Returns the bounding box of all geometric and light nodes to be rendered.

This method returns a cached (pre-compuated) bounding box that includes all geometric and lights nodes returned by GetSceneNodes(). This is useful, for example, to position orthographic cameras and directional lights outside of the scene.

Parameters
tThe time at which to evaluate the nodes.
validity[in, out] The validity of the evaluated nodes is intersected into the input value of this parameter.

◆ RegisterChangeNotifier()

virtual void RegisterChangeNotifier ( IChangeNotifier notifier) const
pure virtual

Unregisters a notification callback, previously registered with RegisterChangeNotifier().

◆ UnregisterChangeNotifier()

virtual void UnregisterChangeNotifier ( IChangeNotifier notifier) const
pure virtual

Unregisters a notification callback, previously registered with RegisterChangeNotifier().