VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/formationModelData.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2008 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: formationModelData.h,v $ $Revision: 1.16 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DTFORMATIONMODELDATA_H_
00013 #define DTFORMATIONMODELDATA_H_
00014 
00015 #include "symbolMapper/modelData.h"
00016 #include "entityEditorImpl/entityEditorImplDefines.h"
00017 #include <vlpi/disEnums.h>
00018 
00019 class DtVrfSubObjectParameterList;
00020 class DtVrfObjectParameters;
00021 class DtVrfSubObjectParameterEntry;
00022 class DtFormation;
00023 class Dt3dBoundingVolume;
00024 class DtFormationEntry;
00025 
00026 DtNewModelDataType(DtFormationModelDataType, 10);
00027 
00028 class DT_DLL_entityeditorimpl DtFormationModelData : public DtModelData
00029 {
00030 public:
00031    DtFormationModelData(DtVrfSubObjectParameterEntry*, DtVrfSubObjectParameterList*);
00032 
00033    virtual DtModelDataType type() const;
00034 
00035    const DtVrfSubObjectParameterEntry* entry() const { return myEntry; };
00036    const DtVrfSubObjectParameterList* subordinateObjects() const { return mySubordinateObjects; };
00037 
00038    void setFormationEntry(DtFormationEntry* entry) { myFormationEntry = entry; };
00039    DtFormationEntry* formationEntry() const { return myFormationEntry; };
00040 
00041    void setBoundingVolume(const Dt3dBoundingVolume* bv) { myBoundingVolume = bv; };
00042    const Dt3dBoundingVolume* boundingVolume() const { return myBoundingVolume; };
00043 
00044    void setFormationData(DtFormationEntry* e, DtFormation* f) { myFormationEntry = e; myFormation = f; };
00045    const DtFormation* formation() const { return myFormation; };
00046    DtFormation* formation() { return myFormation; };
00047 
00048    void setParent(DtFormationModelData* d) { myParent = d; };
00049    const DtFormationModelData* parent() const { return myParent; };
00050    DtFormationModelData* parent() { return myParent; };
00051 
00052    void setRootNode(bool b) { myRootNode = b; };
00053    bool rootNode() const { return myRootNode; };
00054 
00055    void setExpanded(bool b) { myExpanded = b; };
00056    bool expanded() const { return myExpanded; };
00057 
00058    void addChild(DtFormationModelData* c) { myChildren.push_back(c); c->setParent(this); };
00059    const QVector<DtFormationModelData*>& children() const { return myChildren; };
00060    QVector<DtFormationModelData*>& children() { return myChildren; };
00061 
00063    virtual DtExtent extent(const DtPoint& origin = DtPoint(0, 0, 0)) const;
00064 
00065    virtual const DtPoint* getOriginPoint() const;
00066 
00067    virtual DtExtent boundingBox() const;
00068    virtual DtPoint positionOffset() const;
00069 
00072    virtual DtPoint centerOfMass() const;
00073 
00074    DtPoint offset() const { return calculateOffset(myFormationEntry, myFormation); };
00075 
00078    virtual bool setNewOffsetFromLeader(const DtPoint& newPoint);
00079 
00081    virtual QList<DtFormationModelData*> dataAtLeaderPromotionId(int) const;
00082    virtual DtFormationModelData* dataAtPromotionId(int) const;
00083 
00084    void removeChild(DtFormationModelData* child) { int iIndex = myChildren.indexOf(child);  if (iIndex != -1) myChildren.remove(iIndex); };
00085 
00086    void setParameters(DtVrfObjectParameters* p) { myParameters = p; };
00087    DtVrfObjectParameters* parameters() const { return myParameters; };
00088 
00089    virtual void repositionInFormation(int iFrom, int iTo);
00090    virtual void repositionInFormation(DtFormation*, int iFrom, int iTo);
00091 
00093    virtual void addChildAtPosition(DtFormationModelData* fmd, int iPos);
00094 
00096    virtual void clearUnusedNodes();
00097 
00098    virtual int depth() const;
00099    virtual int maxPromotionId() const;
00100 
00102    virtual void reworkOffsetsToStandAlone(DtFormation* formation);
00103 
00105    virtual void reworkAsOffsetToLeader(DtFormation* formation);
00106 
00107    void setEntityMapperKey(const DtEntityMapperKey& k) { myEntityMapperKey = k; };
00108    virtual DtEntityMapperKey entityMapperKey() const { return myEntityMapperKey; };
00109 
00110 protected:
00111    virtual DtPoint calculateOffset(const DtFormationEntry* entry, const DtFormation* formation) const;
00112 
00113 protected:
00114    DtVrfSubObjectParameterList*  mySubordinateObjects;
00115    DtVrfSubObjectParameterEntry* myEntry;
00116    bool                          myRootNode;
00117    bool                          myExpanded;
00118    DtFormationEntry*             myFormationEntry;
00119    const Dt3dBoundingVolume*     myBoundingVolume;
00120    DtFormation*                  myFormation;
00121    DtFormationModelData*         myParent;
00122    QVector<DtFormationModelData*>   myChildren;
00123    DtVrfObjectParameters*         myParameters;
00124    DtEntityMapperKey             myEntityMapperKey;
00125 };
00126 
00127 #endif
00128 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)