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, TESSELLATE_GEOMETRY = 0x400, OPTIMIZE_TEXTURE_SETTINGS = 0x800, MERGE_GEODES = 0x1000, FLATTEN_BILLBOARDS = 0x2000, TEXTURE_ATLAS_BUILDER = 0x4000, STATIC_OBJECT_DETECTION = 0x8000, 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. | |
IsOperationPermissibleForObjectCallback * | getIsOperationPermissibleForObjectCallback () |
Get the callback for customizing what operations are permitted on objects in the scene graph. | |
const IsOperationPermissibleForObjectCallback * | getIsOperationPermissibleForObjectCallback () 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 |
Classes | |
class | CheckGeometryVisitor |
class | CombineLODsVisitor |
Optimize the LOD groups, by combining adjacent LOD's which have complementary ranges. More... | |
class | CombineStaticTransformsVisitor |
Combine Static Transform nodes that sit above one another. More... | |
class | CopySharedSubgraphsVisitor |
Copy any shared subgraphs, enabling flattening of static transforms. More... | |
class | FlattenBillboardVisitor |
Flatten MatrixTransform/Billboard pairs. More... | |
class | FlattenStaticTransformsVisitor |
Flatten Static Transform nodes by applying their transform to the geometry on the leaves of the scene graph, then removing the now redundant transforms. More... | |
struct | IsOperationPermissibleForObjectCallback |
Callback for customizing what operations are permitted on objects in the scene graph. More... | |
class | MergeGeodesVisitor |
Combine geodes. More... | |
class | MergeGeometryVisitor |
class | RemoveEmptyNodesVisitor |
Remove rendundant nodes, such as groups with one single child. More... | |
class | RemoveLoadedProxyNodesVisitor |
Remove loaded proxy nodes. More... | |
class | RemoveRedundantNodesVisitor |
Remove redundant nodes, such as groups with one single child. More... | |
class | SpatializeGroupsVisitor |
Spatialize scene into a balanced quad/oct tree. More... | |
class | StateVisitor |
Optimize State in the scene graph by removing duplicate state, replacing it with shared instances, both for StateAttributes, and whole StateSets. More... | |
class | StaticObjectDetectionVisitor |
Optimize the setting of StateSet and Geometry objects in scene so that they have a STATIC DataVariance when they don't have any callbacks associated with them. More... | |
class | TessellateVisitor |
Tessellate all geodes, to remove POLYGONS. More... | |
class | TextureAtlasBuilder |
Texture Atlas Builder creates a set of textures/images which each contain multiple images. More... | |
class | TextureAtlasVisitor |
Optimize texture usage in the scene graph by combining textures into texture atlas Use of texture atlas cuts down on the number of seperate states in the scene, reducing state changes and improving the chances of use larger batches of geomertry. More... | |
class | TextureVisitor |
For all textures apply settings. More... |
See OptimizationOptions. For example of usage see examples/osgimpostor or osgviewer.
typedef std::map<const osg::Object*,unsigned int> osgUtil::Optimizer::PermissibleOptimizationsMap [protected] |
osgUtil::Optimizer::Optimizer | ( | ) | [inline] |
virtual osgUtil::Optimizer::~Optimizer | ( | ) | [inline, virtual] |
void osgUtil::Optimizer::reset | ( | ) |
Reset internal data to initial state - the getPermissibleOptionsMap is cleared.
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::setIsOperationPermissibleForObjectCallback | ( | IsOperationPermissibleForObjectCallback * | callback | ) | [inline] |
Set 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.
const IsOperationPermissibleForObjectCallback* osgUtil::Optimizer::getIsOperationPermissibleForObjectCallback | ( | ) | const [inline] |
Get 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] |
unsigned int osgUtil::Optimizer::getPermissibleOptimizationsForObject | ( | const osg::Object * | object | ) | const [inline] |
bool osgUtil::Optimizer::isOperationPermissibleForObject | ( | const osg::StateSet * | 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::Drawable * | object, | |
unsigned int | option | |||
) | const [inline] |
bool osgUtil::Optimizer::isOperationPermissibleForObject | ( | const osg::Node * | object, | |
unsigned int | option | |||
) | const [inline] |
bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation | ( | const osg::StateSet * | stateset, | |
unsigned int | option | |||
) | const [inline] |
bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation | ( | const osg::StateAttribute * | attribute, | |
unsigned int | option | |||
) | const [inline] |
bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation | ( | const osg::Drawable * | drawable, | |
unsigned int | option | |||
) | const [inline] |
bool osgUtil::Optimizer::isOperationPermissibleForObjectImplementation | ( | const osg::Node * | node, | |
unsigned int | option | |||
) | const [inline] |
osg::ref_ptr<IsOperationPermissibleForObjectCallback> osgUtil::Optimizer::_isOperationPermissibleForObjectCallback [protected] |