VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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);
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  virtual int nextSpawnNumber(const DtString& templateName);
102  virtual int nextSinkNumber(const DtString& templateName);
103 
105  virtual void slot_commandRequestToBeAddedToPlan(DtSimCommand&, bool forEdit);
106  virtual DtString sinkPointName(const DtString& templateName);
107  virtual DtString spawnPointName(const DtString& templateName);
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, bool recreateMenu = true);
158 
159  protected:
160 
161  virtual void processTemplateList(DtSimMessage* rsp);
162 
163  virtual void completeInitialization();
164 
165  virtual bool 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  virtual void slot_uuidChanged(makVrv::DtUniqueID, const DtUUID& oldUUID, const DtUUID& newUUID);
176 
177  protected:
178 
181 
184 
186  {
188  std::string templateType;
189  };
190 
191  typedef std::map<makVrv::DtUniqueID, TemplateInfo> UniqueIdToTemplateInfo;
193 
195 
197 
198  typedef std::map<int, DtUUID> ExtraMapToTemplateUUID;
200 
201  typedef std::map<DtString, int> NextNumberMap;
204  };
205 
209  {
210  public:
211  virtual DtCopyObject* create(makVrv::DtDe&);
212  };
213 
216  {
217  public:
220 
221  protected:
223  virtual void createObject(const DtVector& center);
224 
225  virtual void createSpawnObject(const DtVector&);
226  virtual void createSinkObject(const DtVector&);
227  virtual void write(std::ostringstream& str, const DtVrlinkSimulatedEnvironmentProcess* ent, makVrv::DtUniqueID id);
228  virtual void read(std::istringstream& str, DtVrlinkSimulatedEnvironmentProcess* data);
229 
230  protected:
231  std::vector<DtUUID> mySpawnTemplateUUID;
232  };
233 }
234 
235  std::ostringstream& operator<<(std::ostringstream&, const std::vector<DtUUID>&);
236  std::istringstream& operator>>(std::istringstream&, std::vector<DtUUID>&);

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)