VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
indirectArtilleryManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vrfGuiCore/vrfGuiCore.h>
16 #include <vrvUtil/DtUnicode.h>
17 #include <vrvCore/DtStateView.h>
18 #include <vrvCore/DtEntityState.h>
20 
21 #include <vrvUtil/signalslib.h>
22 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtSimObjectEntry;
27  class DtRecordSettingsBackupInterface;
28  class DtSharedSettingsManager;
29 }
30 
31 class DtSimMessage;
32 
33 namespace makVrf
34 {
35  class DtIndirectArtillerySettingsRecord;
36  struct DtVrlinkSimulatedEnvironmentProcess;
37 
39 
43 
45  {
46  public:
47 
49  {
52  std::string myName;
53  };
54 
55  typedef std::map<makVrv::DtElementID, IndirectArtilleryData> IndirectArtilleryMap;
56 
57  public:
60 
62  virtual ~DtIndirectArtilleryManager();
63 
65  static DtIndirectArtilleryManager& instance(makVrv::DtDe& de);
66 
68  static void registerInstance(makVrv::DtDe&, DtIndirectArtilleryManager*);
69 
70  void setAutoSave(bool b);
71  bool autoSave() const;
72 
74  virtual void getRecord(DtIndirectArtillerySettingsRecord& rec) const;
75  virtual void getDefaultData(DtIfIndirectArtilleryData& rec) const;
76 
79  virtual void getSplitRecord(std::vector<DtIndirectArtillerySettingsRecord>& rec,
80  std::vector<std::string>& fileNames) {};
81 
85  DtIndirectArtillerySettingsRecord& combinedRec) {};
86 
87  virtual void setFromRecord(const DtIndirectArtillerySettingsRecord& rec);
88 
90  virtual void emptyList();
91 
94  virtual void load(const std::string&, bool signal = true);
95 
97  {
98  return myIndirectArtillery;
99  }
100 
102  virtual bool hasIndirectArtilleryData(makVrv::DtElementID) const;
103 
105  virtual DtIfIndirectArtilleryData indirectArtilleryData(makVrv::DtElementID id) const;
106 
107  const DtIndirectArtilleryTypesManager& typesManager() const;
109  virtual void loadDefaults(bool fromFactory = false);
110 
112  virtual void saveAsDefaults();
113 
115  {
116  return mySettingsBackup;
117  }
118 
120  {
121  return mySettingsBackup;
122  }
123 
125  {
126  return myManager;
127  }
128 
130  void exportSettings(const std::string& fileName);
131 
133  void importSettings(const std::string& fileName);
134 
135  public:
137  boost::signals2::signal<void (const DtIndirectArtillerySettingsRecord&)> signal_indirectArtillerySettingsChanged;
138 
139  boost::signals2::signal<void (makVrv::DtElementID, const std::string& name, const DtIfIndirectArtilleryData&)> signal_updated;
140  boost::signals2::signal<void (makVrv::DtElementID)> signal_removed;
141 
142  boost::signals2::signal<void ()> signal_indirectArtilleryTypesUpdated;
143 
144  protected:
146  virtual void initArtilleryAreas();
147 
149  virtual void addIfArtillery(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
150  virtual void indirectFireObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
151  virtual void indirectFireObjectRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
152 
155  virtual void indirectArtilleryDataReceived(DtSimMessage*);
156 
158  virtual void slot_onArtilleryUpdated(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
159 
160  protected:
163 
166 
169  };
170 }
DtIndirectArtilleryTypesManager myManager
Definition: indirectArtilleryManager.h:161
const DtIndirectArtilleryTypesManager & indirectArtilleryTypesManager() const
Definition: indirectArtilleryManager.h:124
Virtual base class.
Definition: DtVirtualBaseClass.h:19
A unicode string.
Definition: DtUnicode.h:33
Contains makVrf::DtIndirectArtillerySettingsRecord class.
Definition: indirectArtillerySettingsRecord.h:27
An indirect artillery types manager will keep track of the artillery types that are available to be u...
Definition: indirectArtilleryTypesManager.h:28
const makVrv::DtRecordSettingsBackupInterface * settingsBackup() const
Definition: indirectArtilleryManager.h:114
DtIfIndirectArtilleryData myData
Definition: indirectArtilleryManager.h:51
std::map< makVrv::DtElementID, IndirectArtilleryData > IndirectArtilleryMap
Definition: indirectArtilleryManager.h:55
Contains makVrv::DtStateView class.
const IndirectArtilleryMap & indirectArtillery() const
Definition: indirectArtilleryManager.h:96
makVrv::DtSignalConnectionManager myConnectionManager
Definition: indirectArtilleryManager.h:164
DtIndirectArtillerySettingsRecord myIndirectArtillerySettings
Definition: indirectArtilleryManager.h:168
The indirect artillery manager will manage the indirect artillery items created int the scenario and ...
Definition: indirectArtilleryManager.h:44
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
static const makVrv::DtUnicode DtIndirectArtilleryName
Definition: indirectArtilleryManager.h:38
IndirectArtilleryMap myIndirectArtillery
Definition: indirectArtilleryManager.h:165
Contains makVrv::DtVirtualBaseClass class.
static DtUnicode tr(const char *ascii)
Ascii translation function, used to be compatible with Qt&#39;s translation tools.
Definition: DtUnicode.h:92
File: simMsg.h.
Definition: simMessage.h:35
boost::signals2::signal< void(makVrv::DtElementID, const std::string &name, const DtIfIndirectArtilleryData &)> signal_updated
Definition: indirectArtilleryManager.h:139
makVrv::DtDe & myDe
Definition: indirectArtilleryManager.h:162
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtEntityState class.
boost::signals2::signal< void(makVrv::DtElementID)> signal_removed
Definition: indirectArtilleryManager.h:140
virtual void getSplitRecord(std::vector< DtIndirectArtillerySettingsRecord > &rec, std::vector< std::string > &fileNames)
To support writing element definitions in folders as multiple files not implemented.
Definition: indirectArtilleryManager.h:79
Definition: indirectArtilleryManager.h:48
Data container for Indirect Artillery.
Definition: ifModifyIndirectArtilleryObject.h:28
Base class to provide boost signal/slot management.
boost::signals2::signal< void()> signal_indirectArtilleryTypesUpdated
Definition: indirectArtilleryManager.h:142
virtual void addRecords(DtIndirectArtillerySettingsRecord &recs, DtIndirectArtillerySettingsRecord &combinedRec)
To support writing element definitions in folders as multiple files not implemented.
Definition: indirectArtilleryManager.h:84
const makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * myState
Definition: indirectArtilleryManager.h:50
boost::signals2::signal< void(const DtIndirectArtillerySettingsRecord &)> signal_indirectArtillerySettingsChanged
Sent after anything about the indirect artillery options have changed.
Definition: indirectArtilleryManager.h:137
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
makVrv::DtRecordSettingsBackupInterface * settingsBackup()
Definition: indirectArtilleryManager.h:119
makVrv::DtRecordSettingsBackupInterface * mySettingsBackup
Definition: indirectArtilleryManager.h:167
std::string myName
Definition: indirectArtilleryManager.h:52
The makVrv::DtRecordSettingsBackupInterface provides an interface to record-based backups...
Definition: DtRecordSettingsBackup.h:24

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)