![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2008 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: formationAutoLayoutFactory.h,v $ $Revision: 1.2 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DTFORMATIONAUTOLAYOUTFACTORY_H_ 00013 #define DTFORMATIONAUTOLAYOUTFACTORY_H_ 00014 00015 #include "entityEditorImpl/entityEditorImplDefines.h" 00016 #include <QtCore/QHash> 00017 #include <QtCore/QVector> 00018 #include <matrix/vlVector.h> 00019 00020 class DtFormation; 00021 class DtVrfSubObjectParameterList; 00022 00023 class DT_DLL_entityeditorimpl DtFormationAutoLayout 00024 { 00025 public: 00026 DtFormationAutoLayout(); 00027 virtual ~DtFormationAutoLayout(); 00028 00030 virtual DtFormation* layout(const DtVrfSubObjectParameterList*, double spacing) const; 00031 00033 virtual DtVector positionOffset(double headingFromZeroInDegrees, double spacing) const; 00034 virtual double headingOffset() const; 00035 }; 00036 00037 class DT_DLL_entityeditorimpl DtColumnFormationAutoLayout : public DtFormationAutoLayout 00038 { 00039 public: 00040 DtColumnFormationAutoLayout(); 00041 virtual ~DtColumnFormationAutoLayout(); 00042 00043 virtual double headingOffset() const; 00044 }; 00045 00046 class DT_DLL_entityeditorimpl DtLineFormationAutoLayout : public DtFormationAutoLayout 00047 { 00048 public: 00049 DtLineFormationAutoLayout(); 00050 virtual ~DtLineFormationAutoLayout(); 00051 00052 virtual double headingOffset() const; 00053 }; 00054 00055 class DT_DLL_entityeditorimpl DtVeeFormationAutoLayout : public DtFormationAutoLayout 00056 { 00057 public: 00058 DtVeeFormationAutoLayout(); 00059 virtual ~DtVeeFormationAutoLayout(); 00060 00062 virtual DtFormation* layout(const DtVrfSubObjectParameterList*, double spacing) const; 00063 00064 virtual double headingOffset() const; 00065 00066 protected: 00067 mutable int myCenter; 00068 mutable int myIndex; 00069 }; 00070 00071 class DT_DLL_entityeditorimpl DtWedgeFormationAutoLayout : public DtVeeFormationAutoLayout 00072 { 00073 public: 00074 DtWedgeFormationAutoLayout(); 00075 virtual ~DtWedgeFormationAutoLayout(); 00076 00077 virtual double headingOffset() const; 00078 }; 00079 00080 class DT_DLL_entityeditorimpl DtFormationAutoLayoutFactory 00081 { 00082 public: 00084 DtFormationAutoLayoutFactory(); 00085 virtual ~DtFormationAutoLayoutFactory(); 00086 00089 void addFormationAutoLayout(const QString& name, DtFormationAutoLayout*); 00090 void removeFormationAutoLayout(const QString& name); 00091 00093 virtual DtFormation* layout(const QString& autoLayout, double spacing, const DtVrfSubObjectParameterList*) const; 00094 00095 const QHash<QString, DtFormationAutoLayout*>& formationAutoLayouts() const { return myFormationAutoLayouts; }; 00096 const QVector<QString>& orderedFormations() const { return myOrderedFormations; }; 00097 00098 protected: 00099 QHash<QString, DtFormationAutoLayout*> myFormationAutoLayouts; 00100 QVector<QString> myOrderedFormations; 00101 }; 00102 00103 #endif