VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
minefieldController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include "vrfutil/simClock.h"
16 #include <vl/hostStructs.h>
19 #include <list>
20 
21 class DtString;
22 class DtSimManager;
25 class DtMine;
27 
36 {
37 
38 public:
39 
42  DtMinefieldController(const DtString& name,
43  DtVrfObject* owner,
44  DtSimManager* simManager,
45  DtComponentDescriptor* desc = 0,
46  DtReaderWriterRegistry* parentRegistry = 0);
47 
49  virtual ~DtMinefieldController();
50 
51 private:
54 
57 
58 public:
64  virtual bool init();
65 
66  virtual bool taskVisualizationsActive() const;
67 
69  virtual void preFirstTickInit();
70 
72  virtual void tick();
73 
76  virtual const char* type() const;
77 
79  static void setDetonationCallback(DtSimMessage* msg, void* usrData);
80 
81  virtual void processSetDetonation(DtSimMessage* msg);
82 
85  virtual void updateTaskVisualizations();
86 
87 protected:
88 
94  virtual bool createPSR();
95 
97  virtual void selfDestruct(DtMineList* list);
98 
99  virtual bool isMineTriggered(const DtVrfObject * target, const DtMine* mine);
100 
101  virtual bool determinePressureFuseTriggered(const DtVrfObject *target,const DtVector& mineLocation);
102  virtual bool determineMagneticFuseTriggered(const DtVrfObject *target, const DtVector& mineLocation);
103  virtual bool determineTiltRodFuseTriggered(const DtVrfObject *target, const DtVector& mineLocation);
104  virtual bool determineCommandFuseTriggered();
105  virtual bool determineTripWireFuseTriggered(const DtVrfObject *target, const DtVector& mineLocation,
106  double wireLength);
107 
108  virtual void createDetonationInteraction(DtMine* mine);
109 
110  virtual void drawMines(DtString& unique,DtMineList *mineList, DtColor& color);
111 
112 public:
116  static DtSimComponent * creator(const DtString& name,
117  DtVrfObject* owner,
118  DtSimManager* simManager,
119  DtComponentDescriptor* desc = 0,
120  DtReaderWriterRegistry* parentRegistry = 0);
121 
122 protected:
123 
126  virtual void setUpObjectsToCheck();
127 
129  virtual void registerMessageCallbacks();
130 
131 protected:
132 
136  std::vector<DtAmmunitionParamsEntry*> myMineTargetList;
137 
139 
143 };
144 
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
Contains the DtCompositePredicate class declaration.
Definition: compositePredicate.h:26
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtMinefieldStateRepository * myMineState
Definition: minefieldController.h:135
virtual bool taskVisualizationsActive() const
Returns true if task visualizations are currently active for this component.
DtMinefieldControllerDescriptor is a DtComponentDescriptor that has the name of the DtMinefieldContro...
Definition: minefieldControllerDescriptor.h:24
DtMinefieldControllerPSR * myProcessState
Container for state data associated with this component.
Definition: minefieldController.h:142
DtMinefieldController models how the minefield interacts with objects.
Definition: minefieldController.h:35
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
const DtMinefieldControllerDescriptor * myMinefieldControllerDesc
Definition: minefieldController.h:134
Definition: readerWriterRegistry.h:39
Definition: color.h:25
virtual bool init()
Calls createPorts and createPortGroups Initializes myLastTickSimTime.
virtual void updateTaskVisualizations()
Called to update task visualizations after every tick.
Definition: simComponent.h:485
Process state repository for DtMinefieldController component.
Definition: minefieldControllerPSR.h:24
DtCompositePredicate myObjectsToBlowPredicate
Definition: minefieldController.h:133
File: simMsg.h.
Definition: simMessage.h:35
File: vlClock.h.
virtual void tick()
This gives the thread of control to the component.
DtSimComponent & operator=(const DtSimComponent &orig)
assignment operator, not implemented
Description: This repository holds all information that is common to all the forms of minefield objec...
Definition: minefieldStateRepository.h:27
DtAmmunitionParamsEntry; descriptor that represents members of a DtAmmunitionParams.
Definition: ammunitionParamsEntry.h:20
Definition: mine.h:30
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
std::vector< DtAmmunitionParamsEntry * > myMineTargetList
Definition: minefieldController.h:136
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList.
Definition: managedObjectList.h:31
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
virtual const char * type() const =0
Returns a string identifies the class type of component.
DtManagedObjectListConstPtr myDetectableObjectList
Definition: minefieldController.h:138

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)