VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
targetSelectionController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
16 #include "vlpi/disEnums.h"
17 #include <map>
18 #include <list>
20 #include "targetRankOperator.h"
21 
30 class DtSimMessage;
31 class DtVrfObjectMessage;
34 
35 typedef std::map<DtArtPartType, std::list<const DtWeaponComponentInterface*> > artPartWeaponMap;
36 
50 
78 {
79 private:
86  const DtTargetSelectionController& orig);
87 public:
88 
89  typedef std::list<DtWeaponComponentInterface*> DtWeaponInterfaceList;
90 
94  DtSimManager* simManager, DtComponentDescriptor* desc=0,
95  DtReaderWriterRegistry *parentRegistry=0);
96 
98  virtual ~DtTargetSelectionController();
99 
101  virtual bool init();
102 
105  virtual const char* type() const;
106 
108  virtual void registerTaskMsgCallbacks();
109 
112  virtual void updateWeaponInterfaceTaskState(DtWeaponComponentInterface* weapIf);
113 
117 
118  static void fireAtTargetTaskCallback(DtSimMessage* msg, void* usr);
119  virtual void processFireAtTargetTask(DtSimMessage* msg);
120 
123  virtual bool processFireAtTargetTask(DtFireAtTargetTask*, bool& foundValidWeapon);
125 
128 
129  static void weaponListRequestCallback(const DtVrfObjectMessage* msg, void* usr);
130  virtual void processWeaponListRequest(const DtVrfObjectMessage* msg);
132 
134 
135  static void fireNowCallback(DtSimMessage* msg, void* usr);
136  virtual void processFireNow(DtSimMessage* msg);
138 
140  virtual void taskComplete(bool success = true);
141 
143  virtual bool postAddComponentsInit();
144 
147  virtual void preFirstTickInit();
148 
154  virtual void tick();
155 
159  static DtSimComponent* creator(const DtString& name,
160  DtVrfObject* owner,
161  DtSimManager* simManager,
162  DtComponentDescriptor* desc = 0,
163  DtReaderWriterRegistry* parentRegistry = 0);
164 
165 protected:
166  typedef std::set<DtRwSensorContactInfo*, DtTargetRankOperatorWrapper> DtOrderedTargetSet;
167 
169  static void objectAddedCb(DtVrfObject*, void*);
170  virtual void processObjectAdded(DtVrfObject*);
171 
173  virtual bool createPorts();
174 
178  virtual bool createOutputPorts();
179 
185  virtual bool createPSR();
186 
188  virtual void registerRadioMessageCallbacks();
189 
191  static void setTargetCallback(DtSimMessage* msg, void* usr);
192 
195  virtual void processSetTarget(DtSimMessage* msg);
196 
205  virtual void selectTargets();
206 
209  virtual bool targetForce(DtForceType force) const;
210 
214  virtual bool validTarget(const DtRwSensorContactInfo& contactInfo,
215  const DtWeaponComponentInterface& weapIf) const;
216 
219  virtual DtEntityTargetInformation targetInfoFromContactInfo(
220  const DtRwSensorContactInfo& contactInfo) const;
221 
224  virtual void updateRegionEvaluators();
225 
229  virtual DtTargetRankOperator* createTargetRankOperator(
230  const DtTargetSelectionCriteria& criteria) const;
231 
234  virtual void setupDetectableForces(DtForceType);
235 
238 
239  static void hostilitiesChangedCallback(DtU8 force, void* usr);
240  virtual void processHostilitiesChanged(DtU8 force);
242 
244  virtual void clearTargets();
245 
247  virtual bool isSurrenderedLifeform(const DtVrfObject* entity) const;
248 
249  virtual bool findFusedTargets(const DtSensorContactInfoList* contactList,
250  const DtWeaponComponentInterface& weapIf, DtRwSensorContactInfo& userTargetInfo,
251  DtOrderedTargetSet & orderedTargets);
252  virtual void setTargetsToWeaponInterface(DtWeaponComponentInterface& weapIf, DtRwSensorContactInfo& userTargetInfo, DtOrderedTargetSet& orderedTargets);
253 
256  virtual void findWeaponControlInterfaces();
257 
262  virtual bool permissionToFire() const;
263 
265  virtual bool suppressed() const;
266 
273  virtual bool allowedToFire() const;
274 
278  virtual bool haveCommonMount(DtWeaponComponentInterface *weapon1,
279  DtWeaponComponentInterface *weapon2) const;
280 
284  virtual int nextPriorityValue();
286  virtual void setNextPriorityValue(const int val);
288 
292  virtual const artPartWeaponMap & articulatedPartWeapons() const;
293  virtual void addArtPartWeaponToMap(const DtArtPartType part,
294  const DtWeaponComponentInterface* weaponInterface);
295  virtual void setArticulatedPartWeapons(
296  const artPartWeaponMap &artPartMap);
298 
318  virtual bool yieldsFiringPrecedenceTo(
320  bool weapon1IsBeingTasked,
321  DtWeaponComponentInterface* weapon2);
322 
325  virtual bool tokenConflict(
327  DtWeaponComponentInterface* weapon2);
328 
333  virtual bool artPartConflict(
336  DtArtPartType* conflictingPart);
337 
356  virtual bool otherWeaponBlocksWeapon(
357  DtWeaponComponentInterface* weapon, bool weaponIsBeingTasked,
358  DtWeaponComponentInterface** conflictingWeapon,
359  bool* controlExternalTurret);
360 
368  virtual void clearLowerPriorityWeaponTargets(
370 
371 protected:
372 
380 
388 
392 
394 
396  DtForceType myForce;
397 
402 
406 
410 
419 
420  //---------------------------------
424 
426 };

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)