VR-Forces 4.1 Class Documentation
balGun.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 #pragma once
11 
12 #include "vrfobjcore/actCmpnt.h"
13 #include <vl/fireInter.h>
14 #include <vl/detonateInter.h>
15 #include "vrfcore/timer.h"
16 #include <vl/hostStructs.h>
17 
18 class DtSimManager;
20 class DtVrfObject;
21 class DtVrfBalGunPSR;
23 class DtIntegerInputPort;
25 class DtBooleanInputPort;
26 class DtInputPortGroup;
27 
41 {
42 
43 public:
44 
47  DtBallisticGun(const DtString& name,
48  DtVrfObject* owner,
49  DtSimManager* simManager,
50  DtComponentDescriptor* desc = 0,
51  DtReaderWriterRegistry* parentRegistry = 0);
52 
53 
55  virtual ~DtBallisticGun();
56 
57  virtual bool init();
58 
65  virtual void initPendingDetonations();
66 
69  virtual DtString type() const;
70 
72  virtual void preFirstTickInit();
73 
75  virtual void tick();
76 
88  virtual bool checkHitProbability(const DtEntityType& type, DtReal
89  range);
90 
95  virtual double hitProbabilityModifier(const DtEntityType& type, DtReal
96  range);
97 
106  virtual DtFireInteraction * createFireInteraction();
107 
128  virtual DtDetonationInteraction * createDetonationInteraction(DtTime&
129  detTime, bool assureMiss = false);
130 
145  virtual void scheduleDetonation(DtDetonationInteraction * detInter,
146  DtTime detTime);
147 
148  virtual DtString probabilityString() const;
149 
151  virtual DtVector calculateMuzzlePosition() const;
152 
158  virtual DtDetonationInteraction * createDetonationInteraction(
159  const DtDetonationDescriptor& desc, DtTime& detTime);
160 
163  virtual DtDetonationDescriptor* createDetonationDescriptor(
164  DtDetonationInteraction* detInter, DtTime simTime);
165 
166 public:
167 
175  static void detonationCallback(DtTimer * timer);
176 
180  static DtSimComponent * creator(const DtString& name,
181  DtVrfObject* owner,
182  DtSimManager* simManager,
183  DtComponentDescriptor* desc = 0,
184  DtReaderWriterRegistry* parentRegistry = 0);
185 
187  static void objectAddedCb(DtVrfObject * vrfObject, void * usr);
188 
189 protected:
190 
192  virtual bool createPortGroups();
193 
195  virtual bool createPorts();
196 
202  virtual bool createPSR();
203 
208  virtual void processObjectAdded(DtVrfObject * vrfObject);
209 
211  virtual void addRangeItems();
212 
213 protected:
214 
216  DtBallisticGun();
217 
219  DtBallisticGun(const DtBallisticGun & orig);
220 
222  const DtBallisticGun & operator=(const DtBallisticGun & orig);
223 
224 protected:
226  DtEntityIdentifier myObjectId;
227 
230 
234  DtEventId myCurrentEventId;
236 
237  DtList myTimerList;
238  DtArtPartType myGunArtPart;
239 
243 
246 
250 
258 
268 
275 
285 
287 };
288 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)