VR-Forces 4.8 Class Documentation
 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) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 #include <boost/signal.hpp>
15 
16 namespace makVrv
17 {
18  class DtOsgOcclusionQueryNode;
19 
25  class DT_DLL_VRVOSG DtOsgCullVisitor : public osgUtil::CullVisitor
26  {
27  public:
30 
33 
34  protected:
35 
37  virtual ~DtOsgCullVisitor();
38 
39  public:
41  void initializeViewDependentSettings();
42 
44  bool orthoCulling() const;
45 
48  bool coordinateSystemChanged() const;
49 
52  virtual float getDistanceToScreenEdge(const osg::Vec3& vec) const;
53 
55  virtual float altitude2D() const;
56 
58  const DtOsgCullVisitorParameters* visitorParameters() const;
59 
61  void setInReflectionPass(bool bReflecting) { myIsInReflectionPass = bReflecting; }
63  bool inReflectionPass(void) const { return myIsInReflectionPass; }
64 
68  const DtDe& de(void) const;
69 
73  DtDe& de(void);
74 
76  virtual void apply(osg::Transform& node);
77 
79  virtual void apply(osg::Node& node);
80 
82  virtual void apply(osg::Group& group);
83 
85  virtual void apply(osg::LightSource& lightSource);
86 
88  virtual void apply(osg::Geode& geode);
89 
91  virtual void apply(osg::Camera& node);
92 
94  virtual void apply(osg::Billboard& node);
95 
98  virtual void apply(osg::PagedLOD& node);
99 
101  virtual void apply(osg::OcclusionQueryNode& node);
102 
105  virtual bool isCulled(osg::Node& node, double scaleFactor);
106 
107  protected:
108 
111  virtual float getDistanceToViewPoint(const osg::Vec3& vec, bool useLOD) const;
112 
114  virtual float calculateFocusPointDistance(const osg::Vec3& vec, bool useLOD, float magVal) const;
115 
116 
118  DtOsgCullVisitorParameters* getVisitorParameters() const;
119 
121  virtual osgUtil::CullVisitor* clone() const;
122 
124  virtual void reset();
125 
127  void slot_StateSetChanged(const osg::StateSet* pStateSet);
128 
129  protected:
131  double myAltitude2D;
132  double myAltitude3D;
136 
137  boost::BOOST_SIGNALS_NAMESPACE::connection m_signalConnection;
138 
141  };
142 }
143 
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
bool myIsInTerrain
Definition: DtOsgCullVisitor.h:140
boost::BOOST_SIGNALS_NAMESPACE::connection m_signalConnection
Definition: DtOsgCullVisitor.h:137
DtOsgCullVisitor will inspect the camera to see which visual mode is active.
Definition: DtOsgCullVisitor.h:25
void setInReflectionPass(bool bReflecting)
Indicate whether we are now in a reflection pass.
Definition: DtOsgCullVisitor.h:61
The osg cull vistor parameters class provides additional culling and intersector parameters for choos...
Definition: DtOsgCullVisitorParameters.h:38
DtOsgCullVisitorParameters * myInfoCopy
Definition: DtOsgCullVisitor.h:130
double myAltitude3D
Definition: DtOsgCullVisitor.h:132
bool inReflectionPass(void) const
Query whether this visitor is in a reflection pass.
Definition: DtOsgCullVisitor.h:63
double myAltitude2D
Definition: DtOsgCullVisitor.h:131
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtDe & myDe
Definition: DtOsgCullVisitor.h:135
double myMaximumMagnificationAngle
Definition: DtOsgCullVisitor.h:133
Contains the makVrv::DtOsgCullVisitorParameters class.
osg::Matrix myWorldToWindowMatrix
Definition: DtOsgCullVisitor.h:134
bool myIsInReflectionPass
Definition: DtOsgCullVisitor.h:139

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)