VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/formationEditor.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2008 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: formationEditor.h,v $ $Revision: 1.21 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DTFORMATIONEDITOR_H_
00013 #define DTFORMATIONEDITOR_H_
00014 
00015 #include "entityEditorImpl/uiElement.h"
00016 #include "entityEditorImpl/entityEditorImplDefines.h"
00017 #include "tmqt/echHierarchy.h"
00018 #include "tmqt/tmMapArea.h"
00019 #include "tmqt/echViewOptions.h"
00020 #include "tmEventHandler/navigationHandler.h"
00021 #include "entityEditorImpl/formationSymbolFilter.h"
00022 #include "entityEditorImpl/formationGridLineDrawer.h"
00023 #include "entityEditorImpl/formationDragDropHandler.h"
00024 #include <vlpi/disEnums.h>
00025 
00026 class DtNavigationWidget;
00027 class DtFormationSymbolUpdater;
00028 class DtFormationSymbolMapper;
00029 class DtFormationHierarchy;
00030 class DtFormationModelData;
00031 class DtFormationRightClickMenu;
00032 class DtVrfSubObjectParameterList;
00033 class DtVrfObjectParameters;
00034 class DtVrfSubObjectParameterEntry;
00035 class DtFormation;
00036 class DtEchelonView;
00037 class DtFormationTable;
00038 class DtFormationEntry;
00039 class QKeyEvent;
00040 
00041 class DT_DLL_entityeditorimpl DtFormationEditor : public DtTMMapArea
00042 {
00043    Q_OBJECT
00044 
00045 public:
00046    DtFormationEditor(QWidget* p);
00047 
00048    virtual ~DtFormationEditor();
00049 
00050    virtual bool init(const DtTMFactory*, const DtString& subObjName);
00051 
00053    virtual void setSubordinatesList(DtVrfObjectParameters*, DtVrfSubObjectParameterList*);
00054 
00056    virtual void setForceId(DtForceType id);
00057 
00059    virtual void setFormation(const QString&);
00060 
00062    virtual void setFormationTable(DtFormationTable*);
00063 
00065    virtual void setExpanded(const DtModelKey &key, bool expand);
00066 
00069    virtual void expandPath(const QStringList&, bool expand);
00070 
00072    virtual void selectPath(const QString&);
00073 
00075    virtual QString selectionPath(const DtModelKey&) const;
00076 
00078    virtual QString selectionPath() const;
00079 
00080    virtual DtObjectType selectedObjectType() const;
00081 
00082    virtual DtFormationModelData* rootNode() const { return myRootNode; };
00083    virtual DtFormationModelData* selectedModelData() const;
00084 
00085    virtual void markAllForUpdate();
00086 
00088    virtual void removeFormationEntry(DtFormationEntry*);
00089 
00091    virtual DtExtent extent() const;
00092 
00094    virtual int promotionIdAt(int) const;
00095 
00096    virtual void repositionInFormation(int iFrom, int iTo);
00097    virtual void replaceObjectInFormation(int iPos);
00098 
00100    virtual void addObjectTypeAtPosition(DtVrfSubObjectParameterEntry* entry, int pos, bool addAtPos = true);
00101 
00103    virtual int nestingLevel() const;
00104    virtual void setNestingLevel(int);
00105 
00107    virtual bool canExpand() const;
00108    virtual void collapseAllOneLevel();
00109    virtual void expandAllOneLevel();
00110    virtual void toggleBoundingBoxes();
00111    virtual void toggleSnapToGrid();
00112 
00113    bool snapToGrid() const;
00114    bool showBoundingBoxes() const;
00115 
00116    virtual void setScaleFactor(double);
00117    virtual double scaleFactor() const;
00118 
00119 protected:
00120    virtual DtFormationSymbolFilter* createFilter(DtTMArea*);
00121    virtual DtFormationHierarchy* createHierarchy();
00122    virtual DtFormationModelData* createFormationModelData(DtVrfSubObjectParameterList*, DtVrfSubObjectParameterEntry*);
00123    virtual DtFormationSymbolMapper* createSymbolMapper();
00124    virtual DtFormationSymbolUpdater* createSymbolUpdater();
00125    virtual DtFormationGridLineDrawer* createGridLineDrawer();
00126    virtual DtFormationRightClickMenu* createFormationRightClickMenu();
00127 
00128    virtual void createHierarchy(DtFormationModelData*);
00129    virtual void createHierarchy(DtFormationModelData*, DtVrfSubObjectParameterEntry* subEntry);
00130 
00132    virtual void setupFormation();
00133 
00134    virtual DtFormationModelData* dataFromPath(const QStringList&) const;
00135 
00136    virtual void dragLeaveEvent(QDragLeaveEvent* e);
00137    virtual void dragMoveEvent(QDragMoveEvent* e);
00138    virtual void dragEnterEvent(QDragEnterEvent* e);
00139    virtual void dropEvent(QDropEvent* e);
00140    virtual bool terrainLoaded() const { return true; };
00141    virtual void resizeEvent(QResizeEvent* e);
00142    virtual void removeModelDataEntry(DtFormationModelData* fmd);
00143 
00144 signals:
00145    void edit();
00146    void expand();
00147    void collapse();
00148    void setFormation();
00149    void formationModified();
00150 
00151 public slots:
00152    virtual void zoomIn();
00153    virtual void zoomOut();
00154    virtual void resetToGlobalView();
00155    virtual void panNorth();
00156    virtual void panNortheast();
00157    virtual void panEast();
00158    virtual void panSoutheast();
00159    virtual void panSouth();
00160    virtual void panSouthwest();
00161    virtual void panWest();
00162    virtual void panNorthwest();
00163 
00164    virtual void setShowBoundingBoxes(bool);
00165    virtual void setSnapToGrid(bool);
00166 
00167 protected slots:
00168    virtual void viewportExtentsChanged();
00169    virtual void mouseEvent(QMouseEvent*, const DtPoint&);
00170    virtual void keyboardEvent(QKeyEvent*);
00171    virtual void redoAggregateLayering();
00172    virtual void drawGridLines(QPainter*);
00173    virtual void postDraw(QPainter*);
00174    virtual void rightMouseContext(DtSymbolList*,QPoint);
00175 
00176 protected:
00177    DtFormationSymbolFilter*      myFilter;
00178    DtFormationHierarchy*         myHierarchy;
00179    DtVrfSubObjectParameterList*  mySubordinatesList; 
00180    DtEchelonViewOptions          myOptions;
00181    DtEchelonView*                myEchelonView;
00182    DtFormationSymbolMapper*      mySymbolMapper;
00183    DtString                      mySubordinateObjectsName;
00184    DtForceType                   myForceId;
00185    DtFormationTable*             myFormationTable;
00186    QString                       myFormation;
00187    DtVrfObjectParameters*        myParameters;
00188    DtFormationModelData*         myRootNode;
00189    DtNavigationHandler           myNavigationHandler;
00190    DtFormationDragDropHandler    myDragDropHandler;
00191    DtFormationGridLineDrawer*    myGridLineDrawer;
00192    DtNavigationWidget*           myNavigationWidget;
00193 };
00194 
00195 inline bool DtFormationEditor::snapToGrid() const
00196 {
00197    return myDragDropHandler.snapToGrid();
00198 }
00199 
00200 #endif
00201 

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)