VR-Forces 5.0.2 Developer's Guide
 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 void slot_postUpdate();
109 
110 
111  protected:
112 
115 
116  typedef std::map<osg::ref_ptr<const osg::Node>, DtDynamicTerrainWorld::FeatureHandle> NodeFeatureMap;
118 
119  mutable boost::mutex myMapMutex;
120 
122 
125 
127  typedef std::vector<boost::signalslib::connection> Connections;
128 
131 
133 
138 
143 
144  };
145 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
NodeFeatureMap myPagedDynamicFeatures
Definition: DtTerrainPatchObjectManager.h:117
std::map< osg::ref_ptr< const osg::Node >, DtDynamicTerrainWorld::FeatureHandle > NodeFeatureMap
Definition: DtTerrainPatchObjectManager.h:116
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
DtIndirectEntityManager & myIndirectEntityManager
Definition: DtTerrainPatchObjectManager.h:142
Connections myConnections
The connected signals.
Definition: DtTerrainPatchObjectManager.h:130
DtDynamicTerrainWorld & myDynamicTerrainWorld
Definition: DtTerrainPatchObjectManager.h:140
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:106
float myIndirectEntityManagerCellPageOutTime
Definition: DtTerrainPatchObjectManager.h:137
A DtTerrainPatchObject contains the methods for loading a file as a terrain. When loading a file as a...
Definition: DtTerrainPatchObject.h:37
TerrainPatchObjectSet myOsgEarthTerrainPatchObjects
Definition: DtTerrainPatchObjectManager.h:114
std::set< DtOsgTerrainPatchObject * > TerrainPatchObjectSet
Definition: DtTerrainPatchObjectManager.h:49
std::vector< boost::signalslib::connection > Connections
A collection of signals.
Definition: DtTerrainPatchObjectManager.h:127
bool myIndirectDrawBoundingBoxes
Definition: DtTerrainPatchObjectManager.h:136
boost::mutex myMapMutex
Definition: DtTerrainPatchObjectManager.h:119
Contains makVrv::DtVirtualBaseClass class.
bool myOverrideUseIndirectRendering
Definition: DtTerrainPatchObjectManager.h:123
DtDe & myDe
Definition: DtTerrainPatchObjectManager.h:121
A DtOsgTerrainPatchObject contains the methods for loading a file as a terrain. When loading a file a...
Definition: DtOsgTerrainPatchObject.h:51
bool myIndirectMissingTexturesRed
Definition: DtTerrainPatchObjectManager.h:134
DtOsgLightPointManager & myLightPointManger
Definition: DtTerrainPatchObjectManager.h:139
TerrainPatchObjectSet myTerrainPatchObjects
Definition: DtTerrainPatchObjectManager.h:113
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtSignalConnectionManager mySignalManager
Definition: DtTerrainPatchObjectManager.h:132
Base class to provide boost signal/slot management.
Contains makVrv::DtDynamicTerrainWorld class.
DtModelSemanticsMapper & myModelSematicsMapper
Definition: DtTerrainPatchObjectManager.h:141
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. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
singleton class that acts as a bridge between the
Definition: DtIndirectEntityManager.h:61
bool myUseIndirectRendering
Definition: DtTerrainPatchObjectManager.h:124
bool myIndirectColorBlue
Definition: DtTerrainPatchObjectManager.h:135
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 Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)