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};
53 GlMainWidget *glMainWidget;
54 LayoutProperty *_layout;
55 BooleanProperty *_selection;
56 DoubleProperty *_rotation;
59 void initProxies(GlMainWidget *glMainWidget);
64 EditOperation operation;
69 Coord editLayoutCenter;
74 GlComposite *composite;
75 GlCircle _controls[8];
76 GlComplexPolygon _advControls[6];
81 bool computeFFD(GlMainWidget*);
82 void getOperation(GlEntity *select);
83 void mMouseTranslate(
double,
double, GlMainWidget*);
84 void mMouseRotate(
double,
double, GlMainWidget*);
85 void mMouseStretchAxis(
double,
double, GlMainWidget*);
86 void mAlign(EditOperation operation,GlMainWidget*);