Node Class Reference

This reference page is linked to from the following overview topics: Using the C++ Classes.



Detailed Description

Node in a Directed Acyclic Graph.

#include <Node.h>

Inheritance diagram for Node:
Inheritance graph
[legend]

List of all members.

Public Types

enum   Property {
  kIsSelectable, kIsSelected, kIsHighlighted, kIsAffected,
  kIsNotViewSelectable, kIsVisible, kIsAlternateVisible, kIsDeleted,
  kIsRemoved, kIsNotToBeSaved, kIsUserNode, kIsInternal,
  kIsIgnored, kIsAnimated, kIsOverlayUI, kIsOriginalLabel,
  kIsPersistent, kIsDemo, kIsLoadable, kIsNotToBeMerged,
  kIsUnderlay, kIsOffscreen, kIsCrossSection, kIsCrossSectionOutline,
  kIsManipulator, kIsEnvironment, kIsLocator, kIsSceneWidget,
  kIsModel, kIsNoRenderNode, kIsInherited
}
enum   {
  kDirtyChildren, kDirtyMatrix, kDirtyAppearance, kDirtyIsVisible,
  kDirtyIsSelected, kDirtyIsHighlighted, kDirtyIsAffected, kDirtyStructure,
  kDirtySomething, kDirtyQuietSomething, kLastDirty
}
typedef aw::unordered_map
< awString::IString, Node * > 
RefById
typedef aw::unordered_map
< Node *, awString::IString > 
IdByRef
typedef aw::unordered_map
< awString::IString,
awLinear::AffineMatrix > 
NamedMatrix

Public Member Functions

  Node ()
  Node (const Node &nodeToCopy)
virtual Node operator= (const Node &)
  We copy those member whose definition and validity are strictly intrinsic to the individual node.
virtual const awString::IString &  getOwnerType () const
template<class T >
T *  as ()
virtual void  accept (NodeVisitor &)
virtual void  traverse (NodeVisitor &)
virtual bool  isLeafNode () const
bool  hasChild (NodeRef) const
bool  hasChildren () const
const NodeSet getChildren () const
NodeRef  getChild (int i) const
int  getChildIndex (NodeRef) const
int  childCount () const
int  nonDeletedChildCount () const
bool  hasParent (GroupRef) const
bool  hasParents () const
const GroupSet getParents () const
int  parentCount () const
GroupRef  getParent (int i) const
GroupRef  getSingleParent () const
Group getCollapseRoot ()
  If the node is in the collapsed subgraph, this method returns a collapse node that is a parent.
virtual void  setCollapseRoot (Group *root)
bool  hasUniqueId () const
  A node may or may not have an identifier.
void  clearUniqueId ()
void  setId (const awSupport::Id &id)
const awSupport::Id getId () const
void  setUniqueId (const awString::IString &idAsString)
  Sets/gets the id in IString form.
const awString::IString &  getUniqueId () const
virtual void  setLabel (const awString::IString &)
virtual awString::IString  getLabel () const
virtual bool  hasDefaultLabel () const
void  setMaterial (const MaterialRef)
awScene::MetaDataRef  getMetaData ()
void  setMetaData (awScene::MetaDataRef properties)
bool  hasMaterial () const
  To get the material associated with this node, go through appearance.
AppearanceRef  getAppearance () const
virtual MaterialRef  getBaseMaterial () const
  Return the base material for the node.
virtual const awString::IString &  getModelNodeId () const
void  setOriginalNode (const NodeRef)
  A node can have a reference to its original copy as well as to the model import that it camse from.
NodeRef  getOriginalNode () const
virtual void  setMatrix (const awLinear::AffineMatrix &)
void  getMatrix (awLinear::AffineMatrix &) const
void  adjustMatrixByNamed (awLinear::AffineMatrix &) const
  Post-multiple the named matrix with the input matrix.
void  setMatrixRelativeToOriginal (const awLinear::AffineMatrix &)
  Get and set the matrix relative to the original matrix.
void  getMatrixRelativeToOriginal (awLinear::AffineMatrix &) const
virtual bool  getIsRelativeToOriginal () const
bool  getIsMirroredRelativeToOriginal (const awLinear::AffineMatrix &, bool useSpecifiedMatrix) const
  See if a mirror like transformation was made compared to the original.
bool  hasRTOMatrix () const
  These are mostly used for I/O as they explicitly get and set the matrix used for relative to original computations.
bool  removeRTOMatrix ()
void  setRTOMatrix (const awLinear::AffineMatrix &mat)
bool  getRTOMatrix (awLinear::AffineMatrix &mat) const
void  setOriginalMatrix (const awLinear::AffineMatrix &mat)
bool  getOriginalMatrix (awLinear::AffineMatrix &mat) const
void  setOriginalWorldMatrix (const awLinear::AffineMatrix &mat)
bool  getOriginalWorldMatrix (awLinear::AffineMatrix &mat) const
void  preMultMatrixBy (const awLinear::AffineMatrix &)
  Apply the given matrix to the existing one.
void  getWorldTransform (awLinear::AffineMatrix &, bool inclusive) const
  Return the cumulative transform from the root to the given node.
bool  removeNamedMatrix (const awString::IString &name)
  Dealing with named matrices.
void  setNamedMatrix (const awString::IString &name, const awLinear::AffineMatrix &mat)
bool  getNamedMatrix (const awString::IString &name, awLinear::AffineMatrix &mat) const
bool  hasNamedMatrix (const awString::IString &name) const
bool  hasNamedMatrices () const
void  copyNamedMatrices (const Node &other)
void  applyNamedWorldTransform (const awString::IString &name, const awLinear::AffineMatrix &mat)
void  getWorldTransformNoNamed (awLinear::AffineMatrix &, bool inclusive) const
bool  setWorldTransformInclusive (const awLinear::AffineMatrix &)
  Compute the local matrix and set it so that getWorldTransform(,true) would return the value specified in this call.
void  setObjectPivot (const awLinear::Point &)
  Set and get the pivot in object or world space.
void  getObjectPivot (awLinear::Point &) const
void  getWorldPivot (awLinear::Point &) const
void  setWorldPivot (const awLinear::Point &)
void  setUseNodePivot (bool use)
bool  useNodePivot () const
void  setPivotAxis (const awLinear::Normal &x, const awLinear::Normal &y, const awLinear::Normal &z)
void  getPivotAxis (awLinear::Normal &x, awLinear::Normal &y, awLinear::Normal &z) const
void  setWorldPivotAxis (const awLinear::Normal &x, const awLinear::Normal &y, const awLinear::Normal &z)
void  getWorldPivotAxis (awLinear::Normal &x, awLinear::Normal &y, awLinear::Normal &z) const
virtual bool  isWorldVisible () const
  Returns true if the node and all of it's parents are visible, alternative visible and not deleted.
virtual bool  isDisplayed () const
  isDisplayed returns true iff both the visibility and the alternate visibility flag are both set.
virtual void  setIsVisible (bool isVisible)
bool  getIsVisible () const
void  setVisibilityMask (VisibilityMask mask)
VisibilityMask  getVisibilityMask () const
virtual void  setIsAlternateVisible (bool isVisible)
bool  getIsAlternateVisible () const
bool  hasProperty (int p, bool includeSubgraph=false) const
bool  setProperty (int p, bool state, bool propagateToSubgraph=false)
int  getWorldInfo () const
void  setIsDeleted (bool isDeleted)
bool  getIsDeleted () const
void  setIsRemoved (bool isRemoved)
  The node is marked 'isRemoved' if it should be removed from the scene completely.
bool  getIsRemoved () const
bool  hasForeignChildren () const
  Does this node have children that belong to another import node? If either the node itself or its children do not have import node, treat them as our own children.
void  getBoundingBox (awSupport::BoundingBox &bb) const
  A node's sense of bounding box includes the bounds of any descendants it may have.
void  getBoundingBoxCenter (awLinear::Point &) const
void  setBoundingBox (awSupport::BoundingBox &bb)
  Manually sets the bounding box for this node.
const awSupport::BoundingBox updateBoundingBox (bool fromBridge=true)
  Update of this node's bounding box and all of its descendants as necessary, and returns the updated bounding box in worldspace.
void  dirtyBoundingBox (bool propagateToParents=true, bool propagateToChildren=true)
  Invalidates the current bounding box.
bool  isDirty () const
bool  isDirty (int) const
virtual void  setDirty (int, bool dirty, bool propagate=true, Node *dirtySource=NULL)
virtual void  setAllDirty (bool dirty)
Node getLastDirtySource (bool recursive)
  Get the information that triggers the dirty callback.
int  getLastDirtyFlag ()
void  setQuietDirtyPropagation (bool quiet)
bool  getQuietDirtyPropagation () const
void  setMaintainSceneHierarchy (bool maintain, bool propagate)
  The node is flagged to maintain hierarchy below it as coming from the scene, or coming from the imported file.
bool  getMaintainSceneHierarchy () const
bool  isMaintainSceneHierarchyFlagConsistent () const
void  fixMaintainSceneHierarchy ()
virtual bool  needToMaintainSceneHierarchy () const
  Look at the children and parents, and let us know if this node should be marked as "maintain" or not.
void  setMaintainSceneHierarchyIfNeeded ()
NodeSignalRef  getDirtySignal () const
  Attach to one or more of these signals to be notified when:
  • the node becomes dirty
  • the node's bounding box becomes bounded
  • the node is deleted
  • the node's bridge is changed.

NodeSignalRef  getBoundingBoxSignal () const
NodeSignalRef  getDeletionSignal () const
NodeSignalRef  getBridgeChangedSignal () const
void  releaseBridgeChangedSignal ()
  Release the signal when it is not needed for trying to free its memory.
NodeSignalRef  get3DTriggerSignal () const
  Get a signal object for this node.
bool  has3DTriggerSignal ()
  Check if there is a 3D trigger signal already, if there is the node can be triggered.
bool  send3DTriggerSignal ()
const char *  getNodeType () const
virtual int  convertOptimizedPatchIndex (int, int) const
  For the optimization.
BridgeRef  getBridge () const
void  setBridge (BridgeRef bridge)
template<class T >
T *  getBridgeAs () const
void  setIsDemo (bool isDemo)
bool  getIsDemo () const

Static Public Member Functions

static NodeRef  getNodeById (const awString::IString &)
  Nodes with unique id's can be indexed by these.
static int  getNodesById (const NodeIdSet &ids, NodeSet &nodes)
static void  copyOurRefsByIds (RefById &)
static const awSupport::Id getSceneGraphRootId ()
static const awSupport::Id getOrthoGraphRootId ()
static const awSupport::Id getBackplateGraphRootId ()
static const awString::IString &  getOriginalCopyId ()
static awSupport::Id  generateUniqueId (const awString::IString &fromThisId)
static awString::IString  getLabelFromId (const awSupport::Id &id)
static awString::IString  getShortBaseId (const awSupport::Id &id)

Protected Member Functions

virtual  ~Node ()
  Reference counted objects shouldn't exist on the stack.
void  sendDeletionSignal ()
void  insertParent (GroupRef)
bool  removeParent (Group *)
void  setLastDirtySource (Node *source)
void  setLastDirtyFlag (int flag)
void  setDirtyParents (int flag)
virtual void  parentTransformDirty ()
virtual void  onOwnedObjectDirty (awSupport::OwnedObject *object)
virtual void  onPropertyChange (int p, bool newState)

Protected Attributes

friend  Group
friend  LodCollapse
NodeSet  myChildren
Group myCollapseRoot

Member Typedef Documentation

typedef aw::unordered_map< awString::IString, Node* > RefById
typedef aw::unordered_map< Node*, awString::IString > IdByRef
typedef aw::unordered_map< awString::IString, awLinear::AffineMatrix > NamedMatrix

Member Enumeration Documentation

enum Property
Enumerator:
kIsSelectable 
kIsSelected 
kIsHighlighted 
kIsAffected 
kIsNotViewSelectable 
kIsVisible 
kIsAlternateVisible 
kIsDeleted 
kIsRemoved 
kIsNotToBeSaved 
kIsUserNode 
kIsInternal 
kIsIgnored 
kIsAnimated 
kIsOverlayUI 
kIsOriginalLabel 
kIsPersistent 
kIsDemo 
kIsLoadable 
kIsNotToBeMerged 
kIsUnderlay 
kIsOffscreen 
kIsCrossSection 
kIsCrossSectionOutline 
kIsManipulator 
kIsEnvironment 
kIsLocator 
kIsSceneWidget 
kIsModel 
kIsNoRenderNode 
kIsInherited 
anonymous enum

They're just an expedient for bootstrapping the use of the new awScene. There's not much point in making them private and giving them accessors, since they'll be gone when awScene is multithreaded.

Note, in the mean time, that our sense of dirtiness here is 'local'. Having dirty children doth not a dirty parent make.

Enumerator:
kDirtyChildren 
kDirtyMatrix 
kDirtyAppearance 
kDirtyIsVisible 
kDirtyIsSelected 
kDirtyIsHighlighted 
kDirtyIsAffected 
kDirtyStructure 
kDirtySomething 
kDirtyQuietSomething 
kLastDirty 

Constructor & Destructor Documentation

Node ( )
Node ( const Node nodeToCopy )
virtual ~Node ( ) [protected, virtual]

Reference counted objects shouldn't exist on the stack.


Member Function Documentation

virtual Node& operator= ( const Node ) [virtual]

We copy those member whose definition and validity are strictly intrinsic to the individual node.

This exludes parent/child relations (extrinsic), and unique id's which are invalid if two nodes share them.

Reimplemented in LodGroup.

virtual const awString::IString& getOwnerType ( ) const [virtual]
T * as ( )
{
    return dynamic_cast<T *>( this );
}
virtual void traverse ( NodeVisitor ) [virtual]
virtual bool isLeafNode ( ) const [virtual]
bool hasChild ( NodeRef  ) const
bool hasChildren ( ) const
const NodeSet& getChildren ( ) const
NodeRef getChild ( int  i ) const
int getChildIndex ( NodeRef  ) const
int childCount ( ) const
int nonDeletedChildCount ( ) const
bool hasParent ( GroupRef  ) const
bool hasParents ( ) const
const GroupSet& getParents ( ) const
int parentCount ( ) const
GroupRef getParent ( int  i ) const
GroupRef getSingleParent ( ) const
Group* getCollapseRoot ( )

If the node is in the collapsed subgraph, this method returns a collapse node that is a parent.

virtual void setCollapseRoot ( Group root ) [virtual]
bool hasUniqueId ( ) const

A node may or may not have an identifier.

If it does, then the identifier must be unique among all existing nodes.

void clearUniqueId ( )
void setId ( const awSupport::Id id )
const awSupport::Id& getId ( ) const
void setUniqueId ( const awString::IString &  idAsString )

Sets/gets the id in IString form.

const awString::IString& getUniqueId ( ) const
static NodeRef getNodeById ( const awString::IString &  ) [static]

Nodes with unique id's can be indexed by these.

static int getNodesById ( const NodeIdSet ids,
NodeSet nodes 
) [static]
static void copyOurRefsByIds ( RefById ) [static]
static const awSupport::Id& getSceneGraphRootId ( ) [static]
static const awSupport::Id& getOrthoGraphRootId ( ) [static]
static const awSupport::Id& getBackplateGraphRootId ( ) [static]
static const awString::IString& getOriginalCopyId ( ) [static]
static awSupport::Id generateUniqueId ( const awString::IString &  fromThisId ) [static]
static awString::IString getLabelFromId ( const awSupport::Id id ) [static]
static awString::IString getShortBaseId ( const awSupport::Id id ) [static]
virtual void setLabel ( const awString::IString &  ) [virtual]
virtual awString::IString getLabel ( ) const [virtual]
virtual bool hasDefaultLabel ( ) const [virtual]
void setMaterial ( const MaterialRef  )
void setMetaData ( awScene::MetaDataRef  properties )
bool hasMaterial ( ) const

To get the material associated with this node, go through appearance.

AppearanceRef getAppearance ( ) const
virtual MaterialRef getBaseMaterial ( ) const [virtual]

Return the base material for the node.

Reimplemented in DecalLocator.

virtual const awString::IString& getModelNodeId ( ) const [virtual]
void setOriginalNode ( const NodeRef  )

A node can have a reference to its original copy as well as to the model import that it camse from.

NodeRef getOriginalNode ( ) const
virtual void setMatrix ( const awLinear::AffineMatrix &  ) [virtual]
void getMatrix ( awLinear::AffineMatrix &  ) const
void adjustMatrixByNamed ( awLinear::AffineMatrix &  ) const

Post-multiple the named matrix with the input matrix.

void setMatrixRelativeToOriginal ( const awLinear::AffineMatrix &  )

Get and set the matrix relative to the original matrix.

void getMatrixRelativeToOriginal ( awLinear::AffineMatrix &  ) const
virtual bool getIsRelativeToOriginal ( ) const [virtual]
bool getIsMirroredRelativeToOriginal ( const awLinear::AffineMatrix &  ,
bool  useSpecifiedMatrix 
) const

See if a mirror like transformation was made compared to the original.

If useSpecifiedMatrix is true, the matrix given is assumed to be the world space inclusive transformation for the object in question.

bool hasRTOMatrix ( ) const

These are mostly used for I/O as they explicitly get and set the matrix used for relative to original computations.

bool removeRTOMatrix ( )
void setRTOMatrix ( const awLinear::AffineMatrix &  mat )
bool getRTOMatrix ( awLinear::AffineMatrix &  mat ) const
void setOriginalMatrix ( const awLinear::AffineMatrix &  mat )
bool getOriginalMatrix ( awLinear::AffineMatrix &  mat ) const
void setOriginalWorldMatrix ( const awLinear::AffineMatrix &  mat )
bool getOriginalWorldMatrix ( awLinear::AffineMatrix &  mat ) const
void preMultMatrixBy ( const awLinear::AffineMatrix &  )

Apply the given matrix to the existing one.

void getWorldTransform ( awLinear::AffineMatrix &  ,
bool  inclusive 
) const

Return the cumulative transform from the root to the given node.

The target node's matrix is included only if the inclusive parameter is true. Note: This assumes a single path to the root from the given node. If any nodes are instanced along the path the result may not be as expected.

Named matrices are included in this value, as if they were above the full hierarchy, in the order in which they appear in the list.

bool removeNamedMatrix ( const awString::IString &  name )

Dealing with named matrices.

These are added to the world space transform of the object, in order in which they appear in the list. So, if the object has three named matrices, nm1, nm2, nm3, the world space matrix will be the hierarchy world space matrix * nm3 * nm2 * nm1

void setNamedMatrix ( const awString::IString &  name,
const awLinear::AffineMatrix &  mat 
)
bool getNamedMatrix ( const awString::IString &  name,
awLinear::AffineMatrix &  mat 
) const
bool hasNamedMatrix ( const awString::IString &  name ) const
bool hasNamedMatrices ( ) const
void copyNamedMatrices ( const Node other )
void applyNamedWorldTransform ( const awString::IString &  name,
const awLinear::AffineMatrix &  mat 
)
void getWorldTransformNoNamed ( awLinear::AffineMatrix &  ,
bool  inclusive 
) const
bool setWorldTransformInclusive ( const awLinear::AffineMatrix &  )

Compute the local matrix and set it so that getWorldTransform(,true) would return the value specified in this call.

Return false if the current exclusive transformation for this node is not invertible. Named matrices are included.

void setObjectPivot ( const awLinear::Point &  )

Set and get the pivot in object or world space.

The default for the object space pivot is the origin.

void getObjectPivot ( awLinear::Point &  ) const
void getWorldPivot ( awLinear::Point &  ) const
void setWorldPivot ( const awLinear::Point &  )
void setUseNodePivot ( bool  use )
bool useNodePivot ( ) const
void setPivotAxis ( const awLinear::Normal &  x,
const awLinear::Normal &  y,
const awLinear::Normal &  z 
)
void getPivotAxis ( awLinear::Normal &  x,
awLinear::Normal &  y,
awLinear::Normal &  z 
) const
void setWorldPivotAxis ( const awLinear::Normal &  x,
const awLinear::Normal &  y,
const awLinear::Normal &  z 
)
void getWorldPivotAxis ( awLinear::Normal &  x,
awLinear::Normal &  y,
awLinear::Normal &  z 
) const
virtual bool isWorldVisible ( ) const [virtual]

Returns true if the node and all of it's parents are visible, alternative visible and not deleted.

virtual bool isDisplayed ( ) const [virtual]

isDisplayed returns true iff both the visibility and the alternate visibility flag are both set.

Reimplemented in DecalLocator, and Locator.

virtual void setIsVisible ( bool  isVisible ) [virtual]

Reimplemented in Light.

bool getIsVisible ( ) const
void setVisibilityMask ( VisibilityMask  mask )
VisibilityMask getVisibilityMask ( ) const
virtual void setIsAlternateVisible ( bool  isVisible ) [virtual]

Reimplemented in Light.

bool getIsAlternateVisible ( ) const
bool hasProperty ( int  p,
bool  includeSubgraph = false 
) const
bool setProperty ( int  p,
bool  state,
bool  propagateToSubgraph = false 
)
int getWorldInfo ( ) const
void setIsDeleted ( bool  isDeleted )
bool getIsDeleted ( ) const
void setIsRemoved ( bool  isRemoved )

The node is marked 'isRemoved' if it should be removed from the scene completely.

bool getIsRemoved ( ) const
bool hasForeignChildren ( ) const

Does this node have children that belong to another import node? If either the node itself or its children do not have import node, treat them as our own children.

void getBoundingBox ( awSupport::BoundingBox bb ) const

A node's sense of bounding box includes the bounds of any descendants it may have.

Note, if the node is set to ignored, a default bounded bounding box and bounding box center will be returned.

The bounding box is in worldspace.

void getBoundingBoxCenter ( awLinear::Point &  ) const
void setBoundingBox ( awSupport::BoundingBox bb )

Manually sets the bounding box for this node.

const awSupport::BoundingBox& updateBoundingBox ( bool  fromBridge = true )

Update of this node's bounding box and all of its descendants as necessary, and returns the updated bounding box in worldspace.

List of new 2013 classes:
: New in Version 2013
void dirtyBoundingBox ( bool  propagateToParents = true,
bool  propagateToChildren = true 
)

Invalidates the current bounding box.

bool isDirty ( ) const
bool isDirty ( int  ) const
virtual void setDirty ( int  ,
bool  dirty,
bool  propagate = true,
Node dirtySource = NULL 
) [virtual]
virtual void setAllDirty ( bool  dirty ) [virtual]
Node* getLastDirtySource ( bool  recursive )

Get the information that triggers the dirty callback.

Only guaranteed to be valid in NodeDirtyListener::onNodeDirty().

List of new 2013 classes:
: New in Version 2013
int getLastDirtyFlag ( )
void setQuietDirtyPropagation ( bool  quiet )
bool getQuietDirtyPropagation ( ) const
void setMaintainSceneHierarchy ( bool  maintain,
bool  propagate 
)

The node is flagged to maintain hierarchy below it as coming from the scene, or coming from the imported file.

If a node is flagged as "do not maintain scene hierarchy", all of its descendents would have to be marked as such as well. If it's marked as "do maintain scene hierarchy", all of its ancestors need to be marked as such as well. This will be done automatically for you, unless you use the non-default value for the propagate flag. Note that setting the correct flag value is not automatic for the insertParent/insertChild/removeParent/removeChild operations. Methods "isMaintainSceneHierarchyFlagConsistent" and "fixMaintainSceneHierarchy" may come in handy for detecting and fixing any problems.

bool getMaintainSceneHierarchy ( ) const
bool isMaintainSceneHierarchyFlagConsistent ( ) const
void fixMaintainSceneHierarchy ( )
virtual bool needToMaintainSceneHierarchy ( ) const [virtual]

Look at the children and parents, and let us know if this node should be marked as "maintain" or not.

Return true if we really, really need that flag set. The "set...Check" behaves as the "set..." above if maintain is false. If maintain is true, it consults the "needTo..." to decide if it should set it or not. In the process, it may fix up the parents as well.

Reimplemented in Import, and LodCollapse.

void setMaintainSceneHierarchyIfNeeded ( )
NodeSignalRef getDirtySignal ( ) const

Attach to one or more of these signals to be notified when:

  • the node becomes dirty
  • the node's bounding box becomes bounded
  • the node is deleted
  • the node's bridge is changed.
NodeSignalRef getBoundingBoxSignal ( ) const
NodeSignalRef getDeletionSignal ( ) const
NodeSignalRef getBridgeChangedSignal ( ) const
void releaseBridgeChangedSignal ( )

Release the signal when it is not needed for trying to free its memory.

List of new 2013 classes:
: New in Version 2013
NodeSignalRef get3DTriggerSignal ( ) const

Get a signal object for this node.

If a class needs to know when the node has changed, it should attatch itself to this signal. Will create it if there is none

bool has3DTriggerSignal ( )

Check if there is a 3D trigger signal already, if there is the node can be triggered.

bool send3DTriggerSignal ( )
const char* getNodeType ( ) const
virtual int convertOptimizedPatchIndex ( int  ,
int   
) const [virtual]

For the optimization.

Reimplemented in LodGroup, and MeshGeometry.

void setBridge ( BridgeRef  bridge )
T * getBridgeAs ( ) const [inline]
{
    return myBridge ? dynamic_cast<T *>( myBridge.get() ) : NULL;
}
void setIsDemo ( bool  isDemo )
bool getIsDemo ( ) const
void sendDeletionSignal ( ) [protected]
void insertParent ( GroupRef  ) [protected]
bool removeParent ( Group ) [protected]
void setLastDirtySource ( Node source ) [protected]
void setLastDirtyFlag ( int  flag ) [protected]
void setDirtyParents ( int  flag ) [protected]
virtual void parentTransformDirty ( ) [protected, virtual]

Reimplemented in Light.

virtual void onOwnedObjectDirty ( awSupport::OwnedObject object ) [protected, virtual]

Reimplemented from Owner.

Reimplemented in LodGroup, and MeshGeometry.

virtual void onPropertyChange ( int  p,
bool  newState 
) [protected, virtual]

Member Data Documentation

friend Group [protected]

Node Node Node Node Node Node Node Node Node Node
Node Node Node Node Node Node Node Node Node Node