VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
spawnSinkGuiManager.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 
12 #include "vrfmsgs/ifSpawnList.h"
13 
18 #include <vrvCore/DtEntityState.h>
19 #include <vrfutil/rwUUID.h>
20 
21 #include <vector>
22 
23 //Vantage
25 #include <vrvCore/DtDe.h>
26 
27 //VRLink
28 #include <vlpi/entityType.h>
29 
30 #include <boost/signal.hpp>
31 
32 #include <QObject>
33 
34 class DtSimMessage;
35 class QString;
36 class DtSimCommand;
37 class DtModelSetEntry;
38 
39 namespace makVrv
40 {
41  class DtSimObjectEntry;
42  struct DtVrlinkSimulatedBaseState;
43 }
44 
45 namespace makVrf
46 {
47  class DtSpawnSinkCreationDialog;
48  class DtEntityCreatePaletteInterface;
49  class DtEntityMapperKey;
50  struct DtVrlinkSimulatedEnvironmentProcess;
51 
56  {
57  Q_OBJECT
58 
59  public:
60 
63 
65  virtual ~DtSpawnSinkGuiManager();
66 
68  static DtSpawnSinkGuiManager& instance(makVrv::DtDe& de);
69 
71  virtual bool init();
72 
74  virtual void requestSpawnTemplateList();
75 
76  virtual const SpawnTemplateDescriptionList& spawnPatternList() const;
78  virtual bool setPatternList( const SpawnTemplateDescriptionList & list, bool initialSend);
79 
80  virtual const SpawnTemplateDescriptionList & patternList() const;
81  virtual SpawnTemplateDescriptionList & patternList();
82 
83  virtual DtUUID lookupUUIDByTemplateName(const DtString&) const;
84 
85  virtual void slot_updateCreationPalette(DtEntityCreatePaletteInterface* palette);
86 
88 
91  virtual void slot_spawnCreateObject(const DtVrfObjectManipulationHandlerBaseClass::ObjectManipulationData&, QString,
92  DtUUID);
93 
96  virtual void slot_sinkCreateObject(const DtVrfObjectManipulationHandlerBaseClass::ObjectManipulationData&, QString,
97  DtUUID);
98 
100  static int nextSpawnNumber();
102  static int nextSinkNumber();
103 
105  virtual void slot_commandRequestToBeAddedToPlan(DtSimCommand&, bool forEdit);
106  virtual DtString sinkPointName(const DtString& templateName) const;
107  virtual DtString spawnPointName(const DtString& templateName) const;
108 
109  virtual int indexOfTemplateWithUUID(const DtUUID& tempName) const;
110  virtual DtString templateName(const DtUUID&) const;
111 
112  virtual std::vector<DtUUID> templatesWithSpawnPoint(const DtUUID& tempName) const;
113  virtual std::vector<DtUUID> templatesWithSinkPoint(const DtUUID& tempName) const;
114 
116  virtual DtSpawnSinkCreationDialog* spawnSinkCreationDialog();
117 
118  protected slots:
119  virtual void dialogDestroyed();
120 
121  public:
122  boost::signal<void (const SpawnTemplateDescriptionList &)> signal_patternListUpdated;
123  boost::signal<void (const SpawnTemplateDescriptionList &)> signal_spawnSinkPointCountUpdated;
124 
125  boost::signal<void (const DtUUID&)> signal_spawnPointAdded;
126  boost::signal<void (const DtUUID&)> signal_sinkPointAdded;
127 
128  boost::signal<void (const DtUUID&)> signal_spawnPointRemoved;
129  boost::signal<void (const DtUUID&)> signal_sinkPointRemoved;
130 
131  //boost::signal<void (bool)> signal_validityChanged;
132 
133  protected:
134 
137  virtual void updateCreateMenuWithSpawnAndSinkPoints(DtEntityCreatePaletteInterface* palette);
138 
140  virtual void removePaletteItems(DtEntityCreatePaletteInterface* iFace);
141 
143  virtual void removeCreateMenuItems(DtEntityCreatePaletteInterface* palette);
144 
147  virtual void slot_simStateAdded(makVrv::DtSimObjectEntry& e);
148 
150  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& e);
151 
153  virtual void resetCounters(bool requestTemplates = true);
154 
156  virtual DtModelSetEntry* addModelSetEntryIfMissing(const DtString& label, const DtEntityMapperKey&,
157  const DtString& category);
158 
159  protected:
160 
161  virtual void processTemplateList(DtSimMessage* rsp);
162 
163  virtual void completeInitialization();
164 
165  virtual void addPotentialSpawnSinkPoint(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
166  virtual void removePotentialSpawnSinkPoint(const DtUUID& templateName, const DtEntityType& t);
167 
168  virtual void slot_stateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
169  //virtual void processValidityResponse(DtSimMessage* rsp);
170 
171  virtual bool isSpawnOrSinkPoint(const makVrv::DtVrlinkSimulatedBaseState& s) const;
172  virtual bool isSpawnPoint(const makVrv::DtVrlinkSimulatedBaseState& s) const;
173  virtual bool isSinkPoint(const makVrv::DtVrlinkSimulatedBaseState& s) const;
174 
175  protected:
176 
179 
181 
183  {
185  std::string templateType;
186  };
187 
188  typedef std::map<makVrv::DtUniqueID, TemplateInfo> UniqueIdToTemplateInfo;
190 
192 
194 
195  typedef std::map<int, DtUUID> ExtraMapToTemplateUUID;
197  };
198 
202  {
203  public:
204  virtual DtCopyObject* create(makVrv::DtDe&);
205  };
206 
209  {
210  public:
213 
214  protected:
216  virtual void createObject(const DtVector& center);
217 
218  virtual void createSpawnObject(const DtVector&);
219  virtual void createSinkObject(const DtVector&);
220  virtual void write(std::ostringstream& str, const DtVrlinkSimulatedEnvironmentProcess* ent, makVrv::DtUniqueID id);
221  virtual void read(std::istringstream& str, DtVrlinkSimulatedEnvironmentProcess* data);
222 
223  protected:
224  std::vector<DtUUID> mySpawnTemplateUUID;
225  };
226 }
227 
228  std::ostringstream& operator<<(std::ostringstream&, const std::vector<DtUUID>&);
229  std::istringstream& operator>>(std::istringstream&, std::vector<DtUUID>&);

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)