VR-Forces 4.0.4 Class Documentation
include/terrainqt/terrainSelector.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: terrainSelector.h,v $ $Revision: 1.11 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef terrainSelector_H_
00013 #define terrainSelector_H_
00014 
00015 #include "tmqt/symbolSelector.h"
00016 #include "symbolMapper/terrainModelData.h"
00017 
00018 #include <gdb/netwrkElemnt.h>
00019 
00020 class DtNetworkEdge;
00021 class DtTerrainDatabase;
00022 class DtNetworkSegment;
00023 class DtSpecification;
00024 
00026 
00030 
00031 #include "terrainqt/terrainqtDefines.h"
00032 class DT_DLL_terrainqt DtTerrainSelector : public DtSymbolSelector
00033 {
00034    Q_OBJECT
00035 
00036 public:
00037 
00038    enum DtTerrainSelectionMode
00039    {
00040       DtAllFeaturesWithinRange,
00041       DtAllSegmentsWithinRange,
00042       DtAllPolygons
00043    };
00044 
00045    DtTerrainSelector();
00046    virtual ~DtTerrainSelector();
00047 
00048    static DtTerrainSelector* create();
00049 
00050 private:
00052    DtTerrainSelector(const DtTerrainSelector& orig);
00053    
00055    DtTerrainSelector& operator=(const DtTerrainSelector& orig);
00056 
00057 public:
00059    virtual void selectSymbols(DtModelDataIter *iter, Qt::KeyboardModifiers keyState, Qt::MouseButtons mouseState);
00060 
00062    virtual void setTerrainDatabase(const DtTerrainDatabase* db);
00063    virtual const DtTerrainDatabase* terrainDatabase() const;
00064    
00065    virtual void setTerrainSelectionMode(DtTerrainSelectionMode mode);
00066    virtual DtTerrainSelectionMode terrainSelectionMode() const;
00067 
00069    virtual void setScreenRange(int iPixels);
00070 
00072    virtual void clear();
00073 
00076    virtual void select(const DtSpecification& spec, bool merge);
00077 
00079    virtual bool selectNode(const DtSpecification& spec,
00080        QList<DtNetworkElement*>& segments,  QList<DtNetworkSpecElement*>& edges);
00081 
00082    virtual bool selectEdges(const DtSpecification& spec,
00083        QList<DtNetworkElement*>& segments,  QList<DtNetworkSpecElement*>& edges);
00084    virtual bool selectAllEdges(QList<DtNetworkElement*>& segments,  
00085       QList<DtNetworkSpecElement*>& edges);
00086    virtual void endSelection(Qt::KeyboardModifiers keyState, Qt::MouseButtons mouseState);
00087 
00088 protected:
00089    virtual int calculateInterestRange();
00090 
00091 protected:
00092 
00095    virtual void rectangleSelect(int iInterestRange, const QPoint& start, const QPoint& end,
00096       QList<DtNetworkElement*>& list, QList<DtNetworkSpecElement*>& edges);
00097 
00099    virtual void pointSelect(int iInterestRange, QList<DtNetworkElement*>& list,
00100       QList<DtNetworkSpecElement*>& edges);
00101 
00102    virtual void selectFeaturesByExtent(DtExtent &ext, Qt::KeyboardModifiers keyState, Qt::MouseButtons mouseState);
00103 
00106    virtual void extentSelect(int iInteresRange, QList<DtNetworkElement*>& segments,
00107                                            QList<DtNetworkSpecElement*>& edges);
00108 
00110    virtual void selectByMode(int iInterestRange, const DtNetworkEdge* edge,
00111       QList<DtNetworkElement*>& list, QList<DtNetworkSpecElement*>& edges);
00112 
00115    virtual void collectSegment(int iInterestRange, const DtNetworkEdge* edge,
00116       QList<DtNetworkElement*>& list, QList<DtNetworkSpecElement*>& edges);
00117 
00119    virtual void collectAllSegments(int iInterestRange, const DtNetworkEdge* edge,
00120       QList<DtNetworkElement*>& list, QList<DtNetworkSpecElement*>& edges);
00121 
00122    virtual void completeSelection(QList<DtNetworkElement*>& segments, 
00123          QList<DtNetworkSpecElement*>& edges, Qt::KeyboardModifiers keyState, Qt::MouseButtons mouseState);
00124 
00125    virtual bool keepUnknownKeys() const;
00126 
00127 protected:
00128    virtual void highlightSymbols(QVector<DtModelKey>* display = 0);
00129 
00133    virtual void updateTerrainModelData(QList<DtNetworkElement*>& segments, bool merge);
00134    virtual void updateNetworkSpecification(DtNetworkSpecElement* parent, DtNetworkSegment* segment, bool merge);
00135 
00136 protected:
00137    QHash<DtModelKey, DtTerrainModelData*>  myTerrainModelData;
00138 
00139    const DtTerrainDatabase*   myTerrainDatabase;
00140    DtTerrainSelectionMode     myTerrainSelectionMode;
00141 
00142    int                        myScreenRange;
00143 };
00144 
00145 inline bool DtTerrainSelector::keepUnknownKeys() const
00146 {
00147    return true;
00148 }
00149 
00150 #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)