OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Types | Public Member Functions | Protected Types | Protected Attributes | List of all members
osgUtil::Optimizer Class Reference

#include <Optimizer.h>

Collaboration diagram for osgUtil::Optimizer:
Collaboration graph
[legend]

Classes

class  CheckGeometryVisitor
 
class  CombineLODsVisitor
 
class  CombineStaticTransformsVisitor
 
class  CopySharedSubgraphsVisitor
 
class  FlattenBillboardVisitor
 
class  FlattenStaticTransformsDuplicatingSharedSubgraphsVisitor
 
class  FlattenStaticTransformsVisitor
 
struct  IsOperationPermissibleForObjectCallback
 
class  MakeFastGeometryVisitor
 
class  MergeGeodesVisitor
 
class  MergeGeometryVisitor
 
class  RemoveEmptyNodesVisitor
 
class  RemoveLoadedProxyNodesVisitor
 
class  RemoveRedundantNodesVisitor
 
class  SpatializeGroupsVisitor
 
class  StateVisitor
 
class  StaticObjectDetectionVisitor
 
class  TessellateVisitor
 
class  TextureAtlasBuilder
 
class  TextureAtlasVisitor
 
class  TextureVisitor
 

Public Types

enum  OptimizationOptions {
  FLATTEN_STATIC_TRANSFORMS = (1 << 0), REMOVE_REDUNDANT_NODES = (1 << 1), REMOVE_LOADED_PROXY_NODES = (1 << 2), COMBINE_ADJACENT_LODS = (1 << 3),
  SHARE_DUPLICATE_STATE = (1 << 4), MERGE_GEOMETRY = (1 << 5), CHECK_GEOMETRY = (1 << 6), MAKE_FAST_GEOMETRY = (1 << 7),
  SPATIALIZE_GROUPS = (1 << 8), COPY_SHARED_NODES = (1 << 9), TRISTRIP_GEOMETRY = (1 << 10), TESSELLATE_GEOMETRY = (1 << 11),
  OPTIMIZE_TEXTURE_SETTINGS = (1 << 12), MERGE_GEODES = (1 << 13), FLATTEN_BILLBOARDS = (1 << 14), TEXTURE_ATLAS_BUILDER = (1 << 15),
  STATIC_OBJECT_DETECTION = (1 << 16), FLATTEN_STATIC_TRANSFORMS_DUPLICATING_SHARED_SUBGRAPHS = (1 << 17), INDEX_MESH = (1 << 18), VERTEX_POSTTRANSFORM = (1 << 19),
  VERTEX_PRETRANSFORM = (1 << 20), DEFAULT_OPTIMIZATIONS, ALL_OPTIMIZATIONS
}
 

Public Member Functions

 Optimizer ()
 
virtual ~Optimizer ()
 
void reset ()
 
void optimize (osg::Node *node)
 
virtual void optimize (osg::Node *node, unsigned int options)
 
void setIsOperationPermissibleForObjectCallback (IsOperationPermissibleForObjectCallback *callback)
 
IsOperationPermissibleForObjectCallbackgetIsOperationPermissibleForObjectCallback ()
 
const
IsOperationPermissibleForObjectCallback
getIsOperationPermissibleForObjectCallback () const
 
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.

Definition at line 60 of file Optimizer.h.

Member Typedef Documentation

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

Definition at line 253 of file Optimizer.h.

Member Enumeration Documentation

Enumerator
FLATTEN_STATIC_TRANSFORMS 
REMOVE_REDUNDANT_NODES 
REMOVE_LOADED_PROXY_NODES 
COMBINE_ADJACENT_LODS 
SHARE_DUPLICATE_STATE 
MERGE_GEOMETRY 
CHECK_GEOMETRY 
MAKE_FAST_GEOMETRY 
SPATIALIZE_GROUPS 
COPY_SHARED_NODES 
TRISTRIP_GEOMETRY 
TESSELLATE_GEOMETRY 
OPTIMIZE_TEXTURE_SETTINGS 
MERGE_GEODES 
FLATTEN_BILLBOARDS 
TEXTURE_ATLAS_BUILDER 
STATIC_OBJECT_DETECTION 
FLATTEN_STATIC_TRANSFORMS_DUPLICATING_SHARED_SUBGRAPHS 
INDEX_MESH 
VERTEX_POSTTRANSFORM 
VERTEX_PRETRANSFORM 
DEFAULT_OPTIMIZATIONS 
ALL_OPTIMIZATIONS 

Definition at line 68 of file Optimizer.h.

Constructor & Destructor Documentation

osgUtil::Optimizer::Optimizer ( )
inline

Definition at line 65 of file Optimizer.h.

virtual osgUtil::Optimizer::~Optimizer ( )
inlinevirtual

Definition at line 66 of file Optimizer.h.

Member Function Documentation

IsOperationPermissibleForObjectCallback* osgUtil::Optimizer::getIsOperationPermissibleForObjectCallback ( )
inline

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

Definition at line 159 of file Optimizer.h.

const IsOperationPermissibleForObjectCallback* osgUtil::Optimizer::getIsOperationPermissibleForObjectCallback ( ) const
inline

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

Definition at line 162 of file Optimizer.h.

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

Definition at line 170 of file Optimizer.h.

bool osgUtil::Optimizer::isOperationPermissibleForObject ( const osg::StateSet object,
unsigned int  option 
) const
inline

Definition at line 178 of file Optimizer.h.

bool osgUtil::Optimizer::isOperationPermissibleForObject ( const osg::StateAttribute object,
unsigned int  option 
) const
inline

Definition at line 186 of file Optimizer.h.

bool osgUtil::Optimizer::isOperationPermissibleForObject ( const osg::Drawable object,
unsigned int  option 
) const
inline

Definition at line 194 of file Optimizer.h.

bool osgUtil::Optimizer::isOperationPermissibleForObject ( const osg::Node object,
unsigned int  option 
) const
inline

Definition at line 202 of file Optimizer.h.

bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation ( const osg::StateSet stateset,
unsigned int  option 
) const
inline

Definition at line 210 of file Optimizer.h.

Here is the caller graph for this function:

bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation ( const osg::StateAttribute attribute,
unsigned int  option 
) const
inline

Definition at line 215 of file Optimizer.h.

bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation ( const osg::Drawable drawable,
unsigned int  option 
) const
inline

Definition at line 220 of file Optimizer.h.

Here is the call graph for this function:

bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation ( const osg::Node node,
unsigned int  option 
) const
inline

Definition at line 232 of file Optimizer.h.

Here is the call graph for this function:

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

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

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::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.

Definition at line 156 of file Optimizer.h.

void osgUtil::Optimizer::setPermissibleOptimizationsForObject ( const osg::Object object,
unsigned int  options 
)
inline

Definition at line 165 of file Optimizer.h.

Member Data Documentation

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

Definition at line 251 of file Optimizer.h.

PermissibleOptimizationsMap osgUtil::Optimizer::_permissibleOptimizationsMap
protected

Definition at line 254 of file Optimizer.h.


The documentation for this class was generated from the following file: