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*);