VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtInstanceUtils.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/DtInstanceState.h>
14 
16 
17 #include <boost/thread.hpp>
18 #include <vector>
19 #include <map>
20 
21 namespace osg
22 {
23  class Node;
24 }
25 
26 namespace makVrv
27 {
28  class DtDe;
29  class DtModelDefinition;
30  class DtOsgModelInstance;
31  class DtArticulatedModelParser;
32 
37  {
38  public:
39  typedef std::map<std::string, unsigned int> InstancedAnimationMap;
40  typedef std::vector<ArrayRange> ArrayRangeList;
41  typedef std::map<std::string, ArrayRangeList> InstancedAnnotationMap;
42 
44  typedef std::vector<unsigned int> InstancedPartVec;
45 
50  typedef std::map<unsigned int, InstancedPartVec> PartToInstancedPartMap;
51 
53  {
54  public:
55  virtual ~PartMapCache();
57  };
58 
64  {
65  public:
66  virtual ~AnimationMapCache();
68  };
69 
75  {
76  public:
77  virtual ~BoundingBoxCache();
80  };
81 
85  {
86  public:
87  virtual ~AnnotationCache();
89  };
90 
92  static void prepDefinitionForInstancing(DtModelDefinition& modelDef, DtDe& de);
93 
95  static void registerIfNecessary(DtModelDefinition& modelDef, DtDe& de, DtOsgModelInstance& mi,
96  /* output parameters: */
97  DtVector& boundMinOut,
98  DtVector& boundMaxOut,
99  AnnotationCache*& annotationCacheOut,
100  BoundingBoxCache*& boundingBoxCacheOut,
101  AnimationMapCache*& animationMapCacheOut,
102  PartMapCache*& partMapCacheOut,
103  PartMapCache*& stateMapCacheOut,
104  bool daylightControlledLights
105  );
106  protected:
108  static void runObjectCreationSubTasks(DtModelDefinition& modelDef, DtDe& de, osg::Node* root);
109  protected:
110  static boost::mutex theNodeProcessingSetMutex;
111 
112  typedef std::set<osg::Node*> NodeSet;
113 
115  static boost::condition_variable theNodeProcessingCondition;
116 
117  };
118 }
static NodeSet theNodeProcessingSet
Definition: DtInstanceUtils.h:114
Contains makVrv::DtInstanceState declaration.
Virtual base class.
Definition: DtVirtualBaseClass.h:22
static boost::condition_variable theNodeProcessingCondition
Definition: DtInstanceUtils.h:115
static boost::mutex theNodeProcessingSetMutex
Definition: DtInstanceUtils.h:110
Model definition cache of sequence name -&gt; instanced index.
Definition: DtInstanceUtils.h:63
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::vector< unsigned int > InstancedPartVec
List of instanced part IDs.
Definition: DtInstanceUtils.h:44
Model Definition cache of bounding box information for instanced models.
Definition: DtInstanceUtils.h:74
InstancedAnimationMap myAnimationMap
Definition: DtInstanceUtils.h:67
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:33
DtVector boundMin
Definition: DtInstanceUtils.h:78
std::map< unsigned int, InstancedPartVec > PartToInstancedPartMap
Model definition cache of part ID -&gt; instanced index.
Definition: DtInstanceUtils.h:50
Contains makVrv::DtVirtualBaseClass class.
The base class for simple OSG based model instances.
Definition: DtOsgModelInstance.h:72
PartToInstancedPartMap myPartMap
Definition: DtInstanceUtils.h:56
std::vector< ArrayRange > ArrayRangeList
Definition: DtInstanceUtils.h:40
std::map< std::string, unsigned int > InstancedAnimationMap
Definition: DtInstanceUtils.h:39
Model definition cache mapping annotation strings to instanced drawable ranges.
Definition: DtInstanceUtils.h:84
Contains makVrv::DtArticulatedModelParser class.
std::map< std::string, ArrayRangeList > InstancedAnnotationMap
Definition: DtInstanceUtils.h:41
Contains definitions of types used to store instanced model metadata in model definitions and utility...
Definition: DtInstanceUtils.h:36
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::set< osg::Node * > NodeSet
Definition: DtInstanceUtils.h:112
DtVector boundMax
Definition: DtInstanceUtils.h:79
Definition: DtInstanceUtils.h:52
InstancedAnnotationMap myAnnotationMap
Definition: DtInstanceUtils.h:88

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)