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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)