VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
diGuyCharacterData.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2024 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
13 
15 
16 #include <vlutil/vlString.h>
17 
18 #include <vector>
19 #include <map>
20 
21 class DtDiGuyAnimation;
24 
27 typedef std::pair<DtString,DtString> AlternateNamesPair;
28 
29 typedef std::vector<AlternateNamesPair> AlternateNamesList;
30 typedef AlternateNamesList::iterator AlternateNamesListIterator;
31 typedef AlternateNamesList::const_iterator const_AlternateNamesListIterator;
32 
33 typedef DtDiGuyIntrinsicAnimationMap* (*DtDiGuyIntrinsicAnimationMapCreatorFcn)();
34 
35 typedef std::vector<DtString> HeadList;
36 typedef std::map<DtString,HeadList> HeadAppearanceMap;
37 typedef HeadAppearanceMap::iterator HeadAppearanceMapIterator;
38 
39 static const int numDiGuyTypeMapFields = 9;
40 
44 {
45 public:
46 
50 
51  void addFieldValue( const DtString& value );
52 
53  std::vector<DtString> FieldVect;
54 
55 };
56 
57 typedef std::map<DtString,DiGuyTypeMapFieldStruct> AppearanceToTypeFieldsMap;
58 
59 
64 {
65 public:
66 
67  typedef std::map<DtString, DtDiGuyAnimationSharedPtr> TaskAnimationMap;
68  typedef TaskAnimationMap::iterator TaskAnimationMapIterator;
69  typedef TaskAnimationMap::const_iterator const_TaskAnimationMapIterator;
70  typedef std::list<DtDiGuyAnimationSharedPtr> UnprocessedAnimationList;
71  typedef UnprocessedAnimationList::iterator UnprocessedAnimationListIterator;
72  typedef UnprocessedAnimationList::const_iterator const_UnprocessedAnimationListIterator;
73 
74 public:
75 
77 
78  DtDiGuyCharacterData( const DtString& name );
79 
81 
82  virtual ~DtDiGuyCharacterData();
83 
84  DtDiGuyCharacterData& operator = ( const DtDiGuyCharacterData& orig );
85 
86  virtual void init();
87 
90  virtual void setCharacterTypeName( const DtString& name );
91  virtual const DtString& characterTypeName() const;
93 
94  virtual void setDeadAnimation( DtDiGuyAnimationSharedPtr deadAnimation );
95  virtual DtDiGuyAnimation* deadAnimation();
96 
98  virtual const DtDiGuyAnimation* lookupTaskAnimationByName( const DtString& name,
99  bool checkCompatible = false ) const;
100 
102  virtual const std::vector<DtString>& appearances() const;
103 
105  virtual void addAppearance( const DtString& app );
106  virtual bool containsAppearance( const DtString& app ) const;
107 
109  virtual void addGesture( const DtString& app );
110  virtual bool containsGesture( const DtString& app ) const;
111  virtual const std::vector<DtString>& gestures() const;
112 
114  virtual const std::vector<DtString>& handItems() const;
115 
117  virtual void addHandItem( const DtString& app );
118 
120  virtual const std::vector<DtString>& heads( const DtString& bodyAppearance ) const;
121 
123  virtual void addHead( const DtString& bodyAppearance, const DtString& headAppearance );
124 
126  virtual void addTypeMapField( const DtString& appearanceName, const DtString& fieldValue );
128  virtual const DtString& getTypeMapFieldName( int index ) const;
130  virtual int getTypeMapFieldIndex( const DtString& name ) const;
131 
133  virtual const AlternateNamesList* animationNames() const;
134 
137  void addAnimation( DtDiGuyAnimationSharedPtr animation );
138 
142  virtual const TaskAnimationMap* taskableAnimations() const;
144  virtual AlternateNamesList taskableAnimationNames() const;
145  virtual void addTaskAnimation( const DtString& name, DtDiGuyAnimationSharedPtr animation );
147 
150  virtual const DtDiGuyIntrinsicAnimationMap* intrinsicAnimations() const;
151  virtual void addIntrinsicAnimation( const DtString& name, DtDiGuyAnimationSharedPtr animation );
153 
154  virtual const DtDiGuyAnimation* lookupIntrinsicAnimationByName( const DtString& name ) const;
155 
157  virtual DtDiGuyCharacterData* clone() const;
158 
159  void setAnimationTable( DtDiGuyCharacterAnimationsTable* table );
160 
166  bool readInAnimationDataFromTable( DtDiGuyAnimationSharedPtr animation );
167 
169  void setPrintInfo( bool set_print );
170  void debugPrint( const char* fmt, ... );
171 
172  virtual const DtDiGuyAnimation* lookupTaskAnimationByVariant( const DtString& variant ) const;
173  virtual const DtDiGuyAnimation* lookupIntrinsicAnimationByVariant( const DtString& variant ) const;
174 
175 public:
176 
183  static void setCreatorFcn( const DtDiGuyIntrinsicAnimationMapCreatorFcn& fcn );
184 
185 protected:
186 
189  virtual void readInAnimationDataFromDiGuyScenario();
190 
191  void setUpTypeFieldToIntMap();
192 
193 protected:
194 
195  static std::map<DtString,int> myTypeFieldNameToIntMap;
196  static std::vector<DtString> myTypeFieldNameVect;
197 
199  std::vector<DtString> myCharacterAppearances;
200  std::map<DtString, DtString> myCharacterAppearancesMap;
201  std::vector<DtString> myCharacterHandItems;
202  std::vector<DtString> myCharacterGestures;
203  std::map<DtString, DtString> myCharacterGesturesMap;
219 
224 
227 
229 
231 
232 };
Stores data representing all the possible appearances, animations, hand items, heads, etc. that are available to a particular character type. It is used by the sim engine at runtime. Populated from both DI-Guy instance and character_animations_table.mtl file.
Definition: diGuyCharacterData.h:63
HeadAppearanceMap::iterator HeadAppearanceMapIterator
Definition: diGuyCharacterData.h:37
static std::vector< DtString > myTypeFieldNameVect
Definition: diGuyCharacterData.h:196
static const int numDiGuyTypeMapFields
Definition: diGuyCharacterData.h:39
void addFieldValue(const DtString &value)
std::vector< DtString > FieldVect
Definition: diGuyCharacterData.h:53
std::map< DtString, DtDiGuyAnimationSharedPtr > TaskAnimationMap
Definition: diGuyCharacterData.h:67
std::map< DtString, DtString > myCharacterAppearancesMap
Definition: diGuyCharacterData.h:200
std::list< DtDiGuyAnimationSharedPtr > UnprocessedAnimationList
Definition: diGuyCharacterData.h:70
DiGuyTypeMapFieldStruct & operator=(const DiGuyTypeMapFieldStruct &orig)
AlternateNamesList::const_iterator const_AlternateNamesListIterator
Definition: diGuyCharacterData.h:31
std::pair< DtString, DtString > AlternateNamesPair
Used to pass the network expected DI-GUY name along with a user friendly name to be used for display ...
Definition: diGuyCharacterData.h:23
TaskAnimationMap::iterator TaskAnimationMapIterator
Definition: diGuyCharacterData.h:68
std::vector< DtString > myCharacterHandItems
Definition: diGuyCharacterData.h:201
AlternateNamesList::iterator AlternateNamesListIterator
Definition: diGuyCharacterData.h:30
DtDiGuyCharacterAnimationsTable * myAnimationTable
This will be generated from the data in character_animations_table.mtl Its main importance is holding...
Definition: diGuyCharacterData.h:223
static std::map< DtString, int > myTypeFieldNameToIntMap
Definition: diGuyCharacterData.h:195
std::shared_ptr< DtDiGuyAnimation > DtDiGuyAnimationSharedPtr
Definition: diGuyAnimation.h:134
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:29
UnprocessedAnimationList::const_iterator const_UnprocessedAnimationListIterator
Definition: diGuyCharacterData.h:72
DtDiGuyIntrinsicAnimationMap * myIntrinsicAnimationsMap
Holds refs to intrinsic animations.
Definition: diGuyCharacterData.h:212
DtDiGuyIntrinsicAnimationMap *(* DtDiGuyIntrinsicAnimationMapCreatorFcn)()
Definition: diGuyCharacterData.h:33
AlternateNamesList myAnimationNames
List of names of all animations available.
Definition: diGuyCharacterData.h:215
DtFilename myIntrinsicAnimationsFilename
Definition: diGuyCharacterData.h:213
TaskAnimationMap myTaskAnimationsMap
Holds refs to taskable animations.
Definition: diGuyCharacterData.h:210
DtString myCharacterTypeName
Definition: diGuyCharacterData.h:198
std::map< DtString, DiGuyTypeMapFieldStruct > AppearanceToTypeFieldsMap
Definition: diGuyCharacterData.h:57
The DtDiGuyAnimation class is a class that stores the DI-Guy animation information that is used to en...
Definition: diGuyAnimation.h:29
TaskAnimationMap::const_iterator const_TaskAnimationMapIterator
Definition: diGuyCharacterData.h:69
The DtDIGuyIntrinsicAnimationMap class is a class that stores the DI-Guy animations that are intrinsi...
Definition: diGuyIntrinsicAnimationMap.h:28
std::vector< DtString > HeadList
Definition: diGuyCharacterData.h:35
HeadAppearanceMap myCharacterHeads
Definition: diGuyCharacterData.h:204
std::vector< DtString > myCharacterGestures
Definition: diGuyCharacterData.h:202
UnprocessedAnimationList::iterator UnprocessedAnimationListIterator
Definition: diGuyCharacterData.h:71
std::map< DtString, DtString > myCharacterGesturesMap
Definition: diGuyCharacterData.h:203
DtDiGuyAnimationSharedPtr myDeadAnimation
Keep death animation separate 1) don&#39;t need to loop thru the lists to match– dead is dead 2) prevents...
Definition: diGuyCharacterData.h:218
Contains the DtDiGuyAnimation class declaration.
Contains a set of DI-Guy type map values, e.g &quot;human/military/soldier/male/adult/black/usa/army/m16&quot; ...
Definition: diGuyCharacterData.h:43
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Readable/writable class that holds list of DtDiGuyCharacterAnimationsEntry objects. Each entry represents a particular character type. The whole thing is populated by reading in character_animations_table.mtl. Eventually passed to DtDiGuyCharacterData, which reads in the data it contains.
Definition: diGuyCharacterAnimationsTable.h:24
std::map< DtString, HeadList > HeadAppearanceMap
Definition: diGuyCharacterData.h:36
static DtDiGuyIntrinsicAnimationMapCreatorFcn theDiGuyIntrinsicAnimationMapCreatorFcn
Definition: diGuyCharacterData.h:230
#define DT_DLL_vrfDiGuy
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfDiGuyDefines.h:34
bool myPrintInfo
Definition: diGuyCharacterData.h:228
UnprocessedAnimationList myUnprocessedAnimations
Will hold animation references until they can be classified as taskable or intrinsic.
Definition: diGuyCharacterData.h:208
AppearanceToTypeFieldsMap myTypeMaps
Definition: diGuyCharacterData.h:205
std::vector< DtString > myCharacterAppearances
Definition: diGuyCharacterData.h:199
bool myDataReadFromDiGuyScenario
flag to indicate that animation data has been gathered from DIGuy
Definition: diGuyCharacterData.h:226

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)