21 #ifndef MOUSEMOVESELECTION_H
22 #define MOUSEMOVESELECTION_H
24 #include <tulip/GlCircle.h>
25 #include <tulip/GLInteractor.h>
26 #include <tulip/GlComplexPolygon.h>
27 #include <tulip/GlRect.h>
32 class BooleanProperty;
37 class TLP_QT_SCOPE MouseSelectionEditor:
public GLInteractorComponent {
41 MouseSelectionEditor();
42 ~MouseSelectionEditor();
44 bool compute(GlMainWidget *glMainWidget);
45 bool draw(GlMainWidget *);
46 bool eventFilter(QObject *, QEvent *);
49 enum EditOperation { NONE=0, ROTATE_Z, ROTATE_XY, STRETCH_X, STRETCH_Y, STRETCH_XY, TRANSLATE, ALIGN_TOP, ALIGN_BOTTOM, ALIGN_LEFT, ALIGN_RIGHT, ALIGN_VERTICALLY, ALIGN_HORIZONTALLY};
50 enum OperationTarget { COORD = 0, SIZE, COORD_AND_SIZE};
52 GlMainWidget *glMainWidget;
53 DoubleProperty *_rotation;
55 void initProxies(GlMainWidget *glMainWidget);
63 GlComposite *composite;
64 GlCircle _controls[8];
65 GlComplexPolygon _advControls[6];
70 bool computeFFD(GlMainWidget*);
71 void getOperation(GlEntity *select);
75 EditOperation operation;
81 LayoutProperty *_layout;
82 BooleanProperty *_selection;
84 Coord editLayoutCenter;
86 virtual void mMouseTranslate(
double,
double, GlMainWidget*);
87 virtual void mMouseRotate(
double,
double, GlMainWidget*);
88 virtual void mMouseStretchAxis(
double,
double, GlMainWidget*);
89 virtual void mAlign(EditOperation operation,GlMainWidget*);