23 #include <tbb/concurrent_unordered_map.h>
24 #include <unordered_map>
28 #define DTINDIRECTMODELSCONTAINER_DEBUG 0
38 size_t hash(
const std::string& x )
const
41 for(
const char* s = x.c_str(); *s; ++s )
46 bool equal(
const std::string& x,
const std::string& y )
const
53 class DtIndirectTextureCollectionPolicy;
54 class DtIndirectGeometryRegistrar;
55 class DtIndirectTextureCollectionPolicyFactory;
56 class DtIndirectLimitTextureStrategy;
97 bool myDaylightControlled =
true;
98 float myMinRange = -1;
99 float myMaxRange = -1;
100 bool myCullFaceEnabled =
true;
101 float myAlphaCutOff = 0.0f;
102 float myDisableDecalProjectors = 0.0f;
103 bool myAddTopLevelSwitch =
false;
104 std::string myLightPointGroupName =
"";
112 virtual bool getModelNode(
const std::string& modelName,
const std::string& modelDefName
113 ,
const osg::Node*& modelNode,
int & modelId,
const ModelParams& params, osgDB::Options* options);
116 virtual bool hasModelNode(
const std::string& modelName)
const;
119 virtual const osg::Node* findModelNode(
const std::string& modelName)
const;
122 virtual int findModelId(
const std::string& modelName)
const;
126 bool cullFaceEnabled,
135 bool checkGeometriesOk(
const osg::Node* modelNode,
const std::string& modelName)
const;
150 #if DTINDIRECTMODELSCONTAINER_DEBUG
151 static std::atomic<int> myRefCount;
const char * creatorTypeName< DtIndirectModelsContainer >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectModelsContainer.h:66
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Indirect geometry can have multiple models and their corresponding ids registered in it...
Definition: DtIndirectGeometryRegistrar.h:111
Definition: DtIndirectModelsContainer.h:95
MapMarkerNameToModelNode myMapMarkerNameToModelNode
Definition: DtIndirectModelsContainer.h:141
size_t hash(const std::string &x) const
Definition: DtIndirectModelsContainer.h:38
friend DtIndirectModelsContainerCreator
Definition: DtIndirectModelsContainer.h:75
class for holding an indirect geometry registrar (which holds the information about how to draw model...
Definition: DtIndirectModelsContainer.h:71
std::unordered_map< std::string, osg::ref_ptr< const osg::Node > > MapMarkerNameToModelNode
Definition: DtIndirectModelsContainer.h:140
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:23
ModelsToModelInfo myModelsToModelInfo
Definition: DtIndirectModelsContainer.h:145
DtVirtualBaseClassCreator< DtIndirectModelsContainer, const DtIndirectLimitTextureStrategy & > DtIndirectModelsContainerCreator
creator
Definition: DtIndirectModelsContainer.h:59
bool equal(const std::string &x, const std::string &y) const
True if strings are equal.
Definition: DtIndirectModelsContainer.h:46
OpenThreads::Mutex Mutex
Definition: DtOsgThreadingUtils.h:12
std::atomic< int > myNextModelId
Definition: DtIndirectModelsContainer.h:146
DtModelInfo class declaration.
The indirect system uses this in conjunction with the system wide limits (for entity/terrain) to clam...
Definition: DtIndirectLimitTextureStrategy.h:65
Definition: DtIndirectModelsContainer.h:36
osg::ref_ptr< DtIndirectGeometryRegistrar > myIndirectGeometryRegistrar
Definition: DtIndirectModelsContainer.h:138
non virtual container class for defining a polygon offset state
Definition: DtIndirectPolygonOffset.h:18
Contains DLL export macros.
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:76
Threading::Mutex myMapMarkerNameToModelNodeMutex
Definition: DtIndirectModelsContainer.h:142
Contains the DtIndirectPolygonOffset class declaration.
DtDe & myDe
Definition: DtIndirectModelsContainer.h:148
tbb::concurrent_unordered_map< std::string, DtModelInfo * > ModelsToModelInfo
Definition: DtIndirectModelsContainer.h:144