![]() |
VR-Forces Developer's Guide
|
DtOsgCullVisitor will inspect the camera to see which visual mode is active. If the visual mode is a 2D display mode, it changes the way LODs are paged in by pixel size and zoom level, else uses a distance from eye-point check with no LOD scale.

Public Member Functions | |
| DtOsgCullVisitor (DtDe &de) | |
| DtOsgCullVisitor (const DtOsgCullVisitor &rhs) | |
| virtual void | initializeViewDependentSettings () |
| virtual void | setMaximumMagnificationAngle (double angleRadians) |
| virtual double | maximumMagnificationAngle () const |
| virtual bool | orthoCulling () const |
| virtual bool | coordinateSystemChanged () const |
| virtual float | getDistanceToScreenEdge (const osg::Vec3 &vec) const |
| virtual float | altitude2D () const |
| virtual const DtOsgCullVisitorParameters * | visitorParameters () const |
| virtual void | apply (osg::Transform &node) override |
| virtual void | apply (osg::Node &node) override |
| virtual void | apply (osg::Group &group) override |
| virtual void | apply (osg::LightSource &lightSource) override |
| virtual void | apply (osg::Geode &geode) override |
| virtual void | apply (osg::Camera &node) override |
| virtual void | apply (osg::Billboard &node) override |
| virtual bool | isCulled (osg::Node &node, double scaleFactor) |
| virtual float | getDistanceToViewPoint (const osg::Vec3 &vec, bool useLOD) const override |
| virtual void | preCull () |
Protected Member Functions | |
| virtual | ~DtOsgCullVisitor () |
| virtual float | calculateFocusPointDistance (const osg::Vec3 &vec, bool useLOD, float magVal, double angle) const |
| virtual DtOsgCullVisitorParameters * | getVisitorParameters () const |
| virtual osgUtil::CullVisitor * | clone () const |
| virtual bool | isOcean (const osg::Node *node) const |
| virtual void | slot_StateSetChanged (const osg::StateSet *pStateSet) |
| virtual void | slot_coordinateSystemChanged () |
Protected Attributes | |
| DtOsgCullVisitorParameters * | myInfoCopy |
| double | myAltitude2D |
| double | myAltitude3D |
| osg::Matrix | myWorldToWindowMatrix |
| DtDe & | myDe |
| boost::signalslib::connection | m_signalConnection |
| bool | myIsInTerrain |
| DtSignalConnectionManager | myConnections |
| DtCoordinateSystem * | myCoordinateSystem = nullptr |
| double | myMaximumMagnificationAngle |
| DtSkyObjectManager & | mySkyObjectManager |
| bool | myHasCurrentCamera |
| osg::Matrix | myCurrentCameraViewMatrixI |
| osg::Matrix | myMainCameraViewMatrixI |
Private Member Functions | |
| DtOsgCullVisitor ()=delete | |
| DtOsgCullVisitor & | operator= (DtOsgCullVisitor &rhs)=delete |
| makVrv::DtOsgCullVisitor::DtOsgCullVisitor | ( | DtDe & | de | ) |
CTOR.
| makVrv::DtOsgCullVisitor::DtOsgCullVisitor | ( | const DtOsgCullVisitor & | rhs | ) |
Copy constructor.
|
protectedvirtual |
destructor
|
privatedelete |
not allowed
|
privatedelete |
not allowed
|
virtual |
Virtual void.
|
virtual |
Set the angle used when paging in high LOD tiles, the angle (radians) represents the half angle, so view dir +/- angle is used like a camera FOV. Note that this is called from initializeViewDependentSettings(), however this method allows override behavior and/or the ability to change the value after initializeViewDependentSettings() has been called.
|
virtual |
Get the angle used when paging in high LOD tiles, the angle (radians) represents the half angle, so view dir +/- angle is used like a camera FOV.
|
virtual |
Query whether this visitor is doing orthographic culling.
|
virtual |
Query whether the coordinate system changed this frame (used to reset localToWorkd matrices)
|
virtual |
Get a projected distance from the screen edge (approximate) when orthoCulling.
|
virtual |
Same as getDistanceToViewPoint() when ortho culling.
|
virtual |
Get the cull visitor parameters.
|
overridevirtual |
check for scalable transform and scale as required
|
overridevirtual |
check for light point nodes so we can disable shaders on them
|
overridevirtual |
check for scalable group and scale bounding sphere as required
|
overridevirtual |
check for emissive lights in models and make them global
|
overridevirtual |
sync shader uniforms to the state
|
overridevirtual |
currently unused but can be used for profiling the camera apply
|
overridevirtual |
process the cull for billboards
for nodes that need scaling, we call this instead of CullVisitor::isCulled
|
overridevirtual |
Gets the distance to the view point with the given visual mode. Will be used to page in LODs.
|
virtual |
Internally calls renderer preCull. This should only be called by the main thread, once per cullVisitor, and before any culling takes place.
|
protectedvirtual |
utility function for calculating the distance based on focus points.
|
protectedvirtual |
Fetches the info from the visitor's renderInfo object.
|
protectedvirtual |
Protected clone function.
|
protectedvirtual |
whether is ocean
|
protectedvirtual |
connect to the state set changed signal so we can invalidate the uniforms.
|
protectedvirtual |
slot for when the coordinate system changes
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
local clone of the system wide coordinate system. for thread safety.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |