#include "manualContourControler.h" // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // _state = 0 // ..nothing.. // _state = 1 // move with add point // _state = 5 // move // _state = 6 // move with insert point // _state = 7 // move with non selection manualContourControler::manualContourControler() { _easyCreation = true; } // ---------------------------------------------------------------------------- manualContourControler::~manualContourControler() { } // ---------------------------------------------------------------------------- manualContourControler * manualContourControler :: Clone() // virtual { manualContourControler * clone = new manualContourControler(); CopyAttributesTo(clone); return clone; } // --------------------------------------------------------------------------- void manualContourControler::CopyAttributesTo( manualContourControler * cloneObject) { // Fathers object manualContourBaseControler::CopyAttributesTo(cloneObject); cloneObject->SetEasyCreation( this->GetEasyCreation() ); } // ---------------------------------------------------------------------------- void manualContourControler::Configure() //virtual { // this->_manContModel->SetNumberOfPointsSpline(100); } // ---------------------------------------------------------------------------- void manualContourControler::MouseClickLeft(int x, int y){ bool ok = false; int z = GetZ(); int size= GetManualViewBaseContour()->GetNumberOfPoints(); // Insert a Control Point with shift+ClickLeft // int tt = GetState(); // JPRx vtkRenderWindowInteractor *vtkrenderwindowinteractor = _vtkInteractorStyleBaseView->GetInteractor(); //EED3131 if( IsEditable() ) { if ( (_vtkInteractorStyleBaseView!=NULL) && (GetState()==0) && ( (vtkrenderwindowinteractor!=NULL) && (vtkrenderwindowinteractor->GetShiftKey()==1) ) ) { ok=true; InsertPoint(x,y,z); size++; } // Start to Insert Control Points with ClickLeft (Empty contour) if ((GetState()==0) && (size==0) && (_easyCreation==true) ) { ok=true; SetState(1); AddPoint(x,y,z); } // Continuie to Insert Control Points with ClickLeft (After being empty the contour) if ((GetState()==1) && (_easyCreation==true) ) { ok=true; AddPoint(x,y,z); _bakIdPoint=GetNumberOfPointsManualContour() - 1; } // Insert Control Points IF Contour si Selected if ((GetState()==0) && GetManualViewBaseContour()->GetPosibleSelected() ) { ok=true; InsertPoint(x,y,z); _bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); SetState(6); } // Chose id of Control Point to be move if ( (GetState()==0 || GetState()==6) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)!=-1 ) ) { ok=true; _bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); SetState(5); } // If nothing selected _state=7 if ( (GetState()==0) && (GetManualViewBaseContour()->GetIdPoint(x,y,z)==-1 ) ) { //ok=true; _bakIdPoint = GetManualViewBaseContour()->GetIdPoint(x,y,z); SetState(7); } }else{ SetPosibleToMove( true ); GetManualViewBaseContour()->SetSelected( GetManualViewBaseContour()->GetPosibleSelected() ); } // IsEditable if ( GetState() == 0 && GetManualViewBaseContour()->GetPosibleSelected() ) { SetMoving( true ); ok=true; GetManualViewBaseContour()->InitMove(x,y,z); SetState(6); } if (ok==true) { GetManualViewBaseContour()->Refresh(); } } // ---------------------------------------------------------------------------- void manualContourControler::MouseMove(int x, int y) // virtual { int z=GetZ(); GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); GetManualViewBaseContour()->SelectPosibleContour(x,y,z); if (GetState()==1){ SetPoint( _bakIdPoint , x , y ,z); } if (GetState()==5){ SetPoint( _bakIdPoint , x , y ,z); } if ( GetState()==6 && !IsEditable() && GetPosibleToMove() &&IsMoving() ) { GetManualViewBaseContour()->MoveContour(x,y,z); } if (GetState()!=7 || GetManualViewBaseContour()->GetPosibleSelected() ){ GetManualViewBaseContour()->Refresh(); this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); } if (!IsEditable()) { GetManualViewBaseContour()->RemoveControlPoints(); // GetManualViewBaseContour()->RemoveTextActor(); GetManualViewBaseContour()->Refresh(); this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); } } // ---------------------------------------------------------------------------- void manualContourControler::MouseDLeft( int x, int y)//virtual { manualContourBaseControler::MouseDLeft( x, y); if ( IsEditable() ) { GetManualViewBaseContour()->AddControlPoints(); GetManualViewBaseContour()->AddTextActor(); GetManualViewBaseContour()->Refresh(); this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); } } // ---------------------------------------------------------------------------- void manualContourControler::SetEasyCreation(bool easyCreation) { _easyCreation=easyCreation; } // ---------------------------------------------------------------------------- bool manualContourControler::GetEasyCreation() { return _easyCreation; }