|
Public Types |
| typedef osg::Matrix::value_type | value_type |
Public Member Functions |
| | CullVisitor () |
| virtual | ~CullVisitor () |
| virtual CullVisitor * | cloneType () const |
| virtual void | reset () |
| virtual osg::Vec3 | getEyePoint () const |
| | Get the eye point in local coordinates.
|
| virtual float | getDistanceToEyePoint (const osg::Vec3 &pos, bool withLODScale) const |
| virtual float | getDistanceFromEyePoint (const osg::Vec3 &pos, bool withLODScale) const |
| virtual void | apply (osg::Node &) |
| virtual void | apply (osg::Geode &node) |
| virtual void | apply (osg::Billboard &node) |
| virtual void | apply (osg::LightSource &node) |
| virtual void | apply (osg::ClipNode &node) |
| virtual void | apply (osg::TexGenNode &node) |
| virtual void | apply (osg::Group &node) |
| virtual void | apply (osg::Transform &node) |
| virtual void | apply (osg::Projection &node) |
| virtual void | apply (osg::Switch &node) |
| virtual void | apply (osg::LOD &node) |
| virtual void | apply (osg::ClearNode &node) |
| virtual void | apply (osg::CameraNode &node) |
| virtual void | apply (osg::OccluderNode &node) |
| void | setClearNode (const osg::ClearNode *earthSky) |
| const osg::ClearNode * | getClearNode () const |
| void | pushStateSet (const osg::StateSet *ss) |
| | Push state set on the current state group.
|
| void | popStateSet () |
| | Pop the top state set and hence associated state group.
|
| void | setStateGraph (StateGraph *rg) |
| StateGraph * | getRootStateGraph () |
| StateGraph * | getCurrentStateGraph () |
| void | setRenderStage (RenderStage *rg) |
| RenderStage * | getRenderStage () |
| RenderBin * | getCurrentRenderBin () |
| void | setCurrentRenderBin (RenderBin *rb) |
| value_type | getCalculatedNearPlane () const |
| value_type | getCalculatedFarPlane () const |
| value_type | computeNearestPointInFrustum (const osg::Matrix &matrix, const osg::Polytope::PlaneList &planes, const osg::Drawable &drawable) |
| bool | updateCalculatedNearFar (const osg::Matrix &matrix, const osg::BoundingBox &bb) |
| bool | updateCalculatedNearFar (const osg::Matrix &matrix, const osg::Drawable &drawable, bool isBillboard=false) |
| void | updateCalculatedNearFar (const osg::Vec3 &pos) |
| void | addDrawable (osg::Drawable *drawable, osg::RefMatrix *matrix) |
| | Add a drawable to current render graph.
|
| void | addDrawableAndDepth (osg::Drawable *drawable, osg::RefMatrix *matrix, float depth) |
| | Add a drawable and depth to current render graph.
|
| void | addPositionedAttribute (osg::RefMatrix *matrix, const osg::StateAttribute *attr) |
| | Add an attribute which is positioned relative to the modelview matrix.
|
| void | addPositionedTextureAttribute (unsigned int textureUnit, osg::RefMatrix *matrix, const osg::StateAttribute *attr) |
| | Add an attribute which is positioned relative to the modelview matrix.
|
| virtual void | popProjectionMatrix () |
| | Re-implement CullStack's popProjectionMatrix() adding clamping of the projection matrix to the computed near and far.
|
| virtual bool | clampProjectionMatrixImplementation (osg::Matrixf &projection, double &znear, double &zfar) const |
| | CullVisitor's default clamping of the projection float matrix to computed near and far values.
|
| virtual bool | clampProjectionMatrixImplementation (osg::Matrixd &projection, double &znear, double &zfar) const |
| | CullVisitor's default clamping of the projection double matrix to computed near and far values.
|
| bool | clampProjectionMatrix (osg::Matrixf &projection, value_type &znear, value_type &zfar) const |
| | Clamp the projection float matrix to computed near and far values, use callback if it exists, otherwise use default CullVisitor implementation.
|
| bool | clampProjectionMatrix (osg::Matrixd &projection, value_type &znear, value_type &zfar) const |
| | Clamp the projection double matrix to computed near and far values, use callback if it exists, otherwise use default CullVisitor implementation.
|
| void | setState (osg::State *state) |
| osg::State * | getState () |
| const osg::State * | getState () const |
Protected Types |
typedef std::vector< osg::ref_ptr<
RenderLeaf > > | RenderLeafList |
typedef std::multimap< value_type,
MatrixPlanesDrawables > | DistanceMatrixDrawableMap |
Protected Member Functions |
| CullVisitor & | operator= (const CullVisitor &) |
| | Prevent unwanted copy operator.
|
| void | handle_cull_callbacks_and_traverse (osg::Node &node) |
| void | handle_cull_callbacks_and_accept (osg::Node &node, osg::Node *acceptNode) |
| RenderLeaf * | createOrReuseRenderLeaf (osg::Drawable *drawable, osg::RefMatrix *projection, osg::RefMatrix *matrix, float depth=0.0f) |
Protected Attributes |
| osg::ref_ptr< const osg::ClearNode > | _clearNode |
| osg::ref_ptr< StateGraph > | _rootStateGraph |
| StateGraph * | _currentStateGraph |
| osg::ref_ptr< RenderStage > | _rootRenderStage |
| RenderBin * | _currentRenderBin |
| value_type | _computed_znear |
| value_type | _computed_zfar |
| RenderLeafList | _reuseRenderLeafList |
| unsigned int | _currentReuseRenderLeafIndex |
| osg::ref_ptr< osg::State > | _state |
| DistanceMatrixDrawableMap | _nearPlaneCandidateMap |
This visitor traverses the scene graph, collecting transparent and opaque osg::Drawables into a depth sorted transparent bin and a state sorted opaque bin. The opaque bin is rendered first, and then the transparent bin is rendered in order from the furthest osg::Drawable from the eye to the one nearest the eye.