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 
63  virtual DtAssembliesReaderWriter::RootNodeContainer combinedAssembliesRootNodes() const;
64 
66  {
67  return myAssembliesReaderWriter;
68  }
69 
71  {
72  return myAssembliesReaderWriter;
73  }
74 
76  {
77  return myAdditionalData;
78  }
79 
81  {
82  return myAdditionalData;
83  }
84 
86  {
87  return myKeywordValuePairsReaderWriter;
88  }
89 
90  typedef boost::function<void (const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode&,
91  const std::set<DtString>& validElements)> RollUpFunction;
92 
95  virtual void rollUpAndReselect(const std::vector<DtObjectType>&);
96 
98  virtual void rollUp(std::vector<DtObjectType>, bool reselect = false);
99 
101  virtual void rollUp(const DtObjectType&);
102 
104  virtual std::set<DtString> resetRollUpVariables(const DtObjectType&, const DtRwPropertiesMap* assemblies, const DtAssembliesReaderWriter::RwRootNode* = 0);
105 
106  virtual void resetRollUpVariables(const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode&, std::set<DtString>&, const DtAssembliesReaderWriter::RwRootNode* = 0);
107 
110  virtual void resetRollUpVariable(const DtObjectType&, const std::string&, std::set<DtString>&, const DtAssembliesReaderWriter::RwRootNode* = 0);
111 
114  virtual void addMappedElementsFromAssembly(const DtObjectType&, DtRwPropertiesMap*, int, const DtAssembliesReaderWriter::RwRootNode&);
115 
117  virtual void addSystemsFromAssembly(const DtObjectType&, int, const DtAssembliesReaderWriter::RwRootNode&);
118  virtual void addSystem(const DtObjectType&, const DtFilename& systemFilename,
120 
122  virtual void addRollUpFunction(const std::string& function, RollUpFunction);
123 
125  virtual const std::set<DtString>& availableVariables();
126 
128  virtual const std::set<DtString>& availableSystems();
129 
131  virtual void resetSystems(const DtObjectType&);
132 
134  virtual void rollUpAll();
135 
137  virtual bool hasRollUpItems() const;
138 
140  virtual void clear();
141 
143  virtual void combinedRollUpRules(DtAssembliesReaderWriter::RwRootNode&) const;
144 
146  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const std::string&) const;
147  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const std::string& type, const std::string&) const;
148  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const DtAssembliesReaderWriter&, const std::string& type, const std::string&) const;
149  virtual DtAssembliesReaderWriter::RwRootNode* assemblyNodeFor(const std::string&) const;
150 
151 protected:
152  virtual void collect(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToCollect,
153  const std::set<DtString>& validElements);
154 
155  typedef boost::function<void (double, double, DtReaderWriter*)> CollectionFunction;
156 
157  virtual void sum(double count, double value, DtReaderWriter*);
158  virtual void sumFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
159  const std::set<DtString>& validElements);
160 
161  virtual void minimum(double count, double value, DtReaderWriter*);
162  virtual void minimumFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
163  const std::set<DtString>& validElements);
164 
165  virtual void maximum(double count, double value, DtReaderWriter*);
166  virtual void maximumFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
167  const std::set<DtString>& validElements);
168  virtual void ignoreFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
169  const std::set<DtString>& validElements);
170 
171  virtual void averageFunction(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
172  const std::set<DtString>& validElements);
173  virtual void calculateAverage(const DtRwPropertiesMap*, const DtObjectType&,
174  const std::string& propertyToAverage, const DtAssembliesReaderWriter::RwRootNode& itemsToSum, const std::set<DtString>& validElements);
175 
176  virtual void singleValueRollUp(const DtRwPropertiesMap*, const DtObjectType&, const DtAssembliesReaderWriter::RwRootNode&,
177  const std::set<DtString>& validElements, CollectionFunction func);
178 
179  virtual void extractVariables(DtReaderWriter*, std::set<DtString>& vars) const;
180 
181  virtual std::string valueForVariable(const DtAssembliesReaderWriter::RwRootNode& variables, const std::string& keyword) const;
182 
183  virtual std::map<std::string, std::string> combine(const std::map<std::string, std::string>& base,
184  const std::map<std::string, std::string>& takeFrom) const;
185 
186  virtual bool ignoreVariable(DtReaderWriter*, const DtAssembliesReaderWriter::RwRootNode*) const;
187 
188 private:
190  DtRollUpManager& operator=(const DtRollUpManager&);
191 
192 protected:
195 
196  typedef std::map<std::string, RollUpFunction> RollUpFunctions;
198 
200  std::set<DtString> myAvailableVariables;
201  std::set<DtString> myAvailableSystems;
202 
205 };
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:85
Definition: rollUpManager.h:30
DtRollUpManager * additionalData()
Definition: rollUpManager.h:75
DtRollUpManager * myAdditionalData
Definition: rollUpManager.h:203
Definition: readerWriter.h:85
Definition: assembliesReaderWriter.h:31
DtAssembliesReaderWriter myAssembliesReaderWriter
Definition: rollUpManager.h:194
Definition: assembliesReaderWriter.h:107
std::set< DtString > myAvailableVariables
Definition: rollUpManager.h:200
bool myNeedsAvailableVariablesCheck
Definition: rollUpManager.h:199
DtAssembliesReaderWriter & assembliesReaderWriter()
Definition: rollUpManager.h:70
Definition: objectType.h:27
DtComponentSystemDefinition.
Definition: componentSystemDefinition.h:25
Contains makVrv::DtVirtualBaseClass class.
RollUpFunctions myRollUpFunctions
Definition: rollUpManager.h:197
makVrv::DtDe & myDe
Definition: rollUpManager.h:193
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:155
DtRwKeywordValuePairsReader myKeywordValuePairsReaderWriter
Definition: rollUpManager.h:204
std::set< DtString > myAvailableSystems
Definition: rollUpManager.h:201
const DtAssembliesReaderWriter & assembliesReaderWriter() const
Definition: rollUpManager.h:65
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:196
boost::function< void(const DtRwPropertiesMap *, const DtObjectType &, const DtAssembliesReaderWriter::RwRootNode &, const std::set< DtString > &validElements)> RollUpFunction
Definition: rollUpManager.h:91
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
const DtRollUpManager * additionalData() const
Definition: rollUpManager.h:80

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)