VR-Forces 5.0.2 Developer's Guide
 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 
66 
72 {
73 private:
75 
77  DtVrfModelManager& operator=(const DtVrfModelManager&);
79 
80 public:
84  {
87  DtTaitBryan orientationOffset;
88  DtFilename source;
89  };
90 
91 public:
93 
94  virtual ~DtVrfModelManager();
95 
99  virtual bool loadVisuals(const DtScenarioExplorer&, bool force = false);
101  virtual DtFilename modelFilename(const DtEntityType&);
102 
104  typedef std::map<int, DtVrfModelArticulatedPart> ArticulatedParts;
105  virtual ArticulatedParts articulatedPartsFor(const DtEntityType&, bool cacheIfMissing = true);
106 
109  virtual ArticulatedParts articulatedPartsFor(const DtFilename&,
110  const DtVector& positionOffset = DtVector::zero(), const DtTaitBryan& orientationOffset = DtTaitBryan(),
111  const DtFilename& source = DtFilename(), bool cacheIfMissing = true);
112 
114  virtual std::vector<ModelInformation> modelDefinitionsFor(const DtEntityType& objectType) const;
115  virtual makVrv::DtModelDefinition* modelDefinitionFromFilename(const DtFilename&);
116 
118  typedef std::map<int, std::vector<int> > ModelStates;
119  virtual ModelStates modelStatesFor(const DtEntityType& objectType);
120  virtual ModelStates modelStatesFor(const DtFilename& f);
121 
122  virtual void setBlockImageLoading(bool);
123  bool blockImageLoading() const;
124 
125 protected:
127  virtual bool loadVisuals(DtSimulationModelSet*);
128  virtual bool load(const DtFilename& directory, const DtString& root);
129  virtual bool load(const DtFilename& original, const DtString& root, int type);
130  virtual bool loadMapper(const DtFilename& original, const DtString& root, int mapType);
131  virtual void removeMappings(makVrv::DtEntityTypeMapper& mapper, const makArchives::DtEntityTypeMappingRecord& record) const;
132 
133  virtual void updateUnknowns();
134  virtual bool isUnknown(std::vector<std::string>) const;
135 
136  virtual DtVrfModelArticulatedPart articulatedPartInformationFor(int part, DtVrfDeprecatedOsgArticulatedModel&,
137  const DtVector& positionOffset = DtVector::zero(), const DtTaitBryan& orientationOffset = DtTaitBryan()) const;
138  virtual void fillInModelInformationFor(const DtFilename& original, ArticulatedParts& partInfo,
139  const DtVector& positionOffset = DtVector::zero(), const DtTaitBryan& orientationOffset = DtTaitBryan(),
140  const DtFilename& source = DtFilename(), bool cacheIfMissing = true);
141 
142 protected:
144  bool myOwnsDe;
145 
146  typedef std::set<DtFilename> SimulationModelSetVisuals;
148 
149  typedef std::map<std::string, ArticulatedParts> ArticulatedPartsByFilename;
151 
152  typedef std::map<std::string, std::string> ModelDefinitionsByFilename;
154 
155  typedef std::map<std::string, ModelStates> ModelStatesByFilename;
157 
158  std::set<std::string> myUnknowns;
159  tbb::mutex myMutex;
161 };
DtVector bodyPosition
Definition: vrfModelManager.h:56
std::set< std::string > myUnknowns
Definition: vrfModelManager.h:158
An EntityType to Definition mapper.
Definition: DtEntityTypeMapper.h:34
DtTaitBryan orientationOffset
Definition: vrfModelManager.h:87
ModelStatesByFilename myModelStatesByFilename
Definition: vrfModelManager.h:156
std::map< std::string, std::string > ModelDefinitionsByFilename
Definition: vrfModelManager.h:152
class DtScenarioExplorer:
Definition: scenarioExplorer.h:26
bool myOwnsDe
Definition: vrfModelManager.h:144
Definition: vrfModelManager.h:39
DtVector maximumTranslationValue
Definition: vrfModelManager.h:54
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:159
DtVector restingPosition
Definition: vrfModelManager.h:48
This class will load and parse models for their articulated parts. The manager is initialized with an...
Definition: vrfModelManager.h:71
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:149
Definition: vrfOsgArticulatedModel.h:14
DtVector translationRate
Definition: vrfModelManager.h:44
int parentPart
Definition: vrfModelManager.h:42
SimulationModelSetVisuals mySimulationModelSetVisuals
Definition: vrfModelManager.h:147
DtFilename source
Definition: vrfModelManager.h:88
DtVector positionOffset
Definition: vrfModelManager.h:86
Definition: vrfOsgArticulatedModel.h:55
DtVector minimumTranslationValue
Definition: vrfModelManager.h:53
int artPart
Definition: vrfModelManager.h:41
const char * source
Definition: lz4.h:442
bool myBlockImageLoading
Definition: vrfModelManager.h:160
DtVector minimumRotationValue
Body position resting state.
Definition: vrfModelManager.h:50
ModelDefinitionsByFilename myModelDefinitionsByFilename
Definition: vrfModelManager.h:153
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:118
DtVector rotationRate
Definition: vrfModelManager.h:45
DtVector maximumRotationValue
Definition: vrfModelManager.h:51
std::set< DtFilename > SimulationModelSetVisuals
Definition: vrfModelManager.h:146
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:143
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:70
std::map< std::string, ModelStates > ModelStatesByFilename
Definition: vrfModelManager.h:155
std::map< int, DtVrfModelArticulatedPart > ArticulatedParts
Returns the articulated part mappings for the given entity type.
Definition: vrfModelManager.h:104
ArticulatedPartsByFilename myArticulatedPartsByFilename
Definition: vrfModelManager.h:150
makVrv::DtModelDefinition * modelDefinition
Definition: vrfModelManager.h:85
Since models can have multiple model definitions now, need to read them all in when looking at a defi...
Definition: vrfModelManager.h:83
DtTaitBryan restingHPR
Definition: vrfModelManager.h:47

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)