VR-Forces 4.0.4 Class Documentation
include/tmqt/objectSelector.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2002 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: objectSelector.h,v $ $Revision: 1.10 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DTOBJECTSELECTOR_H_
00013 #define DTOBJECTSELECTOR_H_
00014 
00015 #include "tmqt/symbolSelector.h"
00016 #include "tmqt/selectionFilters.h"
00017 #include "ngutil/dtqlist.h"
00018 
00019 class DtSymbol;
00020 
00023 
00024 #include "tmqt/tmqtDefines.h"
00025 class DT_DLL_tmqt DtObjectSelector : public DtSymbolSelector
00026 {
00027 
00028    Q_OBJECT
00029 
00030 public:
00031    
00032    enum DtSelectorType
00033    {
00034       DtNone = 0,             
00035       DtRectSelector,         
00036       DtCircleSelector,       
00037       DtCirclePointsSelector, 
00038       DtCircleInscribedPointsSelector, 
00039       DtSinglePointSelector,  
00040       DtMAXSelectorType
00041    };
00042 
00044    DtObjectSelector();
00045    
00047    virtual ~DtObjectSelector();
00048    
00050    virtual void selectSymbols(DtModelDataIter *iter, Qt::KeyboardModifiers keyState, Qt::MouseButtons mouseState);
00051 
00053    static DtObjectSelector* create();
00054 
00058    virtual void setSelectionFilter(const DtFilter&);
00059    virtual const DtFilter* selectionFilter() const;
00060 
00062    virtual void revalidateSelectedKeys(DtModelDataIter *iter);
00063 
00065    virtual void clearFilter();
00066 
00069    virtual DtSymbol* symbolAtLocation(DtModelDataIter* iter, const DtPoint& pnt);
00070 
00073    virtual void backupSelectionFilter();
00074    virtual bool restoreSelectionFilter();
00075 
00076 private:
00078    DtObjectSelector(const DtObjectSelector& orig);
00079    
00081    DtObjectSelector& operator=(const DtObjectSelector& orig);
00082 
00083 
00084 protected:
00087    virtual bool isValidForSelectionMode(const DtModelData* data);
00088 
00091    virtual bool isValidForSelectionMode(const DtSymbol* symbol);
00092 
00095    virtual bool isValidForMode(const DtModelData* data, const DtSymbol *s);
00096 
00098    virtual void select(DtModelDataIter* iter, QVector<DtModelKey>& keys,
00099       Qt::KeyboardModifiers keyState, Qt::MouseButtons mouseState);
00100 
00102    virtual bool isInRectangle(const DtModelData* data, DtSymbol* s,
00103                                      const QPoint& start, const QPoint& end) const;
00104    virtual bool isInPoint(const DtModelData* data, DtSymbol* s,
00105                                      const QPoint& start, const QPoint& end) const;
00106    virtual bool isInCircle(const DtModelData* data, DtSymbol* s,
00107                                      const QPoint& start, const QPoint& end) const;
00108    virtual bool isInRectCircle(const DtModelData* data, DtSymbol* s,
00109                                      const QPoint& start, const QPoint& end) const;
00110 
00112    virtual bool selectForMode(const DtModelData* data, DtSymbol* s, const QPoint& start, const QPoint& end) const;
00113 
00117    virtual void postProcessForMode(DtModelDataIter* iter, const QPoint& start, const QPoint& end, QVector<DtModelKey>& keys);
00118    virtual void postProcessRectangleMode(DtModelDataIter* iter, const QPoint& start, const QPoint& end, QVector<DtModelKey>& keys);
00119 
00121    virtual void highlightSymbols(QVector<DtModelKey>* display = NULL);
00122    virtual bool passesFinalSelectionTest(const DtSymbol* s);
00123 
00126    virtual void removeSingleSelectionItems(DtModelDataIter *iter, QVector<DtModelKey>&);
00127    virtual bool isSingleSelectionItem(DtModelData* data, DtSymbol* s) const;
00128 
00129 protected:
00130    DtFilter*         mySelectionFilter;
00131    DtPtrQList<DtFilter*>  myFilterBackups;
00132 };
00133 
00134 #endif //DTOBJECTSELECTOR_H_
00135 

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)