VR-Forces 4.1 Class Documentation
objectSelector.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2002 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: objectSelector.h,v $ $Revision: 1.10 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 #ifndef DTOBJECTSELECTOR_H_
13 #define DTOBJECTSELECTOR_H_
14 
15 #include "tmqt/symbolSelector.h"
16 #include "tmqt/selectionFilters.h"
17 #include "ngutil/dtqlist.h"
18 
19 class DtSymbol;
20 
23 
24 #include "tmqt/tmqtDefines.h"
26 {
27 
28  Q_OBJECT
29 
30 public:
31 
33  {
34  DtNone = 0,
40  DtMAXSelectorType
41  };
42 
45 
47  virtual ~DtObjectSelector();
48 
50  virtual void selectSymbols(DtModelDataIter *iter, Qt::KeyboardModifiers keyState, Qt::MouseButtons mouseState);
51 
53  static DtObjectSelector* create();
54 
58  virtual void setSelectionFilter(const DtFilter&);
59  virtual const DtFilter* selectionFilter() const;
60 
62  virtual void revalidateSelectedKeys(DtModelDataIter *iter);
63 
65  virtual void clearFilter();
66 
69  virtual DtSymbol* symbolAtLocation(DtModelDataIter* iter, const DtPoint& pnt);
70 
73  virtual void backupSelectionFilter();
74  virtual bool restoreSelectionFilter();
75 
76 private:
79 
82 
83 
84 protected:
87  virtual bool isValidForSelectionMode(const DtModelData* data);
88 
91  virtual bool isValidForSelectionMode(const DtSymbol* symbol);
92 
95  virtual bool isValidForMode(const DtModelData* data, const DtSymbol *s);
96 
98  virtual void select(DtModelDataIter* iter, QVector<DtModelKey>& keys,
99  Qt::KeyboardModifiers keyState, Qt::MouseButtons mouseState);
100 
102  virtual bool isInRectangle(const DtModelData* data, DtSymbol* s,
103  const QPoint& start, const QPoint& end) const;
104  virtual bool isInPoint(const DtModelData* data, DtSymbol* s,
105  const QPoint& start, const QPoint& end) const;
106  virtual bool isInCircle(const DtModelData* data, DtSymbol* s,
107  const QPoint& start, const QPoint& end) const;
108  virtual bool isInRectCircle(const DtModelData* data, DtSymbol* s,
109  const QPoint& start, const QPoint& end) const;
110 
112  virtual bool selectForMode(const DtModelData* data, DtSymbol* s, const QPoint& start, const QPoint& end) const;
113 
117  virtual void postProcessForMode(DtModelDataIter* iter, const QPoint& start, const QPoint& end, QVector<DtModelKey>& keys);
118  virtual void postProcessRectangleMode(DtModelDataIter* iter, const QPoint& start, const QPoint& end, QVector<DtModelKey>& keys);
119 
121  virtual void highlightSymbols(QVector<DtModelKey>* display = NULL);
122  virtual bool passesFinalSelectionTest(const DtSymbol* s);
123 
126  virtual void removeSingleSelectionItems(DtModelDataIter *iter, QVector<DtModelKey>&);
127  virtual bool isSingleSelectionItem(DtModelData* data, DtSymbol* s) const;
128 
129 protected:
132 };
133 
134 #endif //DTOBJECTSELECTOR_H_
135 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)