VR-Forces Developer's Guide
 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 
11 #if !defined(Q_MOC_RUN)
13 #include "vrfmsgs/ifSpawnList.h"
14 
19 
20 #include <vrfutil/rwUUID.h>
21 //Vantage
23 
24 //VRLink
25 #include <vlpi/entityType.h>
26 #endif
27 #include <boost/signals2.hpp>
28 
29 #include <vector>
30 
31 #include <boost/signals2.hpp>
32 
33 #include <QObject>
34 
35 class DtSimMessage;
36 class QString;
37 class DtSimCommand;
38 class DtModelSetEntry;
39 
40 namespace makVrv
41 {
42  class DtDe;
43 }
44 
45 namespace makVrv
46 {
47  class DtSimObjectEntry;
48 
49 }
50 
51 namespace makVrf
52 {
53  class DtSpawnSinkCreationDialog;
54  class DtCreateObjectPaletteInterface;
55  class DtEntityMapperKey;
56  struct DtVrlinkSimulatedEnvironmentProcess;
57 
62  {
63  Q_OBJECT
64 
65  public:
66 
69 
71  virtual ~DtSpawnSinkGuiManager() override;
72 
74  static DtSpawnSinkGuiManager& instance(makVrv::DtDe& de);
75 
77  virtual bool init();
78 
80  virtual void requestSpawnTemplateList();
81 
82  virtual const SpawnTemplateDescriptionList& spawnPatternList() const;
84  virtual bool setPatternList( const SpawnTemplateDescriptionList & list);
85 
86  virtual const SpawnTemplateDescriptionList & patternList() const;
87  virtual SpawnTemplateDescriptionList & patternList();
88 
89  virtual DtUUID lookupUUIDByTemplateName(const DtString&) const;
90 
91  virtual void slot_updateCreationPalette(DtCreateObjectPaletteInterface* palette);
92 
94 
97  virtual void slot_spawnCreateObject(const DtVrfObjectManipulationHandlerBaseClass::ObjectManipulationData&, QString,
98  DtUUID);
99 
102  virtual void slot_sinkCreateObject(const DtVrfObjectManipulationHandlerBaseClass::ObjectManipulationData&, QString,
103  DtUUID);
104 
106  virtual int nextSpawnNumber(const DtString& templateName);
108  virtual int nextSinkNumber(const DtString& templateName);
109 
111  virtual void slot_commandRequestToBeAddedToPlan(DtSimCommand&, bool forEdit);
112  virtual DtString sinkPointName(const DtString& templateName);
113  virtual DtString spawnPointName(const DtString& templateName);
114 
115  virtual int indexOfTemplateWithUUID(const DtUUID& tempName) const;
116  virtual DtString templateName(const DtUUID&) const;
117 
118  virtual std::vector<DtUUID> templatesWithSpawnPoint(const DtUUID& tempName) const;
119  virtual std::vector<DtUUID> templatesWithSinkPoint(const DtUUID& tempName) const;
120 
122  virtual DtSpawnSinkCreationDialog* spawnSinkCreationDialog();
123 
124  protected slots:
125  virtual void dialogDestroyed();
126 
127  public:
128  boost::signals2::signal<void (const SpawnTemplateDescriptionList &)> signal_patternListUpdated;
129  boost::signals2::signal<void (const SpawnTemplateDescriptionList &)> signal_spawnSinkPointCountUpdated;
130 
131  boost::signals2::signal<void (const DtUUID&)> signal_spawnPointAdded;
132  boost::signals2::signal<void (const DtUUID&)> signal_sinkPointAdded;
133 
134  boost::signals2::signal<void (const DtUUID&)> signal_spawnPointRemoved;
135  boost::signals2::signal<void (const DtUUID&)> signal_sinkPointRemoved;
136 
137  //boost::signals2::signal<void (bool)> signal_validityChanged;
138 
139  protected:
140 
143  virtual void updateCreateMenuWithSpawnAndSinkPoints(DtCreateObjectPaletteInterface* palette);
144 
146  virtual void removePaletteItems(DtCreateObjectPaletteInterface* iFace);
147 
149  virtual void removeCreateMenuItems(DtCreateObjectPaletteInterface* palette);
150 
153  virtual void slot_simStateAdded(DtSimObjectReference e);
154 
156  virtual void slot_simObjectEntryAboutToBeRemoved(DtSimObjectReference e);
157 
159  virtual void resetCounters(bool requestTemplates = true);
160 
162  virtual DtModelSetEntry* addModelSetEntryIfMissing(const DtString& label, const DtEntityMapperKey&,
163  const DtString& category, bool recreateMenu = true);
164 
165  protected:
166 
167  virtual void processTemplateList(DtSimMessage* rsp);
168 
169  virtual void completeInitialization();
170 
171  virtual bool addPotentialSpawnSinkPoint(DtSimObjectReference);
172  virtual void removePotentialSpawnSinkPoint(const DtUUID& templateName, const DtEntityType& t);
173 
174  virtual void slot_stateViewUpdated(DtSimObjectReference s);
175  //virtual void processValidityResponse(DtSimMessage* rsp);
176 
177  virtual bool isSpawnOrSinkPoint(DtSimObjectReference s) const;
178  virtual bool isSpawnPoint(DtSimObjectReference s) const;
179  virtual bool isSinkPoint(DtSimObjectReference s) const;
180 
181  virtual void slot_uuidChanged(const DtUUID& oldUUID, const DtUUID& newUUID, DtSimObjectReference);
182 
183  protected:
184 
187 
190 
192  {
194  std::string templateType;
195  };
196 
197  typedef std::map<makVrv::DtUniqueID, TemplateInfo> UniqueIdToTemplateInfo;
199 
201 
203 
204  typedef std::map<int, DtUUID> ExtraMapToTemplateUUID;
206 
207  typedef std::map<DtString, int> NextNumberMap;
210  };
211 
215  {
216  public:
217  virtual DtCopyObject* create(makVrv::DtDe&) override;
218  };
219 
222  {
223  public:
225  virtual ~DtSpawnSinkEnvironmentalPointCopyObject() override;
226 
227  protected:
229  virtual void createObject(const DtVector& center) override;
230 
231  virtual void createSpawnObject(const DtVector&);
232  virtual void createSinkObject(const DtVector&);
233  virtual void write(std::ostringstream& str, DtSimObjectReference) override;
234  virtual void readAdditionalData(std::istringstream& str) override;
235 
236  protected:
237  std::vector<DtUUID> mySpawnTemplateUUID;
238  };
239 }
240 
241 std::ostringstream& operator<<(std::ostringstream&, const std::vector<DtUUID>&);
242 std::istringstream& operator>>(std::istringstream&, std::vector<DtUUID>&);
UUID is a unique ID wrapper class.
Definition: uuid.h:59
makVrv::DtDe & myDe
Definition: spawnSinkGuiManager.h:185
Definition: entityMapperKey.h:19
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
bool myRequestMade
Definition: spawnSinkGuiManager.h:200
UniqueIdToTemplateInfo myUniqueIdToTemplateInfo
Definition: spawnSinkGuiManager.h:198
Definition: spawnSinkGuiManager.h:191
Class used to create point facades for paste.
Definition: environmentalCopyObject.h:57
Definition: spawnSinkCreationDialog.h:29
Creator used to create copy classes. Subclass to implement create() method to return object used for ...
Definition: copyObject.h:360
Contains the DtUUID class declaration.
makVrv::DtSignalConnectionManager myConnectionManager
Definition: spawnSinkGuiManager.h:188
ExtraMapToTemplateUUID myExtraMapToTemplateUUID
Definition: spawnSinkGuiManager.h:205
DtUUID uuid
Definition: spawnSinkGuiManager.h:193
Represents the manager responsible for dealing with any GUI related stuff.
Definition: spawnSinkGuiManager.h:61
boost::signals2::signal< void(const DtUUID &)> signal_spawnPointAdded
Definition: spawnSinkGuiManager.h:131
Definition: modelSetEntry.h:34
std::map< DtString, int > NextNumberMap
Definition: spawnSinkGuiManager.h:207
std::string templateType
Definition: spawnSinkGuiManager.h:194
Contains makVrv::DtVirtualBaseClass class.
boost::signals2::signal< void(const DtUUID &)> signal_spawnPointRemoved
Definition: spawnSinkGuiManager.h:134
boost::signals2::signal< void(const DtUUID &)> signal_sinkPointRemoved
Definition: spawnSinkGuiManager.h:135
boost::signals2::signal< void(const DtUUID &)> signal_sinkPointAdded
Definition: spawnSinkGuiManager.h:132
File: simMsg.h.
Definition: simMessage.h:35
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Definition: copyObject.h:124
Class used to create point facades for paste.
Definition: spawnSinkGuiManager.h:221
NextNumberMap myNextSpawnNumber
Definition: spawnSinkGuiManager.h:209
DtSimCommand is an abstract base class from which commands can derive. It manages the read/write capa...
Definition: simCommand.h:32
boost::signals2::signal< void(const SpawnTemplateDescriptionList &)> signal_patternListUpdated
Definition: spawnSinkGuiManager.h:128
SpawnTemplateDescriptionList myPatternList
Definition: spawnSinkGuiManager.h:186
std::map< int, DtUUID > ExtraMapToTemplateUUID
Definition: spawnSinkGuiManager.h:204
Definition: vrfObjectManipulationHandlerBaseClass.h:503
std::map< makVrv::DtUniqueID, TemplateInfo > UniqueIdToTemplateInfo
Definition: spawnSinkGuiManager.h:197
Base class to provide boost signal/slot management.
boost::signals2::signal< void(const SpawnTemplateDescriptionList &)> signal_spawnSinkPointCountUpdated
Definition: spawnSinkGuiManager.h:129
std::vector< SpawnTemplateListEntry > SpawnTemplateDescriptionList
This is a map keyed by a template&#39;s name which corresponds to its description.
Definition: ifSpawnList.h:36
NextNumberMap myNextSinkNumber
Definition: spawnSinkGuiManager.h:208
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Creator used to create copy classes. Used as subclass for existing point copy creator to specially pa...
Definition: spawnSinkGuiManager.h:214
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
std::vector< DtUUID > mySpawnTemplateUUID
Definition: spawnSinkGuiManager.h:237
DT_DLL_features std::istream & operator>>(std::istream &, DtQuery &)
iostream input iteration
DtSpawnSinkCreationDialog * mySpawnSinkCreationDialog
Definition: spawnSinkGuiManager.h:202
makVrv::DtSignalConnectionManager myPaletteConnections
Definition: spawnSinkGuiManager.h:189
Abstract interface for the object creation palette.
Definition: createObjectPaletteInterface.h:29

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)