VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
createObjectPaletteLogic.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
8 #pragma once
9 
12 #include <vrvCore/DtMenuPath.h>
15 
16 #include <QtCore/QString>
17 
18 #include <vector>
19 #include <set>
20 
21 #include <QString>
22 
23 #include <boost/signals2.hpp>
24 
25 class DtSimulationAddress;
26 class QString;
27 
28 namespace makVrv
29 {
30  class DtDe;
31 }
32 
33 class DtModelSetEntry;
34 
35 namespace makVrf
36 {
37  class DtVrfBackendState;
38  class DtPaletteFilter;
39 
40  class DtCreateObjectPaletteInterface;
42 
43  typedef std::shared_ptr<DtCreateObjectPaletteItem> DtCreateObjectPaletteItemHandle;
44 
46  {
47 
48  public:
49 
52 
54  virtual ~DtCreateObjectPaletteLogic();
55 
56  virtual void createAndAddItem(const std::string& name,
57  const DtEntityMapperKey& key,const std::set<std::string>& categories,const std::vector<int>& forces,
58  const std::string& description = "", int itemsToCreate = 0, const std::string& topLevelTag = "", const QString& shortName = "");
59 
61  virtual void removeItem(const DtEntityMapperKey& key, bool matchesPattern = false);
62 
63  virtual void disconnectCreationSignal(bool disconnect);
64 
66  virtual void setFavorite(const DtEntityMapperKey&, bool);
67 
70  static void addGlobalPaletteFilter(const DtPaletteFilter&);
71  static void removeGlobalPaletteFilter(const DtPaletteFilter&);
72 
75  virtual void addLocalPaletteFilter(const DtPaletteFilter&);
76  virtual void removeLocalPaletteFilter(const DtPaletteFilter&);
77 
79  bool showNonCreatableUnits() const { return myShowNonCreatableUnits; };
80  virtual void setShowNonCreatableUnits(bool);
81 
83  virtual void addIgnore(const DtEntityType&);
84 
86  virtual void clearIgnore();
87 
89  virtual const std::vector<DtEntityType>& ignoring() const;
90 
92  virtual void setIgnore(const std::vector<DtEntityType>&);
93 
94  virtual void slot_defaultIconListChanged();
95 
96  protected:
97 
98  virtual void slot_postInitialize(makVrv::DtDe& de);
99  virtual void slot_modelSetChanged();
100  virtual void slot_categoriesChanged(std::vector<std::string> newCategories);
101  virtual void slot_deployedCountryChanged(std::string newCategory);
102  virtual void slot_executeFilter();
103 
104  virtual void slot_selectedBackEndChanged(const DtSimulationAddress& old, const DtSimulationAddress& newaddr);
105  virtual void slot_backendUpdated(const DtVrfBackendState&, int);
106 
107  virtual void slot_createObject(const DtEntityMapperKey&);
108 
110  virtual bool modelIsCreatable(DtModelSetEntry*) const;
111 
113  virtual bool ignoreType(const DtEntityType&) const;
114 
115  virtual bool forceCanBeCreatedByUser(int) const;
116 
117  virtual bool shouldAddCreationItem(const DtCreateObjectPaletteItem&, const std::set<std::string>& categories, const std::string& deployedCountry, int force) const;
118  virtual void enablePalette(int terrainPatchOffset = 0);
119  virtual void slot_terrainPatchToBeDeleted();
120  virtual void slot_terrainPatchAdded();
121  virtual void slot_sessionStatusChanged();
122 
124  virtual void slot_forceChanged();
125 
126  virtual bool includeModelOnPage(DtModelSetEntry* model) const;
127 
128  virtual void delayedExecuteFilter();
129  virtual void addAllItems();
130 
131  protected:
134  typedef std::map<std::string, std::set<DtCreateObjectPaletteItemHandle> > CategoriesMap;
136  std::vector<DtCreateObjectPaletteItemHandle> myItems;
139  std::vector<std::string> myCategoriesToResetTo;
140 
141  static std::vector<DtPaletteFilter*> theGlobalPaletteFilters;
142  std::vector<DtPaletteFilter*> myLocalPaletteFilters;
143  std::map<int, std::string> myPotentialForces;
145  std::vector<DtEntityType> myRemoveItems;
147 
148  boost::signals2::scoped_connection myDelayedExecuteFilterConnection;
149 
150  std::vector<DtEntityType> myToIgnore;
151  std::set<DtString> myTopLevelTags;
152  int myCurrentlySelectedForce = -1;
153  bool myItemsCreated = false;
154  };
155 
158  {
159  public:
162 
164  virtual ~DtCreateObjectPaletteLogicCreator() override;
165 
167 
168  static DtCreateObjectPaletteLogicCreator& instance(makVrv::DtDe& de);
169  static void registerInstance(makVrv::DtDe& de, DtCreateObjectPaletteLogicCreator*);
170 
171  protected:
173  };
174 }
Definition: vrfBackendState.h:65
std::shared_ptr< DtCreateObjectPaletteItem > DtCreateObjectPaletteItemHandle
Definition: createObjectPaletteLogic.h:41
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
DtCreateObjectPaletteInterface * myInterface
Definition: createObjectPaletteLogic.h:133
std::vector< std::string > myCategoriesToResetTo
Definition: createObjectPaletteLogic.h:139
Registered creator for the create object palette logic item class.
Definition: createObjectPaletteLogic.h:157
bool myShowNonCreatableUnits
Definition: createObjectPaletteLogic.h:146
Definition: createObjectPaletteLogic.h:45
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
makVrv::DtMenuPath myOrderedPath
Definition: createObjectPaletteLogic.h:137
void slot_postInitialize(makVrv::DtDe &de)
std::vector< DtPaletteFilter * > myLocalPaletteFilters
Definition: createObjectPaletteLogic.h:142
static std::vector< DtPaletteFilter * > theGlobalPaletteFilters
Definition: createObjectPaletteLogic.h:141
Contains makVrv::DtMenuPath class.
Definition: modelSetEntry.h:34
Contains makVrv::DtVirtualBaseClass class.
std::vector< DtEntityType > myRemoveItems
Definition: createObjectPaletteLogic.h:145
makVrv::DtDe & myDe
Definition: createObjectPaletteLogic.h:132
bool showNonCreatableUnits() const
Whether or not non creatable units should be shown in this palette, if they are set to be displayable...
Definition: createObjectPaletteLogic.h:79
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtSignalConnectionManager myConnectionManager
Definition: createObjectPaletteLogic.h:144
bool myAllowOverlays
Definition: createObjectPaletteLogic.h:138
a Class which represents a menu path. The specific strings are not menu text, but the names used when...
Definition: DtMenuPath.h:27
Logic for adding items to the object creation palette. Add a DtPaletteFilter to filter beyond the cat...
Definition: createObjectPaletteFilters.h:44
std::set< DtString > myTopLevelTags
Definition: createObjectPaletteLogic.h:151
Base class to provide boost signal/slot management.
std::vector< DtEntityType > myToIgnore
Definition: createObjectPaletteLogic.h:150
std::map< std::string, std::set< DtCreateObjectPaletteItemHandle > > CategoriesMap
Definition: createObjectPaletteLogic.h:134
CategoriesMap myCategoriesMap
Definition: createObjectPaletteLogic.h:135
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
boost::signals2::scoped_connection myDelayedExecuteFilterConnection
Definition: createObjectPaletteLogic.h:148
std::map< int, std::string > myPotentialForces
Definition: createObjectPaletteLogic.h:143
std::vector< DtCreateObjectPaletteItemHandle > myItems
Definition: createObjectPaletteLogic.h:136
Definition: createObjectPaletteFilters.h:22
Abstract interface for the object creation palette.
Definition: createObjectPaletteInterface.h:29
makVrv::DtDe & myDe
Definition: createObjectPaletteLogic.h:172

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)