VR-Forces 4.2 Class Documentation
DtIndirectArtilleryManager.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>
13 #include <vrvUtil/DtVirtualBaseClass.h>
15 #include <vrvUtil/DtSignalConnectionManager.h>
16 #include <vrvUtil/DtUnicode.h>
17 #include <vrvCore/DtStateView.h>
19 
20 #include <vrvUtil/signalslib.h>
21 
22 namespace makVrv
23 {
24  class DtDe;
25  class DtSimObjectEntry;
26  class DtRecordSettingsBackupInterface;
27  class DtSharedSettingsManager;
28 }
29 
30 class DtSimMessage;
31 
32 namespace makVrf
33 {
34  class DtIndirectArtillerySettingsRecord;
35  struct DtVrlinkSimulatedEnvironmentProcess;
36 
37  static const makVrv::DtUnicode DtIndirectArtilleryName = makVrv::DtUnicode::tr("Indirect Fire");
38 
42 
43  class DT_DLL_VRFGUICORE DtIndirectArtilleryManager : public makVrv::DtVirtualBaseClass
44  {
45  public:
46 
48  {
49  const makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>* myState;
51  std::string myName;
52  };
53 
54  typedef std::map<makVrv::DtElementID, IndirectArtilleryData> IndirectArtilleryMap;
55 
56  public:
58  DtIndirectArtilleryManager(makVrv::DtDe&);
59 
61  virtual ~DtIndirectArtilleryManager();
62 
64  static DtIndirectArtilleryManager& instance(makVrv::DtDe& de);
65 
67  static void registerInstance(makVrv::DtDe&, DtIndirectArtilleryManager*);
68 
69  void setAutoSave(bool b);
70  bool autoSave() const;
71 
73  virtual void getRecord(DtIndirectArtillerySettingsRecord& rec) const;
74  virtual void getDefaultData(DtIfIndirectArtilleryData& rec) const;
75 
76  virtual void setFromRecord(const DtIndirectArtillerySettingsRecord& rec);
77 
79  virtual void emptyList();
80 
83  virtual void load (const std::string&);
84 
85  const IndirectArtilleryMap& indirectArtillery() const
86  {
87  return myIndirectArtillery;
88  }
89 
91  virtual bool hasIndirectArtilleryData(makVrv::DtElementID) const;
92 
94  virtual DtIfIndirectArtilleryData indirectArtilleryData(makVrv::DtElementID id) const;
95 
96  const DtIndirectArtilleryTypesManager& typesManager() const;
98  virtual void loadDefaults(bool fromFactory = false);
99 
101  virtual void saveAsDefaults();
102 
103  const makVrv::DtRecordSettingsBackupInterface* settingsBackup() const
104  {
105  return mySettingsBackup;
106  }
107 
108  makVrv::DtRecordSettingsBackupInterface* settingsBackup()
109  {
110  return mySettingsBackup;
111  }
112 
114  void exportSettings(const std::string& fileName);
115 
117  void importSettings(const std::string& fileName);
118 
119  public:
121  boost::signal<void (const DtIndirectArtillerySettingsRecord&)> signal_indirectArtillerySettingsChanged;
122 
123  boost::signal<void (makVrv::DtElementID, const std::string& name, const DtIfIndirectArtilleryData&)> signal_updated;
124  boost::signal<void (makVrv::DtElementID)> signal_removed;
125 
126  protected:
128  virtual void initArtilleryAreas();
129 
132  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& e);
133 
136  virtual void slot_simStateAdded(makVrv::DtSimObjectEntry& e);
137 
139  virtual void addIfArtillery(const makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>*);
140 
143  virtual void waiting();
144 
147  virtual void indirectArtilleryDataReceived(DtSimMessage*);
148 
150  virtual void slot_onArtilleryUpdated(const makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>*);
151 
152  protected:
154  makVrv::DtDe& myDe;
155 
156  makVrv::DtSignalConnectionManager myConnectionManager;
157  std::map<makVrv::DtElementID, bool> myWaiting;
159 
160  makVrv::DtRecordSettingsBackupInterface* mySettingsBackup;
162  };
163 }

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)