VR-Forces 5.0.3 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 setMountLocation(const DtVector &location);
76  virtual DtVector mountLocation() const;
77 
79  virtual void setUseHighDensityTracking(bool useHdMode);
80  virtual bool useHighDensityTracking() const;
81 
83  virtual void setUseHighDensityJamming(bool useHdMode);
84  virtual bool useHighDensityJamming() const;
85 
88  virtual void addTrackTarget(const DtUUID &globalId);
89 
92  virtual void removeTrackTarget(const DtUUID &globalId);
93 
96  virtual void addJamTarget(const DtUUID &globalId);
97 
100  virtual void removeJamTarget(const DtUUID &globalId);
101 
103  virtual void clearTrackTargets();
104 
106  virtual void clearJamTargets();
107 
109  virtual void clearTrackJamTargets();
110 
113  virtual makVrf::DtEmitterSystemBeamStateData* addBeam();
114 
116  virtual void removeBeam(unsigned char);
117 
119  virtual void removeAllBeams();
120 
123  virtual makVrf::DtEmitterSystemBeamStateData* beam(DtU8 id = 0);
124 
126  virtual int numBeams() const;
127 
129  std::vector<makVrf::DtEmitterSystemBeamStateData>& beamList();
130  const std::vector<makVrf::DtEmitterSystemBeamStateData>& beamList() const;
131 
132  virtual DtString radarMode() const;
133 
135  virtual void setEmitterName(const DtString&);
136  virtual const DtString& emitterName() const;
137 
140  virtual void setRadarMode(DtString mode, const DtEmitterSystemEntry& entry);
141 
142  virtual const DtList* radarModeList(const DtEmitterSystemEntry& entry);
143 
147  virtual void setVerifyTrackJamTargetCallback(makVrf::DtVerifyTrackJamTargetCallback cb, void* usr);
148 
149  virtual unsigned char systemId() const;
150  virtual unsigned char emitterSystemID() const;
151 
153  {
154  return myEmitterSystemComponent;
155  }
156 
158  {
159  return myEmitterSystemComponent;
160  }
161 
162 protected:
164  virtual bool initEmitterSystem();
165 
167  virtual void addTrackJamTarget(const DtUUID &globalId, const bool& isJamTarget);
168 
170  virtual void removeTrackJamTarget(const DtUUID &globalId, const bool& isJamTarget);
171 
173  virtual void clearTrackJamTargets(const bool& clearTracking, const bool& clearJamming);
174 
175  virtual void slot_simObjectRemoved(const DtSimObject*);
176 
177 protected:
183 
186 
188 
189  typedef std::map<DtUUID, boost::signals2::connection> ObjectRemovedConnections;
191 };
192 
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
#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:21
bool myUseHighDensityTracking
Definition: vrfEmitterSystem.h:180
makVrf::DtEmitterSystemStateComponent * myEmitterSystemComponent
Definition: vrfEmitterSystem.h:179
makVrf::DtEmitterSystemStateComponent * component()
Definition: vrfEmitterSystem.h:152
DtString myEmitterName
Definition: vrfEmitterSystem.h:187
DtLocalObject * myHostEntity
Definition: vrfEmitterSystem.h:178
std::map< DtUUID, boost::signals2::connection > ObjectRemovedConnections
Definition: vrfEmitterSystem.h:189
DtVrfEmitterSystem manages a VR-Link emitter system publisher, and sets all the values associated wit...
Definition: vrfEmitterSystem.h:40
ObjectRemovedConnections myObjectRemovedConnections
Definition: vrfEmitterSystem.h:190
DtString myRadarMode
Definition: vrfEmitterSystem.h:182
makVrf::DtVerifyTrackJamTargetCallback myVerifyTrackJamTargetCallback
Definition: vrfEmitterSystem.h:184
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:446
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:79
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:157
void * myVerifyTrackJamTargetCallbackUserData
Definition: vrfEmitterSystem.h:185
The DtEmitterSystemStateComponentList is a collection of emitter systems and the beams they represent...
Definition: emitterSystemStateComponent.h:24
Instances of DtEmitterSystemEntry are used to specify some of the parameters in a DtEmitterComponentD...
Definition: emitterSystemEntry.h:26
bool myUseHighDensityJamming
Definition: vrfEmitterSystem.h:181
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 Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)