40#include <vrfmodel/missileMoveToControllerComponent.h>
42#include <vlutil/vlString.h>
43#include <matrix/vlVector.h>
46class DtSimulationServices;
47class DtConstrainedAnalogPort;
86 DtComponentDescriptor* desc = 0, DtReaderWriterRegistry* parentRegistry = 0);
98 virtual const char*
type()
const override;
134 const DtVector& targetVelocity,
const DtVector& targetPoint,
double& maneuverAccelXOut,
double& maneuverAccelYOut,
135 double& maneuverAccelZOut)
override;
164 static DtSimComponent*
creator(
const DtString& name, DtLocalObject* owner, DtSimulationServices* simManager,
165 DtComponentDescriptor* desc = 0, DtReaderWriterRegistry* parentRegistry = 0);
Top and direct attack missile controller descriptor for VREngage.
Definition topAndDirectAttackMissileControllerDescriptor.h:53
double myMaxAltitude
Cached maximum altitude for the current attack mode.
Definition topAndDirectAttackMissileController.h:309
virtual void processTargetPointTask(DtSimMessage *msg) override
Processes a target point task message.
virtual DtVector calculateClimbOutPoint()
Calculates the endpoint for the climb-out flight phase.
virtual bool setupControlPoint() override
Sets up the current control point for missile guidance.
static void objectAddedCallback(const DtLocalObject *simObject, void *usr)
This callback is necessary to make sure the handleUpdateMissileTarget callback is registered in the m...
virtual void lookupAndCacheProcessSR() override
Retrieves and caches the missile flight process state repository.
virtual DtSimObjectReference targetEntity() const override
Gets the currently set target entity.
double myTerminalAngle
Cached terminal angle for the current attack mode.
Definition topAndDirectAttackMissileController.h:302
virtual void setTargetEntity(const DtUUID &entity) override
Sets the target entity that the missile should fly to.
virtual void calculateSteering(const DtVector &relativeVelocity, const DtVector &localPosition, const DtVector &targetVelocity, const DtVector &targetPoint, double &maneuverAccelXOut, double &maneuverAccelYOut, double &maneuverAccelZOut) override
Calculates steering parameters to guide the missile to target.
virtual DtVector calculateAltitudeHoldPoint()
Calculates the control point for the altitude-hold flight phase.
bool myCallbackAdded
Definition topAndDirectAttackMissileController.h:311
bool myLookupWarningSent
Flag to prevent repeated warning messages.
Definition topAndDirectAttackMissileController.h:274
const DtTopAndDirectAttackMissileController & operator=(const DtTopAndDirectAttackMissileController &orig)
Assignment operator (protected, performs shallow copy)
virtual bool reachedTerminalAngleToTarget()
Checks if the missile has reached the terminal angle to target.
DtTopAndDirectAttackMissileController(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Constructor.
static DtSimComponent * creator(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Factory method to create a new instance of this component.
virtual bool reachedClimbOutAltitude()
Checks if the missile has reached its climb-out altitude.
DtTopAndDirectMissileFlightPSR * myVreMissileFlightPSR
Cached pointer to the missile flight process state repository.
Definition topAndDirectAttackMissileController.h:281
virtual void preFirstTickInit() override
Performs initialization before the first simulation tick.
virtual void registerTaskMsgCallbacks() override
Registers message callbacks for handling task messages.
virtual DtVector calculateTerminalPoint()
Calculates the endpoint for the terminal flight phase.
virtual const char * type() const override
Gets the type identifier for this component.
virtual void processObjectAdded(const DtLocalObject *simObject)
static void targetPointCallback(DtSimMessage *msg, void *usr)
Static callback function for target point messages.
virtual ~DtTopAndDirectAttackMissileController() override
Virtual destructor.
DtSimObjectReference myTargetPointer
Reference to the current target entity.
Definition topAndDirectAttackMissileController.h:267
DtTopAndDirectAttackMissileController(const DtTopAndDirectAttackMissileController &orig)
Copy constructor (protected, performs shallow copy)
double myClimbOutAngle
Cached climb-out angle for the current attack mode.
Definition topAndDirectAttackMissileController.h:295
virtual makVre::DtVreMessageResult handleUpdateMissileTarget(makVre::DtVreMessage *msg)
Moves the missile's target waypoint based on the VRE message. Waypoint will have its position updated...
DtTopAndDirectAttackMissileControllerDescriptor * myTopAndDirectAttackMissileControllerDescriptor
Cached pointer to the component descriptor.
Definition topAndDirectAttackMissileController.h:288
DtTopAndDirectAttackMissileController()
Default constructor (protected, not for direct use)
class DtTopAndDirectMissileFlightPSR:
Definition topAndDirectMissileFlightPSR.h:33
Abstract base class for all VREngage messages.
Definition vreMessage.h:50
DtVreSimComponent(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Definition vreSimComponent.h:54
Defines export macros for the vreVrfmodel library.
#define VREVRFMODEL_DLL
Definition export.h:22
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
DtVreMessageResult
Enumeration of possible message handling results.
Definition vreMessage.h:33
const char DtTopAndDirectAttackMissileControllerType[]
Type identifier for the top and direct attack missile controller component.
Definition topAndDirectAttackMissileController.h:59
Defines the central message manager for the VREngage messaging system.
Base template class for VR-Engage simulation components.