14 #include <osg/ref_ptr>
15 #include <osg/Geometry>
17 #include <matrix/topoCoord.h>
22 class diguyCharacterGuide;
31 class DtParticleSystemModelAgent;
32 class DtSceneObjectAgent;
33 class DtDiGuyScenario;
56 virtual void setModelDefinition(
const std::string& modelDefinition);
59 virtual void addToScene(
const DtUniqueID& sceneObjectId,
int modelSet,
63 virtual void removeFromScene();
68 void setPositionAndVelocityState(
const DtVector& vrvLoc,
const DtTaitBryan& vrvOri, DtVector32 vrvVel, DtVector32 vrvAngularVel,
bool needsTopoUpdate);
71 virtual void setPosition(
int vtx,
const DtVector& position );
74 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation );
78 virtual std::string className()
const;
83 virtual void setCharacterModel(
const std::string& characterType);
88 virtual void setEnableAnimationSmoothing(
bool);
91 virtual bool enableAnimationSmoothing()
const;
95 virtual void setDefaultAppearance(
const std::string& appearanceName);
96 virtual void setAppearance(
const std::string& appearanceName);
97 virtual void setHeadAppearance(
const std::string& appearanceName);
98 virtual void setItemAppearance(
const std::string& appearanceName);
101 virtual void setFlamesPresent(
bool val);
102 virtual void setEnginePlume(
bool val);
103 virtual void setEngineSmoke(
bool val);
104 virtual void setTrailState(
bool val);
105 virtual void setLightState(
unsigned int light,
unsigned int lightState);
107 virtual void fireWeapon();
109 virtual void beginAppearanceEffect(
const std::string& effect,
const std::string& overrideLink,
110 float overrideScale,
const DtVector& overrideOffset,
float overrideDuration );
111 virtual void endAppearanceEffect(
int instant,
const std::string& effect,
const std::string& overrideLink);
113 virtual void executeGesture(
const std::string& gestureName,
int reps,
114 float overallDuration,
float channelAWeight);
115 virtual void endGesture(
const std::string& gestureName,
float rampDown);
118 virtual void setDesiredAction(
const std::string& action,
float speed);
121 virtual void forceAction(
const std::string& action,
float speed,
int autoChooseTransitionBehavior);
124 virtual void forceTemporaryAction(
const std::string& action,
double duration);
127 virtual void setSpeed(
float speed);
130 virtual bool weaponDeployed()
const;
133 virtual void setWeaponDeployed(
bool deployed);
137 void setFullUpdateNeeded(
bool updated);
140 bool fullUpdateNeeded()
const;
144 virtual void die(
const std::string& deathAction);
147 virtual void revive(
const std::string& aliveAction);
150 virtual void setPaused(
bool paused);
156 diguyCharacter* character();
159 virtual void setPosture(
int posture);
164 bool autoGenerateActions()
const;
169 bool autoGenerateActionSpeed()
const;
173 virtual void setModelScalingEnabled(
bool b );
175 virtual void setIsSupportModel(
bool isSupport);
180 virtual void setEmbarked(
bool embarkedState );
181 virtual bool embarked()
const;
183 virtual void setScale(
const DtVector & scale);
184 virtual void setPartOrientation(
int partNumber,
185 const DtTaitBryan& orientation,
const DtVector& rotationalVelocity);
186 virtual void setPartTranslation(
int partNumber,
189 virtual void setPartVisibility(
int partNumber,
bool visible);
193 void updateAimingAndGaze();
198 void setGuide(diguyCharacterGuide * guide){myGuide = guide;}
202 void setupTopoConversion(
const DtVector& location );
206 void convertToLocalFrame(
207 const DtVector32 & velocity,
const DtTaitBryan& orientation,
208 DtVector32 &outVelocity, DtTaitBryan & outOrientation );
214 virtual void setSelected(
bool value);
218 virtual void setSceneObjectIdOnCollisionBoxes();
267 #ifdef VISUALIZE_DIGUY_VELOCITY
268 osg::ref_ptr<osg::Geometry> myDesiredPositionLine;
269 osg::ref_ptr<osg::Geometry> myDesiredVelocityLine;
270 osg::ref_ptr<osg::Geometry> myVelocityLine;
271 osg::ref_ptr<osg::Geometry> myCordSys;
272 osg::ref_ptr<osg::Geometry> myCurrentDesiredPositionLine;
273 osg::ref_ptr<osg::Geode> myVizualizers;
274 osg::ref_ptr<osg::MatrixTransform> myVizualizersTransform;