VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfModelManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
7 
8 #pragma once
9 
11 #include <vlutil/vlFilename.h>
12 #include <matrix/vlVector.h>
13 #include <matrix/vlTaitBryan.h>
14 
15 #include <set>
16 #include <map>
17 
18 #include <tbb/mutex.h>
19 
20 namespace makVrv
21 {
22  class DtDe;
23  class DtEntityTypeMapper;
24  class DtModelDefinition;
25  class DtOsgArticulatedModel;
26 }
27 
28 namespace makArchives
29 {
30  class DtEntityTypeMappingRecord;
31 }
32 
33 class DtScenarioExplorer;
35 class DtFilename;
36 class DtString;
37 class DtEntityType;
38 
40 {
41  int artPart;
43 
46 
47  DtTaitBryan restingHPR;
49 
52 
55 
57 
60 
61  DtFilename source;
62 };
63 
65 
71 {
72 private:
74 
76  DtVrfModelManager& operator=(const DtVrfModelManager&);
78 
79 public:
83  {
86  DtTaitBryan orientationOffset;
87  DtFilename source;
88  };
89 
90 public:
92 
93  virtual ~DtVrfModelManager();
94 
98  virtual bool loadVisuals(const DtScenarioExplorer&, bool force = false);
100  virtual DtFilename modelFilename(const DtEntityType&);
101 
103  typedef std::map<int, DtVrfModelArticulatedPart> ArticulatedParts;
104  virtual ArticulatedParts articulatedPartsFor(const DtEntityType&);
105 
108  virtual ArticulatedParts articulatedPartsFor(const DtFilename&,
109  const DtVector& positionOffset = DtVector::zero(), const DtTaitBryan& orientationOffset = DtTaitBryan(),
110  const DtFilename& source = DtFilename());
111 
113  virtual std::vector<ModelInformation> modelDefinitionsFor(const DtEntityType& objectType) const;
114  virtual makVrv::DtModelDefinition* modelDefinitionFromFilename(const DtFilename&);
115 
117  typedef std::map<int, std::vector<int> > ModelStates;
118  virtual ModelStates modelStatesFor(const DtEntityType& objectType);
119  virtual ModelStates modelStatesFor(const DtFilename& f);
120 
121 protected:
123  virtual bool loadVisuals(DtSimulationModelSet*);
124  virtual bool load(const DtFilename& directory, const DtString& root);
125  virtual bool load(const DtFilename& original, const DtString& root, int type);
126  virtual bool loadMapper(const DtFilename& original, const DtString& root, int mapType);
127  virtual void removeMappings(makVrv::DtEntityTypeMapper& mapper, const makArchives::DtEntityTypeMappingRecord& record) const;
128 
129  virtual void updateUnknowns();
130  virtual bool isUnknown(std::vector<std::string>) const;
131 
132  virtual DtVrfModelArticulatedPart articulatedPartInformationFor(int part, DtVrfOsgArticulatedModel&,
133  const DtVector& positionOffset = DtVector::zero(), const DtTaitBryan& orientationOffset = DtTaitBryan()) const;
134  virtual void fillInModelInformationFor(const DtFilename& original,
135  const DtVector& positionOffset = DtVector::zero(), const DtTaitBryan& orientationOffset = DtTaitBryan(),
136  const DtFilename& source = DtFilename());
137 
138 protected:
140  bool myOwnsDe;
141 
142  typedef std::set<DtFilename> SimulationModelSetVisuals;
144 
145  typedef std::map<std::string, ArticulatedParts> ArticulatedPartsByFilename;
147 
148  typedef std::map<std::string, std::string> ModelDefinitionsByFilename;
150 
151  typedef std::map<std::string, ModelStates> ModelStatesByFilename;
153 
154  std::set<std::string> myUnknowns;
155  tbb::mutex myMutex;
156 };
DtVector bodyPosition
Definition: vrfModelManager.h:56
std::set< std::string > myUnknowns
Definition: vrfModelManager.h:154
An EntityType to Definition mapper.
Definition: DtEntityTypeMapper.h:34
DtTaitBryan orientationOffset
Definition: vrfModelManager.h:86
ModelStatesByFilename myModelStatesByFilename
Definition: vrfModelManager.h:152
std::map< std::string, std::string > ModelDefinitionsByFilename
Definition: vrfModelManager.h:148
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
bool myOwnsDe
Definition: vrfModelManager.h:140
Definition: vrfModelManager.h:39
DtVector maximumTranslationValue
Definition: vrfModelManager.h:54
*virtual const DtObjectType & objectType() const
bool hasMuzzlePosition
Definition: vrfModelManager.h:58
#define DT_DLL_vrfmodelmanager
This file is used to determine how to build.
Definition: vrfModelManagerDefines.h:24
tbb::mutex myMutex
Definition: vrfModelManager.h:155
DtVector restingPosition
Definition: vrfModelManager.h:48
This class will load and parse models for their articulated parts.
Definition: vrfModelManager.h:70
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:38
std::map< std::string, ArticulatedParts > ArticulatedPartsByFilename
Definition: vrfModelManager.h:145
Definition: vrfOsgArticulatedModel.h:13
DtVector translationRate
Definition: vrfModelManager.h:44
int parentPart
Definition: vrfModelManager.h:42
SimulationModelSetVisuals mySimulationModelSetVisuals
Definition: vrfModelManager.h:143
DtFilename source
Definition: vrfModelManager.h:87
DtVector positionOffset
Definition: vrfModelManager.h:85
DtVector minimumTranslationValue
Definition: vrfModelManager.h:53
int artPart
Definition: vrfModelManager.h:41
const char * source
Definition: lz4.h:442
DtVector minimumRotationValue
Body position resting state.
Definition: vrfModelManager.h:50
ModelDefinitionsByFilename myModelDefinitionsByFilename
Definition: vrfModelManager.h:149
A simulation model set contains all the information that can be used to support a scenario either for...
Definition: simulationModelSet.h:31
Record of a mappings from an entity type to some number.
Definition: DtEntityTypeMappingRecord.h:22
DtVector muzzlePosition
Definition: vrfModelManager.h:59
std::map< int, std::vector< int > > ModelStates
Returns a list of potential model states and their state (i.e. lights, etc)
Definition: vrfModelManager.h:117
DtVector rotationRate
Definition: vrfModelManager.h:45
DtVector maximumRotationValue
Definition: vrfModelManager.h:51
std::set< DtFilename > SimulationModelSetVisuals
Definition: vrfModelManager.h:142
DtFilename source
Body position relative to body position of gun (add both together to get position relative to parent)...
Definition: vrfModelManager.h:61
makVrv::DtDe * myDe
Definition: vrfModelManager.h:139
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::map< std::string, ModelStates > ModelStatesByFilename
Definition: vrfModelManager.h:151
std::map< int, DtVrfModelArticulatedPart > ArticulatedParts
Returns the articulated part mappings for the given entity type.
Definition: vrfModelManager.h:103
ArticulatedPartsByFilename myArticulatedPartsByFilename
Definition: vrfModelManager.h:146
makVrv::DtModelDefinition * modelDefinition
Definition: vrfModelManager.h:84
Since models can have multiple model definitions now, need to read them all in when looking at a defi...
Definition: vrfModelManager.h:82
DtTaitBryan restingHPR
Definition: vrfModelManager.h:47

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)