VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rollUpManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2013 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
16 
17 #include <boost/function.hpp>
18 #include <set>
19 
20 class DtFilename;
21 class DtRwPropertiesMap;
22 class DtReaderWriter;
24 
25 namespace makVrv
26 {
27  class DtDe;
28 }
29 
31 {
32 public:
33 
36 
37  virtual ~DtRollUpManager();
38 
39  virtual bool loadDataFiles(const DtFilename&);
40 
42  virtual bool loadAdditionalDataFiles(const DtFilename&);
43 
45  static DtRollUpManager& instance(makVrv::DtDe&);
46 
48  static void registerInstance(makVrv::DtDe&, DtRollUpManager*);
49 
50  virtual std::map<std::string, std::string> ammunition() const;
51  virtual std::map<std::string, std::string> equipment() const;
52  virtual std::map<std::string, std::string> variables() const;
53  virtual std::map<std::string, std::string> weapons() const;
54  virtual std::map<std::string, std::string> assemblies() const;
55 
57  virtual std::map<std::string, std::string> combinedAmmunition() const;
58  virtual std::map<std::string, std::string> combinedEquipment() const;
59  virtual std::map<std::string, std::string> combinedWeapons() const;
60  virtual std::map<std::string, std::string> combinedAssemblies() const;
61  virtual std::map<std::string, std::string> combinedVariables() const;
62 
64  virtual DtAssembliesReaderWriter::RootNodeContainer combinedAssembliesRootNodes() const;
65 
66  virtual DtAssembliesReaderWriter::RootNodeContainer combinedAmmunitionNodes() const;
67  virtual DtAssembliesReaderWriter::RootNodeContainer combinedEquipmentNodes() const;
68  virtual DtAssembliesReaderWriter::RootNodeContainer combinedWeaponsNodes() const;
69 
71  {
72  return myAssembliesReaderWriter;
73  }
74 
76  {
77  return myAssembliesReaderWriter;
78  }
79 
81  {
82  return myAdditionalData;
83  }
84 
86  {
87  return myAdditionalData;
88  }
89 
91  {
92  return myKeywordValuePairsReaderWriter;
93  }
94 
95  typedef boost::function<void (const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode&,
96  const std::set<DtString>& validElements)> RollUpFunction;
97 
100  virtual void rollUpAndReselect(std::vector<DtObjectType>);
101 
103  virtual void rollUp(std::vector<DtObjectType>, bool reselect = false);
104 
106  virtual void rollUp(const DtObjectType&);
107 
109  virtual std::set<DtString> resetRollUpVariables(const DtObjectType&, const DtRwPropertiesMap* assemblies, const DtAssembliesReaderWriter::RwRootNode* = 0);
110 
111  virtual void resetRollUpVariables(const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode&, std::set<DtString>&, const DtAssembliesReaderWriter::RwRootNode* = 0);
112 
115  virtual void resetRollUpVariable(const DtObjectType&, const std::string&, std::set<DtString>&, const DtAssembliesReaderWriter::RwRootNode* = 0);
116 
119  virtual void addMappedElementsFromAssembly(const DtObjectType&, DtRwPropertiesMap*, int, const DtAssembliesReaderWriter::RwRootNode&);
120 
122  virtual void addSystemsFromAssembly(const DtObjectType&, int, const DtAssembliesReaderWriter::RwRootNode&);
123  virtual void addSystem(const DtObjectType&, const DtFilename& systemFilename,
125 
127  virtual void addRollUpFunction(const std::string& function, RollUpFunction);
128 
130  virtual const std::set<DtString>& availableVariables();
131 
133  virtual const std::set<DtString>& availableSystems();
134 
136  virtual void resetSystems(const DtObjectType&);
137 
139  virtual void rollUpAll();
140 
142  virtual bool hasRollUpItems() const;
143 
145  virtual void clear();
146 
148  virtual void combinedRollUpRules(DtAssembliesReaderWriter::RwRootNode&) const;
149 
151  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const std::string&) const;
152  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const std::string& type, const std::string&) const;
153  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const DtAssembliesReaderWriter&, const std::string& type, const std::string&) const;
154  virtual DtAssembliesReaderWriter::RwRootNode* assemblyNodeFor(const std::string&) const;
155 
156 protected:
157  virtual void collect(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToCollect,
158  const std::set<DtString>& validElements);
159 
160  typedef boost::function<void (double, double, DtReaderWriter*)> CollectionFunction;
161 
162  virtual void sum(double count, double value, DtReaderWriter*);
163  virtual void sumFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
164  const std::set<DtString>& validElements);
165 
166  virtual void minimum(double count, double value, DtReaderWriter*);
167  virtual void minimumFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
168  const std::set<DtString>& validElements);
169 
170  virtual void maximum(double count, double value, DtReaderWriter*);
171  virtual void maximumFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
172  const std::set<DtString>& validElements);
173  virtual void ignoreFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
174  const std::set<DtString>& validElements);
175 
176  virtual void averageFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
177  const std::set<DtString>& validElements);
178  virtual void calculateAverage(const DtRwPropertiesMap*, const DtObjectType&,
179  const std::string& propertyToAverage, const DtAssembliesReaderWriter::RwRootNode& itemsToSum, const std::set<DtString>& validElements);
180 
181  virtual void singleValueRollUp(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode&,
182  const std::set<DtString>& validElements, CollectionFunction func);
183 
184  virtual void extractVariables(DtReaderWriter*, std::set<DtString>& vars) const;
185 
186  virtual std::string valueForVariable(const DtAssembliesReaderWriter::RwRootNode& variables, const std::string& keyword) const;
187 
188  virtual std::map<std::string, std::string> combine(const std::map<std::string, std::string>& base,
189  const std::map<std::string, std::string>& takeFrom) const;
190 
191  virtual bool ignoreVariable(DtReaderWriter*, const DtAssembliesReaderWriter::RwRootNode*) const;
192 
193 private:
195  DtRollUpManager& operator=(const DtRollUpManager&);
196 
197 protected:
200 
201  typedef std::map<std::string, RollUpFunction> RollUpFunctions;
203 
205  std::set<DtString> myAvailableVariables;
206  std::set<DtString> myAvailableSystems;
207 
210 };
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
const DtRwKeywordValuePairsReader & keywordValuePairs() const
Definition: rollUpManager.h:90
Definition: rollUpManager.h:30
DtRollUpManager * additionalData()
Definition: rollUpManager.h:80
DtRollUpManager * myAdditionalData
Definition: rollUpManager.h:208
Definition: readerWriter.h:85
Definition: assembliesReaderWriter.h:31
DtAssembliesReaderWriter myAssembliesReaderWriter
Definition: rollUpManager.h:199
Definition: assembliesReaderWriter.h:112
std::set< DtString > myAvailableVariables
Definition: rollUpManager.h:205
bool myNeedsAvailableVariablesCheck
Definition: rollUpManager.h:204
DtAssembliesReaderWriter & assembliesReaderWriter()
Definition: rollUpManager.h:75
DtComponentSystemDefinition.
Definition: componentSystemDefinition.h:25
Contains makVrv::DtVirtualBaseClass class.
RollUpFunctions myRollUpFunctions
Definition: rollUpManager.h:202
makVrv::DtDe & myDe
Definition: rollUpManager.h:198
Acts as a map for properties. A map is a definition that has a key and a prototype, with values being the key and prototype pair. The key can only be a string (DtRwStringType), int (DtRwIntType, DtRwInt8Type, DtRwInt16Type, DtRwInt32Type), or real (DtRwRealType, DtRwReal32Type, DtRwReal64Type).
Definition: rwPropertiesMap.h:41
boost::function< void(double, double, DtReaderWriter *)> CollectionFunction
Definition: rollUpManager.h:160
DtRwKeywordValuePairsReader myKeywordValuePairsReaderWriter
Definition: rollUpManager.h:209
std::set< DtString > myAvailableSystems
Definition: rollUpManager.h:206
const DtAssembliesReaderWriter & assembliesReaderWriter() const
Definition: rollUpManager.h:70
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:72
This class will read ammunition, entity, weapons and assemblies and provide information about them...
Definition: assembliesReaderWriter.h:24
This file reader will read a specically formatted file that has multiple keyword/value pairs by reade...
Definition: rwKeywordValuePairsReader.h:26
std::map< std::string, RollUpFunction > RollUpFunctions
Definition: rollUpManager.h:201
boost::function< void(const DtRwPropertiesMap *, const DtObjectType &, const DtAssembliesReaderWriter::RwRootNode &, const std::set< DtString > &validElements)> RollUpFunction
Definition: rollUpManager.h:96
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
const DtRollUpManager * additionalData() const
Definition: rollUpManager.h:85

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)