18 #include <boost/signals2.hpp>
20 class Dt3dBoundingVolume;
28 class DtLaserDesignatorStateComponent;
29 class DtFrameStateInterface;
73 virtual bool registerRadioMessageCallbacks();
80 virtual bool createPSR();
87 virtual const char*
type()
const;
101 virtual bool checkAlive();
104 virtual bool checkTrigger();
107 virtual bool checkArmed();
116 virtual bool checkProximityDetonate(
DtVector& detonationLocation);
119 virtual bool checkTargetMiss();
122 virtual void checkMissileDetonation();
139 virtual const DtSimObject* detectCollision(
double& distToImpactSqrd,
148 virtual bool preventCollisionsWithMatchingTypes();
161 virtual bool checkEntityForCollision(
const DtSimObject* collidee,
const DtVector& missilePath,
162 const DtVector& missileBoxCenter,
DtVector& detonLocationOut,
double& distToImpactSqrd);
182 virtual bool checkForGroundImpact(
double& distToImpactSqrd,
183 DtVector& impactPoint, DtDetonationResult& result,
bool& dataAvailable);
189 virtual void sendDetonation(
const DtSimObject* impactedEntity,
195 virtual void sendDetonation(DtDetonationResult result,
201 virtual void destroyAndRemoveEntity();
204 bool detonationInAir(
const DtVector& localPosition)
const;
207 static void setWarheadInfoCallback(
DtSimMessage* msg,
void* usr);
210 static void setLocationCallback(
DtSimMessage * msg,
void * usrData);
214 virtual void processWarheadInfoCallback(
DtSimMessage* msg);
218 virtual void processSetLocationCallback();
229 static void objectAboutToBeRemovedCallback(
const DtLocalObject*
object,
void* usr);
230 virtual void processObjectAboutToBeRemoved(
const DtLocalObject*
object);
234 virtual bool movingUp()
const;
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
boost::signals2::scoped_connection myLaserDesignatorRemovedConnection
Definition: warheadDetonationActuator.h:290
DtSimObjectReference myTargetObject
This is here for performance – the real target is specified by the name in the PSR. We don't want to look up that name every tick.
Definition: warheadDetonationActuator.h:285
const DtActuatorComponent & operator=(const DtActuatorComponent &orig)
assignment operator
DtManagedObjectListConstPtr myPlatformsList
Definition: warheadDetonationActuator.h:306
virtual bool init()
Overridden to cache a pointer to the entity's radio in this class.
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
const makVrf::DtLaserDesignatorStateComponent * myLaserDesignator
Cached pointer to the designator specified in the PSR, prevents a lookup each tick when a detonation ...
Definition: warheadDetonationActuator.h:289
DtBooleanInputPort * myTriggerInputPort
Input Port Name: trigger Input Port Description: Checks to see if the trigger was set...
Definition: warheadDetonationActuator.h:263
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
DtBooleanInputPort * myArmedInputPort
Input Port Name: armed Input Port Description: Check to see if warhead is armed. If port is not conne...
Definition: warheadDetonationActuator.h:269
Definition: readerWriterRegistry.h:39
Description: This repository is an internal repository accessible only by local objects. It holds all information that is common to all the forms of all entity/aggregate/control objects within VR-Forces.
Definition: vrfObjectStateRepository.h:92
End User Description: DtActuator is the base class for all actuator model components. Developer Description: The DtActuator base class caches a pointer to the entity's radio for convenience. Derived classes may have articulated parts that are configured from the DtActuatorComponentDescriptor's DtSimArtPartDescriptorList. For each articulated part in the list a DtArticulatedPartStateRepository will be created to store the data for the part such as it's location, rotation and so forth. These are created in the entity's DtVrfObjectStateRepository createParts() function. This call creates all the attached parts for all the actuators. These articulated state repositories are managed by the DtAttachmentManager. They are cached by their partType which is the DIS Enumeration describing the part from the disEnums.h file and was specified in the actuator's DtActuatorComponentDescriptor as descriped above. The partType is used as the category of the DtObjectType used to look up articulated parts in the DtAttachementManager. When an actuator needs access to a particular articulated part it looks it up by the part's object type.
Definition: actuatorComponent.h:47
DtString myEventId
Definition: warheadDetonationActuator.h:281
bool myAmMissile
Flag to let us know this is a missile or a bomb and hence collision impacts will be treated different...
Definition: warheadDetonationActuator.h:299
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: laserDesignatorStateComponent.h:56
virtual void setComponentDescriptor(DtComponentDescriptor *componentDescriptor)
The component descriptor specified in the order of battle file or parameter file that was used to cre...
File: simMsg.h.
Definition: simMessage.h:35
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
DtVector myLastPosition
Definition: warheadDetonationActuator.h:273
bool myHavePrintedTerrainWarning
a little bool here so that you only see the warning about terrain not paged in yet once as opposed to...
Definition: warheadDetonationActuator.h:304
bool myStartPositionInited
Definition: warheadDetonationActuator.h:274
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Definition: warheadDetonationActuator.h:307
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
bool mySetDestroyed
Definition: warheadDetonationActuator.h:310
boost::signals2::connection mySetLocationCompleteConnection
Definition: warheadDetonationActuator.h:309
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:95
DtWarheadDetonationActuatorPSR * myProcessState
Container for state data associated with this component. This state is saved and restored as part of ...
Definition: warheadDetonationActuator.h:278
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:91
DtWarheadDetonationActuatorDescriptor; descriptor for the DtWarheadDetonationActuator component...
Definition: warheadDetonationActuatorDescriptor.h:26
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:88
DtWarheadDetonationActuatorDescriptor * myWarheadDescriptor
Definition: warheadDetonationActuator.h:280
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList. These lists are used within VR-Fo...
Definition: managedObjectList.h:35
class DtWarheadDetonationActuatorPSR:
Definition: warheadDetonationActuatorPSR.h:27
bool myNeedToDisplayTargetNotFoundWarning
Flag to indicate we need to display a warning message for target not found condition. Only needs to be displayed once. Displaying every time its ticked can generate a slew of warnings in the console.
Definition: warheadDetonationActuator.h:295
Dt3dBoundingVolume * myCollisionBV
Definition: warheadDetonationActuator.h:272
DtVrfObjectStateRepository * myStateRep
Definition: warheadDetonationActuator.h:271
DtWarheadDetonationActuator is an actuator that simulates the detonation for any type of warhead that...
Definition: warheadDetonationActuator.h:53
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:291
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86