VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
entityCreatePaletteLogic.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
16 #include <vrvCore/DtMenuPath.h>
18 
19 #include <vector>
20 #include <set>
21 
22 class DtSimulationAddress;
23 class QString;
24 
25 namespace makVrv
26 {
27  class DtDe;
28 }
29 
30 class DtModelSetEntry;
31 
32 namespace makVrf
33 {
34  class DtVrfBackendState;
35 
36  class DtEntityCreatePaletteInterface;
37 
39  {
44 
45  std::string myName;
47  std::set<std::string> myCategories;
48  std::vector<int> myForces;
49  std::set<std::string> myDeployedCountries;
50  std::string myDescription;
52  };
53 
54  typedef boost::shared_ptr<DtEntityPaletteItem> DtEntityPaletteItemHandle;
55 
58  {
59  public:
62  virtual ~DtPaletteFilter() {};
63 
65  virtual bool shouldAddCreationItem(const DtEntityPaletteItem&, const std::set<std::string>& categories, const QString& deployedCountry,
66  int force) const = 0;
67 
68  virtual DtPaletteFilter* clone() const = 0;
69 
70  virtual bool operator==(const DtPaletteFilter&) const { return true; };
71  virtual bool operator!=(const DtPaletteFilter& rhs) const { return !(*this == rhs); };
72  };
73 
76  {
77  public:
80  virtual ~DtEntityTypePaletteFilter();
81 
83  virtual bool shouldAddCreationItem(const DtEntityPaletteItem&, const std::set<std::string>& categories, const QString& deployedCountry,
84  int force) const;
85 
87  virtual void addEntityType(const DtEntityType& type);
88 
89  virtual DtPaletteFilter* clone() const;
90  virtual bool operator==(const DtPaletteFilter&) const;
91 
92  protected:
93  std::vector<DtEntityType> myEntityTypes;
94  };
95 
97  {
98 
99  public:
100 
102  static DtEntityCreatePaletteLogic* create(makVrv::DtDe& de,
104 
106  virtual ~DtEntityCreatePaletteLogic();
107 
108  virtual void createAndAddItem(const std::string& name,
109  const DtEntityMapperKey& key,const std::set<std::string>& categories,const std::vector<int>& forces,
110  const std::string& description = "", int itemsToCreate = 0);
111 
113  virtual void removeItem(const DtEntityMapperKey& key, bool matchesPattern = false);
114 
115  virtual void disconnectCreationSignal(bool disconnect);
116 
118  virtual void setFavorite(const DtEntityMapperKey&, bool);
119 
123  virtual void setCombinePalettes(bool combine);
124  virtual bool combinePalettes() const;
125 
128  static void addGlobalPaletteFilter(const DtPaletteFilter&);
129  static void removeGlobalPaletteFilter(const DtPaletteFilter&);
130 
133  virtual void addLocalPaletteFilter(const DtPaletteFilter&);
134  virtual void removeLocalPaletteFilter(const DtPaletteFilter&);
135 
137  bool showNonCreatableUnits() const { return myShowNonCreatableUnits; };
138  virtual void setShowNonCreatableUnits(bool);
139 
141  virtual void addIgnore(const DtEntityType&);
142 
144  virtual void clearIgnore();
145 
147  virtual const std::vector<DtEntityType>& ignoring() const;
148 
150  virtual void setIgnore(const std::vector<DtEntityType>&);
151 
152  protected:
155 
156  virtual void slot_postInitialize(makVrv::DtDe& de);
157  virtual void slot_modelSetChanged();
158  virtual void slot_categoriesChanged(std::vector<std::string> newCategories);
159  virtual void slot_deployedCountryChanged(std::string newCategory);
160  virtual void slot_executeFilter();
161 
162  virtual void slot_selectedBackEndChanged(const DtSimulationAddress& old, const DtSimulationAddress& newaddr);
163  virtual void slot_backendUpdated(const DtVrfBackendState&, int);
164 
165  virtual void slot_createObject(const DtEntityMapperKey&);
166  virtual void slot_spotReportOptionsChanged(const DtVrfSpotReportsSettingsRecord&);
167 
169  virtual bool modelIsCreatable(DtModelSetEntry*) const;
170 
172  virtual bool ignoreType(const DtEntityType&) const;
173 
174  virtual bool forceCanBeCreatedByUser(int) const;
175 
176  virtual bool shouldAddCreationItem(const DtEntityPaletteItem&, const std::set<std::string>& categories, const QString& deployedCountry, int force) const;
177  virtual void enablePalette(int terrainPatchOffset = 0);
178  virtual void slot_terrainPatchToBeDeleted();
179  virtual void slot_terrainPatchAdded();
180  virtual void slot_sessionStatusChanged();
181 
183  virtual void slot_forceChanged();
184 
185  virtual bool includeModelOnPage(DtModelSetEntry* model) const;
186 
187  protected:
190  typedef std::map<std::string, std::set<DtEntityPaletteItemHandle> > CategoriesMap;
192  std::vector<DtEntityPaletteItemHandle> myItems;
195 
196  static std::vector<DtPaletteFilter*> theGlobalPaletteFilters;
197  std::vector<DtPaletteFilter*> myLocalPaletteFilters;
198  std::map<int, std::string> myPotentialForces;
200  std::vector<DtEntityType> myRemoveItems;
203 
204  std::vector<DtEntityType> myToIgnore;
205  };
206 }

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)