VR-Forces 4.10 Class Documentation
 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) 2021 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 
75 
76  DtDiGuyCharacterData( const DtString& name );
77 
79 
80  virtual ~DtDiGuyCharacterData();
81 
82  DtDiGuyCharacterData& operator = ( const DtDiGuyCharacterData& orig );
83 
84  virtual void init();
85 
88  virtual void setCharacterTypeName( const DtString& name );
89  virtual const DtString& characterTypeName() const;
91 
92  virtual void setDeadAnimation( DtDiGuyAnimationSharedPtr deadAnimation );
93  virtual DtDiGuyAnimation* deadAnimation();
94 
96  virtual const DtDiGuyAnimation* lookupTaskAnimationByName( const DtString& name ) const;
97 
99  virtual const std::vector<DtString>& appearances() const;
100 
102  virtual void addAppearance( const DtString& app );
103  virtual bool containsAppearance( const DtString& app ) const;
104 
106  virtual void addGesture( const DtString& app );
107  virtual bool containsGesture( const DtString& app ) const;
108  virtual const std::vector<DtString>& gestures() const;
109 
111  virtual const std::vector<DtString>& handItems() const;
112 
114  virtual void addHandItem( const DtString& app );
115 
117  virtual const std::vector<DtString>& heads( const DtString& bodyAppearance ) const;
118 
120  virtual void addHead( const DtString& bodyAppearance, const DtString& headAppearance );
121 
123  virtual void addTypeMapField( const DtString& appearanceName, const DtString& fieldValue );
125  virtual const DtString& getTypeMapFieldName( int index ) const;
127  virtual int getTypeMapFieldIndex( const DtString& name ) const;
128 
130  virtual const AlternateNamesList* animationNames() const;
131 
134  void addAnimation( DtDiGuyAnimationSharedPtr animation );
135 
139  virtual const TaskAnimationMap* taskableAnimations() const;
141  virtual AlternateNamesList taskableAnimationNames() const;
142  virtual void addTaskAnimation( const DtString& name, DtDiGuyAnimationSharedPtr animation );
144 
147  virtual const DtDiGuyIntrinsicAnimationMap* intrinsicAnimations() const;
148  virtual void addIntrinsicAnimation( const DtString& name, DtDiGuyAnimationSharedPtr animation );
150 
151  virtual const DtDiGuyAnimation* lookupIntrinsicAnimationByName( const DtString& name ) const;
152 
154  virtual DtDiGuyCharacterData* clone() const;
155 
156  void setAnimationTable( DtDiGuyCharacterAnimationsTable* table );
160  DtDiGuyAnimationSharedPtr readInAnimationDataFromTable( const char* actionName, bool isFirstAction );
161 
163  void setPrintInfo( bool set_print );
164  void debugPrint( const char* fmt, ... );
165 
166  virtual const DtDiGuyAnimation* lookupTaskAnimationByVariant( const DtString& variant ) const;
167  virtual const DtDiGuyAnimation* lookupIntrinsicAnimationByVariant( const DtString& variant ) const;
168 
169 public:
170 
177  static void setCreatorFcn( const DtDiGuyIntrinsicAnimationMapCreatorFcn& fcn );
178 
179 protected:
180 
183  virtual void readInAnimationDataFromDiGuyScenario();
184 
185  void setUpTypeFieldToIntMap();
186 
187 protected:
188 
189  static std::map<DtString,int> myTypeFieldNameToIntMap;
190  static std::vector<DtString> myTypeFieldNameVect;
191 
193  std::vector<DtString> myCharacterAppearances;
194  std::map<DtString, DtString> myCharacterAppearancesMap;
195  std::vector<DtString> myCharacterHandItems;
196  std::vector<DtString> myCharacterGestures;
197  std::map<DtString, DtString> myCharacterGesturesMap;
213 
218 
221 
223 
225 
226 };
Stores data representing all the possible appearances, animations, hand items, heads, etc.
Definition: diGuyCharacterData.h:63
HeadAppearanceMap::iterator HeadAppearanceMapIterator
Definition: diGuyCharacterData.h:37
static std::vector< DtString > myTypeFieldNameVect
Definition: diGuyCharacterData.h:190
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:194
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:195
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:217
static std::map< DtString, int > myTypeFieldNameToIntMap
Definition: diGuyCharacterData.h:189
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:206
DtDiGuyIntrinsicAnimationMap *(* DtDiGuyIntrinsicAnimationMapCreatorFcn)()
Definition: diGuyCharacterData.h:33
AlternateNamesList myAnimationNames
List of names of all animations available.
Definition: diGuyCharacterData.h:209
DtFilename myIntrinsicAnimationsFilename
Definition: diGuyCharacterData.h:207
TaskAnimationMap myTaskAnimationsMap
Holds refs to taskable animations.
Definition: diGuyCharacterData.h:204
DtString myCharacterTypeName
Definition: diGuyCharacterData.h:192
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:198
std::vector< DtString > myCharacterGestures
Definition: diGuyCharacterData.h:196
UnprocessedAnimationList::iterator UnprocessedAnimationListIterator
Definition: diGuyCharacterData.h:71
std::map< DtString, DtString > myCharacterGesturesMap
Definition: diGuyCharacterData.h:197
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:212
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.
Definition: diGuyCharacterAnimationsTable.h:24
std::map< DtString, HeadList > HeadAppearanceMap
Definition: diGuyCharacterData.h:36
static DtDiGuyIntrinsicAnimationMapCreatorFcn theDiGuyIntrinsicAnimationMapCreatorFcn
Definition: diGuyCharacterData.h:224
#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:222
UnprocessedAnimationList myUnprocessedAnimations
Will hold animation references until they can be classified as taskable or intrinsic.
Definition: diGuyCharacterData.h:202
AppearanceToTypeFieldsMap myTypeMaps
Definition: diGuyCharacterData.h:199
DtBoost::shared_ptr< DtDiGuyAnimation > DtDiGuyAnimationSharedPtr
Definition: diGuyAnimation.h:112
std::vector< DtString > myCharacterAppearances
Definition: diGuyCharacterData.h:193
bool myDataReadFromDiGuyScenario
flag to indicate that animation data has been gathered from DIGuy
Definition: diGuyCharacterData.h:220

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)