]> Creatis software - creaMaracasVisu.git/blob - lib/Kernel/VTKObjects/SurfaceRenderer/wxMaracasSurfaceRenderingManagerData.cxx
510ec5c53b3ddb681a14a2664e0f5c8c8304205d
[creaMaracasVisu.git] / lib / Kernel / VTKObjects / SurfaceRenderer / wxMaracasSurfaceRenderingManagerData.cxx
1
2 #include "wxMaracasSurfaceRenderingManagerData.h"
3
4 #include <vtkSmartPointer.h>
5 #include "vtkSTLWriter.h"
6 #include "vtkPLYWriter.h"
7
8 /********************************************************************************************
9 ** Start of data viewmanagerData
10 *********************************************************************************************/
11
12 wxMaracasSurfaceRenderingManagerData::wxMaracasSurfaceRenderingManagerData(vtkProp3D* prop3Dvect, std::string dataname, vtkRenderWindowInteractor*  interactor){
13
14         _dataMapper = 0;
15         _prop3D = prop3Dvect;   
16         _dataname = dataname;   
17         _boxWidgetS1=NULL;
18         
19         initializeBoxWidget(interactor);
20         
21
22         
23
24         /*_boxWidgetS1->GetPlanes( this->GetVtkClipping3DDataViewer()->GetTissuePlanes(0) );
25         _boxWidgetS1->GetPlanes( this->GetVtkClipping3DDataViewer()->GetTissuePlanes(1) );
26         _boxWidgetS1->GetPlanes( this->GetVtkClipping3DDataViewer()->GetTissuePlanes(2) );
27         _boxWidgetS1->GetPlanes( this->GetVtkClipping3DDataViewer()->GetTissuePlanes(3) );*/
28 }
29
30
31 wxMaracasSurfaceRenderingManagerData::~wxMaracasSurfaceRenderingManagerData(){
32         
33         _prop3D->Delete();      
34         if (_boxWidgetS1!=NULL)                                  { _boxWidgetS1         -> Delete();                                    }
35 }
36
37 void wxMaracasSurfaceRenderingManagerData::initializeBoxWidget(vtkRenderWindowInteractor*  interactor){
38         if(interactor!= NULL){
39         
40         }
41 }
42
43 /**
44 **      Adds a prop3D to the world of the application
45 **/
46 void wxMaracasSurfaceRenderingManagerData::setProp3D(vtkProp3D* prop3D){
47         _prop3D = prop3D;
48 }
49
50 void wxMaracasSurfaceRenderingManagerData::addRemoveSurfaceBox(bool visible)
51 {
52         if(_boxWidgetS1){
53                 if (visible==true){
54                         _boxWidgetS1->On();
55                 } else {
56                         _boxWidgetS1->Off();
57                 }
58         }
59 }
60 /**
61 **      Changes the opacity in a prop3D
62 **/
63 void wxMaracasSurfaceRenderingManagerData::changeOpacity(int value){
64         std::cout<<"chage op"<<value<<std::endl;
65         vtkActor* actor = (vtkActor*)this->_prop3D;     
66         actor->GetProperty()->SetOpacity((double)value/100.0);
67
68         
69
70 }
71 void wxMaracasSurfaceRenderingManagerData::changeColor(double red, double green, double blue){
72         std::cout<<"chage col"<<red<<green<<blue<<std::endl;
73     vtkActor* actor = (vtkActor*)this->_prop3D; 
74         actor->GetProperty()->SetColor(red,green,blue); 
75 }
76 /**
77 **      Check if the variables are setted correctly
78 **/
79 void wxMaracasSurfaceRenderingManagerData::checkInvariant(){
80
81 }
82 /**
83 **      get the prop3D 
84 **/
85 vtkProp3D* wxMaracasSurfaceRenderingManagerData::getProp3D(){
86         return this->_prop3D;
87 }
88 /**
89 **      return the id from the daat
90 **/
91 int wxMaracasSurfaceRenderingManagerData::getId(){
92         return _id;
93 }
94 /**
95 **      set data id
96 **/
97 void wxMaracasSurfaceRenderingManagerData::setId(int propid){
98         _id = propid;
99 }
100
101 /**
102 **      Get the filanme
103 **/
104 std::string wxMaracasSurfaceRenderingManagerData::getDataname(){
105         return _dataname;
106 }
107 /**
108 ** Set the filanme
109 **/
110 void wxMaracasSurfaceRenderingManagerData::setDataname(std::string dataname){
111         _dataname = dataname;
112 }
113
114
115
116 void wxMaracasSurfaceRenderingManagerData::saveProp3DSTL(const char* filename){
117     if(_dataMapper){
118
119         std::string filena(filename);
120         std::string ext = filena.substr(filena.find_last_of("."), 4);
121         if(ext.compare(PLY) == 0){
122             vtkSmartPointer<vtkPLYWriter> plywriter =
123             vtkSmartPointer<vtkPLYWriter>::New();
124               plywriter->SetFileName(filename);
125               plywriter->SetInput(_dataMapper->GetInput());
126               plywriter->Write();
127         }else if(ext.compare(PLY) == 0){
128             vtkSmartPointer<vtkSTLWriter> stlWriter =
129             vtkSmartPointer<vtkSTLWriter>::New();
130               stlWriter->SetFileName(filename);
131               stlWriter->SetInput(_dataMapper->GetInput());
132               stlWriter->SetFileTypeToBinary();
133               stlWriter->Write();
134         }else{
135             cout<<"unsupported format"<<endl;
136         }
137     }
138 }
139
140 void wxMaracasSurfaceRenderingManagerData::enableBoxWidget(bool enable){
141
142 }
143
144
145
146