LodGroup Class Reference

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



Detailed Description

This class encapsulate the lod node.

Each Lod node is a group node with only one child visible. Some of the level of details (some of the children) may not be loaded.

#include <LodGroup.h>

Inheritance diagram for LodGroup:
Inheritance graph
[legend]

List of all members.

Classes

struct   Statistics

Public Types

enum   {
  kDirtyPreloadRequest = Group::kLastDirty, kDirtyLoadDetail, kDirtyPriority, kDirtyPatchesDeleted,
  kDirtyLoadable, kLastDirty
}
enum   Priority {
  kUndefined = 0, kExcluded, kLow, kMedium,
  kHigh
}

Public Member Functions

  LodGroup ()
  LodGroup (const LodGroup &nodeToCopy)
virtual const awString::IString &  getGuardType () const
virtual void  setAllDirty (bool dirty)
virtual int  insertChildAtIndex (NodeRef, int at)
virtual int  removeChild (NodeRef)
virtual int  removeAllChildren ()
virtual bool  isLeafNode () const
virtual void  accept (NodeVisitor &)
virtual int  convertOptimizedPatchIndex (int, int) const
  For the optimization.
LodGroup::Statistics getStatistics ()
DetailInfoRef  getDetailInfo (int level) const
int  getPendingLevel () const
void  setPendingLevel (int level)
void  requestPreload (bool preload)
bool  isPreloadRequested () const
void  triggerRecompile ()
void  setCurrentLevel (int level)
int  getCurrentLevel ()
void  setDoNotDisplay (bool stop)
bool  getDoNotDisplay () const
virtual void  setDirty (int, bool dirty, bool propagate=true, Node *dirtySource=NULL)
void  setTextureTransforms (const aw::vector< awUtil::Transform2d > &textureTransforms)
const aw::vector
< awUtil::Transform2d > & 
textureTransforms () const
bool  hasTextureTransforms () const
bool  areTextureTransformsNormalized () const
void  setTextureTransformsNormalized (bool normalized)
bool  setSurfaceData (awSupport::SurfaceDataRef surfaceData)
awSupport::SurfaceDataRef  getSurfaceData ()
const awUtil::BitFieldAuto getPatchesDeleted () const
  Are patches deleted, reversed or tagged? Tagged is meant to be a temporary state, so a number of operations are skipped with that in mind; if this was to change, at least the collapse node handling and file I/O would change.
const awUtil::BitFieldAuto getPatchesReversed () const
const awUtil::BitFieldAuto getPatchesTagged () const
void  setPatchesDeleted (const awUtil::BitFieldAuto &)
  Note that you can reset all (careful!) by passing 0.
void  setPatchesReversed (const awUtil::BitFieldAuto &)
void  setPatchesTagged (const awUtil::BitFieldAuto &)
void  setPatchesOneDeleted (int which, bool value)
void  setPatchesOneReversed (int which, bool value)
void  setPatchesOneTagged (int which, bool value)
int  getPatchCountPerLevel () const
  Go to the first level of detail that has mesh geometry and ask it for the patch count.
void  setPatchCountOverride_for_testing_only (int newValue)
int  getPatchCountOverride_for_testing_only () const
void  setPriority (Priority priority)
Priority  getPriority () const
void  setSourceFilename (const awString::IString &filename)
const awString::IString &  getSourceFilename () const
void  setSourceId (int id)
int  getSourceId () const

Protected Member Functions

virtual  ~LodGroup ()
  Reference counted objects shouldn't exist on the stack.
virtual Node operator= (const Node &rhs)
  We copy those member whose definition and validity are strictly intrinsic to the individual node.
virtual void  onOwnedObjectDirty (awSupport::OwnedObject *object)
virtual void  onPropertyChange (int p, bool newState)
void  setDetailInfo (int level, DetailInfoRef info)

Member Enumeration Documentation


Constructor & Destructor Documentation

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

Reference counted objects shouldn't exist on the stack.


Member Function Documentation

virtual const awString::IString& getGuardType ( ) const [virtual]
virtual void setAllDirty ( bool  dirty ) [virtual]

Reimplemented from Node.

Reimplemented in LodCollapse.

virtual int insertChildAtIndex ( NodeRef  ,
int  at 
) [virtual]

Reimplemented from Group.

Reimplemented in LodCollapse.

virtual int removeChild ( NodeRef  ) [virtual]

Reimplemented from Group.

Reimplemented in LodCollapse.

virtual int removeAllChildren ( ) [virtual]

Reimplemented from Group.

Reimplemented in LodCollapse.

virtual bool isLeafNode ( ) const [virtual]

Reimplemented from Group.

virtual void accept ( NodeVisitor ) [virtual]

Reimplemented from Group.

Reimplemented in LodCollapse.

virtual int convertOptimizedPatchIndex ( int  ,
int   
) const [virtual]

For the optimization.

Reimplemented from Node.

DetailInfoRef getDetailInfo ( int  level ) const
int getPendingLevel ( ) const
void setPendingLevel ( int  level )
void requestPreload ( bool  preload )
bool isPreloadRequested ( ) const
void triggerRecompile ( )
void setCurrentLevel ( int  level )
int getCurrentLevel ( )
void setDoNotDisplay ( bool  stop )
bool getDoNotDisplay ( ) const
virtual void setDirty ( int  ,
bool  dirty,
bool  propagate = true,
Node dirtySource = NULL 
) [virtual]

Reimplemented from Group.

void setTextureTransforms ( const aw::vector< awUtil::Transform2d > &  textureTransforms )
const aw::vector<awUtil::Transform2d>& textureTransforms ( ) const
bool hasTextureTransforms ( ) const
bool areTextureTransformsNormalized ( ) const
void setTextureTransformsNormalized ( bool  normalized )
bool setSurfaceData ( awSupport::SurfaceDataRef  surfaceData )
const awUtil::BitFieldAuto& getPatchesDeleted ( ) const

Are patches deleted, reversed or tagged? Tagged is meant to be a temporary state, so a number of operations are skipped with that in mind; if this was to change, at least the collapse node handling and file I/O would change.

const awUtil::BitFieldAuto& getPatchesReversed ( ) const
const awUtil::BitFieldAuto& getPatchesTagged ( ) const
void setPatchesDeleted ( const awUtil::BitFieldAuto )

Note that you can reset all (careful!) by passing 0.

void setPatchesReversed ( const awUtil::BitFieldAuto )
void setPatchesTagged ( const awUtil::BitFieldAuto )
void setPatchesOneDeleted ( int  which,
bool  value 
)
void setPatchesOneReversed ( int  which,
bool  value 
)
void setPatchesOneTagged ( int  which,
bool  value 
)
int getPatchCountPerLevel ( ) const

Go to the first level of detail that has mesh geometry and ask it for the patch count.

This assumes that all non-zero children have the same patch count.

void setPatchCountOverride_for_testing_only ( int  newValue )
int getPatchCountOverride_for_testing_only ( ) const
void setPriority ( Priority  priority )
Priority getPriority ( ) const
void setSourceFilename ( const awString::IString &  filename )
const awString::IString& getSourceFilename ( ) const
void setSourceId ( int  id )
int getSourceId ( ) const
virtual Node& operator= ( const Node ) [protected, 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 from Node.

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

Reimplemented from Node.

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

Reimplemented from Node.

void setDetailInfo ( int  level,
DetailInfoRef  info 
) [protected]

LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup
LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup LodGroup