#include "BrushFilter.h" baseFilterManualPaint::baseFilterManualPaint() { _graylevel = 0.0; _2D3D = 1; // 0 2D , 1 true 3D _direction = 0; // 1 XZ , 0 YZ , 2 XY _minX = 0; _minY = 0; _minZ = 0; _maxX = 0; _maxY = 0; _maxZ = 0; _pMinX = 0; _pMinY = 0; _pMinZ = 0; _pMaxX = 0; _pMaxY = 0; _pMaxZ = 0; } //--------------------------------------------------------------------------- baseFilterManualPaint::~baseFilterManualPaint() // virtual { } //--------------------------------------------------------------------------- void baseFilterManualPaint::Run() // virtual { } //--------------------------------------------------------------------------- void baseFilterManualPaint::SetGrayLevel( double graylevel ) { _graylevel = graylevel; } //--------------------------------------------------------------------------- void baseFilterManualPaint::Set2D3D( int dim2D3D ) { _2D3D = dim2D3D; } //--------------------------------------------------------------------------- void baseFilterManualPaint::SetDirection(int direction) { _direction = direction; } //--------------------------------------------------------------------------- void baseFilterManualPaint::SetPoint(int px,int py, int pz) { _px=px; _py=py; _pz=pz; } //--------------------------------------------------------------------------- void baseFilterManualPaint::SetImage(vtkImageData *image) { _image=image; int ext[6]; _image->GetWholeExtent(ext); _minX=0; _minY=0; _minZ=0; _maxX=ext[1]-ext[0]; _maxY=ext[3]-ext[2]; _maxZ=ext[5]-ext[4]; } //--------------------------------------------------------------------------- void baseFilterManualPaint::ResetGeneralMinMax() { _pMinX=10000; _pMinY=10000; _pMinZ=10000; _pMaxX=-10000; _pMaxY=-10000; _pMaxZ=-10000; } //--------------------------------------------------------------------------- void baseFilterManualPaint::SetGeneralMinMax(int minX,int maxX,int minY,int maxY,int minZ,int maxZ) { if (_pMinX>minX) { _pMinX=minX; } if (_pMinY>minY) { _pMinY=minY; } if (_pMinZ>minZ) { _pMinZ=minZ; } if (_pMaxX_maxX) { maxX=_maxX; } if (maxY>_maxY) { maxY=_maxY; } if (maxZ>_maxZ) { maxZ=_maxZ; } //-- SetGeneralMinMax(minX,maxX,minY,maxY,minZ,maxZ); } //--------------------------------------------------------------------------- void BrushFilter::Run() // virtual { if (_image!=NULL) { float value=(float)_graylevel; int i,j,k; int size; int minX,maxX,minY,maxY,minZ,maxZ; FindMinMaxBrush(minX,maxX,minY,maxY,minZ,maxZ,size); double xx,yy,zz,rr=size*size; for (i=minX; i<=maxX; i++) { xx=_px-i; xx=xx*xx; for (j=minY; j<=maxY; j++) { yy=_py-j; yy=yy*yy; for (k=minZ; k<=maxZ; k++) { // if ((i>=_minX) && (i<=_maxX) && (j>=_minY) && (j<=_maxY) && (k>=_minZ) && (k<=_maxZ)) // { zz=_pz-k; zz=zz*zz; if (_brushform==0) { _image->SetScalarComponentFromFloat (i,j,k, 0, value ); } else if (_brushform==1) { if ((xx+yy+zz)<=rr) { _image->SetScalarComponentFromFloat (i,j,k, 0, value ); } } // _brushform // } //if _minX _maxX _minY _maxY _minZ _maxZ }//k }//j }//i _image->Modified(); } else { printf("ERROR : bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage : Image not set. \n"); } // _image } //--------------------------------------------------------------------------- void BrushFilter::SetBrushSize( int brushsize ) { _brushsize = brushsize; } //--------------------------------------------------------------------------- void BrushFilter::SetBrushForm( int brushform ) { _brushform = brushform; } //--------------------------------------------------------------------------- void BrushFilter::SetBrushTool( int brushtool ) { _brushtool = brushtool; }