VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 void checkMissileDetonation();
112 
128  virtual DtVrfObject * detectCollision(double& distToImpactSqrd,
129  DtVector& detonLocationOut);
130 
137  virtual bool preventCollisionsWithMatchingTypes();
138 
150  virtual bool checkEntityForCollision(DtVrfObject * collidee,
151  const DtVector& missilePath,
152  const DtVector& missileBoxCenter,
153  DtVector& detonLocationOut,
154  double& distToImpactSqrd);
155 
174  virtual bool checkForGroundImpact(double& distToImpactSqrd,
175  DtVector& impactPoint,
176  DtDetonationResult& result);
177 
182  virtual void sendDetonation(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(DtVrfObject* object, void* usr);
215  virtual void processObjectAboutToBeRemoved(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 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)