VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtLightPointVisitor.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>
17 
18 #include <osgSim/LightPoint>
19 #include <osgSim/LightPointNode>
20 
21 #include <osg/NodeVisitor>
22 #include <osg/observer_ptr>
23 
24 #include <stack>
25 
26 namespace osgSim
27 {
28  class MultiSwitch;
29  class DOFTransform;
30 }
31 
32 namespace makVrv
33 {
38  class DT_DLL_VRVOSG DtLightPointVisitor : public osg::NodeVisitor
39  {
40 
41  public:
42 
45 
47  virtual ~DtLightPointVisitor();
48 
53  virtual void apply(osg::Node& node);
54 
56  virtual void apply(osgSim::LightPointNode& node);
57 
59  virtual void apply(DtLightPointNode& node);
60 
62  virtual void apply(DtDynamicTerrainSwitchNode& node);
63 
65  virtual void apply(osg::Switch& node);
66 
68  virtual void apply(osgSim::MultiSwitch& node);
69 
71  virtual void apply(osg::LOD& node);
72 
74  virtual void apply(osg::Sequence& node);
75 
78  virtual void apply(osg::MatrixTransform& matTrans);
79 
81  virtual void apply(osgSim::DOFTransform& node);
82 
84  virtual const DtLightPointNodeAndXformVector& foundLightPoints() const;
85 
86  protected:
87 
89  virtual void addLightPoints(const LightPointNodeObs& node);
90 
94  template <typename T>
95  void addToNodeStack(DtNodePointerStack& nodeStack, const T& nodeInfoStack);
96 
97  protected:
98  std::stack<osg::Matrix> myMatrixStack;
99 
101 
103 
105 
108 
110  };
111 
112 } // namespace makVrv
std::stack< osg::Matrix > myMatrixStack
Definition: DtLightPointVisitor.h:98
int myCurrentParentId
Definition: DtLightPointVisitor.h:106
DtIndirectDofManager::DequeNodeDofInfoPairs myDofStack
Definition: DtLightPointVisitor.h:104
DtDynamicTerrainSwitchNode replaces an osgSim::multiswitch in a terrain patch (or page) that is tagge...
Definition: DtDynamicTerrainSwitchNode.h:74
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Contains makVrv::DtOsgLightPointManager class.
std::deque< NodeSwitchInfoPair > DequeNodeSwitchInfoPairs
Definition: DtIndirectSwitchManager.h:76
DtIndirectLodManager::DequeIndirectLodInfoPairs myLodStack
Definition: DtLightPointVisitor.h:100
std::deque< NodeDofInfoPair > DequeNodeDofInfoPairs
Definition: DtIndirectDofManager.h:76
Contains makVrv::DtIndirectDofManager class.
DtLightPointNodeAndXformVector myLightPoints
Definition: DtLightPointVisitor.h:109
std::vector< DtLightPointNodeAndXform > DtLightPointNodeAndXformVector
Vector of light point nodes and their transforms. We need to keep every path to every light at this p...
Definition: DtLightPointNodeAndXform.h:66
osg::observer_ptr< osg::Node > LightPointNodeObs
typedef a map of light point nodes use observer pointers so when they are deleted we don&#39;t try to use...
Definition: DtLightPointNodeAndXform.h:21
Derived from osg::Node and is a replacement for the osgSim::LightPointNode represents a group of ligh...
Definition: DtLightPointNode.h:37
Contains makVrv::DtIndirectSwitchManager class.
DtLightPointVisitor walks the scene graph and collects pointers to the LightPoint nodes...
Definition: DtLightPointVisitor.h:38
DtIndirectSwitchManager::DequeNodeSwitchInfoPairs mySwitchStack
Definition: DtLightPointVisitor.h:102
std::vector< osg::Node * > DtNodePointerStack
Definition: DtLightPointNode.h:27
Contains makVrv::DtIndirectLodManager class.
Contains DLL export macros.
std::deque< NodeLodInfoPair > DequeIndirectLodInfoPairs
Definition: DtIndirectLodManager.h:68
int myMaxDofId
Definition: DtLightPointVisitor.h:107

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)