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) 2022 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 ) const;
99 
101  virtual const std::vector<DtString>& appearances() const;
102 
104  virtual void addAppearance( const DtString& app );
105  virtual bool containsAppearance( const DtString& app ) const;
106 
108  virtual void addGesture( const DtString& app );
109  virtual bool containsGesture( const DtString& app ) const;
110  virtual const std::vector<DtString>& gestures() const;
111 
113  virtual const std::vector<DtString>& handItems() const;
114 
116  virtual void addHandItem( const DtString& app );
117 
119  virtual const std::vector<DtString>& heads( const DtString& bodyAppearance ) const;
120 
122  virtual void addHead( const DtString& bodyAppearance, const DtString& headAppearance );
123 
125  virtual void addTypeMapField( const DtString& appearanceName, const DtString& fieldValue );
127  virtual const DtString& getTypeMapFieldName( int index ) const;
129  virtual int getTypeMapFieldIndex( const DtString& name ) const;
130 
132  virtual const AlternateNamesList* animationNames() const;
133 
136  void addAnimation( DtDiGuyAnimationSharedPtr animation );
137 
141  virtual const TaskAnimationMap* taskableAnimations() const;
143  virtual AlternateNamesList taskableAnimationNames() const;
144  virtual void addTaskAnimation( const DtString& name, DtDiGuyAnimationSharedPtr animation );
146 
149  virtual const DtDiGuyIntrinsicAnimationMap* intrinsicAnimations() const;
150  virtual void addIntrinsicAnimation( const DtString& name, DtDiGuyAnimationSharedPtr animation );
152 
153  virtual const DtDiGuyAnimation* lookupIntrinsicAnimationByName( const DtString& name ) const;
154 
156  virtual DtDiGuyCharacterData* clone() const;
157 
158  void setAnimationTable( DtDiGuyCharacterAnimationsTable* table );
159 
165  bool readInAnimationDataFromTable( DtDiGuyAnimationSharedPtr animation );
166 
168  void setPrintInfo( bool set_print );
169  void debugPrint( const char* fmt, ... );
170 
171  virtual const DtDiGuyAnimation* lookupTaskAnimationByVariant( const DtString& variant ) const;
172  virtual const DtDiGuyAnimation* lookupIntrinsicAnimationByVariant( const DtString& variant ) const;
173 
174 public:
175 
182  static void setCreatorFcn( const DtDiGuyIntrinsicAnimationMapCreatorFcn& fcn );
183 
184 protected:
185 
188  virtual void readInAnimationDataFromDiGuyScenario();
189 
190  void setUpTypeFieldToIntMap();
191 
192 protected:
193 
194  static std::map<DtString,int> myTypeFieldNameToIntMap;
195  static std::vector<DtString> myTypeFieldNameVect;
196 
198  std::vector<DtString> myCharacterAppearances;
199  std::map<DtString, DtString> myCharacterAppearancesMap;
200  std::vector<DtString> myCharacterHandItems;
201  std::vector<DtString> myCharacterGestures;
202  std::map<DtString, DtString> myCharacterGesturesMap;
218 
223 
226 
228 
230 
231 };
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:195
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:199
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:200
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:222
static std::map< DtString, int > myTypeFieldNameToIntMap
Definition: diGuyCharacterData.h:194
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:211
DtDiGuyIntrinsicAnimationMap *(* DtDiGuyIntrinsicAnimationMapCreatorFcn)()
Definition: diGuyCharacterData.h:33
AlternateNamesList myAnimationNames
List of names of all animations available.
Definition: diGuyCharacterData.h:214
DtFilename myIntrinsicAnimationsFilename
Definition: diGuyCharacterData.h:212
TaskAnimationMap myTaskAnimationsMap
Holds refs to taskable animations.
Definition: diGuyCharacterData.h:209
DtString myCharacterTypeName
Definition: diGuyCharacterData.h:197
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:203
std::vector< DtString > myCharacterGestures
Definition: diGuyCharacterData.h:201
UnprocessedAnimationList::iterator UnprocessedAnimationListIterator
Definition: diGuyCharacterData.h:71
std::map< DtString, DtString > myCharacterGesturesMap
Definition: diGuyCharacterData.h:202
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:217
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:229
#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:227
UnprocessedAnimationList myUnprocessedAnimations
Will hold animation references until they can be classified as taskable or intrinsic.
Definition: diGuyCharacterData.h:207
AppearanceToTypeFieldsMap myTypeMaps
Definition: diGuyCharacterData.h:204
DtBoost::shared_ptr< DtDiGuyAnimation > DtDiGuyAnimationSharedPtr
Definition: diGuyAnimation.h:124
std::vector< DtString > myCharacterAppearances
Definition: diGuyCharacterData.h:198
bool myDataReadFromDiGuyScenario
flag to indicate that animation data has been gathered from DIGuy
Definition: diGuyCharacterData.h:225

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)