14 #include <osg/Geometry>
15 #include <osg/ref_ptr>
17 #include <matrix/topoCoord.h>
19 #include <boost/unordered_map.hpp>
25 class diguyCharacterGuide;
35 class DtDeadReckonUpdater;
37 class DtDiGuyOsgGraphicsLink;
38 class DtDiGuyScenario;
40 class DtOsgSceneConnector;
42 class DtSceneObjectAgent;
43 class DtSceneObjectUpdater;
44 class DtOsgGizmoRenderer;
45 class DtDiGuyMotionController;
47 struct DtDiguyLightConfig;
88 , myConnectionPoint( false )
141 virtual void setModelDefinition(
const std::string& modelDefinition);
147 diguyCharacter* character();
154 virtual const std::string& className()
const;
161 virtual void removeFromScene();
166 void setPositionAndVelocityState(
const DtVector& vrvLoc,
const DtTaitBryan& vrvOri,
const DtVector32& vrvVel,
167 const DtVector32& vrvAngularVel,
bool needsTopoUpdate);
171 virtual void setPosition(
int vtx,
const DtVector& position);
176 virtual void setPositionOffset(
const DtVector& position);
181 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation);
186 virtual void setOrientationOffset(
const DtTaitBryan& orientationOffset);
191 virtual void setPositionAndOrientation(
int vtx,
const DtVector& position,
const DtTaitBryan& orientation);
197 virtual void setCharacterModel(
const std::string& characterType);
203 virtual void setDefaultAppearance(
const std::string& appearanceName );
205 virtual void setAppearance(
const std::string& appearanceName );
208 virtual void setHeadAppearance(
const std::string& appearanceName );
210 virtual void setItemAppearance(
const std::string& appearanceName );
212 virtual void setCharacterEquipment(
const std::string& appearanceName );
215 virtual void setUnit(
unsigned short country,
unsigned char service,
unsigned short patch,
bool setPersonal )
override;
217 virtual void setPersonalUnit(
unsigned short country,
unsigned char service,
unsigned short patch )
override;
219 virtual void setRank(
unsigned short country,
unsigned char service,
unsigned short patch )
override;
221 virtual void setCharacterName(
const std::string& name )
override;
226 virtual void setFlamesPresent(
bool val);
228 virtual void setEnginePlume(
bool val);
230 virtual void setEngineSmoke(
bool val);
232 virtual void setTrailState(
bool val);
234 virtual void setLightState(
unsigned int light,
unsigned int lightState);
238 virtual void beginAppearanceEffect(
const std::string& effect,
const std::string& overrideLink,
239 float overrideScale,
const DtVector& overrideOffset,
float overrideDuration);
241 virtual void endAppearanceEffect(
int instant,
const std::string& effect,
const std::string& overrideLink);
244 virtual void executeGesture(
const std::string& gestureName,
int reps,
245 float overallDuration,
float channelAWeight);
247 virtual void endGesture(
const std::string& gestureName,
float rampDown);
253 virtual void setEnableAnimationSmoothing(
bool);
256 virtual bool enableAnimationSmoothing()
const;
258 virtual void setDesiredAction(
const std::string& action,
float speed);
261 virtual void fireWeapon();
269 virtual void forceAction(
const std::string& action,
float speed,
bool usePositioning,
270 const DtVector&
offset,
int autoChooseTransitionBehavior,
float transitionSpeedScale );
273 virtual int currentArcChangeCb(diguyCharacter* character);
276 virtual void forceTemporaryAction(
const std::string& action,
double duration);
280 virtual void unforceAction();
283 virtual void setSpeed(
float speed);
286 virtual void setPosture(
int posture);
289 virtual bool weaponDeployed()
const override;
300 void setFullUpdateNeeded(
bool updated);
303 bool fullUpdateNeeded()
const;
307 virtual void die(
const std::string& deathAction);
310 virtual void revive(
const std::string& aliveAction);
313 virtual void setPaused(
bool paused);
323 bool autoGenerateActions()
const;
328 bool autoGenerateActionSpeed()
const;
332 virtual void setModelScalingEnabled(
bool b);
334 virtual void setIsSupportModel(
bool isSupport);
337 virtual void setEmbarked(
bool embarkedState);
338 virtual bool embarked()
const;
341 virtual void setStationName(
int name);
342 virtual int getStationName()
const;
345 virtual void setStationNumber(DtU16 number);
347 virtual void setScale(
const DtVector& scale);
348 virtual void setWeight(
float weightScale);
350 virtual void setPartOrientation(
int partNumber,
351 const DtTaitBryan& orientation,
const DtVector& rotationalVelocity);
353 virtual void setPartTranslation(
int partNumber,
357 virtual void setLinkRotationOverride(
const std::string& linkName,
const DtTaitBryan& rotation,
361 virtual void setLinkTranslationOverride(
const std::string& linkName,
const DtVector& offsets,
365 virtual void setPartVisibility(
int partNumber,
bool visible);
369 void updateAimingAndGaze();
373 virtual diguyCharacterGuide* getGuide();
374 virtual void setGuide(diguyCharacterGuide* guide);
381 virtual void setupCoordSystem(
const DtVector& vrvLoc,
bool overrideEmbarked =
false );
384 virtual bool getAndResetTerrainHasChangedBit();
387 virtual void setTerrainHasChanged();
392 void convertToLocalFrame(
393 const DtVector32& velocity,
const DtTaitBryan& orientation,
394 DtVector32& outVelocity, DtTaitBryan& outOrientation);
398 virtual void setSelected(
bool value);
399 virtual bool selected();
400 virtual void setTextureVariations(std::vector<DtCharacterTextureVariationInfo>& varationInfoArray,
int force)
override;
403 virtual void setDynamicSensorRegion(
const std::string& region,
bool state);
406 virtual bool dynamicSensorRegion(
const std::string& region);
409 virtual DtVector positionOffsetWorld();
412 virtual bool hasPositionOffset();
417 virtual DtTaitBryan orientationOffsetWithBase(
const DtTaitBryan& baseOri);
420 virtual bool hasOrientationOffset();
425 virtual void setUseTransitions(
bool use);
428 virtual bool useTransitions();
431 virtual void setEnabled(
bool enabled);
434 virtual bool enabled();
437 virtual void setIsOccupant(
bool occupant);
440 virtual bool occupant();
445 virtual bool isPostureTransitioning();
449 virtual bool usingActionPositioningFlag();
452 virtual void updateLights();
464 std::vector<DtDiGuyLightRtInfo>& lights();
477 virtual void setSceneObjectIdOnCollisionBoxes();
486 virtual void updateModelInstance();
490 virtual void updateVisibility();
493 virtual void createLights(
int id);
557 #ifdef VISUALIZE_DIGUY_VELOCITY
const EventStreamList & recentActions()
Definition: DtDiGuyCharacterModel.h:467
float m_gaze_el
Definition: DtDiGuyCharacterModel.h:526
The base class for all model instances.
Definition: DtModelInstance.h:41
DtDiGuyLightRtInfo()
Definition: DtDiGuyCharacterModel.h:83
const DtDiguyLightConfig * myDesc
config data
Definition: DtDiGuyCharacterModel.h:93
bool myGenerateActionSpeedFlag
Definition: DtDiGuyCharacterModel.h:510
helper struct for data loaded from light config file
Definition: DtDiGuyScenario.h:68
bool mySelected
Definition: DtDiGuyCharacterModel.h:541
static osg::Group * DiguyAttachGroup
Definition: DtDiGuyCharacterModel.h:574
bool myConnectionPoint
Definition: DtDiGuyCharacterModel.h:104
bool myCouldBePostureTransitioning
Definition: DtDiGuyCharacterModel.h:543
boost::unordered_map< std::string, bool > SensorRegionStateMap
Definition: DtDiGuyCharacterModel.h:545
float m_gaze_az
Definition: DtDiGuyCharacterModel.h:525
bool myEnabled
Definition: DtDiGuyCharacterModel.h:539
float m_aim_az
Definition: DtDiGuyCharacterModel.h:523
std::list< std::string > myWeaponFireDynamicRegions
Definition: DtDiGuyCharacterModel.h:569
DtLastForceActionParams()
Definition: DtDiGuyCharacterModel.h:53
diguyCharacter * myCharacter
Definition: DtDiGuyCharacterModel.h:503
DtDiGuyScenario * myDtScenario
Definition: DtDiGuyCharacterModel.h:498
static void setDiGuyAttachGroup(osg::Group *diguy_attach_pt)
where diguys attach to the scene graph
Definition: DtDiGuyCharacterModel.h:473
std::string myName
Definition: DtDiGuyCharacterModel.h:63
DtVector myWorldPosition
Definition: DtDiGuyCharacterModel.h:501
bool myIsOccupant
Definition: DtDiGuyCharacterModel.h:537
diguyCharacterGuide * myGuide
Definition: DtDiGuyCharacterModel.h:504
osg::Matrix myOffsetMat
Definition: DtDiGuyCharacterModel.h:99
Contains the makVrv::DtCharacterModel class declaration.
DI-Guy Character model. This class manages a DI-Guy character (diguyCharacter) instance and makes cal...
Definition: DtDiGuyCharacterModel.h:119
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. Your code will then get called while the system is drawing, user should then add various primitives that will get rendered in one big batch after all the callbacks. See DtOsgLightDebugAdapter::drawDebugLines() for an example.
Definition: DtOsgGizmoRenderer.h:44
float mySpeed
Definition: DtDiGuyCharacterModel.h:64
std::list< std::string > myAliveStateDynamicRegions
Definition: DtDiGuyCharacterModel.h:568
bool m_vehicle
Definition: DtDiGuyCharacterModel.h:515
bool m_turreted_vehicle
Definition: DtDiGuyCharacterModel.h:514
A special human character model.
Definition: DtCharacterModel.h:25
Contains DLL export macros.
int myIndex
index of light in light point drawable
Definition: DtDiGuyCharacterModel.h:101
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:42
DtDiGuyMotionController * myDiGuyMotionController
Definition: DtDiGuyCharacterModel.h:571
helper struct for tracking an added light
Definition: DtDiGuyCharacterModel.h:81
SensorRegionStateMap mySensorRegionMap
Definition: DtDiGuyCharacterModel.h:546
float m_aim_el
Definition: DtDiGuyCharacterModel.h:524
bool myActive
is it on
Definition: DtDiGuyCharacterModel.h:103
virtual DtSceneObject * sceneObject()
Definition: DtDiGuyCharacterModel.h:442
int myStationName
Definition: DtDiGuyCharacterModel.h:506
bool myEnableAnimationSmoothing
Definition: DtDiGuyCharacterModel.h:529
bool myVRForcesEntity
Definition: DtDiGuyCharacterModel.h:513
const EventStreamList & recentHandItems()
Definition: DtDiGuyCharacterModel.h:468
bool m_character_can_aim
Definition: DtDiGuyCharacterModel.h:527
std::vector< DtDiGuyLightRtInfo > myLights
Definition: DtDiGuyCharacterModel.h:548
bool myUsingActionPositioningFlag
Definition: DtDiGuyCharacterModel.h:508
diguyGraphicsLink * myLink
pointer to light link
Definition: DtDiGuyCharacterModel.h:98
DtVector myOffset
Definition: DtDiGuyCharacterModel.h:66
std::list< DtDiGuyDebugEventStream > EventStreamList
Definition: DtDiGuyCharacterModel.h:123
DtUniqueID mySceneObjectId
Definition: DtDiGuyCharacterModel.h:516
int myAutoTransition
Definition: DtDiGuyCharacterModel.h:67
const DtTaitBryan & getOrientation()
Definition: DtDiGuyCharacterModel.h:182
double m_time
Definition: DtDiGuyCharacterModel.h:77
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool myUsePositioning
Definition: DtDiGuyCharacterModel.h:65
DtTaitBryan myWorldOrientation
Definition: DtDiGuyCharacterModel.h:500
struct for the last action that happened
Definition: DtDiGuyCharacterModel.h:51
WeaponState
Definition: DtEntityStateListener.h:101
std::string m_action
Definition: DtDiGuyCharacterModel.h:76
Definition: DtDiGuyCharacterModel.h:74
DtCoordTransform m_topoToGeoc
Definition: DtDiGuyCharacterModel.h:552
virtual bool getVRForcesEntity()
Definition: DtDiGuyCharacterModel.h:318
bool myTerrainHasChanged
Definition: DtDiGuyCharacterModel.h:530
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:44
Derived diguyGraphicsLink to create OSG transforms and base node to hang shape objects on...
Definition: DtDiGuyOsgGraphicsLink.h:177
float myTransitionSpeed
Definition: DtDiGuyCharacterModel.h:68
A model which owns a single model instance. A DtModel is a managing container for a single DtModelIns...
Definition: DtModel.h:56
bool myUseTransitions
Definition: DtDiGuyCharacterModel.h:534
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
bool myGenerateAutomaticActionFlag
Definition: DtDiGuyCharacterModel.h:509
bool getIsVehicle()
Definition: DtDiGuyCharacterModel.h:396
#define DT_DLL_VRVDIGUY
Definition: vrvDiGuy.h:21
std::list< DtDiGuyDebugEventStream > myRecentActions
Definition: DtDiGuyCharacterModel.h:554
A DiGuy based motion controller for objects which have a DI Guy character. This has been extracted fr...
Definition: DtDiGuyMotionController.h:33
DtModelSetId
Definition: DtModelSetEnums.h:19
voidpf uLong offset
Definition: ioapi.h:42
const DtVector & getPosition()
Definition: DtDiGuyCharacterModel.h:172
DtLastForceActionParams myLastForceAction
Definition: DtDiGuyCharacterModel.h:517
bool myEmbarkedFlag
Definition: DtDiGuyCharacterModel.h:512
Owns a DiGuy scenario for the application.
Definition: DtDiGuyScenario.h:87
EntityStateListener::WeaponState myWeaponState
Definition: DtDiGuyCharacterModel.h:511
DtSceneObject * mySceneObject
Definition: DtDiGuyCharacterModel.h:521
std::list< DtDiGuyDebugEventStream > myRecentHandItems
Definition: DtDiGuyCharacterModel.h:555
DtCoordTransform m_geocToTopo
Definition: DtDiGuyCharacterModel.h:551