VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
formation.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <readerWriter/rwList.h>
14 #include <list>
15 #include <matrix/vlVector.h>
16 
17 class DtFormationEntry;
18 
21 #include "vrfutil/vrfutilDefines.h"
23 {
24 public:
25 
27  DtFormation();
28 
30  DtFormation(const DtString& name, DtReaderWriterRegistry* const
31  parentRegistry = 0);
32 
34  DtFormation(const DtFormation& orig);
35 
37  DtFormation& operator=(const DtFormation& orig);
38 
40  virtual ~DtFormation();
41 
54  virtual void addPosition(int promotionId, int leaderPromotionId,
55  const DtVector& positionOffset);
56 
58  virtual void removeAndDeleteAll();
59 
61  virtual const DtFormationEntry* getFormationEntryForPromotionId(int) const;
62  virtual DtFormationEntry* getFormationEntryForPromotionId(int);
63 
67  virtual const DtFormationEntry* getFormationEntryForUnitIndex(int) const;
68 
71  virtual int promotionIdForIndex(const int index) const;
72 
74  virtual std::string subFormationForIndex(const int index) const;
75 
100  virtual std::list<DtVector> formationPositions(const int numPositions = 0,
101  int* leaderIndex = 0) const;
102 
107  virtual std::list<DtVector> formationPositionsFromUnit(const int numPositions = 0,
108  int* leaderIndex = 0) const;
109 
112  typedef std::pair<DtVector, int> PositionData;
113 
136  virtual std::vector<PositionData> promotedPositions(const int numPositions = 0) const;
137 
141  virtual std::vector<PositionData> promotedPositionsFromUnit(const int numPositions = 0) const;
142 
143  bool operator==(const DtFormation&) const;
144  bool operator!=(const DtFormation&) const;
145 
147  virtual void addEntry(DtFormationEntry * entry);
148 
155  virtual DtFormationEntry* createAndAddFormationEntry();
156 
162  virtual bool isValid() const;
163 
175  virtual double standardSpacing() const;
176 
177 protected:
178 
182  virtual void computeAndSetStandardSpacing();
183 
186  virtual DtVector newFormationEntryOffset(const DtVector& lastOffset) const;
187 
189  virtual void removeEntry(DtFormationEntry * entry);
190 
191  virtual void copyList(const DtFormation& orig);
192 
195  virtual void emptyList();
196 
199  virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
200  const DtVariableBindingsList& variableBindings);
201 
202 protected:
205 };
DtFormationEntry; readable/writeable entry in a DtFormation.
Definition: formationEntry.h:28
double myStandardSpacing
Standard spacing (between positions) of this formation.
Definition: formation.h:204
A Readable, Writable version of DtList. This class cannot be used directly, but must be inherited to ...
Definition: rwList.h:26
bool operator!=(const DtRwList &rhs) const
Definition: rwList.h:157
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)=0
This method must be overridden by a subclass. Within this method, new instances of the DtReaderWriter...
Definition: readerWriterRegistry.h:39
Instances of DtFormation are a list of DtFormationEntry objects which make up an aggregate formation...
Definition: formation.h:22
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
bool operator==(const DtRwList &rhs) const
Iterates over all items and calls the factory to compare.
std::pair< DtVector, int > PositionData
This holds an offset vector for a formation position, and the unit index it corresponds to...
Definition: formation.h:112
const DtRwList & operator=(const DtRwList &orig)
Calls down to DtReaderWriter::operator=(). List elements are not copied.
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
virtual void removeAndDeleteAll()
Removes and deletes all items in the list.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)