VR-Forces 4.1.1 Class Documentation
warheadDetAct.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #include "vrfobjcore/actCmpnt.h"
15 #include <vl/detonateInter.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 DtString type() const;
83 
86  virtual void tick();
87 
88 protected:
89 
91  virtual bool createPorts();
92 
96  virtual bool checkArmed();
97 
99  virtual bool checkTrigger();
100 
105  virtual bool checkProximityDetonate();
106 
108  virtual void checkMissileDetonation();
109 
125  virtual DtVrfObject * detectCollision(double& distToImpactSqrd,
126  DtVector& detonLocationOut);
127 
139  virtual bool checkEntityForCollision(DtVrfObject * collidee,
140  const DtVector& missilePath,
141  const DtVector& missileBoxCenter,
142  DtVector& detonLocationOut,
143  double& distToImpactSqrd);
144 
163  virtual bool checkForGroundImpact(double& distToImpactSqrd,
164  DtVector& impactPoint,
165  DtDetonationResult& result);
166 
171  virtual void sendDetonation(DtVrfObject *impactedEntity,
172  const DtVector& detonLocation);
173 
177  virtual void sendDetonation(DtDetonationResult result,
178  const DtVector& collisionPt);
179 
183  virtual void destroyAndRemoveEntity();
184 
185 public:
187  static void setWarheadInfoCallback(DtSimMessage* msg, void* usr);
188 
191  virtual void processWarheadInfoCallback(DtSimMessage* msg);
192 
194 
195  static void laserDesignatorRemovedCallback(
196  DtReflectedDesignator* designator, void* usr);
197  virtual void processLaserDesignatorRemoved(
198  DtReflectedDesignator* designator);
200 
202 
203  static void objectAboutToBeRemovedCallback(DtVrfObject* object, void* usr);
204  virtual void processObjectAboutToBeRemoved(DtVrfObject* object);
206 
210  static DtSimComponent * creator(const DtString& name,
211  DtVrfObject* owner,
212  DtSimManager* simManager,
213  DtComponentDescriptor* desc = 0,
214  DtReaderWriterRegistry* parentRegistry = 0);
215 
216 private:
220 
223 
226  const DtWarheadDetonationActuator & orig);
227 
228 protected:
229 
235 
237  Dt3dBoundingVolume *myCollisionBV;
240 
244 
246  DtEventId myEventId;
247 
251 
254  DtReflectedDesignator* myLaserDesignator;
255 
260 
264 };

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)