14 #include <osg/Geometry>
15 #include <osg/ref_ptr>
17 #include <matrix/topoCoord.h>
19 #include <boost/unordered_map.hpp>
24 class diguyCharacterGuide;
33 class DtSceneObjectAgent;
34 class DtDiGuyScenario;
35 class DtOsgSceneConnector;
37 class DtSceneObjectUpdater;
38 class DtDiGuyMotionModel;
39 class DtDeadReckonUpdater;
81 virtual void setModelDefinition(
const std::string& modelDefinition);
84 virtual void addToScene(
const DtUniqueID& sceneObjectId,
int modelSet,
88 virtual void removeFromScene();
93 void setPositionAndVelocityState(
const DtVector& vrvLoc,
const DtTaitBryan& vrvOri,
const DtVector32& vrvVel,
94 const DtVector32& vrvAngularVel,
bool needsTopoUpdate);
98 virtual void setPosition(
int vtx,
const DtVector& position);
103 virtual void setPositionOffset(
const DtVector& position);
109 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation);
114 virtual void setOrientationOffset(
const DtTaitBryan& orientationOffset);
119 virtual void setPositionAndOrientation(
int vtx,
const DtVector& position,
const DtTaitBryan& orientation);
124 virtual const std::string& className()
const;
129 virtual void setCharacterModel(
const std::string& characterType);
134 virtual void setEnableAnimationSmoothing(
bool);
137 virtual bool enableAnimationSmoothing()
const;
140 virtual void setDefaultAppearance(
const std::string& appearanceName);
142 virtual void setAppearance(
const std::string& appearanceName);
144 virtual void setHeadAppearance(
const std::string& appearanceName);
145 virtual void setItemAppearance(
const std::string& appearanceName);
148 virtual void setFlamesPresent(
bool val);
149 virtual void setEnginePlume(
bool val);
150 virtual void setEngineSmoke(
bool val);
151 virtual void setTrailState(
bool val);
152 virtual void setLightState(
unsigned int light,
unsigned int lightState);
154 virtual void fireWeapon();
156 virtual void beginAppearanceEffect(
const std::string& effect,
const std::string& overrideLink,
157 float overrideScale,
const DtVector& overrideOffset,
float overrideDuration);
158 virtual void endAppearanceEffect(
int instant,
const std::string& effect,
const std::string& overrideLink);
160 virtual void executeGesture(
const std::string& gestureName,
int reps,
161 float overallDuration,
float channelAWeight);
162 virtual void endGesture(
const std::string& gestureName,
float rampDown);
165 virtual void setDesiredAction(
const std::string& action,
float speed);
174 virtual void forceAction(
const std::string& action,
float speed,
bool usePositioning,
177 virtual int currentArcChangeCb(diguyCharacter* character);
180 virtual void forceTemporaryAction(
const std::string& action,
double duration);
184 virtual void unforceAction();
187 virtual void setSpeed(
float speed);
190 virtual bool weaponDeployed()
const;
193 virtual void setWeaponDeployed(
bool deployed);
197 void setFullUpdateNeeded(
bool updated);
200 bool fullUpdateNeeded()
const;
204 virtual void die(
const std::string& deathAction);
207 virtual void revive(
const std::string& aliveAction);
210 virtual void setPaused(
bool paused);
216 diguyCharacter* character();
219 virtual void setPosture(
int posture);
221 virtual void setLinkRotationOverride(
const std::string& linkName,
const DtTaitBryan& rotation,
224 virtual void setLinkTranslationOverride(
const std::string& linkName,
const DtVector& offsets,
230 bool autoGenerateActions()
const;
235 bool autoGenerateActionSpeed()
const;
239 virtual void setModelScalingEnabled(
bool b);
241 virtual void setIsSupportModel(
bool isSupport);
246 virtual void setEmbarked(
bool embarkedState);
247 virtual bool embarked()
const;
249 virtual void setScale(
const DtVector& scale);
250 virtual void setWeight(
float weightScale);
251 virtual void setPartOrientation(
int partNumber,
252 const DtTaitBryan& orientation,
const DtVector& rotationalVelocity);
253 virtual void setPartTranslation(
int partNumber,
256 virtual void setPartVisibility(
int partNumber,
bool visible);
260 void updateAimingAndGaze();
264 diguyCharacterGuide*
getGuide() {
return myGuide; }
265 void setGuide(diguyCharacterGuide* guide) { myGuide = guide; }
269 virtual void setupCoordSystem(
const DtVector& vrvLoc,
bool overrideEmbarked =
false);
274 void convertToLocalFrame(
275 const DtVector32& velocity,
const DtTaitBryan& orientation,
276 DtVector32& outVelocity, DtTaitBryan& outOrientation);
282 virtual void setSelected(
bool value);
283 virtual void setTextureVariations(std::vector<DtCharacterTextureVariationInfo>& varationInfoArray,
int force);
286 virtual void setDynamicSensorRegion(
const std::string& region,
bool state);
289 virtual bool dynamicSensorRegion(
const std::string& region);
292 virtual DtVector positionOffsetWorld();
295 virtual bool hasPositionOffset();
300 virtual DtTaitBryan orientationOffsetWithBase(
const DtTaitBryan& baseOri);
303 virtual bool hasOrientationOffset();
308 virtual void setUseTransitions(
bool use);
311 bool useTransitions();
314 virtual void setEnabled(
bool enabled);
320 virtual void setIsOccupant(
bool occupant);
330 virtual bool isPostureTransitioning();
334 virtual void setSceneObjectIdOnCollisionBoxes();
343 virtual void updateModelInstance();
347 virtual void setMotionModelByName(
const std::string& modelName);
351 virtual void updateVisibility();
411 #ifdef VISUALIZE_DIGUY_VELOCITY
float m_gaze_el
Definition: DtDiGuyCharacterModel.h:385
The base class for all model instances.
Definition: DtModelInstance.h:39
void setGuide(diguyCharacterGuide *guide)
Definition: DtDiGuyCharacterModel.h:265
bool myGenerateActionSpeedFlag
Definition: DtDiGuyCharacterModel.h:367
static osg::Group * DiguyAttachGroup
Definition: DtDiGuyCharacterModel.h:356
bool myCouldBePostureTransitioning
Definition: DtDiGuyCharacterModel.h:403
boost::unordered_map< std::string, bool > SensorRegionStateMap
Definition: DtDiGuyCharacterModel.h:400
float m_gaze_az
Definition: DtDiGuyCharacterModel.h:384
bool myWeaponDeployedFlag
Definition: DtDiGuyCharacterModel.h:368
bool myEnabled
Definition: DtDiGuyCharacterModel.h:397
float m_aim_az
Definition: DtDiGuyCharacterModel.h:382
DtLastForceActionParams()
Definition: DtDiGuyCharacterModel.h:45
diguyCharacter * myCharacter
Definition: DtDiGuyCharacterModel.h:362
DtDiGuyScenario * myDtScenario
Definition: DtDiGuyCharacterModel.h:357
static void setDiGuyAttachGroup(osg::Group *diguy_attach_pt)
Definition: DtDiGuyCharacterModel.h:243
std::string myName
Definition: DtDiGuyCharacterModel.h:54
DtVector myWorldPosition
Definition: DtDiGuyCharacterModel.h:360
bool myIsOccupant
Definition: DtDiGuyCharacterModel.h:395
bool myNeedsGuideInstalled
Definition: DtDiGuyCharacterModel.h:372
diguyCharacterGuide * myGuide
Definition: DtDiGuyCharacterModel.h:363
Contains the makVrv::DtCharacterModel class declaration.
DI-Guy Character model.
Definition: DtDiGuyCharacterModel.h:72
float mySpeed
Definition: DtDiGuyCharacterModel.h:55
bool m_vehicle
Definition: DtDiGuyCharacterModel.h:381
bool m_turreted_vehicle
Definition: DtDiGuyCharacterModel.h:380
A special human character model.
Definition: DtCharacterModel.h:20
Contains DLL export macros.
DtTaitBryan vrvToDiGuyOrientationChar(const DtTaitBryan &hpr)
SensorRegionStateMap mySensorRegionMap
Definition: DtDiGuyCharacterModel.h:401
float m_aim_el
Definition: DtDiGuyCharacterModel.h:383
virtual DtSceneObject * sceneObject()
Definition: DtDiGuyCharacterModel.h:327
bool myEnableAnimationSmoothing
Definition: DtDiGuyCharacterModel.h:388
bool myVRForcesEntity
Definition: DtDiGuyCharacterModel.h:371
bool getVRForcesEntity()
Definition: DtDiGuyCharacterModel.h:267
bool m_character_can_aim
Definition: DtDiGuyCharacterModel.h:386
bool myUsingActionPositioningFlag
Definition: DtDiGuyCharacterModel.h:365
DtVector myOffset
Definition: DtDiGuyCharacterModel.h:57
DtUniqueID mySceneObjectId
Definition: DtDiGuyCharacterModel.h:373
int myAutoTransition
Definition: DtDiGuyCharacterModel.h:58
const DtTaitBryan & getOrientation()
Definition: DtDiGuyCharacterModel.h:110
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
bool myUsePositioning
Definition: DtDiGuyCharacterModel.h:56
DtTaitBryan myWorldOrientation
Definition: DtDiGuyCharacterModel.h:359
Definition: DtDiGuyCharacterModel.h:43
DtCoordTransform m_topoToGeoc
Definition: DtDiGuyCharacterModel.h:409
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:41
A model which owns a single model instance.
Definition: DtModel.h:56
bool myUseTransitions
Definition: DtDiGuyCharacterModel.h:392
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
bool myGenerateAutomaticActionFlag
Definition: DtDiGuyCharacterModel.h:366
bool getIsVehicle()
Definition: DtDiGuyCharacterModel.h:278
#define DT_DLL_VRVDIGUY
Definition: vrvDiGuy.h:21
bool myFullUpdateFlag
Definition: DtDiGuyCharacterModel.h:369
voidpf uLong offset
Definition: ioapi.h:42
const DtVector & getPosition()
Definition: DtDiGuyCharacterModel.h:99
diguyCharacterGuide * getGuide()
Definition: DtDiGuyCharacterModel.h:264
DtLastForceActionParams myLastForceAction
Definition: DtDiGuyCharacterModel.h:374
bool myEmbarkedFlag
Definition: DtDiGuyCharacterModel.h:370
Owns a DiGuy scenario for the application.
Definition: DtDiGuyScenario.h:73
DtSceneObject * mySceneObject
Definition: DtDiGuyCharacterModel.h:378
DtCoordTransform m_geocToTopo
Definition: DtDiGuyCharacterModel.h:408