VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgCullVisitor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 #include <vrvUtil/signalslib.h>
16 
17 namespace makVrv
18 {
19  class DtCoordinateSystem;
20  class DtSkyObjectManager;
21 
27  class DT_DLL_VRVOSG DtOsgCullVisitor : public osgUtil::CullVisitor
28  {
29  public:
32 
35  protected:
36 
38  virtual ~DtOsgCullVisitor();
39 
40  private:
42  DtOsgCullVisitor() = delete;
44  DtOsgCullVisitor& operator=(DtOsgCullVisitor& rhs) = delete;
45  public:
47  virtual void initializeViewDependentSettings();
48 
56  virtual void setMaximumMagnificationAngle(double angleRadians);
57 
61  virtual double maximumMagnificationAngle() const;
62 
64  virtual bool orthoCulling() const;
65 
68  virtual bool coordinateSystemChanged() const;
69 
72  virtual float getDistanceToScreenEdge(const osg::Vec3& vec) const;
73 
75  virtual float altitude2D() const;
76 
78  virtual const DtOsgCullVisitorParameters* visitorParameters() const;
79 
81  virtual void apply(osg::Transform& node) override;
82 
84  virtual void apply(osg::Node& node) override;
85 
87  virtual void apply(osg::Group& group) override;
88 
90  virtual void apply(osg::LightSource& lightSource) override;
91 
93  virtual void apply(osg::Geode& geode) override;
94 
96  virtual void apply(osg::Camera& node) override;
97 
99  virtual void apply(osg::Billboard& node) override;
100 
103  virtual bool isCulled(osg::Node& node, double scaleFactor);
104 
107  virtual float getDistanceToViewPoint(const osg::Vec3& vec, bool useLOD) const override;
108 
112  virtual void preCull();
113 
114  protected:
115 
117  virtual float calculateFocusPointDistance(const osg::Vec3& vec, bool useLOD, float magVal, double angle) const;
118 
120  virtual DtOsgCullVisitorParameters* getVisitorParameters() const;
121 
123  virtual osgUtil::CullVisitor* clone() const;
124 
126  virtual bool isOcean(const osg::Node* node) const;
127 
129  virtual void slot_StateSetChanged(const osg::StateSet* pStateSet);
130 
132  virtual void slot_coordinateSystemChanged();
133 
134  protected:
136  double myAltitude2D;
137  double myAltitude3D;
140 
141  boost::signalslib::connection m_signalConnection;
142 
144 
146 
149  DtCoordinateSystem* myCoordinateSystem = nullptr;
150 
152 
154 
158  };
159 }
160 
DtSkyObjectManager & mySkyObjectManager
Definition: DtOsgCullVisitor.h:153
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
bool myIsInTerrain
Definition: DtOsgCullVisitor.h:143
boost::signalslib::connection m_signalConnection
Definition: DtOsgCullVisitor.h:141
Definition: DtSkyObjectManager.h:30
DtOsgCullVisitor will inspect the camera to see which visual mode is active. If the visual mode is a ...
Definition: DtOsgCullVisitor.h:27
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
bool myHasCurrentCamera
Definition: DtOsgCullVisitor.h:155
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The osg cull vistor parameters class provides additional culling and intersector parameters for choos...
Definition: DtOsgCullVisitorParameters.h:44
osg::Matrix myMainCameraViewMatrixI
Definition: DtOsgCullVisitor.h:157
DtOsgCullVisitorParameters * myInfoCopy
Definition: DtOsgCullVisitor.h:135
double myAltitude3D
Definition: DtOsgCullVisitor.h:137
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
DtSignalConnectionManager myConnections
Definition: DtOsgCullVisitor.h:145
Base class to provide boost signal/slot management.
double myAltitude2D
Definition: DtOsgCullVisitor.h:136
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
DtDe & myDe
Definition: DtOsgCullVisitor.h:139
double myMaximumMagnificationAngle
Definition: DtOsgCullVisitor.h:151
osg::Matrix myCurrentCameraViewMatrixI
Definition: DtOsgCullVisitor.h:156
Contains the makVrv::DtOsgCullVisitorParameters class. Visual mode information is set into the camera...
osg::Matrix myWorldToWindowMatrix
Definition: DtOsgCullVisitor.h:138

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)