VR-Forces 4.8 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) 2020 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 #include <boost/signals2/connection.hpp>
23 
24 namespace makVrv
25 {
26  class DtDe;
27  class DtOsgTerrainPatchObject;
28  class DtOsgLightPointManager;
29  class DtDynamicTerrainWorld;
30  class DtModelSemanticsMapper;
31  class DtTerrainPatchObject;
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 slot_postUpdate();
107 
108 
109  protected:
110 
113 
114  typedef std::map<osg::ref_ptr<const osg::Node>, DtDynamicTerrainWorld::FeatureHandle> NodeFeatureMap;
116 
117  mutable boost::mutex myMapMutex;
118 
120 
123 
125  typedef std::vector<boost::signals2::connection> Connections;
126 
129 
131 
134 
138 
139  };
140 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
NodeFeatureMap myPagedDynamicFeatures
Definition: DtTerrainPatchObjectManager.h:115
std::map< osg::ref_ptr< const osg::Node >, DtDynamicTerrainWorld::FeatureHandle > NodeFeatureMap
Definition: DtTerrainPatchObjectManager.h:114
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
Connections myConnections
The connected signals.
Definition: DtTerrainPatchObjectManager.h:128
DtDynamicTerrainWorld & myDynamicTerrainWorld
Definition: DtTerrainPatchObjectManager.h:136
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:85
std::vector< boost::signals2::connection > Connections
A collection of signals.
Definition: DtTerrainPatchObjectManager.h:125
A DtTerrainPatchObject contains the methods for loading a file as a terrain.
Definition: DtTerrainPatchObject.h:37
TerrainPatchObjectSet myOsgEarthTerrainPatchObjects
Definition: DtTerrainPatchObjectManager.h:112
std::set< DtOsgTerrainPatchObject * > TerrainPatchObjectSet
Definition: DtTerrainPatchObjectManager.h:49
boost::mutex myMapMutex
Definition: DtTerrainPatchObjectManager.h:117
Contains makVrv::DtVirtualBaseClass class.
bool myOverrideUseIndirectRendering
Definition: DtTerrainPatchObjectManager.h:121
DtDe & myDe
Definition: DtTerrainPatchObjectManager.h:119
A DtOsgTerrainPatchObject contains the methods for loading a file as a terrain.
Definition: DtOsgTerrainPatchObject.h:50
bool myIndirectMissingTexturesRed
Definition: DtTerrainPatchObjectManager.h:132
DtOsgLightPointManager & myLightPointManger
Definition: DtTerrainPatchObjectManager.h:135
TerrainPatchObjectSet myTerrainPatchObjects
Definition: DtTerrainPatchObjectManager.h:111
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
DtSignalConnectionManager mySignalManager
Definition: DtTerrainPatchObjectManager.h:130
Base class to provide boost signal/slot management.
Contains makVrv::DtDynamicTerrainWorld class.
DtModelSemanticsMapper & myModelSematicsMapper
Definition: DtTerrainPatchObjectManager.h:137
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
bool myUseIndirectRendering
Definition: DtTerrainPatchObjectManager.h:122
bool myIndirectColorBlue
Definition: DtTerrainPatchObjectManager.h:133
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 Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)