VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
diGuyCharacterDataManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 
14 
15 #include <libxml/xmlreader.h>
16 #include <vlutil/vlString.h>
17 #include <vlutil/vlFilename.h>
18 #include <map>
19 #include <list>
21 
24 
26 
27 namespace makVrv
28 {
29  class DtDiGuyScenario;
30 }
31 
35 {
36  public:
37 
39  static DtDiGuyCharacterDataManager* characterManager();
41  static DtDiGuyCharacterDataManager* creator(const DtFilename& settingsDirectory, const DtFilename& dataDir);
42  static DtDiGuyCharacterDataManager* creator(const DtFilename& settingsDirectory, const DtFilename& dataDir, makVrv::DtDiGuyScenario*);
43 
45  DtDiGuyCharacterDataManager(const DtFilename& settingsDirectory, const DtFilename& dataDir);
46  DtDiGuyCharacterDataManager(const DtFilename& settingsDirectory, const DtFilename& dataDir, makVrv::DtDiGuyScenario*);
47 
49  virtual ~DtDiGuyCharacterDataManager();
50 
53 
56 
58  virtual bool init();
59 
60  virtual void setAnimationsConfigurationFilename(const DtFilename & config);
61 
63  virtual bool loadCharacterAnimationsFile(const DtFilename &mtlName);
64 
67  virtual bool loadDataFromDIGuy();
68 
70  virtual const DtDiGuyCharacterData * lookupCharacterByName(const DtString & characterName) const;
71 
73  virtual const AlternateNamesList * availableCharactersList() const;
74 
77  virtual void getAppearancesMatchingDiGuyTypeMap(const DtString &characterType, std::vector<DtString> &fields, std::vector<DtString> &retAppearances);
80  virtual void getAppearancesMatchingPartialDiGuyTypeMap(const DtString &characterType, std::vector<DtString> &partialFields,
81  std::vector<int> &fieldIndices, std::vector<DtString> &retAppearances);
85  virtual void getTypeMapFieldOptions(const DtString &characterType, std::vector<DtString> &fields, std::vector<std::list<DtString> > &retValues);
87  virtual void getTypeMapPartialFieldOptions(const DtString &characterType, std::vector<DtString> &partialFields, std::vector<int> &fieldIndices,
88  std::vector<std::list<DtString> > &retValues);
89 
91  virtual bool getAnimationTransitionInfo(const DtString &characterType, const DtString &fromAnimation,
92  const DtString &toAnimation, double& duration, DtVector& offsetPos, double& offsetHeading) const;
93 
95  {
96  return myAnimationsConfigurationFile;
97  }
98 
100  static int numberOfDiGuyTypeMapFields();
101 
103  {
104  return myMasterDiGuyCharacterData;
105  }
106 
108 #if THREADING_ISSUE
109  Not thread safe as this will create the scenario if it does not exist
110 #endif
111  virtual makVrv::DtDiGuyScenario* lightweightInstance() const;
112 
113 protected:
114 
115  virtual void addCharacterData(DtDiGuyCharacterData * data);
117  void findListIntersection(std::list<DtString> &orig, std::list<DtString> &second);
119  void debugPrint(const char *fmt, ...);
120 
121 protected:
122 
125  std::map<DtString,DtDiGuyCharacterData *> myCharacterMap;
126  std::list<DtString> myCharactersList;
128 
130  DtFilename myDataDir;
132 
133 protected:
134 
138 };
std::map< DtString, DtDiGuyCharacterData * > myCharacterMap
Definition: diGuyCharacterDataManager.h:125
Stores data representing all the possible appearances, animations, hand items, heads, etc.
Definition: diGuyCharacterData.h:57
static double theCharacterManagerVersion
Definition: diGuyCharacterDataManager.h:137
DtVrvDiGuyCharacterData * masterDiGuyCharacterData() const
Definition: diGuyCharacterDataManager.h:102
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:26
DtDiGuyCharacterAnimationsTable * animationTable() const
Definition: diGuyCharacterDataManager.h:94
DtFilename myDataDir
Definition: diGuyCharacterDataManager.h:130
DtVrvDiGuyCharacterData * myMasterDiGuyCharacterData
Definition: diGuyCharacterDataManager.h:129
static DtDiGuyCharacterDataManager * theCharacterDataManager
So everyone can get at this class when they need to.
Definition: diGuyCharacterDataManager.h:136
std::list< DtString > myCharactersList
Definition: diGuyCharacterDataManager.h:126
Contains data describing the available attributes and animations of every DI-Guy character type that ...
Definition: diGuyCharacterDataManager.h:34
std::string dataDir()
DtFilename myAnimationsConfigurationFilename
Definition: diGuyCharacterDataManager.h:123
bool myPrintInfo
Definition: diGuyCharacterDataManager.h:127
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:26
#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
DtDiGuyCharacterAnimationsTable * myAnimationsConfigurationFile
Definition: diGuyCharacterDataManager.h:124
Stores data representing all the possible appearances, animations, hand items, heads, etc.
Definition: vrvDiGuyCharacterData.h:23
Owns a DiGuy scenario for the application.
Definition: DtDiGuyScenario.h:73
makVrv::DtDiGuyScenario * myLightweightInstance
Definition: diGuyCharacterDataManager.h:131

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)