VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectModelContainerForHandlers.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 
15 
16 #include <tbb/concurrent_hash_map.h>
17 
18 #include <osg/Node>
19 
20 namespace makVrv
21 {
22  class DtModelSemanticsMapper;
23 
35  {
36  public:
39 
42 
45 
48 
51 
52  protected:
55 
56  public:
58  virtual osg::Node* getOrCreate(const std::string& modelFileName, bool forDynamicTerrain, bool addTopLevelSwitch );
59 
61  virtual const osg::Node* find(const std::string& modelFileName, bool forDynamicTerrain) const;
62 
63  protected:
64  struct KeyType
65  {
66  std::string myModelFileName;
67  bool myForDynamicTerrain = false;
68  };
70  {
71  size_t hash(const KeyType& key) const;
72  bool equal(const KeyType& lhs, const KeyType& rhs) const;
73  };
74 
75  typedef tbb::concurrent_hash_map< KeyType, osg::ref_ptr<osg::Node>, KeyTypeHasher> HashTable;
77 
79 
81  };
82 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
tbb::concurrent_hash_map< KeyType, osg::ref_ptr< osg::Node >, KeyTypeHasher > HashTable
Definition: DtIndirectModelContainerForHandlers.h:75
DtIndirectModelContainerForHandlers()=delete
not allowed
Definition: DtIndirectModelContainerForHandlers.h:69
DtModelSemanticsMapper & myModelSematicsMapper
Definition: DtIndirectModelContainerForHandlers.h:80
Definition: DtIndirectModelContainerForHandlers.h:64
HashTable myModels
Definition: DtIndirectModelContainerForHandlers.h:76
Contains makVrv::DtVirtualBaseClass class.
DtIndirectModelContainerForHandlers & operator=(const DtIndirectModelContainerForHandlers &)=delete
not allowed
Layer Handlers can request models that can be for a dynamic layer or not for a dynamic layer...
Definition: DtIndirectModelContainerForHandlers.h:34
virtual osg::Node * getOrCreate(const std::string &modelFileName, bool forDynamicTerrain, bool addTopLevelSwitch)
get or create
virtual const osg::Node * find(const std::string &modelFileName, bool forDynamicTerrain) const
find
std::string myModelFileName
Definition: DtIndirectModelContainerForHandlers.h:66
static DtIndirectModelContainerForHandlers & instance(DtDe &de)
get the instance
bool equal(const KeyType &lhs, const KeyType &rhs) const
DtDe & myDe
Definition: DtIndirectModelContainerForHandlers.h:78
virtual ~DtIndirectModelContainerForHandlers()
destructor
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:72
bool myForDynamicTerrain
Definition: DtIndirectModelContainerForHandlers.h:67
The DtModelSemanticsMapper object is responsible for mapping Names of model semantics declarations (f...
Definition: DtModelSemanticsMapper.h:27
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)