VR-Forces Developer's Guide
 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) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
6 #pragma once
7 
11 
14 
15 #include <vlutil/vlString.h>
16 #include <vlutil/vlFilename.h>
17 
18 #include <libxml/xmlreader.h>
19 
20 #include <map>
21 
24 
25 namespace makVrv
26 {
27  class DtDiGuyScenario;
28 }
29 
34 {
35 public:
36 
38  static DtDiGuyCharacterDataManager* characterManager();
39 
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 
76  virtual bool getAnimationTransitionInfo( const DtString& characterType, const DtString& fromAnimation,
77  const DtString& toAnimation, double& duration, DtVector& offsetPos, double& offsetHeading ) const;
78 
80  {
81  return myAnimationsConfigurationFile;
82  }
83 
85  static int numberOfDiGuyTypeMapFields();
86 
88  {
89  return myMasterDiGuyCharacterData;
90  }
91 
93 #if THREADING_ISSUE
94  #error Not thread safe as this will create the scenario if it does not exist
95 #endif
96  virtual makVrv::DtDiGuyScenario* lightweightInstance() const;
97 
98 protected:
99 
100  virtual void addCharacterData( DtDiGuyCharacterData* data );
101 
103  void findListIntersection( std::list<DtString>& orig, std::list<DtString>& second );
104 
106  void debugPrint( const char* fmt, ... );
107 
108 protected:
109 
112 
113 protected:
114 
117  std::map<DtString,DtDiGuyCharacterData*> myCharacterMap;
119 
121 
122  DtFilename myDataDir;
124 
125 };
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
DtVrvDiGuyCharacterData * masterDiGuyCharacterData() const
Definition: diGuyCharacterDataManager.h:87
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:29
DtDiGuyCharacterAnimationsTable * animationTable() const
Definition: diGuyCharacterDataManager.h:79
DtFilename myDataDir
Definition: diGuyCharacterDataManager.h:122
Contains the DtVrvDiGuyCharacterData class declaration.
DtVrvDiGuyCharacterData * myMasterDiGuyCharacterData
Definition: diGuyCharacterDataManager.h:120
static DtDiGuyCharacterDataManager * theCharacterDataManager
So everyone can get at this class when they need to.
Definition: diGuyCharacterDataManager.h:111
Contains data describing the available attributes and animations for each DI-Guy character type...
Definition: diGuyCharacterDataManager.h:33
DtFilename myAnimationsConfigurationFilename
Definition: diGuyCharacterDataManager.h:115
bool myPrintInfo
Definition: diGuyCharacterDataManager.h:118
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
#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:116
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: vrvDiGuyCharacterData.h:23
std::map< DtString, DtDiGuyCharacterData * > myCharacterMap
Definition: diGuyCharacterDataManager.h:117
Owns a DiGuy scenario for the application.
Definition: DtDiGuyScenario.h:87
makVrv::DtDiGuyScenario * myLightweightInstance
Definition: diGuyCharacterDataManager.h:123

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)