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