VR-Forces 4.1 Class Documentation
formationModelData.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2008 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: formationModelData.h,v $ $Revision: 1.16 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DTFORMATIONMODELDATA_H_
13 #define DTFORMATIONMODELDATA_H_
14 
15 #include "symbolMapper/modelData.h"
17 #include <vlpi/disEnums.h>
18 
22 class DtFormation;
23 class Dt3dBoundingVolume;
24 class DtFormationEntry;
25 
26 DtNewModelDataType(DtFormationModelDataType, 10);
27 
29 {
30 public:
32 
33  virtual DtModelDataType type() const;
34 
35  const DtVrfSubObjectParameterEntry* entry() const { return myEntry; };
36  const DtVrfSubObjectParameterList* subordinateObjects() const { return mySubordinateObjects; };
37 
38  void setFormationEntry(DtFormationEntry* entry) { myFormationEntry = entry; };
39  DtFormationEntry* formationEntry() const { return myFormationEntry; };
40 
41  void setBoundingVolume(const Dt3dBoundingVolume* bv) { myBoundingVolume = bv; };
42  const Dt3dBoundingVolume* boundingVolume() const { return myBoundingVolume; };
43 
44  void setFormationData(DtFormationEntry* e, DtFormation* f) { myFormationEntry = e; myFormation = f; };
45  const DtFormation* formation() const { return myFormation; };
46  DtFormation* formation() { return myFormation; };
47 
48  void setParent(DtFormationModelData* d) { myParent = d; };
49  const DtFormationModelData* parent() const { return myParent; };
50  DtFormationModelData* parent() { return myParent; };
51 
52  void setRootNode(bool b) { myRootNode = b; };
53  bool rootNode() const { return myRootNode; };
54 
55  void setExpanded(bool b) { myExpanded = b; };
56  bool expanded() const { return myExpanded; };
57 
58  void addChild(DtFormationModelData* c) { myChildren.push_back(c); c->setParent(this); };
59  const QVector<DtFormationModelData*>& children() const { return myChildren; };
60  QVector<DtFormationModelData*>& children() { return myChildren; };
61 
63  virtual DtExtent extent(const DtPoint& origin = DtPoint(0, 0, 0)) const;
64 
65  virtual const DtPoint* getOriginPoint() const;
66 
67  virtual DtExtent boundingBox() const;
68  virtual DtPoint positionOffset() const;
69 
72  virtual DtPoint centerOfMass() const;
73 
74  DtPoint offset() const { return calculateOffset(myFormationEntry, myFormation); };
75 
78  virtual bool setNewOffsetFromLeader(const DtPoint& newPoint);
79 
81  virtual QList<DtFormationModelData*> dataAtLeaderPromotionId(int) const;
82  virtual DtFormationModelData* dataAtPromotionId(int) const;
83 
84  void removeChild(DtFormationModelData* child) { int iIndex = myChildren.indexOf(child); if (iIndex != -1) myChildren.remove(iIndex); };
85 
86  void setParameters(DtVrfObjectParameters* p) { myParameters = p; };
87  DtVrfObjectParameters* parameters() const { return myParameters; };
88 
89  virtual void repositionInFormation(int iFrom, int iTo);
90  virtual void repositionInFormation(DtFormation*, int iFrom, int iTo);
91 
93  virtual void addChildAtPosition(DtFormationModelData* fmd, int iPos);
94 
96  virtual void clearUnusedNodes();
97 
98  virtual int depth() const;
99  virtual int maxPromotionId() const;
100 
102  virtual void reworkOffsetsToStandAlone(DtFormation* formation);
103 
105  virtual void reworkAsOffsetToLeader(DtFormation* formation);
106 
107  void setEntityMapperKey(const DtEntityMapperKey& k) { myEntityMapperKey = k; };
108  virtual DtEntityMapperKey entityMapperKey() const { return myEntityMapperKey; };
109 
110 protected:
111  virtual DtPoint calculateOffset(const DtFormationEntry* entry, const DtFormation* formation) const;
112 
113 protected:
119  const Dt3dBoundingVolume* myBoundingVolume;
122  QVector<DtFormationModelData*> myChildren;
125 };
126 
127 #endif
128 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)