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) 2024 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 void apply(osg::PagedLOD& node) override;
104 
107  virtual bool isCulled(osg::Node& node, double scaleFactor);
108 
111  virtual float getDistanceToViewPoint(const osg::Vec3& vec, bool useLOD) const override;
112 
116  virtual void preCull();
117 
118  protected:
119 
121  virtual float calculateFocusPointDistance(const osg::Vec3& vec, bool useLOD, float magVal) const;
122 
124  virtual DtOsgCullVisitorParameters* getVisitorParameters() const;
125 
127  virtual osgUtil::CullVisitor* clone() const;
128 
130  virtual bool isOcean(const osg::Node* node) const;
131 
133  virtual void slot_StateSetChanged(const osg::StateSet* pStateSet);
134 
136  virtual void slot_coordinateSystemChanged();
137  protected:
139  double myAltitude2D;
140  double myAltitude3D;
143 
144  boost::signalslib::connection m_signalConnection;
145 
147 
149 
152  DtCoordinateSystem* myCoordinateSystem = nullptr;
153 
155 
157 
161  };
162 }
163 
DtSkyObjectManager & mySkyObjectManager
Definition: DtOsgCullVisitor.h:156
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
bool myIsInTerrain
Definition: DtOsgCullVisitor.h:146
boost::signalslib::connection m_signalConnection
Definition: DtOsgCullVisitor.h:144
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
bool myHasCurrentCamera
Definition: DtOsgCullVisitor.h:158
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:43
osg::Matrix myMainCameraViewMatrixI
Definition: DtOsgCullVisitor.h:160
DtOsgCullVisitorParameters * myInfoCopy
Definition: DtOsgCullVisitor.h:138
double myAltitude3D
Definition: DtOsgCullVisitor.h:140
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
DtSignalConnectionManager myConnections
Definition: DtOsgCullVisitor.h:148
Base class to provide boost signal/slot management.
double myAltitude2D
Definition: DtOsgCullVisitor.h:139
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:72
DtDe & myDe
Definition: DtOsgCullVisitor.h:142
double myMaximumMagnificationAngle
Definition: DtOsgCullVisitor.h:154
osg::Matrix myCurrentCameraViewMatrixI
Definition: DtOsgCullVisitor.h:159
Contains the makVrv::DtOsgCullVisitorParameters class. Visual mode information is set into the camera...
osg::Matrix myWorldToWindowMatrix
Definition: DtOsgCullVisitor.h:141

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)