VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfEmitterSystem.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 <vlutil/vlList.h>
16 #include <vlpi/disEnums.h>
17 #include <matrix/vlVector.h>
19 #include <boost/signals2.hpp>
20 
22 class DtUUID;
23 class DtLocalObject;
24 
25 namespace makVrf
26 {
27  class DtEmitterSystemStateComponent;
28  struct DtEmitterSystemBeamStateData;
29  class DtStateData;
30 }
31 
32 class DtSimObject;
33 
41 {
42 private:
46  DtVrfEmitterSystem& operator=(const DtVrfEmitterSystem& orig);
49 
50 public:
51  DtVrfEmitterSystem(DtLocalObject* hostEntity);
52  virtual ~DtVrfEmitterSystem();
53 
55  bool init();
56 
61  virtual void setOn(bool onOff);
62  virtual bool on() const;
63 
66  virtual void setDataFromEmitterSystemEntry(const DtEmitterSystemEntry& entry);
67 
69  virtual void setSystemName(DtEmitterSysName nameEnum);
70  virtual DtEmitterSysName systemName() const;
71 
72  virtual void setSystemFunction(DtEmissionFunc functionEnum);
73  virtual DtEmissionFunc systemFunction() const;
74 
75  virtual void setSystemNumber(unsigned int number);
76  virtual unsigned int systemNumber() const;
77 
78  virtual void setMountLocation(const DtVector &location);
79  virtual DtVector mountLocation() const;
80 
82  virtual void setUseHighDensityTracking(bool useHdMode);
83  virtual bool useHighDensityTracking() const;
84 
86  virtual void setUseHighDensityJamming(bool useHdMode);
87  virtual bool useHighDensityJamming() const;
88 
91  virtual void addTrackTarget(const DtUUID &globalId);
92 
95  virtual void removeTrackTarget(const DtUUID &globalId);
96 
99  virtual void addJamTarget(const DtUUID &globalId);
100 
103  virtual void removeJamTarget(const DtUUID &globalId);
104 
106  virtual void clearTrackTargets();
107 
109  virtual void clearJamTargets();
110 
112  virtual void clearTrackJamTargets();
113 
116  virtual makVrf::DtEmitterSystemBeamStateData* addBeam();
117 
119  virtual void removeBeam(unsigned char);
120 
122  virtual void removeAllBeams();
123 
126  virtual makVrf::DtEmitterSystemBeamStateData* beam(DtU8 id = 0);
127 
129  virtual int numBeams() const;
130 
132  std::vector<makVrf::DtEmitterSystemBeamStateData>& beamList();
133  const std::vector<makVrf::DtEmitterSystemBeamStateData>& beamList() const;
134 
135  virtual DtString radarMode() const;
136 
138  virtual void setEmitterName(const DtString&);
139  virtual const DtString& emitterName() const;
140 
143  virtual void setRadarMode(DtString mode, const DtEmitterSystemEntry& entry);
144 
145  virtual const DtList* radarModeList(const DtEmitterSystemEntry& entry);
146 
150  virtual void setVerifyTrackJamTargetCallback(makVrf::DtVerifyTrackJamTargetCallback cb, void* usr);
151 
152  virtual unsigned char systemId() const;
153  virtual unsigned char emitterSystemID() const;
154 
156  {
157  return myEmitterSystemComponent;
158  }
159 
161  {
162  return myEmitterSystemComponent;
163  }
164 
165 protected:
167  virtual bool initEmitterSystem();
168 
170  virtual void addTrackJamTarget(const DtUUID &globalId, const bool& isJamTarget);
171 
173  virtual void removeTrackJamTarget(const DtUUID &globalId, const bool& isJamTarget);
174 
176  virtual void clearTrackJamTargets(const bool& clearTracking, const bool& clearJamming);
177 
178  virtual void slot_simObjectRemoved(const DtSimObject*);
179 
181  virtual int nextSystemNumber() const;
182 
183 protected:
189 
192 
194 
195  typedef std::map<DtUUID, boost::signals2::connection> ObjectRemovedConnections;
197 };
198 
UUID is a unique ID wrapper class.
Definition: uuid.h:59
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
bool(* DtVerifyTrackJamTargetCallback)(const DtUUID &target, const DtEmitterSystemBeamStateData &beam, void *usr)
Definition: emitterSystemStateComponent.h:22
bool myUseHighDensityTracking
Definition: vrfEmitterSystem.h:186
makVrf::DtEmitterSystemStateComponent * myEmitterSystemComponent
Definition: vrfEmitterSystem.h:185
makVrf::DtEmitterSystemStateComponent * component()
Definition: vrfEmitterSystem.h:155
DtString myEmitterName
Definition: vrfEmitterSystem.h:193
DtLocalObject * myHostEntity
Definition: vrfEmitterSystem.h:184
std::map< DtUUID, boost::signals2::connection > ObjectRemovedConnections
Definition: vrfEmitterSystem.h:195
DtVrfEmitterSystem manages a VR-Link emitter system publisher, and sets all the values associated wit...
Definition: vrfEmitterSystem.h:40
ObjectRemovedConnections myObjectRemovedConnections
Definition: vrfEmitterSystem.h:196
DtString myRadarMode
Definition: vrfEmitterSystem.h:188
makVrf::DtVerifyTrackJamTargetCallback myVerifyTrackJamTargetCallback
Definition: vrfEmitterSystem.h:190
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: emitterSystemStateComponent.h:466
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:88
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
const char int mode
Definition: ioapi.h:38
const makVrf::DtEmitterSystemStateComponent * component() const
Definition: vrfEmitterSystem.h:160
void * myVerifyTrackJamTargetCallbackUserData
Definition: vrfEmitterSystem.h:191
The DtEmitterSystemStateComponentList is a collection of emitter systems and the beams they represent...
Definition: emitterSystemStateComponent.h:25
Instances of DtEmitterSystemEntry are used to specify some of the parameters in a DtEmitterComponentD...
Definition: emitterSystemEntry.h:26
bool myUseHighDensityJamming
Definition: vrfEmitterSystem.h:187
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)