VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
bullseyeManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
11 #include <vrvUtil/DtUnicode.h>
12 #include <vrvCore/DtStateView.h>
13 #include <vrvUtil/signalslib.h>
14 #include <matrix/vlVector.h>
17 
18 namespace makVrv
19 {
20  class DtDe;
21  class DtSimObjectEntry;
22  struct DtVrlinkSimulatedBaseState;
23 }
24 
25 namespace makVrf
26 {
27  struct DtVrlinkSimulatedEnvironmentProcess;
28 
30  {
31  public:
32  typedef std::map<makVrv::DtElementID, makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>*> BullseyeObjects;
33 
34  public:
37 
39  virtual ~DtBullseyeManager();
40 
42  static DtBullseyeManager& instance(makVrv::DtDe& de);
43 
45  static void registerInstance(makVrv::DtDe&, DtBullseyeManager*);
46 
48  {
49  return myBullseyeObjects;
50  }
51 
53  virtual void selectBullseye(makVrv::DtUniqueID);
55  {
56  return mySelectedBullseye;
57  }
58 
59  virtual int selectedForce() const;
60 
65  static double smartRange(double range, makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits& displayUnits, bool round = false);
66 
68  virtual void setBullseyesEditable(bool);
69  bool bullseyesEditable() const
70  {
71  return myBullseyesEditable;
72  }
73 
75  virtual int forceFor(makVrv::DtUniqueID id) const;
76 
79  virtual bool rangeAndBearingToSelectedBullseye(const DtVector& geocentricLocation, double& range, double& bearning) const;
80  virtual bool rangeAndBearingToBullseye(makVrv::DtUniqueID id, const DtVector& geocentricLocation, double& range, double& bearning) const;
81 
84  virtual bool rangeAndBearingToBullseye(makVrv::DtUniqueID id, makVrv::DtUniqueID, double& range, double& bearning) const;
85  virtual bool rangeAndBearingToSelectedBullseye(makVrv::DtUniqueID, double& range, double& bearning) const;
86 
88  virtual makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>* selectedBullseyeStateView() const;
90 
92  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_selectedBullseyeChanged;
93 
95  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_bullseyeAdded;
96 
98  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_bullseyeRemoved;
99 
101  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_bullseyeUpdated;
102 
104  boost::signals2::signal<void (bool)> signal_bullseyesCreatableChanged;
105  boost::signals2::signal<void (bool)> signal_bullseyesEditableChanged;
106 
107  protected:
109  static double roundToMeter(double metersDistance, makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits& displayUnits,
110  bool round = true, bool convertToHm = true);
111 
114  static double roundToFeet(double metersDistance, makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits& displayUnits, bool round);
115 
118  static double roundToNauticalMiles(double metersDistance, makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits& displayUnits, bool round);
119 
121  virtual void initExistingBullseyeObjects();
122 
124  virtual void addIfBullseyeObject(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
125 
126  virtual void slot_bullseyeObjectStateUpdated(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
127 
128  virtual void bullseyeObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
129  virtual void bullseyeObjectRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
130 
131  virtual void slot_spotReportOptionsChanged();
132 
133  protected:
138 
139  typedef std::map<makVrv::DtUniqueID, makVrv::DtSignalConnectionManager*> BullseyeConnections;
143  };
144 }
std::map< makVrv::DtUniqueID, makVrv::DtSignalConnectionManager * > BullseyeConnections
Definition: bullseyeManager.h:139
Virtual base class.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_bullseyeAdded
Signal sent when a bullseye of a particular force is added.
Definition: bullseyeManager.h:95
const BullseyeObjects & bullseyeObjects() const
Definition: bullseyeManager.h:47
Contains makVrv:DtSelectionManager class.
Contains makVrv::DtStateView class.
std::map< makVrv::DtElementID, makVrv::DtStateView< DtVrlinkSimulatedEnvironmentProcess > * > BullseyeObjects
Definition: bullseyeManager.h:32
makVrv::DtUniqueID selectedBullseye() const
Definition: bullseyeManager.h:54
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_bullseyeRemoved
Signal sent when a bullseye of a particular force is removed.
Definition: bullseyeManager.h:98
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_bullseyeUpdated
Signal sent when a bullseye of a particular force is modified.
Definition: bullseyeManager.h:101
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:56
BullseyeObjects myBullseyeObjects
Definition: bullseyeManager.h:135
Contains makVrv::DtVirtualBaseClass class.
makVrv::DtUniqueID mySelectedBullseye
Definition: bullseyeManager.h:136
makVrv::DtDe & myDe
Definition: bullseyeManager.h:134
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::signals2::signal< void(bool)> signal_bullseyesEditableChanged
Definition: bullseyeManager.h:105
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::signals2::signal< void(bool)> signal_bullseyesCreatableChanged
Signal sent when editable has changed.
Definition: bullseyeManager.h:104
BullseyeConnections myBullseyeConnections
Definition: bullseyeManager.h:140
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_selectedBullseyeChanged
Signal sent when the selected force changes.
Definition: bullseyeManager.h:92
Base class to provide boost signal/slot management.
bool myBullseyesCreatable
Definition: bullseyeManager.h:142
bool bullseyesEditable() const
Definition: bullseyeManager.h:69
bool myBullseyesEditable
Definition: bullseyeManager.h:141
makVrv::DtSignalConnectionManager myConnectionManager
Definition: bullseyeManager.h:137
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains the DtDisplayUnitsSettingsRecord class declaration.
Definition: bullseyeManager.h:29

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)