#include "manualContour3DControler.h" // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- manualContour3DControler::manualContour3DControler() { } // ---------------------------------------------------------------------------- manualContour3DControler::~manualContour3DControler() { } // ---------------------------------------------------------------------------- manualContour3DControler * manualContour3DControler :: Clone() // virtual { manualContour3DControler * clone = new manualContour3DControler(); CopyAttributesTo(clone); return clone; } // --------------------------------------------------------------------------- void manualContour3DControler::CopyAttributesTo( manualContour3DControler * cloneObject) { // Fathers object manualContourControler::CopyAttributesTo(cloneObject); cloneObject->SetVtkMPRBaseData( this->GetVtkMPRBaseData() ); } // ---------------------------------------------------------------------------- bool manualContour3DControler::OnLeftButtonDown() { int X,Y; wxVTKRenderWindowInteractor *wxVTKiren; wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); MouseClickLeft(X,Y); return true; } // ---------------------------------------------------------------------------- void manualContour3DControler::ResetOrientationPlane() { double p[3],rp[3],rn[3]; p[0] = this->GetVtkMPRBaseData()->GetX( ); p[1] = this->GetVtkMPRBaseData()->GetY( ); p[2] = this->GetVtkMPRBaseData()->GetZ( ); this->GetManualContourModel()->GetNearestPointAndNormal(p,rp,rn); this->GetVtkMPRBaseData()->SetNormal(rn[0],rn[1],rn[2]); } // ---------------------------------------------------------------------------- void manualContour3DControler::MouseClickLeft(int x, int y) // virtual { manualView3DContour *manualview3Dcontour=(manualView3DContour*)GetManualViewBaseContour(); int id=manualview3Dcontour->GetIdPoint2(x,y); if ( (GetState()==0) && (id!=-1) ) { manualPoint *mp = this->GetManualContourModel()->GetManualPoint(id); this->GetVtkMPRBaseData()->SetX( mp->GetX() ); this->GetVtkMPRBaseData()->SetY( mp->GetY() ); this->GetVtkMPRBaseData()->SetZ( mp->GetZ() ); ResetOrientationPlane(); this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); } manualContourControler::MouseClickLeft(x,y); } // ---------------------------------------------------------------------------- bool manualContour3DControler::OnChar() { bool ok=true; manualContourControler::OnChar(); char keyCode = _vtkInteractorStyleBaseView->GetInteractor()-> GetKeyCode(); if (keyCode==32){ ok=false; ResetOrientationPlane(); this->_vtkInteractorStyleBaseView->SetRefresh_waiting(); } return ok; } // ---------------------------------------------------------------------------- void manualContour3DControler::SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata ) { _vtkmprbasedata=vtkmprbasedata; } // ---------------------------------------------------------------------------- vtkMPRBaseData *manualContour3DControler::GetVtkMPRBaseData() { return _vtkmprbasedata; } // ---------------------------------------------------------------------------- void manualContour3DControler::InsertPoint(int x, int y, int z ) // virtual { manualContourControler::InsertPoint( x, y, z ); ResetOrientationPlane(); }