1 #include "BrushFilter.h"
3 BrushFilter::BrushFilter() {
5 _brushform = 0; // 0 rectangle-box , 1 circle-sphere
6 _brushtool = 0; // 0 pencil , 1 fill
9 //---------------------------------------------------------------------------
10 BrushFilter::~BrushFilter() // virtual
14 //---------------------------------------------------------------------------
15 void BrushFilter::FindMinMaxBrush(int &minX, int &maxX, int &minY, int &maxY,
16 int &minZ, int &maxZ, int &size) {
17 size = _brushsize - 1;
27 if (_direction == 0) // YZ
32 if (_direction == 1) // XZ
37 if (_direction == 2) // XY
73 SetGeneralMinMax(minX, maxX, minY, maxY, minZ, maxZ);
76 //---------------------------------------------------------------------------
77 void BrushFilter::Run() // virtual
81 float value = (float) _graylevel;
82 this->_MRegion->value = (float) _graylevel;
86 int minX, maxX, minY, maxY, minZ, maxZ;
87 FindMinMaxBrush(minX, maxX, minY, maxY, minZ, maxZ, size);
89 double xx, yy, zz, rr = size * size;
91 for (i = minX; i <= maxX; i++) {
94 for (j = minY; j <= maxY; j++) {
97 for (k = minZ; k <= maxZ; k++) {
98 // if ((i>=_minX) && (i<=_maxX) && (j>=_minY) && (j<=_maxY) && (k>=_minZ) && (k<=_maxZ))
101 float scalarComponent = _image->GetScalarComponentAsFloat(i,
103 if ((this->GetRangeMin() <= scalarComponent)
104 && (scalarComponent <= this->GetRangeMax())) {
107 if (_brushform == 0) {
108 this->CalculateMinMaxRegion(i, j, k); //DFCH
109 _image->SetScalarComponentFromFloat(i, j, k, 0,
111 } else if (_brushform == 1) {
112 if ((xx + yy + zz) <= rr) {
113 this->CalculateMinMaxRegion(i, j, k); //DFCH
114 _image->SetScalarComponentFromFloat(i, j, k, 0,
118 } // GetRangeMin && GetRangeMax
120 // } //if _minX _maxX _minY _maxY _minZ _maxZ
128 "ERROR : bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage : Image not set. \n");
132 //---------------------------------------------------------------------------
133 void BrushFilter::SetBrushSize(int brushsize) {
134 _brushsize = brushsize;
137 //---------------------------------------------------------------------------
138 void BrushFilter::SetBrushForm(int brushform) {
139 _brushform = brushform;
142 //---------------------------------------------------------------------------
143 void BrushFilter::SetBrushTool(int brushtool) {
144 _brushtool = brushtool;
147 //---------------------------------------------------------------------------
148 void BrushFilter::SetRangeMin(int min) {
152 //---------------------------------------------------------------------------
153 void BrushFilter::SetRangeMax(int max) {
157 //---------------------------------------------------------------------------
158 int BrushFilter::GetRangeMin() {
162 //---------------------------------------------------------------------------
163 int BrushFilter::GetRangeMax() {