VR-Forces 4.8 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) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vlutil/vlString.h>
12 #include <vector>
13 #include <map>
14 #include "vrfutil/vrfutilDefines.h"
16 #include "vrfutil/diGuyAnimation.h"
17 
18 class DtDiGuyAnimation;
21 
24 typedef std::pair<DtString,DtString> AlternateNamesPair;
25 
26 typedef std::vector<AlternateNamesPair> AlternateNamesList;
27 typedef AlternateNamesList::iterator AlternateNamesListIterator;
28 typedef AlternateNamesList::const_iterator const_AlternateNamesListIterator;
29 
30 typedef DtDiGuyIntrinsicAnimationMap* (*DtDiGuyIntrinsicAnimationMapCreatorFcn)();
31 
32 typedef std::vector<DtString> HeadList;
33 typedef std::map<DtString, HeadList> HeadAppearanceMap;
34 typedef HeadAppearanceMap::iterator HeadAppearanceMapIterator;
35 
36 static const int numDiGuyTypeMapFields = 9;
37 
41 {
42 public:
46 
47  void addFieldValue(const DtString &value);
48 
49  std::vector<DtString> FieldVect;
50 };
51 
52 typedef std::map<DtString, DiGuyTypeMapFieldStruct> AppearanceToTypeFieldsMap;
53 
58 {
59 public:
60 
61  typedef std::map<DtString, DtDiGuyAnimationSharedPtr> TaskAnimationMap;
62  typedef TaskAnimationMap::iterator TaskAnimationMapIterator;
63  typedef TaskAnimationMap::const_iterator const_TaskAnimationMapIterator;
64  typedef std::list<DtDiGuyAnimationSharedPtr> UnprocessedAnimationList;
65  typedef UnprocessedAnimationList::iterator UnprocessedAnimationListIterator;
66  typedef UnprocessedAnimationList::const_iterator const_UnprocessedAnimationListIterator;
67 
69 
70  DtDiGuyCharacterData(const DtString& name);
71 
73 
74  virtual ~DtDiGuyCharacterData();
75 
76  DtDiGuyCharacterData& operator=(const DtDiGuyCharacterData& orig);
77 
78  virtual void init();
79 
81 
82  virtual void setCharacterTypeName(const DtString& name);
83  virtual const DtString & characterTypeName() const;
85 
86  virtual void setDeadAnimation(DtDiGuyAnimationSharedPtr deadAnimation);
87  virtual DtDiGuyAnimation * deadAnimation();
88 
90  virtual const DtDiGuyAnimation * lookupTaskAnimationByName(const DtString & name) const;
91 
93  virtual const std::vector<DtString>& appearances() const;
94 
96  virtual void addAppearance(const DtString & app);
97  virtual bool containsAppearance(const DtString & app) const;
98 
100  virtual void addGesture(const DtString & app);
101  virtual bool containsGesture(const DtString & app) const;
102  virtual const std::vector<DtString>& gestures() const;
103 
105  virtual const std::vector<DtString>& handItems() const;
106 
108  virtual void addHandItem(const DtString & app);
109 
111  virtual const std::vector<DtString>& heads(const DtString &bodyAppearance) const;
112 
114  virtual void addHead(const DtString &bodyAppearance, const DtString & headAppearance);
115 
117  virtual void addTypeMapField(const DtString &appearanceName, const DtString & fieldValue);
119  virtual const DtString &getTypeMapFieldName(int index)const;
121  virtual int getTypeMapFieldIndex(const DtString &name)const;
122 
124  virtual const AlternateNamesList * animationNames() const;
125 
128  void addAnimation(DtDiGuyAnimationSharedPtr animation);
129 
131 
132  virtual const TaskAnimationMap * taskableAnimations() const;
135  virtual AlternateNamesList taskableAnimationNames() const;
136  virtual void addTaskAnimation(const DtString & name, DtDiGuyAnimationSharedPtr animation);
138 
140 
141  virtual const DtDiGuyIntrinsicAnimationMap * intrinsicAnimations() const;
142  virtual void addIntrinsicAnimation(const DtString & name, DtDiGuyAnimationSharedPtr animation);
144 
145  virtual const DtDiGuyAnimation * lookupIntrinsicAnimationByName(const DtString & name) const;
146 
148  virtual DtDiGuyCharacterData* clone() const;
149 
150  void setAnimationTable(DtDiGuyCharacterAnimationsTable *table);
154  DtDiGuyAnimationSharedPtr readInAnimationDataFromTable(const char *actionName, bool isFirstAction);
155 
157  void setPrintInfo(bool set_print);
158  void debugPrint(const char *fmt, ...);
159 
160  virtual const DtDiGuyAnimation * lookupTaskAnimationByVariant(const DtString & variant) const;
161  virtual const DtDiGuyAnimation * lookupIntrinsicAnimationByVariant(const DtString & variant) const;
162 
163 public:
170  static void setCreatorFcn(const DtDiGuyIntrinsicAnimationMapCreatorFcn& fcn);
171 
172 protected:
173 
176  virtual void readInAnimationDataFromDiGuyScenario();
177 
178  void setUpTypeFieldToIntMap();
179 
180  static std::map<DtString, int> myTypeFieldNameToIntMap;
181  static std::vector<DtString> myTypeFieldNameVect;
182 
184  std::vector<DtString> myCharacterAppearances;
185  std::map<DtString, DtString> myCharacterAppearancesMap;
186  std::vector<DtString> myCharacterHandItems;
187  std::vector<DtString> myCharacterGestures;
188  std::map<DtString, DtString> myCharacterGesturesMap;
204 
209 
212 
214 
216 };
Stores data representing all the possible appearances, animations, hand items, heads, etc.
Definition: diGuyCharacterData.h:57
HeadAppearanceMap::iterator HeadAppearanceMapIterator
Definition: diGuyCharacterData.h:34
static std::vector< DtString > myTypeFieldNameVect
Definition: diGuyCharacterData.h:181
static const int numDiGuyTypeMapFields
Definition: diGuyCharacterData.h:36
void addFieldValue(const DtString &value)
std::vector< DtString > FieldVect
Definition: diGuyCharacterData.h:49
std::map< DtString, DtDiGuyAnimationSharedPtr > TaskAnimationMap
Definition: diGuyCharacterData.h:61
std::map< DtString, DtString > myCharacterAppearancesMap
Definition: diGuyCharacterData.h:185
std::list< DtDiGuyAnimationSharedPtr > UnprocessedAnimationList
Definition: diGuyCharacterData.h:64
DiGuyTypeMapFieldStruct & operator=(const DiGuyTypeMapFieldStruct &orig)
AlternateNamesList::const_iterator const_AlternateNamesListIterator
Definition: diGuyCharacterData.h:28
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:20
TaskAnimationMap::iterator TaskAnimationMapIterator
Definition: diGuyCharacterData.h:62
std::vector< DtString > myCharacterHandItems
Definition: diGuyCharacterData.h:186
AlternateNamesList::iterator AlternateNamesListIterator
Definition: diGuyCharacterData.h:27
DtDiGuyCharacterAnimationsTable * myAnimationTable
This will be generated from the data in character_animations_table.mtl Its main importance is holding...
Definition: diGuyCharacterData.h:208
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:26
UnprocessedAnimationList::const_iterator const_UnprocessedAnimationListIterator
Definition: diGuyCharacterData.h:66
DtDiGuyIntrinsicAnimationMap * myIntrinsicAnimationsMap
Holds refs to intrinsic animations.
Definition: diGuyCharacterData.h:197
DtDiGuyIntrinsicAnimationMap *(* DtDiGuyIntrinsicAnimationMapCreatorFcn)()
Definition: diGuyCharacterData.h:30
AlternateNamesList myAnimationNames
List of names of all animations available.
Definition: diGuyCharacterData.h:200
DtFilename myIntrinsicAnimationsFilename
Definition: diGuyCharacterData.h:198
TaskAnimationMap myTaskAnimationsMap
Holds refs to taskable animations.
Definition: diGuyCharacterData.h:195
DtString myCharacterTypeName
Definition: diGuyCharacterData.h:183
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:63
The DtDIGuyIntrinsicAnimationMap class is a class that stores the DI-Guy animations that are intrinsi...
Definition: diGuyIntrinsicAnimationMap.h:27
std::vector< DtString > HeadList
Definition: diGuyCharacterData.h:32
HeadAppearanceMap myCharacterHeads
Definition: diGuyCharacterData.h:189
std::vector< DtString > myCharacterGestures
Definition: diGuyCharacterData.h:187
UnprocessedAnimationList::iterator UnprocessedAnimationListIterator
Definition: diGuyCharacterData.h:65
std::map< DtString, DtString > myCharacterGesturesMap
Definition: diGuyCharacterData.h:188
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:203
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:40
static std::map< DtString, int > myTypeFieldNameToIntMap
Definition: diGuyCharacterData.h:180
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::map< DtString, DiGuyTypeMapFieldStruct > AppearanceToTypeFieldsMap
Definition: diGuyCharacterData.h:52
Readable/writable class that holds list of DtDiGuyCharacterAnimationsEntry objects.
Definition: diGuyCharacterAnimationsTable.h:26
std::map< DtString, HeadList > HeadAppearanceMap
Definition: diGuyCharacterData.h:33
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
static DtDiGuyIntrinsicAnimationMapCreatorFcn theDiGuyIntrinsicAnimationMapCreatorFcn
Definition: diGuyCharacterData.h:215
bool myPrintInfo
Definition: diGuyCharacterData.h:213
UnprocessedAnimationList myUnprocessedAnimations
Will hold animation references until they can be classified as taskable or intrinsic.
Definition: diGuyCharacterData.h:193
AppearanceToTypeFieldsMap myTypeMaps
Definition: diGuyCharacterData.h:190
DtBoost::shared_ptr< DtDiGuyAnimation > DtDiGuyAnimationSharedPtr
Definition: diGuyAnimation.h:111
std::vector< DtString > myCharacterAppearances
Definition: diGuyCharacterData.h:184
bool myDataReadFromDiGuyScenario
flag to indicate that animation data has been gathered from DIGuy
Definition: diGuyCharacterData.h:211

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)