VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTerrainPatchObjectManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 
15 #include <set>
16 #include <string>
17 #include <osg/Group>
18 #include <osg/Node>
21 #include <boost/thread/mutex.hpp>
22 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtOsgTerrainPatchObject;
27  class DtOsgLightPointManager;
28  class DtDynamicTerrainWorld;
29  class DtModelSemanticsMapper;
30  class DtTerrainPatchObject;
31  class DtIndirectEntityManager;
32 
39  {
40  public:
42  virtual ~DtTerrainPatchObjectManager();
43 
44  protected:
47 
48  public:
49  typedef std::set<DtOsgTerrainPatchObject*> TerrainPatchObjectSet;
50 
52  virtual const TerrainPatchObjectSet& findTerrainPatchObjects() const;
53 
55  virtual TerrainPatchObjectSet& findTerrainPatchObjects();
56 
57 
59  virtual const TerrainPatchObjectSet& findOsgEarthTerrainPatchObjects() const;
60 
62  virtual TerrainPatchObjectSet& findOsgEarthTerrainPatchObjects();
63 
64 
66  virtual void registerTerrainPatchObject(DtOsgTerrainPatchObject* obj);
67 
69  virtual void unregisterTerrainPatchObject(DtOsgTerrainPatchObject* obj);
70 
73  virtual void cleanupPagedDynamicFeatures();
74 
76  static DtTerrainPatchObjectManager& instance(DtDe& de);
77 
79  static const std::string& theClassName();
80 
82  virtual void slot_childLoaded(const osg::Group* page, const osg::Node* child, const std::string& fileName);
83 
85  virtual void slot_childLoadedPostProcess(const osg::Node* _child, osg::Node*& returnedNode);
86 
88  virtual void slot_childAboutToPageOut(const osg::Group* page, const osg::Node* child);
89 
92  virtual void slot_osgEarthMapNodeFound(DtTerrainPatchObject& tpo);
93 
94 
97  virtual bool overrideUseIndirectRendering() const;
98  virtual void setOverrideUseIndirectRendering(bool value);
99  virtual bool useIndirectRendering() const;
100  virtual void setUseIndirectRendering(bool value);
101  virtual bool shouldColorIndirectBlue() const;
102  virtual void setColorIndirectBlue(bool value);
103  virtual bool shouldColorMissingTexturesRed() const;
104  virtual void setColorMissingTexturesRed(bool value);
105  virtual void setDrawIndirectBoundingBoxes(bool value);
106  virtual bool shouldDrawIndirectBoundingBoxes() const;
107  virtual bool shouldColorIndirectByGeomIndex() const;
108  virtual void setColorIndirectByGeomIndex(bool value);
109  virtual void slot_postUpdate();
111 
112 
113  protected:
114 
117 
118  typedef std::map<osg::ref_ptr<const osg::Node>, DtDynamicTerrainWorld::FeatureHandle> NodeFeatureMap;
120 
121  mutable boost::mutex myMapMutex;
122 
124 
127 
129  typedef std::vector<boost::signalslib::connection> Connections;
130 
133 
135 
141 
146 
147  };
148 }
Virtual base class.
Definition: DtVirtualBaseClass.h:19
NodeFeatureMap myPagedDynamicFeatures
Definition: DtTerrainPatchObjectManager.h:119
std::map< osg::ref_ptr< const osg::Node >, DtDynamicTerrainWorld::FeatureHandle > NodeFeatureMap
Definition: DtTerrainPatchObjectManager.h:118
Manager that provides direct access to the terrain patch objects in use in a display engine also hand...
Definition: DtTerrainPatchObjectManager.h:38
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
bool myIndirectColorByGeomIndex
Definition: DtTerrainPatchObjectManager.h:139
DtIndirectEntityManager & myIndirectEntityManager
Definition: DtTerrainPatchObjectManager.h:145
Connections myConnections
The connected signals.
Definition: DtTerrainPatchObjectManager.h:132
DtDynamicTerrainWorld & myDynamicTerrainWorld
Definition: DtTerrainPatchObjectManager.h:143
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:105
float myIndirectEntityManagerCellPageOutTime
Definition: DtTerrainPatchObjectManager.h:140
A DtTerrainPatchObject contains the methods for loading a file as a terrain.
Definition: DtTerrainPatchObject.h:37
TerrainPatchObjectSet myOsgEarthTerrainPatchObjects
Definition: DtTerrainPatchObjectManager.h:116
std::set< DtOsgTerrainPatchObject * > TerrainPatchObjectSet
Definition: DtTerrainPatchObjectManager.h:49
std::vector< boost::signalslib::connection > Connections
A collection of signals.
Definition: DtTerrainPatchObjectManager.h:129
bool myIndirectDrawBoundingBoxes
Definition: DtTerrainPatchObjectManager.h:138
boost::mutex myMapMutex
Definition: DtTerrainPatchObjectManager.h:121
Contains makVrv::DtVirtualBaseClass class.
bool myOverrideUseIndirectRendering
Definition: DtTerrainPatchObjectManager.h:125
DtDe & myDe
Definition: DtTerrainPatchObjectManager.h:123
A DtOsgTerrainPatchObject contains the methods for loading a file as a terrain.
Definition: DtOsgTerrainPatchObject.h:51
bool myIndirectMissingTexturesRed
Definition: DtTerrainPatchObjectManager.h:136
DtOsgLightPointManager & myLightPointManger
Definition: DtTerrainPatchObjectManager.h:142
TerrainPatchObjectSet myTerrainPatchObjects
Definition: DtTerrainPatchObjectManager.h:115
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtSignalConnectionManager mySignalManager
Definition: DtTerrainPatchObjectManager.h:134
Base class to provide boost signal/slot management.
Contains makVrv::DtDynamicTerrainWorld class.
DtModelSemanticsMapper & myModelSematicsMapper
Definition: DtTerrainPatchObjectManager.h:144
Contains DLL export macros.
Feature Insertion/Removal/Paging Features represent parts of the terrain which are individually ident...
Definition: DtDynamicTerrainWorld.h:99
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
singleton class that acts as a bridge between the
Definition: DtIndirectEntityManager.h:59
bool myUseIndirectRendering
Definition: DtTerrainPatchObjectManager.h:126
bool myIndirectColorBlue
Definition: DtTerrainPatchObjectManager.h:137
Container for dynamic terrain features, change requests, and queries.
Definition: DtDynamicTerrainWorld.h:71
The DtModelSemanticsMapper object is responsible for mapping Names of model semantics declarations (f...
Definition: DtModelSemanticsMapper.h:27

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)