Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

osgUtil::Optimizer Class Reference

Traverses scene graph to improve efficiency. More...

List of all members.

Public Types

enum  OptimizationOptions {
  FLATTEN_STATIC_TRANSFORMS = 0x001, REMOVE_REDUNDANT_NODES = 0x002, REMOVE_LOADED_PROXY_NODES = 0x004, COMBINE_ADJACENT_LODS = 0x008,
  SHARE_DUPLICATE_STATE = 0x010, MERGE_GEOMETRY = 0x020, CHECK_GEOMETRY = 0x040, SPATIALIZE_GROUPS = 0x080,
  COPY_SHARED_NODES = 0x100, TRISTRIP_GEOMETRY = 0x200, TESSELATE_GEOMETRY = 0x400, OPTIMIZE_TEXTURE_SETTINGS = 0x800,
  DEFAULT_OPTIMIZATIONS, ALL_OPTIMIZATIONS
}

Public Member Functions

 Optimizer ()
virtual ~Optimizer ()
void reset ()
 Reset internal data to initial state - the getPermissibleOptionsMap is cleared.

void optimize (osg::Node *node)
 Traverse the node and its subgraph with a series of optimization visitors, specified by the OptimizationOptions.

virtual void optimize (osg::Node *node, unsigned int options)
 Traverse the node and its subgraph with a series of optimization visitors, specified by the OptimizationOptions.

void setIsOperationPermissibleForObjectCallback (IsOperationPermissibleForObjectCallback *callback)
 Set the callback for customizing what operations are permitted on objects in the scene graph.

IsOperationPermissibleForObjectCallbackgetIsOperationPermissibleForObjectCallback ()
 Get the callback for customizing what operations are permitted on objects in the scene graph.

const IsOperationPermissibleForObjectCallbackgetIsOperationPermissibleForObjectCallback () const
 Get the callback for customizing what operations are permitted on objects in the scene graph.

void setPermissibleOptimizationsForObject (const osg::Object *object, unsigned int options)
unsigned int getPermissibleOptimizationsForObject (const osg::Object *object) const
bool isOperationPermissibleForObject (const osg::StateSet *object, unsigned int option) const
bool isOperationPermissibleForObject (const osg::StateAttribute *object, unsigned int option) const
bool isOperationPermissibleForObject (const osg::Drawable *object, unsigned int option) const
bool isOperationPermissibleForObject (const osg::Node *object, unsigned int option) const
bool isOperationPermissibleForObjectImplementation (const osg::StateSet *stateset, unsigned int option) const
bool isOperationPermissibleForObjectImplementation (const osg::StateAttribute *attribute, unsigned int option) const
bool isOperationPermissibleForObjectImplementation (const osg::Drawable *drawable, unsigned int option) const
bool isOperationPermissibleForObjectImplementation (const osg::Node *node, unsigned int option) const

Protected Types

typedef std::map< const osg::Object *,
unsigned int > 
PermissibleOptimizationsMap

Protected Attributes

osg::ref_ptr< IsOperationPermissibleForObjectCallback_isOperationPermissibleForObjectCallback
PermissibleOptimizationsMap _permissibleOptimizationsMap


Detailed Description

Traverses scene graph to improve efficiency.

See OptimizationOptions. For example of usage see examples/osgimpostor or osgviewer.


Member Typedef Documentation

typedef std::map<const osg::Object*,unsigned int> osgUtil::Optimizer::PermissibleOptimizationsMap [protected]
 


Member Enumeration Documentation

enum osgUtil::Optimizer::OptimizationOptions
 

Enumeration values:
FLATTEN_STATIC_TRANSFORMS 
REMOVE_REDUNDANT_NODES 
REMOVE_LOADED_PROXY_NODES 
COMBINE_ADJACENT_LODS 
SHARE_DUPLICATE_STATE 
MERGE_GEOMETRY 
CHECK_GEOMETRY 
SPATIALIZE_GROUPS 
COPY_SHARED_NODES 
TRISTRIP_GEOMETRY 
TESSELATE_GEOMETRY 
OPTIMIZE_TEXTURE_SETTINGS 
DEFAULT_OPTIMIZATIONS 
ALL_OPTIMIZATIONS 


Constructor & Destructor Documentation

osgUtil::Optimizer::Optimizer  )  [inline]
 

virtual osgUtil::Optimizer::~Optimizer  )  [inline, virtual]
 


Member Function Documentation

const IsOperationPermissibleForObjectCallback* osgUtil::Optimizer::getIsOperationPermissibleForObjectCallback  )  const [inline]
 

Get the callback for customizing what operations are permitted on objects in the scene graph.

IsOperationPermissibleForObjectCallback* osgUtil::Optimizer::getIsOperationPermissibleForObjectCallback  )  [inline]
 

Get the callback for customizing what operations are permitted on objects in the scene graph.

unsigned int osgUtil::Optimizer::getPermissibleOptimizationsForObject const osg::Object object  )  const [inline]
 

bool osgUtil::Optimizer::isOperationPermissibleForObject const osg::Node object,
unsigned int  option
const [inline]
 

bool osgUtil::Optimizer::isOperationPermissibleForObject const osg::Drawable object,
unsigned int  option
const [inline]
 

bool osgUtil::Optimizer::isOperationPermissibleForObject const osg::StateAttribute object,
unsigned int  option
const [inline]
 

bool osgUtil::Optimizer::isOperationPermissibleForObject const osg::StateSet object,
unsigned int  option
const [inline]
 

bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation const osg::Node node,
unsigned int  option
const [inline]
 

bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation const osg::Drawable drawable,
unsigned int  option
const [inline]
 

bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation const osg::StateAttribute attribute,
unsigned int  option
const [inline]
 

bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation const osg::StateSet stateset,
unsigned int  option
const [inline]
 

virtual void osgUtil::Optimizer::optimize osg::Node node,
unsigned int  options
[virtual]
 

Traverse the node and its subgraph with a series of optimization visitors, specified by the OptimizationOptions.

void osgUtil::Optimizer::optimize osg::Node node  ) 
 

Traverse the node and its subgraph with a series of optimization visitors, specified by the OptimizationOptions.

void osgUtil::Optimizer::reset  ) 
 

Reset internal data to initial state - the getPermissibleOptionsMap is cleared.

void osgUtil::Optimizer::setIsOperationPermissibleForObjectCallback IsOperationPermissibleForObjectCallback callback  )  [inline]
 

Set the callback for customizing what operations are permitted on objects in the scene graph.

void osgUtil::Optimizer::setPermissibleOptimizationsForObject const osg::Object object,
unsigned int  options
[inline]
 


Member Data Documentation

osg::ref_ptr<IsOperationPermissibleForObjectCallback> osgUtil::Optimizer::_isOperationPermissibleForObjectCallback [protected]
 

PermissibleOptimizationsMap osgUtil::Optimizer::_permissibleOptimizationsMap [protected]
 


The documentation for this class was generated from the following file:
Generated at Thu Nov 24 16:25:38 2005 for the OpenSceneGraph by doxygen 1.3.6.