VR-Forces 4.6 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 DtVrfObject * detectCollision(double& distToImpactSqrd,
132  DtVector& detonLocationOut);
133 
140  virtual bool preventCollisionsWithMatchingTypes();
141 
153  virtual bool checkEntityForCollision(DtVrfObject * collidee,
154  const DtVector& missilePath,
155  const DtVector& missileBoxCenter,
156  DtVector& detonLocationOut,
157  double& distToImpactSqrd);
158 
177  virtual bool checkForGroundImpact(double& distToImpactSqrd,
178  DtVector& impactPoint,
179  DtDetonationResult& result);
180 
185  virtual void sendDetonation(DtVrfObject *impactedEntity,
186  const DtVector& detonLocation);
187 
191  virtual void sendDetonation(DtDetonationResult result,
192  const DtVector& collisionPt);
193 
197  virtual void destroyAndRemoveEntity();
198 
199 public:
201  static void setWarheadInfoCallback(DtSimMessage* msg, void* usr);
202 
205  virtual void processWarheadInfoCallback(DtSimMessage* msg);
206 
208 
209  static void laserDesignatorRemovedCallback(
210  DtReflectedDesignator* designator, void* usr);
211  virtual void processLaserDesignatorRemoved(
212  DtReflectedDesignator* designator);
214 
216 
217  static void objectAboutToBeRemovedCallback(DtVrfObject* object, void* usr);
218  virtual void processObjectAboutToBeRemoved(DtVrfObject* object);
220 
224  static DtSimComponent * creator(const DtString& name,
225  DtVrfObject* owner,
226  DtSimManager* simManager,
227  DtComponentDescriptor* desc = 0,
228  DtReaderWriterRegistry* parentRegistry = 0);
229 
230 private:
234 
237 
240  const DtWarheadDetonationActuator & orig);
241 
242 protected:
243 
249 
255 
257  Dt3dBoundingVolume *myCollisionBV;
260 
264 
266  DtEventId myEventId;
267 
271 
274  DtReflectedDesignator* myLaserDesignator;
275 
280 
289 };

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)