]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp
d6b0d5ba1f2eb8b6e004e261a56147df45330240
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / ManualPaintModel.cpp
1
2 #include "ManualPaintModel.h"
3
4
5 ManualPaintModel::ManualPaintModel()
6 {
7     _graylevel  =   0.0;
8     _brushsize  =   1;
9     _brushform  =   0;      // 0 rectangle-box  ,   1 circle-sphere
10     _2D3D       =   0;      // 0 2D             ,   1 true 3D
11     _brushtool  =   0;      // 0 pensil         ,   1 fill
12 }
13
14 //---------------------------------------------------------------------------
15 ManualPaintModel::~ManualPaintModel()
16 {
17 }
18
19 void ManualPaintModel::SetImage(vtkImageData *image)
20 {
21     _image=image;
22 }
23
24 void ManualPaintModel::PaintImage(int px,int py, int pz)
25 {
26
27     printf("EED ManualPaintModel::PaintImage %d %d %d\n", px,py,pz);
28     if (_image!=NULL)
29     {
30         float value=(float)_graylevel;
31         int i,j,k;
32         int size = _brushsize-1;
33         int minX=px-size;
34         int maxX=px+size;
35         int minY=py-size;
36         int maxY=py+size;
37         int minZ=pz-size;
38         int maxZ=pz+size;
39
40         double xx,yy,zz,rr=size*size;
41
42         printf("EED bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage brushForm=%d\n",_brushform);
43         for (i=minX; i<=maxX; i++)
44         {
45             xx=px-i;
46             xx=xx*xx;
47             for (j=minY; j<=maxY; j++)
48             {
49                 yy=py-j;
50                 yy=yy*yy;
51                 for (k=minZ; k<=maxZ; k++)
52                 {
53                     zz=pz-k;
54                     zz=zz*zz;
55                     if (_brushform==0)
56                     {
57                         _image->SetScalarComponentFromFloat (i,j,k, 0, value );
58                     } else if (_brushform==1)
59                     {
60                         if ((xx+yy+zz)<=rr)
61                         {
62                             _image->SetScalarComponentFromFloat (i,j,k, 0, value );
63                         }
64                     } // _brushform
65
66                 }//k
67             }//j
68         }//i
69         _image->Modified();
70     } else  {
71         printf("ERROR : bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage :  Image not set. \n");
72     } // _image
73 }
74
75
76 //---------------------------------------------------------------------------
77 void ManualPaintModel::SetBrushSize( int brushsize )
78 {
79     _brushsize = brushsize;
80 }
81
82 //---------------------------------------------------------------------------
83 void ManualPaintModel::SetGrayLevel( double graylevel )
84 {
85     _graylevel = graylevel;
86 }
87
88 //---------------------------------------------------------------------------
89 void ManualPaintModel::SetBrushForm( int brushform )
90 {
91     _brushform = brushform;
92 }
93
94 //---------------------------------------------------------------------------
95 void ManualPaintModel::SetBrushTool( int brushtool )
96 {
97     _brushtool = brushtool;
98 }
99
100 //---------------------------------------------------------------------------
101 void ManualPaintModel::Set2D3D( int dim2D3D )
102 {
103     _2D3D = dim2D3D;
104 }
105