14 #include <osg/Geometry>
15 #include <osg/ref_ptr>
17 #include <matrix/topoCoord.h>
19 #include <boost/unordered_map.hpp>
24 class diguyCharacterGuide;
34 class DtDeadReckonUpdater;
36 class DtDiGuyOsgGraphicsLink;
37 class DtDiGuyScenario;
38 class DtDiGuyMotionModel;
40 class DtOsgSceneConnector;
42 class DtSceneObjectAgent;
43 class DtSceneObjectUpdater;
44 class DtOsgGizmoRenderer;
45 struct DtDiguyLightConfig;
118 virtual void setModelDefinition(
const std::string& modelDefinition);
121 diguyCharacter* character();
128 virtual const std::string& className()
const;
131 virtual void addToScene(
const DtUniqueID& sceneObjectId,
int modelSet,
135 virtual void removeFromScene();
140 void setPositionAndVelocityState(
const DtVector& vrvLoc,
const DtTaitBryan& vrvOri,
const DtVector32& vrvVel,
141 const DtVector32& vrvAngularVel,
bool needsTopoUpdate);
145 virtual void setPosition(
int vtx,
const DtVector& position);
150 virtual void setPositionOffset(
const DtVector& position);
155 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation);
160 virtual void setOrientationOffset(
const DtTaitBryan& orientationOffset);
165 virtual void setPositionAndOrientation(
int vtx,
const DtVector& position,
const DtTaitBryan& orientation);
171 virtual void setCharacterModel(
const std::string& characterType);
176 virtual void setDefaultAppearance(
const std::string& appearanceName );
178 virtual void setAppearance(
const std::string& appearanceName );
181 virtual void setHeadAppearance(
const std::string& appearanceName );
183 virtual void setItemAppearance(
const std::string& appearanceName );
185 virtual void setCharacterEquipment(
const std::string& appearanceName );
188 virtual void setCharacterName(
const std::string& name );
190 virtual void setUnit(
unsigned int unit,
unsigned int personalUnit );
192 virtual void setRank(
unsigned int rank );
197 virtual void setFlamesPresent(
bool val);
199 virtual void setEnginePlume(
bool val);
201 virtual void setEngineSmoke(
bool val);
203 virtual void setTrailState(
bool val);
205 virtual void setLightState(
unsigned int light,
unsigned int lightState);
209 virtual void beginAppearanceEffect(
const std::string& effect,
const std::string& overrideLink,
210 float overrideScale,
const DtVector& overrideOffset,
float overrideDuration);
212 virtual void endAppearanceEffect(
int instant,
const std::string& effect,
const std::string& overrideLink);
215 virtual void executeGesture(
const std::string& gestureName,
int reps,
216 float overallDuration,
float channelAWeight);
218 virtual void endGesture(
const std::string& gestureName,
float rampDown);
224 virtual void setEnableAnimationSmoothing(
bool);
227 virtual bool enableAnimationSmoothing()
const;
229 virtual void setDesiredAction(
const std::string& action,
float speed);
232 virtual void fireWeapon();
240 virtual void forceAction(
const std::string& action,
float speed,
bool usePositioning,
241 const DtVector&
offset,
int autoChooseTransitionBehavior,
float transitionSpeedScale );
244 virtual int currentArcChangeCb(diguyCharacter* character);
247 virtual void forceTemporaryAction(
const std::string& action,
double duration);
251 virtual void unforceAction();
254 virtual void setSpeed(
float speed);
257 virtual void setPosture(
int posture);
260 virtual bool weaponDeployed()
const;
263 virtual void setWeaponDeployed(
bool deployed);
267 void setFullUpdateNeeded(
bool updated);
270 bool fullUpdateNeeded()
const;
274 virtual void die(
const std::string& deathAction);
277 virtual void revive(
const std::string& aliveAction);
280 virtual void setPaused(
bool paused);
290 bool autoGenerateActions()
const;
295 bool autoGenerateActionSpeed()
const;
299 virtual void setModelScalingEnabled(
bool b);
301 virtual void setIsSupportModel(
bool isSupport);
304 virtual void setEmbarked(
bool embarkedState);
305 virtual bool embarked()
const;
307 virtual void setScale(
const DtVector& scale);
308 virtual void setWeight(
float weightScale);
310 virtual void setPartOrientation(
int partNumber,
311 const DtTaitBryan& orientation,
const DtVector& rotationalVelocity);
313 virtual void setPartTranslation(
int partNumber,
317 virtual void setLinkRotationOverride(
const std::string& linkName,
const DtTaitBryan& rotation,
321 virtual void setLinkTranslationOverride(
const std::string& linkName,
const DtVector& offsets,
325 virtual void setPartVisibility(
int partNumber,
bool visible);
329 void updateAimingAndGaze();
333 virtual diguyCharacterGuide* getGuide();
334 virtual void setGuide(diguyCharacterGuide* guide);
337 virtual void setupCoordSystem(
const DtVector& vrvLoc,
bool overrideEmbarked =
false);
340 virtual bool getAndResetTerrainHasChangedBit();
343 virtual void setTerrainHasChanged();
348 void convertToLocalFrame(
349 const DtVector32& velocity,
const DtTaitBryan& orientation,
350 DtVector32& outVelocity, DtTaitBryan& outOrientation);
354 virtual void setSelected(
bool value);
355 virtual void setTextureVariations(std::vector<DtCharacterTextureVariationInfo>& varationInfoArray,
int force)
override;
358 virtual void setDynamicSensorRegion(
const std::string& region,
bool state);
361 virtual bool dynamicSensorRegion(
const std::string& region);
364 virtual DtVector positionOffsetWorld();
367 virtual bool hasPositionOffset();
372 virtual DtTaitBryan orientationOffsetWithBase(
const DtTaitBryan& baseOri);
375 virtual bool hasOrientationOffset();
380 virtual void setUseTransitions(
bool use);
383 virtual bool useTransitions();
386 virtual void setEnabled(
bool enabled);
389 virtual bool enabled();
392 virtual void setIsOccupant(
bool occupant);
395 virtual bool occupant();
400 virtual bool isPostureTransitioning();
404 virtual bool usingActionPositioningFlag();
407 virtual void updateLights();
416 std::vector<DtDiGuyLightRtInfo>& lights();
424 virtual void setSceneObjectIdOnCollisionBoxes();
433 virtual void updateModelInstance();
437 virtual void setMotionModelByName(
const std::string& modelName);
441 virtual void updateVisibility();
444 virtual void createLights(
int id);
503 #ifdef VISUALIZE_DIGUY_VELOCITY
float m_gaze_el
Definition: DtDiGuyCharacterModel.h:476
The base class for all model instances.
Definition: DtModelInstance.h:39
DtDiGuyLightRtInfo()
Definition: DtDiGuyCharacterModel.h:73
const DtDiguyLightConfig * myDesc
config data
Definition: DtDiGuyCharacterModel.h:76
bool myGenerateActionSpeedFlag
Definition: DtDiGuyCharacterModel.h:459
helper struct for data loaded from light config file
Definition: DtDiGuyScenario.h:68
static osg::Group * DiguyAttachGroup
Definition: DtDiGuyCharacterModel.h:514
bool myCouldBePostureTransitioning
Definition: DtDiGuyCharacterModel.h:492
boost::unordered_map< std::string, bool > SensorRegionStateMap
Definition: DtDiGuyCharacterModel.h:494
float m_gaze_az
Definition: DtDiGuyCharacterModel.h:475
bool myWeaponDeployedFlag
Definition: DtDiGuyCharacterModel.h:460
bool myEnabled
Definition: DtDiGuyCharacterModel.h:489
float m_aim_az
Definition: DtDiGuyCharacterModel.h:473
DtLastForceActionParams()
Definition: DtDiGuyCharacterModel.h:51
diguyCharacter * myCharacter
Definition: DtDiGuyCharacterModel.h:454
DtDiGuyScenario * myDtScenario
Definition: DtDiGuyCharacterModel.h:449
static void setDiGuyAttachGroup(osg::Group *diguy_attach_pt)
where diguys attach to the scene graph
Definition: DtDiGuyCharacterModel.h:420
std::string myName
Definition: DtDiGuyCharacterModel.h:61
DtVector myWorldPosition
Definition: DtDiGuyCharacterModel.h:452
bool myIsOccupant
Definition: DtDiGuyCharacterModel.h:487
diguyCharacterGuide * myGuide
Definition: DtDiGuyCharacterModel.h:455
Contains the makVrv::DtCharacterModel class declaration.
DI-Guy Character model.
Definition: DtDiGuyCharacterModel.h:100
a class to quickly render a bunch of basic primitives as debugging aids basic overview, create an adapter that inherits from DtDebugDrawCallbackInterface then call DtOsgGizmoRenderer::addDebugDrawerCallback() to register it with the system.
Definition: DtOsgGizmoRenderer.h:136
float mySpeed
Definition: DtDiGuyCharacterModel.h:62
bool m_vehicle
Definition: DtDiGuyCharacterModel.h:465
bool m_turreted_vehicle
Definition: DtDiGuyCharacterModel.h:464
A special human character model.
Definition: DtCharacterModel.h:20
Contains DLL export macros.
int myIndex
index of light in light point drawable
Definition: DtDiGuyCharacterModel.h:83
helper struct for tracking an added light
Definition: DtDiGuyCharacterModel.h:71
SensorRegionStateMap mySensorRegionMap
Definition: DtDiGuyCharacterModel.h:495
float m_aim_el
Definition: DtDiGuyCharacterModel.h:474
bool myActive
is it on
Definition: DtDiGuyCharacterModel.h:85
virtual DtSceneObject * sceneObject()
Definition: DtDiGuyCharacterModel.h:397
bool myEnableAnimationSmoothing
Definition: DtDiGuyCharacterModel.h:479
bool myVRForcesEntity
Definition: DtDiGuyCharacterModel.h:463
bool m_character_can_aim
Definition: DtDiGuyCharacterModel.h:477
std::vector< DtDiGuyLightRtInfo > myLights
Definition: DtDiGuyCharacterModel.h:497
bool myUsingActionPositioningFlag
Definition: DtDiGuyCharacterModel.h:457
diguyGraphicsLink * myLink
pointer to light link
Definition: DtDiGuyCharacterModel.h:81
DtVector myOffset
Definition: DtDiGuyCharacterModel.h:64
DtUniqueID mySceneObjectId
Definition: DtDiGuyCharacterModel.h:466
int myAutoTransition
Definition: DtDiGuyCharacterModel.h:65
const DtTaitBryan & getOrientation()
Definition: DtDiGuyCharacterModel.h:156
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool myUsePositioning
Definition: DtDiGuyCharacterModel.h:63
DtTaitBryan myWorldOrientation
Definition: DtDiGuyCharacterModel.h:451
struct for the last action that happened
Definition: DtDiGuyCharacterModel.h:49
DtCoordTransform m_topoToGeoc
Definition: DtDiGuyCharacterModel.h:501
virtual bool getVRForcesEntity()
Definition: DtDiGuyCharacterModel.h:285
bool myTerrainHasChanged
Definition: DtDiGuyCharacterModel.h:480
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:41
Derived diguyGraphicsLink to create OSG transforms and base node to hang shape objects on...
Definition: DtDiGuyOsgGraphicsLink.h:171
float myTransitionSpeed
Definition: DtDiGuyCharacterModel.h:66
A model which owns a single model instance.
Definition: DtModel.h:55
bool myUseTransitions
Definition: DtDiGuyCharacterModel.h:484
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
bool myGenerateAutomaticActionFlag
Definition: DtDiGuyCharacterModel.h:458
bool getIsVehicle()
Definition: DtDiGuyCharacterModel.h:352
#define DT_DLL_VRVDIGUY
Definition: vrvDiGuy.h:21
bool myFullUpdateFlag
Definition: DtDiGuyCharacterModel.h:461
voidpf uLong offset
Definition: ioapi.h:42
const DtVector & getPosition()
Definition: DtDiGuyCharacterModel.h:146
DtLastForceActionParams myLastForceAction
Definition: DtDiGuyCharacterModel.h:467
bool myEmbarkedFlag
Definition: DtDiGuyCharacterModel.h:462
Owns a DiGuy scenario for the application.
Definition: DtDiGuyScenario.h:77
DtSceneObject * mySceneObject
Definition: DtDiGuyCharacterModel.h:471
DtCoordTransform m_geocToTopo
Definition: DtDiGuyCharacterModel.h:500