VR-Forces 4.6.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
vrvOsgEarth
DtIndirectGeometryLayerManager.h
Go to the documentation of this file.
1
/******************************************************************************
2
** Copyright (c) 2018 MAK Technologies, Inc.
3
** All rights reserved.
4
******************************************************************************/
5
9
10
#pragma once
11
12
#include <
vrvOsgEarth/vrvOsgEarth.h
>
13
14
#include <
vrvOsg/DtIndirectGeometryRegistrar.h
>
15
#include <
vrvOsg/DtCellToIndirectGeoMap.h
>
16
#include <
vrvOsg/DtOsgThreadingUtils.h
>
17
18
#include <
vrvIndirectRendering/DtModelInfo.h
>
19
20
#include <osg/Matrixd>
21
22
#include <boost/unordered_map.hpp>
23
#include <tbb/concurrent_unordered_map.h>
24
25
namespace
osg
26
{
27
class
Node
;
28
}
29
namespace
osgEarth
30
{
31
namespace
Features
32
{
33
class
CustomFeatureNode;
34
}
35
}
36
37
namespace
makVrv
38
{
39
class
DtIndirectGeometryRegistrar;
40
class
DtIndirectGeometry;
41
56
class
DT_DLL_VRVOSGEARTH
DtIndirectGeometryLayerManager
57
{
58
public
:
60
DtIndirectGeometryLayerManager
(
DtDe
& de);
61
63
virtual
~
DtIndirectGeometryLayerManager
();
64
67
virtual
void
onDataPremerge(osg::Node* newData);
68
71
virtual
void
onDataLoaded(
const
osg::Node* newData);
72
75
virtual
void
onDataUnloaded(
const
osg::Node* oldData);
76
protected
:
78
virtual
void
processNewFeature(
const
osgEarth::Features::CustomFeatureNode
* pFeatureNode,
const
osg::Node* data);
79
83
virtual
bool
getModelNode(
const
std::string& modelName, osg::Node*& modelNode,
int
& modelId);
84
86
virtual
void
registerModelWithRegistrar(
const
osg::Node* modelNode,
const
std::string& modelName,
const
DtModelInfo
& modelInfo);
87
protected
:
88
DtIndirectTextureCollectionPolicy
*
myTextureCollectionPolicy
;
89
DtIndirectGeometryRegistrar
*
myIndirectGeometryRegistrar
;
90
91
DtCellToIndirectGeoMap
myCellToIndirectGeoMap
;
92
93
typedef
boost::unordered_map<std::string, osg::ref_ptr< osg::Node > >
MapMarkerNameToModelNode
;
94
MapMarkerNameToModelNode
myMapMarkerNameToModelNode
;
95
Threading::Mutex
myMapMarkerNameToModelNodeMutex
;
96
99
typedef
tbb::concurrent_unordered_map<std::string, DtModelInfo>
ModelsToModelInfo
;
100
ModelsToModelInfo
myModelsToModelInfo
;
101
tbb::atomic<int>
myNextModelId
;
102
103
DtDe
&
myDe
;
104
private
:
106
DtIndirectGeometryLayerManager
();
107
};
108
}
Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (
www.mak.com
)