16 #include <vlutil/vlString.h>
17 #include <matrix/vlVector.h>
22 #define ENABLE_DIGUY_PARTICLE_RENDERING 0
26 class DtCoordTransform;
30 class DtDiGuySettings;
75 void getAppearances(std::vector<DtString> &choiceValues,
int depth, std::vector<DtString> &retAppearances);
112 void initializeVisualComponent();
123 diguyScenario& scenario();
128 virtual osg::Node* characterRoot();
134 const char * mapEffect(
const char * diguy_effect_name);
137 std::string findCharacterName(
DtElementID parentSceneObjectID);
140 int getSupportsWeightVariations(
DtElementID parentSceneObjectID);
143 bool evalScript(
const std::string & script);
151 int getNumCharacterTypes();
153 const char * getCharacterTypeAtIndex(
int index);
155 int getCharacterTypeNumAppearances(
const char *
typeName);
157 const char *getCharacterTypeAppearanceAtIndex(
const char *
typeName,
int index);
161 const char *getHandItemClass(
const char *
typeName);
162 int getNumHandItemsInClass(
const char *className);
164 const char *getHandItemFromClass(
const char *className,
int index);
167 int getCharacterTypeNumHeads(
const char *
typeName,
const char *appearanceName);
169 const char *getCharacterTypeHeadAtIndex(
const char *
typeName,
const char *appearanceName,
int index);
172 int getCharacterTypeNumActions(
const char *
typeName);
174 const char *getCharacterTypeActionAtIndex(
const char *
typeName,
int index);
177 float getCharacterTypeActionDuration(
const char *
typeName,
const char *actionName);
179 float getCharacterTypeActionSpeed(
const char *
typeName,
const char *actionName);
182 const char *getCharacterTypeActionPosture(
const char *
typeName,
const char *actionName);
186 const char *getCharacterTypeActionDirection(
const char *
typeName,
const char *actionName);
191 const char *getCharacterTypeActionPrimaryVariant(
const char *
typeName,
const char *actionName);
208 int getNumTypeMapEntries();
211 const char *getTypeMapCharacterType(
int index);
214 const char *getTypeMapCharacterAppearance(
int index);
217 const char *getTypeMapFieldValue(
int index,
const char *fieldName);
218 const char *getTypeMapFieldValue(
int index,
int fieldIndex);
222 int getNumTypeMapCharacterClasses();
223 const char* getTypeMapCharacterClassAtIndex(
int index);
227 int getNumTypeMapCategories(
const char* character_class);
228 const char* getTypeMapCategoryAtIndex(
const char* character_class,
int index);
231 int getNumTypeMapSubcategories(
const char* character_class,
232 const char* category);
233 const char* getTypeMapSubcategoryAtIndex(
const char* character_class,
234 const char* category,
239 virtual void getAppearancesMatchingDiGuyTypeMap(
const DtString &characterType, std::vector<DtString> &fields, std::vector<DtString> &retAppearances);
242 virtual void getAppearancesMatchingPartialDiGuyTypeMap(
const DtString &characterType, std::vector<DtString> &partialFields,
243 std::vector<int> &fieldIndices, std::vector<DtString> &retAppearances);
247 virtual void getTypeMapFieldOptions(
const DtString &characterType, std::vector<DtString> &fields, StringListVec &retValues);
249 virtual void getTypeMapPartialFieldOptions(
const DtString &characterType, std::vector<DtString> &partialFields, std::vector<int> &fieldIndices,
250 StringListVec &retValues);
252 virtual void initTypeMapNodes();
256 virtual void slot_windowDestroyed(
DtWindow* window);
259 virtual void slot_windowCreated(
DtWindow* window);
262 virtual void slot_reloadShader();
265 virtual void slot_preDraw();
268 virtual void slot_postDraw();
271 virtual void slot_postUpdate();
274 virtual void syncToSharedDiGuySettings();
277 virtual void slot_diGuyInstancingEnabledChanged(
bool enabled );
280 virtual void slot_diGuyInstancedLodChanged(
int lod );
283 virtual void slot_diGuyVisualizeInstancingChanged(
bool enabled );
286 virtual void slot_diGuyMaxDrawDistanceChanged(
float distance );
289 virtual void slot_diGuyMultiThreadUpdateChanged(
bool enabled );
294 diguyCharacter *getCharacter(
DtElementID parentSceneObjectID);
300 static void slot_displayToBeDestroyed(
const std::string& displayName,
DtDe *de);
303 void updateScenario(
double simTime);
304 void setComponentVisualizationMode(
int mode);
309 void createDiGuyScenario();
311 void reloadConfigInfo();