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 )
143 virtual void setModelDefinition(
const std::string& modelDefinition);
149 diguyCharacter* character();
156 virtual const std::string& className()
const;
163 virtual void removeFromScene();
168 void setPositionAndVelocityState(
const DtVector& vrvLoc,
const DtTaitBryan& vrvOri,
const DtVector32& vrvVel,
169 const DtVector32& vrvAngularVel,
bool needsTopoUpdate);
173 virtual void setPosition(
int vtx,
const DtVector& position);
178 virtual void setPositionOffset(
const DtVector& position);
183 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation);
188 virtual void setOrientationOffset(
const DtTaitBryan& orientationOffset);
193 virtual void setPositionAndOrientation(
int vtx,
const DtVector& position,
const DtTaitBryan& orientation);
199 virtual void setCharacterModel(
const std::string& characterType);
205 virtual void setDefaultAppearance(
const std::string& appearanceName );
207 virtual void setAppearance(
const std::string& appearanceName );
210 virtual void setHeadAppearance(
const std::string& appearanceName );
212 virtual void setItemAppearance(
const std::string& appearanceName );
214 virtual void setCharacterEquipment(
const std::string& appearanceName );
217 virtual void setUnit(
unsigned short country,
unsigned char service,
unsigned short patch,
bool setPersonal )
override;
219 virtual void setPersonalUnit(
unsigned short country,
unsigned char service,
unsigned short patch )
override;
221 virtual void setRank(
unsigned short country,
unsigned char service,
unsigned short patch )
override;
223 virtual void setCharacterName(
const std::string& name )
override;
228 virtual void setFlamesPresent(
bool val);
230 virtual void setEnginePlume(
bool val);
232 virtual void setEngineSmoke(
bool val);
234 virtual void setTrailState(
bool val);
236 virtual void setLightState(
unsigned int light,
unsigned int lightState);
240 virtual void beginAppearanceEffect(
const std::string& effect,
const std::string& overrideLink,
241 float overrideScale,
const DtVector& overrideOffset,
float overrideDuration);
243 virtual void endAppearanceEffect(
int instant,
const std::string& effect,
const std::string& overrideLink);
246 virtual void executeGesture(
const std::string& gestureName,
int reps,
247 float overallDuration,
float channelAWeight);
249 virtual void endGesture(
const std::string& gestureName,
float rampDown);
255 virtual void setEnableAnimationSmoothing(
bool);
258 virtual bool enableAnimationSmoothing()
const;
260 virtual void setDesiredAction(
const std::string& action,
float speed);
263 virtual void fireWeapon();
271 virtual void forceAction(
const std::string& action,
float speed,
bool usePositioning,
272 const DtVector&
offset,
int autoChooseTransitionBehavior,
float transitionSpeedScale );
275 virtual int currentArcChangeCb(diguyCharacter* character);
278 virtual void forceTemporaryAction(
const std::string& action,
double duration);
282 virtual void unforceAction();
285 virtual void setSpeed(
float speed);
288 virtual void setPosture(
int posture);
291 virtual bool weaponDeployed()
const override;
302 void setFullUpdateNeeded(
bool updated);
305 bool fullUpdateNeeded()
const;
309 virtual void die(
const std::string& deathAction);
312 virtual void revive(
const std::string& aliveAction);
315 virtual void setPaused(
bool paused);
325 bool autoGenerateActions()
const;
330 bool autoGenerateActionSpeed()
const;
334 virtual void setModelScalingEnabled(
bool b);
336 virtual void setIsSupportModel(
bool isSupport);
339 virtual void setEmbarked(
bool embarkedState);
340 virtual bool embarked()
const;
343 virtual void setStationName(
int name);
344 virtual int getStationName()
const;
347 virtual void setStationNumber(DtU16 number);
349 virtual void setScale(
const DtVector& scale);
350 virtual void setWeight(
float weightScale);
352 virtual void setPartOrientation(
int partNumber,
353 const DtTaitBryan& orientation,
const DtVector& rotationalVelocity);
355 virtual void setPartTranslation(
int partNumber,
356 const DtVector& translation,
const DtVector& velocity);
359 virtual void setLinkRotationOverride(
const std::string& linkName,
const DtTaitBryan& rotation,
363 virtual void setLinkTranslationOverride(
const std::string& linkName,
const DtVector& offsets,
367 virtual void setPartVisibility(
int partNumber,
bool visible);
370 virtual void removePart(
unsigned int partNumber );
375 void updateAimingAndGaze();
379 virtual diguyCharacterGuide* getGuide();
380 virtual void setGuide(diguyCharacterGuide* guide);
387 virtual void setupCoordSystem(
const DtVector& vrvLoc,
bool overrideEmbarked =
false );
390 virtual bool getAndResetTerrainHasChangedBit();
393 virtual void setTerrainHasChanged();
398 void convertToLocalFrame(
399 const DtVector32& velocity,
const DtTaitBryan& orientation,
400 DtVector32& outVelocity, DtTaitBryan& outOrientation);
404 virtual void setSelected(
bool value);
405 virtual bool selected();
406 virtual void setTextureVariations(std::vector<DtCharacterTextureVariationInfo>& varationInfoArray,
int force)
override;
409 virtual void setDynamicSensorRegion(
const std::string& region,
bool state);
412 virtual bool dynamicSensorRegion(
const std::string& region);
415 virtual DtVector positionOffsetWorld();
418 virtual bool hasPositionOffset();
423 virtual DtTaitBryan orientationOffsetWithBase(
const DtTaitBryan& baseOri);
426 virtual bool hasOrientationOffset();
431 virtual void setUseTransitions(
bool use);
434 virtual bool useTransitions();
437 virtual void setEnabled(
bool enabled);
440 virtual bool enabled();
443 virtual void setIsOccupant(
bool occupant);
446 virtual bool occupant();
451 virtual bool isPostureTransitioning();
455 virtual bool usingActionPositioningFlag();
458 virtual void updateLights();
470 std::vector<DtDiGuyLightRtInfo>& lights();
483 virtual void setSceneObjectIdOnCollisionBoxes();
492 virtual void updateModelInstance();
496 virtual void updateVisibility();
499 virtual void createLights(
int id);
503 virtual void setCharacter(diguyCharacter* character);
506 virtual bool shouldUpdateAppearance(
const std::string& appearanceName)
const;
509 virtual void setAndTrackAppearance(
const std::string& appearanceName);
573 #ifdef VISUALIZE_DIGUY_VELOCITY
const EventStreamList & recentActions()
Definition: DtDiGuyCharacterModel.h:473
float m_gaze_el
Definition: DtDiGuyCharacterModel.h:542
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:526
helper struct for data loaded from light config file
Definition: DtDiGuyScenario.h:68
bool mySelected
Definition: DtDiGuyCharacterModel.h:557
static osg::Group * DiguyAttachGroup
Definition: DtDiGuyCharacterModel.h:590
bool myConnectionPoint
Definition: DtDiGuyCharacterModel.h:104
bool myCouldBePostureTransitioning
Definition: DtDiGuyCharacterModel.h:559
boost::unordered_map< std::string, bool > SensorRegionStateMap
Definition: DtDiGuyCharacterModel.h:561
float m_gaze_az
Definition: DtDiGuyCharacterModel.h:541
bool myEnabled
Definition: DtDiGuyCharacterModel.h:555
float m_aim_az
Definition: DtDiGuyCharacterModel.h:539
std::list< std::string > myWeaponFireDynamicRegions
Definition: DtDiGuyCharacterModel.h:585
DtLastForceActionParams()
Definition: DtDiGuyCharacterModel.h:53
diguyCharacter * myCharacter
Definition: DtDiGuyCharacterModel.h:518
DtDiGuyScenario * myDtScenario
Definition: DtDiGuyCharacterModel.h:513
static void setDiGuyAttachGroup(osg::Group *diguy_attach_pt)
where diguys attach to the scene graph
Definition: DtDiGuyCharacterModel.h:479
std::string myName
Definition: DtDiGuyCharacterModel.h:63
DtVector myWorldPosition
Definition: DtDiGuyCharacterModel.h:516
bool myIsOccupant
Definition: DtDiGuyCharacterModel.h:553
diguyCharacterGuide * myGuide
Definition: DtDiGuyCharacterModel.h:519
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:584
bool m_vehicle
Definition: DtDiGuyCharacterModel.h:531
bool m_turreted_vehicle
Definition: DtDiGuyCharacterModel.h:530
A special human character model.
Definition: DtCharacterModel.h:26
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:587
helper struct for tracking an added light
Definition: DtDiGuyCharacterModel.h:81
SensorRegionStateMap mySensorRegionMap
Definition: DtDiGuyCharacterModel.h:562
float m_aim_el
Definition: DtDiGuyCharacterModel.h:540
bool myActive
is it on
Definition: DtDiGuyCharacterModel.h:103
virtual DtSceneObject * sceneObject()
Definition: DtDiGuyCharacterModel.h:448
int myStationName
Definition: DtDiGuyCharacterModel.h:521
bool myEnableAnimationSmoothing
Definition: DtDiGuyCharacterModel.h:545
bool myVRForcesEntity
Definition: DtDiGuyCharacterModel.h:529
const EventStreamList & recentHandItems()
Definition: DtDiGuyCharacterModel.h:474
bool m_character_can_aim
Definition: DtDiGuyCharacterModel.h:543
std::vector< DtDiGuyLightRtInfo > myLights
Definition: DtDiGuyCharacterModel.h:564
bool myUsingActionPositioningFlag
Definition: DtDiGuyCharacterModel.h:524
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:532
int myAutoTransition
Definition: DtDiGuyCharacterModel.h:67
const DtTaitBryan & getOrientation()
Definition: DtDiGuyCharacterModel.h:184
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:515
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:568
virtual bool getVRForcesEntity()
Definition: DtDiGuyCharacterModel.h:320
bool myTerrainHasChanged
Definition: DtDiGuyCharacterModel.h:546
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:185
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:550
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:76
bool myGenerateAutomaticActionFlag
Definition: DtDiGuyCharacterModel.h:525
bool getIsVehicle()
Definition: DtDiGuyCharacterModel.h:402
#define DT_DLL_VRVDIGUY
Definition: vrvDiGuy.h:21
std::list< DtDiGuyDebugEventStream > myRecentActions
Definition: DtDiGuyCharacterModel.h:570
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:174
bool myAppearanceHasBeenSet
Definition: DtDiGuyCharacterModel.h:523
DtLastForceActionParams myLastForceAction
Definition: DtDiGuyCharacterModel.h:533
bool myEmbarkedFlag
Definition: DtDiGuyCharacterModel.h:528
Owns a DiGuy scenario for the application.
Definition: DtDiGuyScenario.h:87
EntityStateListener::WeaponState myWeaponState
Definition: DtDiGuyCharacterModel.h:527
DtSceneObject * mySceneObject
Definition: DtDiGuyCharacterModel.h:537
std::list< DtDiGuyDebugEventStream > myRecentHandItems
Definition: DtDiGuyCharacterModel.h:571
DtCoordTransform m_geocToTopo
Definition: DtDiGuyCharacterModel.h:567