14 #include <osg/ref_ptr>
15 #include <osg/Geometry>
17 #include <matrix/topoCoord.h>
19 #include <boost/unordered_map.hpp>
24 class diguyCharacterGuide;
33 class DtParticleSystemModelAgent;
34 class DtSceneObjectAgent;
35 class DtDiGuyScenario;
75 virtual void setModelDefinition(
const std::string& modelDefinition);
78 virtual void addToScene(
const DtUniqueID& sceneObjectId,
int modelSet,
82 virtual void removeFromScene();
87 void setPositionAndVelocityState(
const DtVector& vrvLoc,
const DtTaitBryan& vrvOri, DtVector32 vrvVel, DtVector32 vrvAngularVel,
bool needsTopoUpdate);
90 virtual void setPosition(
int vtx,
const DtVector& position );
94 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation );
98 virtual std::string className()
const;
103 virtual void setCharacterModel(
const std::string& characterType);
108 virtual void setEnableAnimationSmoothing(
bool);
111 virtual bool enableAnimationSmoothing()
const;
115 virtual void setDefaultAppearance(
const std::string& appearanceName);
116 virtual void setAppearance(
const std::string& appearanceName);
118 virtual void setHeadAppearance(
const std::string& appearanceName);
119 virtual void setItemAppearance(
const std::string& appearanceName);
122 virtual void setFlamesPresent(
bool val);
123 virtual void setEnginePlume(
bool val);
124 virtual void setEngineSmoke(
bool val);
125 virtual void setTrailState(
bool val);
126 virtual void setLightState(
unsigned int light,
unsigned int lightState);
128 virtual void fireWeapon();
130 virtual void beginAppearanceEffect(
const std::string& effect,
const std::string& overrideLink,
131 float overrideScale,
const DtVector& overrideOffset,
float overrideDuration );
132 virtual void endAppearanceEffect(
int instant,
const std::string& effect,
const std::string& overrideLink);
134 virtual void executeGesture(
const std::string& gestureName,
int reps,
135 float overallDuration,
float channelAWeight);
136 virtual void endGesture(
const std::string& gestureName,
float rampDown);
139 virtual void setDesiredAction(
const std::string& action,
float speed);
145 virtual void forceAction(
const std::string& action,
float speed,
int autoChooseTransitionBehavior);
148 virtual void forceTemporaryAction(
const std::string& action,
double duration);
152 virtual void unforceAction();
155 virtual void setSpeed(
float speed);
158 virtual bool weaponDeployed()
const;
161 virtual void setWeaponDeployed(
bool deployed);
165 void setFullUpdateNeeded(
bool updated);
168 bool fullUpdateNeeded()
const;
172 virtual void die(
const std::string& deathAction);
175 virtual void revive(
const std::string& aliveAction);
178 virtual void setPaused(
bool paused);
184 diguyCharacter* character();
187 virtual void setPosture(
int posture);
192 bool autoGenerateActions()
const;
197 bool autoGenerateActionSpeed()
const;
201 virtual void setModelScalingEnabled(
bool b );
203 virtual void setIsSupportModel(
bool isSupport);
208 virtual void setEmbarked(
bool embarkedState );
209 virtual bool embarked()
const;
211 virtual void setScale(
const DtVector & scale);
212 virtual void setWeight(
float weightScale);
213 virtual void setPartOrientation(
int partNumber,
214 const DtTaitBryan& orientation,
const DtVector& rotationalVelocity);
215 virtual void setPartTranslation(
int partNumber,
218 virtual void setPartVisibility(
int partNumber,
bool visible);
222 void updateAimingAndGaze();
227 void setGuide(diguyCharacterGuide * guide){myGuide = guide;}
231 void setupTopoConversion(
const DtVector& location );
235 void convertToLocalFrame(
236 const DtVector32 & velocity,
const DtTaitBryan& orientation,
237 DtVector32 &outVelocity, DtTaitBryan & outOrientation );
243 virtual void setSelected(
bool value);
244 virtual void setTextureVariations(std::vector<DtCharacterTextureVariationInfo> & varationInfoArray,
int force);
247 virtual void setDynamicSensorRegion(
const std::string& region,
bool state );
250 virtual bool dynamicSensorRegion(
const std::string& region );
254 virtual void setSceneObjectIdOnCollisionBoxes();
263 virtual void updateModelInstance();
308 #ifdef VISUALIZE_DIGUY_VELOCITY
309 osg::ref_ptr<osg::Geometry> myDesiredPositionLine;
310 osg::ref_ptr<osg::Geometry> myDesiredVelocityLine;
311 osg::ref_ptr<osg::Geometry> myVelocityLine;
312 osg::ref_ptr<osg::Geometry> myCordSys;
313 osg::ref_ptr<osg::Geometry> myCurrentDesiredPositionLine;
314 osg::ref_ptr<osg::Geode> myVizualizers;
315 osg::ref_ptr<osg::MatrixTransform> myVizualizersTransform;