]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContour3DControler.cpp
542d7617928e294afbe87fbe2f4cbc801df5297a
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualContour / manualContour3DControler.cpp
1 #include "manualContour3DControler.h"
2
3
4 // ----------------------------------------------------------------------------
5 // ----------------------------------------------------------------------------
6 // ----------------------------------------------------------------------------
7
8 manualContour3DControler::manualContour3DControler()
9 {
10 }
11 // ----------------------------------------------------------------------------
12 manualContour3DControler::~manualContour3DControler()
13 {
14 }
15 // ----------------------------------------------------------------------------
16 manualContour3DControler * manualContour3DControler :: Clone()  // virtual
17 {
18         manualContour3DControler * clone = new manualContour3DControler();
19         CopyAttributesTo(clone);
20         return clone;
21 }
22
23 // ---------------------------------------------------------------------------
24 void manualContour3DControler::CopyAttributesTo( manualContour3DControler * cloneObject)
25 {
26         // Fathers object
27         manualContourControler::CopyAttributesTo(cloneObject);
28
29         cloneObject->SetVtkMPRBaseData( this->GetVtkMPRBaseData() );
30 }
31
32 // ----------------------------------------------------------------------------
33 bool  manualContour3DControler::OnLeftButtonDown()
34 {
35         int X,Y;
36         wxVTKRenderWindowInteractor *wxVTKiren;
37         wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
38         wxVTKiren->GetEventPosition(X,Y);
39         MouseClickLeft(X,Y);
40         return true;
41 }
42 // ----------------------------------------------------------------------------
43 void manualContour3DControler::ResetOrientationPlane()
44 {
45         double p[3],rp[3],rn[3];
46         p[0] = this->GetVtkMPRBaseData()->GetX(  );
47         p[1] = this->GetVtkMPRBaseData()->GetY(  );
48         p[2] = this->GetVtkMPRBaseData()->GetZ(  );
49         this->GetManualContourModel()->GetNearestPointAndNormal(p,rp,rn);
50         this->GetVtkMPRBaseData()->SetNormal(rn[0],rn[1],rn[2]);
51 }
52 // ----------------------------------------------------------------------------
53 void manualContour3DControler::MouseClickLeft(int x, int y) // virtual
54 {
55         manualView3DContour *manualview3Dcontour=(manualView3DContour*)GetManualViewBaseContour();
56         int id=manualview3Dcontour->GetIdPoint2(x,y);
57         if ( (GetState()==0) && (id!=-1) )
58         {
59                 manualPoint *mp = this->GetManualContourModel()->GetManualPoint(id);
60
61                 this->GetVtkMPRBaseData()->SetX( mp->GetX() );
62                 this->GetVtkMPRBaseData()->SetY( mp->GetY() );
63                 this->GetVtkMPRBaseData()->SetZ( mp->GetZ() );
64                 ResetOrientationPlane();
65                 this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting();
66         }
67
68
69         manualContourControler::MouseClickLeft(x,y);
70
71 }
72 // ----------------------------------------------------------------------------
73 bool manualContour3DControler::OnChar()
74 {
75         bool ok=true;
76         manualContourControler::OnChar();
77         char keyCode = _vtkInteractorStyleBaseView->GetInteractor()-> GetKeyCode();
78         if (keyCode==32){
79                 ok=false;
80                 ResetOrientationPlane();
81                 this->_vtkInteractorStyleBaseView->SetRefresh_waiting();
82         }
83         return ok;
84 }
85
86 // ----------------------------------------------------------------------------
87 void manualContour3DControler::SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata )
88 {
89         _vtkmprbasedata=vtkmprbasedata;
90 }
91 // ----------------------------------------------------------------------------
92 vtkMPRBaseData *manualContour3DControler::GetVtkMPRBaseData()
93 {
94         return _vtkmprbasedata;
95 }
96
97 // ----------------------------------------------------------------------------
98 void manualContour3DControler::InsertPoint(int x, int y, int z ) // virtual
99 {
100         manualContourControler::InsertPoint(  x,  y,  z );
101         ResetOrientationPlane();
102 }
103