VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/formationAutoLayoutFactory.h
Go to the documentation of this file.
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

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)