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 
15 #include <vlpi/entityType.h>
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() override;
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 
65  virtual DtAssembliesReaderWriter::RootNodeContainer combinedAmmunitionNodes() const;
66  virtual DtAssembliesReaderWriter::RootNodeContainer combinedEquipmentNodes() const;
67  virtual DtAssembliesReaderWriter::RootNodeContainer combinedWeaponsNodes() const;
68 
70  {
71  return myAssembliesReaderWriter;
72  }
73 
75  {
76  return myAssembliesReaderWriter;
77  }
78 
80  {
81  return myAdditionalData;
82  }
83 
85  {
86  return myAdditionalData;
87  }
88 
90  {
91  return myKeywordValuePairsReaderWriter;
92  }
93 
94  typedef boost::function<void (const DtRwPropertiesMap*, const DtEntityType&, const DtAssembliesReaderWriter::RwRootNode&,
95  const std::set<DtString>& validElements)> RollUpFunction;
96 
99  virtual void rollUpAndReselect(std::vector<DtEntityType>);
100 
102  virtual void rollUp(std::vector<DtEntityType>, bool reselect = false);
103 
105  virtual void rollUp(const DtEntityType&);
106 
108  virtual std::set<DtString> resetRollUpVariables(const DtEntityType&, const DtRwPropertiesMap* assemblies, const DtAssembliesReaderWriter::RwRootNode* = 0);
109 
110  virtual void resetRollUpVariables(const DtEntityType&, const DtAssembliesReaderWriter::RwRootNode&, std::set<DtString>&, const DtAssembliesReaderWriter::RwRootNode* = 0);
111 
114  virtual void resetRollUpVariable(const DtEntityType&, const std::string&, std::set<DtString>&, const DtAssembliesReaderWriter::RwRootNode* = 0);
115 
118  virtual void addMappedElementsFromAssembly(const DtEntityType&, DtRwPropertiesMap*, int, const DtAssembliesReaderWriter::RwRootNode&);
119 
121  virtual void addSystemsFromAssembly(const DtEntityType&, int, const DtAssembliesReaderWriter::RwRootNode&);
122  virtual void addSystem(const DtEntityType&, const DtFilename& systemFilename,
124 
126  virtual void addRollUpFunction(const std::string& function, RollUpFunction);
127 
129  virtual const std::set<DtString>& availableVariables();
130 
132  virtual const std::set<DtString>& availableSystems();
133 
135  virtual void resetSystems(const DtEntityType&);
136 
138  virtual void rollUpAll();
139 
141  virtual bool hasRollUpItems() const;
142 
144  virtual void clear();
145 
147  virtual void combinedRollUpRules(DtAssembliesReaderWriter::RwRootNode&) const;
148 
150  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const std::string&) const;
151  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const std::string& type, const std::string&) const;
152  virtual DtAssembliesReaderWriter::RwRootNode* rootNodeFor(const DtAssembliesReaderWriter&, const std::string& type, const std::string&) const;
153  virtual DtAssembliesReaderWriter::RwRootNode* assemblyNodeFor(const std::string&) const;
154 
155 protected:
156  virtual DtFilename findSystemFileFor(const DtFilename& fn) const;
157  virtual void collect(const DtRwPropertiesMap*, const DtEntityType&, 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 DtEntityType&, 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 DtEntityType&, 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 DtEntityType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
172  const std::set<DtString>& validElements);
173  virtual void ignoreFunction(const DtRwPropertiesMap*, const DtEntityType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
174  const std::set<DtString>& validElements);
175 
176  virtual void averageFunction(const DtRwPropertiesMap*, const DtEntityType&, const DtAssembliesReaderWriter::RwRootNode& itemsToSum,
177  const std::set<DtString>& validElements);
178  virtual void calculateAverage(const DtRwPropertiesMap*, const DtEntityType&,
179  const std::string& propertyToAverage, const DtAssembliesReaderWriter::RwRootNode& itemsToSum, const std::set<DtString>& validElements);
180 
181  virtual void singleValueRollUp(const DtRwPropertiesMap*, const DtEntityType&, 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 };
boost::function< void(const DtRwPropertiesMap *, const DtEntityType &, const DtAssembliesReaderWriter::RwRootNode &, const std::set< DtString > &validElements)> RollUpFunction
Definition: rollUpManager.h:95
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:89
Definition: rollUpManager.h:30
DtRollUpManager * additionalData()
Definition: rollUpManager.h:79
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:74
DtComponentSystemDefinition.
Definition: componentSystemDefinition.h:27
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:69
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
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
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
const DtRollUpManager * additionalData() const
Definition: rollUpManager.h:84

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)