VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectBuildingsHandler.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 
13 
16 
17 #include <boost/thread/mutex.hpp>
18 #include <boost/thread/condition_variable.hpp>
19 
20 #include <osg/ref_ptr>
21 #include <osg/Node>
22 
23 namespace osgEarth
24 {
25  class Layer;
26 }
27 namespace osg
28 {
29  class Node;
30 }
31 
32 namespace makVrv
33 {
34  class DtDe;
35  class DtCellToGeoTypicalIndirectGeoMap;
36  class DtCellToGeoSpecificIndirectGeoMap;
37  class DtIndirectModelsContainer;
38  class DtModelSemanticsMapper;
39 
50  {
51  public:
53  virtual ~DtIndirectBuildingsHandler();
54 
55  protected:
57  DtIndirectBuildingsHandler(DtDe& de, const osgEarth::Layer& layer, const DtIndirectFadeParameters& fadeParameters, bool dynamicTerrainInstallerActive);
58 
61 
62  private:
67 
68  public:
71  virtual void onDataPremerge(osg::Node* data);
72 
75  virtual void onDataUnloaded(const osg::Node* data);
76 
77  protected:
79  virtual void processBuildingsExternalModelNodes(const osg::Node* data);
80 
82  virtual void processInstancedModelNodes(const osg::Node* data);
83 
86  virtual void processElevationsLodNodes(const osg::Node* data);
87 
92  const osg::Node* preloadModelAndRunDynamicTerrainParser(const std::string& modelName);
93 
94  protected:
95 
97  const osgEarth::Layer& myLayer;
98 
102 
107 
109  // tile will have its own registrar. Therefore, we need the gs
110  // variant
112 
114 
116  boost::condition_variable myProcessedNodeMapCondition;
118  std::map<std::string, NodeRefPtr > myProcessedNodeMap;
119  std::map<std::string, bool > myIsProcessingNodeMap;
121 
123  };
124 
127  {
128  public:
131 
134 
135  private:
140 
141  public:
142 
144  virtual DtIndirectBuildingsHandler* create(const osgEarth::Layer& layer,
145  const DtIndirectFadeParameters& fadeParameters, bool dynamicTerrainInstallerActive) const;
146 
149  static DtIndirectBuildingsHandlerCreator& instance(DtDe& de);
150 
152  static const std::string& theClassName();
153  protected:
155 
156  };
157 }
DtCellToGeoTypicalIndirectGeoMap * myCellToGTIndirectGeoMap
instanced models go here geotypical, share models
Definition: DtIndirectBuildingsHandler.h:105
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtCellToGeoSpecificIndirectGeoMap * myCellToBuildingsGSIndirectGeoMap
external models go here geospecific
Definition: DtIndirectBuildingsHandler.h:101
struct for holding the fade parameters used by the indirect rendering cull compute shader ...
Definition: DtGpuCullingAndLodDefines.h:21
Helper for managing a map of feature tile nodes (for a layer) to DtCellGeoSpecificIndirectGeo DtCellG...
Definition: DtCellToGeoSpecificIndirectGeoMap.h:36
bool myDynamicTerrainInstallerActive
Definition: DtIndirectBuildingsHandler.h:122
boost::condition_variable myProcessedNodeMapCondition
Definition: DtIndirectBuildingsHandler.h:116
#define DT_DLL_VRVOSGEARTH
Definition: vrvOsgEarth.h:21
std::map< std::string, NodeRefPtr > myProcessedNodeMap
Definition: DtIndirectBuildingsHandler.h:118
Helper for managing a map of feature tile nodes (for a layer) to DtCellGeoTypicalIndirectGeo DtCellGe...
Definition: DtCellToGeoTypicalIndirectGeoMap.h:31
class used to collect geometry coming in via buildings layer and add it to the indirect engine...
Definition: DtIndirectBuildingsHandler.h:49
DtIndirectModelsContainer * myGTModelsContainer
Definition: DtIndirectBuildingsHandler.h:106
class for holding an indirect geometry registrar (which holds the information about how to draw model...
Definition: DtIndirectModelsContainer.h:47
boost::mutex myProcessedNodeMapMutex
Definition: DtIndirectBuildingsHandler.h:115
Contains makVrv::DtVirtualBaseClass class.
Declarations for classes used in DtICullingAndLOD.
DtDe & myDe
Definition: DtIndirectBuildingsHandler.h:154
DtDe & myDe
Definition: DtIndirectBuildingsHandler.h:96
creator class for DtIndirectBuildingsHandler, registered with the DtDe in it&#39;s instance() function ...
Definition: DtIndirectBuildingsHandler.h:126
std::map< std::string, bool > myIsProcessingNodeMap
Definition: DtIndirectBuildingsHandler.h:119
DtModelSemanticsMapper & myModelSematicsMapper
Definition: DtIndirectBuildingsHandler.h:120
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtCellToGeoSpecificIndirectGeoMap * myCellToTaggedGeodesGeoSpecificIndirectGeoMap
Procedural stuff that ends up as geodes. Is also geospecific in the sense that each.
Definition: DtIndirectBuildingsHandler.h:111
const osgEarth::Layer & myLayer
Definition: DtIndirectBuildingsHandler.h:97
DtIndirectFadeParameters myFadeParameters
Definition: DtIndirectBuildingsHandler.h:113
The DtModelSemanticsMapper object is responsible for mapping Names of model semantics declarations (f...
Definition: DtModelSemanticsMapper.h:27
Contains DLL export macros.
osg::ref_ptr< const osg::Node > NodeRefPtr
Definition: DtIndirectBuildingsHandler.h:117

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)