VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
warheadDetonationActuator.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 #include <vl/detonationInteraction.h>
16 #include <vl/eventId.h>
17 
18 #include <vl/objectId.h>
19 
20 class Dt3dBoundingVolume;
23 class DtSimMessage;
24 class DtBooleanInputPort;
25 class DtReflectedDesignator;
26 
49 {
50 
51 public:
52 
56  DtVrfObject* owner,
57  DtSimManager* simManager,
58  DtComponentDescriptor* desc = 0,
59  DtReaderWriterRegistry* parentRegistry = 0);
60 
62  virtual ~DtWarheadDetonationActuator();
63 
65  virtual bool init();
66 
68  virtual bool registerRadioMessageCallbacks();
69 
75  virtual bool createPSR();
76 
78  virtual void setComponentDescriptor(DtComponentDescriptor *componentDescriptor);
79 
82  virtual const char* type() const;
83 
86  virtual void tick();
87 
88 protected:
89 
91  virtual bool createPorts();
92 
96  virtual bool checkAlive();
97 
99  virtual bool checkTrigger();
100 
102  virtual bool checkArmed();
103 
108  virtual bool checkProximityDetonate();
109 
111  virtual bool checkTargetMiss();
112 
114  virtual void checkMissileDetonation();
115 
131  virtual const DtVrfObject* detectCollision(double& distToImpactSqrd,
132  DtVector& detonLocationOut);
133 
140  virtual bool preventCollisionsWithMatchingTypes();
141 
153  virtual bool checkEntityForCollision(const DtVrfObject* collidee, const DtVector& missilePath,
154  const DtVector& missileBoxCenter, DtVector& detonLocationOut, double& distToImpactSqrd);
155 
174  virtual bool checkForGroundImpact(double& distToImpactSqrd,
175  DtVector& impactPoint,
176  DtDetonationResult& result);
177 
182  virtual void sendDetonation(const DtVrfObject *impactedEntity,
183  const DtVector& detonLocation);
184 
188  virtual void sendDetonation(DtDetonationResult result,
189  const DtVector& collisionPt);
190 
194  virtual void destroyAndRemoveEntity();
195 
196 public:
198  static void setWarheadInfoCallback(DtSimMessage* msg, void* usr);
199 
202  virtual void processWarheadInfoCallback(DtSimMessage* msg);
203 
205 
206  static void laserDesignatorRemovedCallback(
207  DtReflectedDesignator* designator, void* usr);
208  virtual void processLaserDesignatorRemoved(
209  DtReflectedDesignator* designator);
211 
213 
214  static void objectAboutToBeRemovedCallback(const DtVrfObject* object, void* usr);
215  virtual void processObjectAboutToBeRemoved(const DtVrfObject* object);
217 
221  static DtSimComponent * creator(const DtString& name,
222  DtVrfObject* owner,
223  DtSimManager* simManager,
224  DtComponentDescriptor* desc = 0,
225  DtReaderWriterRegistry* parentRegistry = 0);
226 
227 private:
231 
234 
237  const DtWarheadDetonationActuator & orig);
238 
239 protected:
240 
246 
252 
254  Dt3dBoundingVolume *myCollisionBV;
257 
261 
263  DtEventId myEventId;
264 
268 
271  DtReflectedDesignator* myLaserDesignator;
272 
277 
286 };
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
const DtActuatorComponent & operator=(const DtActuatorComponent &orig)
assignment operator
DtReflectedDesignator * myLaserDesignator
Cached pointer to the designator specified in the PSR, prevents a lookup each tick when a detonation ...
Definition: warheadDetonationActuator.h:271
virtual bool init()
Overridden to cache a pointer to the entity&#39;s radio in this class.
DtBooleanInputPort * myTriggerInputPort
Input Port Name: trigger Input Port Description: Checks to see if the trigger was set...
Definition: warheadDetonationActuator.h:245
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
DtBooleanInputPort * myArmedInputPort
Input Port Name: armed Input Port Description: Check to see if warhead is armed.
Definition: warheadDetonationActuator.h:251
Definition: readerWriterRegistry.h:39
Description: This repository holds all information that is common to all the forms of all entity/aggr...
Definition: vrfObjectStateRepository.h:87
End User Description: DtActuator is the base class for all actuator model components.
Definition: actuatorComponent.h:48
DtEventId myEventId
Definition: warheadDetonationActuator.h:263
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:280
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.
Contains class declarations for DtBooleanInputPort, DtBooleanOutputPort, and DtBooleanPortData.
Definition: boolIOPort.h:25
DtVector myLastPosition
Definition: warheadDetonationActuator.h:255
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:285
bool myStartPositionInited
Definition: warheadDetonationActuator.h:256
virtual bool createPorts()
Called by init.
const DtVrfObject * myTargetObject
This is here for performance – the real target is specified by the name in the PSR.
Definition: warheadDetonationActuator.h:267
DtWarheadDetonationActuatorPSR * myProcessState
Container for state data associated with this component.
Definition: warheadDetonationActuator.h:260
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
DtWarheadDetonationActuatorDescriptor; descriptor for the DtWarheadDetonationActuator component...
Definition: warheadDetonationActuatorDescriptor.h:25
DtWarheadDetonationActuatorDescriptor * myWarheadDescriptor
Definition: warheadDetonationActuator.h:262
class DtWarheadDetonationActuatorPSR:
Definition: warheadDetonationActuatorPSR.h:27
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
bool myNeedToDisplayTargetNotFoundWarning
Flag to indicate we need to display a warning message for target not found condition.
Definition: warheadDetonationActuator.h:276
Dt3dBoundingVolume * myCollisionBV
Definition: warheadDetonationActuator.h:254
DtVrfObjectStateRepository * myStateRep
Definition: warheadDetonationActuator.h:253
DtWarheadDetonationActuator is an actuator that simulates the detonation for any type of warhead that...
Definition: warheadDetonationActuator.h:48
virtual const char * type() const =0
Returns a string identifies the class type of component.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)