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;
86 , myConnectionPoint( false )
135 virtual void setModelDefinition(
const std::string& modelDefinition);
141 diguyCharacter* character();
148 virtual const std::string& className()
const;
151 virtual void addToScene(
const DtUniqueID& sceneObjectId,
int modelSet,
155 virtual void removeFromScene();
160 void setPositionAndVelocityState(
const DtVector& vrvLoc,
const DtTaitBryan& vrvOri,
const DtVector32& vrvVel,
161 const DtVector32& vrvAngularVel,
bool needsTopoUpdate);
165 virtual void setPosition(
int vtx,
const DtVector& position);
170 virtual void setPositionOffset(
const DtVector& position);
175 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation);
180 virtual void setOrientationOffset(
const DtTaitBryan& orientationOffset);
185 virtual void setPositionAndOrientation(
int vtx,
const DtVector& position,
const DtTaitBryan& orientation);
191 virtual void setCharacterModel(
const std::string& characterType);
197 virtual void setDefaultAppearance(
const std::string& appearanceName );
199 virtual void setAppearance(
const std::string& appearanceName );
202 virtual void setHeadAppearance(
const std::string& appearanceName );
204 virtual void setItemAppearance(
const std::string& appearanceName );
206 virtual void setCharacterEquipment(
const std::string& appearanceName );
209 virtual void setUnit(
unsigned short country,
unsigned char service,
unsigned short patch,
bool setPersonal )
override;
211 virtual void setPersonalUnit(
unsigned short country,
unsigned char service,
unsigned short patch )
override;
213 virtual void setRank(
unsigned short country,
unsigned char service,
unsigned short patch )
override;
215 virtual void setCharacterName(
const std::string& name )
override;
220 virtual void setFlamesPresent(
bool val);
222 virtual void setEnginePlume(
bool val);
224 virtual void setEngineSmoke(
bool val);
226 virtual void setTrailState(
bool val);
228 virtual void setLightState(
unsigned int light,
unsigned int lightState);
232 virtual void beginAppearanceEffect(
const std::string& effect,
const std::string& overrideLink,
233 float overrideScale,
const DtVector& overrideOffset,
float overrideDuration);
235 virtual void endAppearanceEffect(
int instant,
const std::string& effect,
const std::string& overrideLink);
238 virtual void executeGesture(
const std::string& gestureName,
int reps,
239 float overallDuration,
float channelAWeight);
241 virtual void endGesture(
const std::string& gestureName,
float rampDown);
247 virtual void setEnableAnimationSmoothing(
bool);
250 virtual bool enableAnimationSmoothing()
const;
252 virtual void setDesiredAction(
const std::string& action,
float speed);
255 virtual void fireWeapon();
263 virtual void forceAction(
const std::string& action,
float speed,
bool usePositioning,
264 const DtVector&
offset,
int autoChooseTransitionBehavior,
float transitionSpeedScale );
267 virtual int currentArcChangeCb(diguyCharacter* character);
270 virtual void forceTemporaryAction(
const std::string& action,
double duration);
274 virtual void unforceAction();
277 virtual void setSpeed(
float speed);
280 virtual void setPosture(
int posture);
283 virtual bool weaponDeployed()
const override;
294 void setFullUpdateNeeded(
bool updated);
297 bool fullUpdateNeeded()
const;
301 virtual void die(
const std::string& deathAction);
304 virtual void revive(
const std::string& aliveAction);
307 virtual void setPaused(
bool paused);
317 bool autoGenerateActions()
const;
322 bool autoGenerateActionSpeed()
const;
326 virtual void setModelScalingEnabled(
bool b);
328 virtual void setIsSupportModel(
bool isSupport);
331 virtual void setEmbarked(
bool embarkedState);
332 virtual bool embarked()
const;
335 virtual void setStationName(
int name);
336 virtual int getStationName()
const;
339 virtual void setStationNumber(DtU16 number);
341 virtual void setScale(
const DtVector& scale);
342 virtual void setWeight(
float weightScale);
344 virtual void setPartOrientation(
int partNumber,
345 const DtTaitBryan& orientation,
const DtVector& rotationalVelocity);
347 virtual void setPartTranslation(
int partNumber,
351 virtual void setLinkRotationOverride(
const std::string& linkName,
const DtTaitBryan& rotation,
355 virtual void setLinkTranslationOverride(
const std::string& linkName,
const DtVector& offsets,
359 virtual void setPartVisibility(
int partNumber,
bool visible);
363 void updateAimingAndGaze();
367 virtual diguyCharacterGuide* getGuide();
368 virtual void setGuide(diguyCharacterGuide* guide);
371 virtual void setupCoordSystem(
const DtVector& vrvLoc,
bool overrideEmbarked =
false);
374 virtual bool getAndResetTerrainHasChangedBit();
377 virtual void setTerrainHasChanged();
382 void convertToLocalFrame(
383 const DtVector32& velocity,
const DtTaitBryan& orientation,
384 DtVector32& outVelocity, DtTaitBryan& outOrientation);
388 virtual void setSelected(
bool value);
389 virtual bool selected();
390 virtual void setTextureVariations(std::vector<DtCharacterTextureVariationInfo>& varationInfoArray,
int force)
override;
393 virtual void setDynamicSensorRegion(
const std::string& region,
bool state);
396 virtual bool dynamicSensorRegion(
const std::string& region);
399 virtual DtVector positionOffsetWorld();
402 virtual bool hasPositionOffset();
407 virtual DtTaitBryan orientationOffsetWithBase(
const DtTaitBryan& baseOri);
410 virtual bool hasOrientationOffset();
415 virtual void setUseTransitions(
bool use);
418 virtual bool useTransitions();
421 virtual void setEnabled(
bool enabled);
424 virtual bool enabled();
427 virtual void setIsOccupant(
bool occupant);
430 virtual bool occupant();
435 virtual bool isPostureTransitioning();
439 virtual bool usingActionPositioningFlag();
442 virtual void updateLights();
454 std::vector<DtDiGuyLightRtInfo>& lights();
457 const std::list< DtDiGuyDebugEventStream>&
recentActions() {
return myRecentActions; }
458 const std::list< DtDiGuyDebugEventStream>&
recentHandItems() {
return myRecentHandItems; }
466 virtual void setSceneObjectIdOnCollisionBoxes();
475 virtual void updateModelInstance();
479 virtual void setMotionModelByName(
const std::string& modelName);
483 virtual void updateVisibility();
486 virtual void createLights(
int id);
551 #ifdef VISUALIZE_DIGUY_VELOCITY
float m_gaze_el
Definition: DtDiGuyCharacterModel.h:520
The base class for all model instances.
Definition: DtModelInstance.h:39
DtDiGuyLightRtInfo()
Definition: DtDiGuyCharacterModel.h:81
const DtDiguyLightConfig * myDesc
config data
Definition: DtDiGuyCharacterModel.h:91
bool myGenerateActionSpeedFlag
Definition: DtDiGuyCharacterModel.h:503
helper struct for data loaded from light config file
Definition: DtDiGuyScenario.h:68
bool mySelected
Definition: DtDiGuyCharacterModel.h:535
static osg::Group * DiguyAttachGroup
Definition: DtDiGuyCharacterModel.h:565
bool myConnectionPoint
Definition: DtDiGuyCharacterModel.h:102
bool myCouldBePostureTransitioning
Definition: DtDiGuyCharacterModel.h:537
boost::unordered_map< std::string, bool > SensorRegionStateMap
Definition: DtDiGuyCharacterModel.h:539
float m_gaze_az
Definition: DtDiGuyCharacterModel.h:519
bool myEnabled
Definition: DtDiGuyCharacterModel.h:533
float m_aim_az
Definition: DtDiGuyCharacterModel.h:517
std::list< std::string > myWeaponFireDynamicRegions
Definition: DtDiGuyCharacterModel.h:562
DtLastForceActionParams()
Definition: DtDiGuyCharacterModel.h:51
diguyCharacter * myCharacter
Definition: DtDiGuyCharacterModel.h:496
DtDiGuyScenario * myDtScenario
Definition: DtDiGuyCharacterModel.h:491
static void setDiGuyAttachGroup(osg::Group *diguy_attach_pt)
where diguys attach to the scene graph
Definition: DtDiGuyCharacterModel.h:462
std::string myName
Definition: DtDiGuyCharacterModel.h:61
DtVector myWorldPosition
Definition: DtDiGuyCharacterModel.h:494
bool myIsOccupant
Definition: DtDiGuyCharacterModel.h:531
diguyCharacterGuide * myGuide
Definition: DtDiGuyCharacterModel.h:497
osg::Matrix myOffsetMat
Definition: DtDiGuyCharacterModel.h:97
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:117
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:62
std::list< std::string > myAliveStateDynamicRegions
Definition: DtDiGuyCharacterModel.h:561
bool m_vehicle
Definition: DtDiGuyCharacterModel.h:509
bool m_turreted_vehicle
Definition: DtDiGuyCharacterModel.h:508
A special human character model.
Definition: DtCharacterModel.h:22
Contains DLL export macros.
int myIndex
index of light in light point drawable
Definition: DtDiGuyCharacterModel.h:99
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:38
const std::list< DtDiGuyDebugEventStream > & recentHandItems()
Definition: DtDiGuyCharacterModel.h:458
helper struct for tracking an added light
Definition: DtDiGuyCharacterModel.h:79
SensorRegionStateMap mySensorRegionMap
Definition: DtDiGuyCharacterModel.h:540
float m_aim_el
Definition: DtDiGuyCharacterModel.h:518
bool myActive
is it on
Definition: DtDiGuyCharacterModel.h:101
virtual DtSceneObject * sceneObject()
Definition: DtDiGuyCharacterModel.h:432
int myStationName
Definition: DtDiGuyCharacterModel.h:499
bool myEnableAnimationSmoothing
Definition: DtDiGuyCharacterModel.h:523
bool myVRForcesEntity
Definition: DtDiGuyCharacterModel.h:507
bool m_character_can_aim
Definition: DtDiGuyCharacterModel.h:521
std::vector< DtDiGuyLightRtInfo > myLights
Definition: DtDiGuyCharacterModel.h:542
bool myUsingActionPositioningFlag
Definition: DtDiGuyCharacterModel.h:501
diguyGraphicsLink * myLink
pointer to light link
Definition: DtDiGuyCharacterModel.h:96
DtVector myOffset
Definition: DtDiGuyCharacterModel.h:64
DtUniqueID mySceneObjectId
Definition: DtDiGuyCharacterModel.h:510
int myAutoTransition
Definition: DtDiGuyCharacterModel.h:65
const DtTaitBryan & getOrientation()
Definition: DtDiGuyCharacterModel.h:176
double m_time
Definition: DtDiGuyCharacterModel.h:75
bool myUsePositioning
Definition: DtDiGuyCharacterModel.h:63
DtTaitBryan myWorldOrientation
Definition: DtDiGuyCharacterModel.h:493
struct for the last action that happened
Definition: DtDiGuyCharacterModel.h:49
WeaponState
Definition: DtEntityStateListener.h:96
std::string m_action
Definition: DtDiGuyCharacterModel.h:74
Definition: DtDiGuyCharacterModel.h:72
DtCoordTransform m_topoToGeoc
Definition: DtDiGuyCharacterModel.h:546
virtual bool getVRForcesEntity()
Definition: DtDiGuyCharacterModel.h:312
bool myTerrainHasChanged
Definition: DtDiGuyCharacterModel.h:524
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:42
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. A DtModel is a managing container for a single DtModelIns...
Definition: DtModel.h:55
bool myUseTransitions
Definition: DtDiGuyCharacterModel.h:528
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:70
bool myGenerateAutomaticActionFlag
Definition: DtDiGuyCharacterModel.h:502
bool getIsVehicle()
Definition: DtDiGuyCharacterModel.h:386
#define DT_DLL_VRVDIGUY
Definition: vrvDiGuy.h:21
std::list< DtDiGuyDebugEventStream > myRecentActions
Definition: DtDiGuyCharacterModel.h:548
bool myFullUpdateFlag
Definition: DtDiGuyCharacterModel.h:505
voidpf uLong offset
Definition: ioapi.h:42
const DtVector & getPosition()
Definition: DtDiGuyCharacterModel.h:166
DtLastForceActionParams myLastForceAction
Definition: DtDiGuyCharacterModel.h:511
bool myEmbarkedFlag
Definition: DtDiGuyCharacterModel.h:506
const std::list< DtDiGuyDebugEventStream > & recentActions()
Definition: DtDiGuyCharacterModel.h:457
Owns a DiGuy scenario for the application.
Definition: DtDiGuyScenario.h:87
EntityStateListener::WeaponState myWeaponState
Definition: DtDiGuyCharacterModel.h:504
DtSceneObject * mySceneObject
Definition: DtDiGuyCharacterModel.h:515
std::list< DtDiGuyDebugEventStream > myRecentHandItems
Definition: DtDiGuyCharacterModel.h:549
DtCoordTransform m_geocToTopo
Definition: DtDiGuyCharacterModel.h:545