-void ManualPaintModel::FillToolRecursive(int px,int py, int pz)
-{
- _countRecursiveFill++;
-
- _countProgressingFill++;
- if (_countProgressingFill>200000)
- {
- printf("R %ld \n", _countRecursiveFill );
- _countProgressingFill=0;
- }
-
- if ((px>=_minX) && (px<=_maxX) && (py>=_minY) && (py<=_maxY) && (pz>=_minZ) && (pz<=_maxZ))
- {
- if (_usingAuxImageFill==true)
- {
- _auxImageFill->SetScalarComponentFromFloat (px, py, pz,0, 0);
- }
- _tmpDistfill=(px-_pxfill)*(px-_pxfill) + (py-_pyfill)*(py-_pyfill) + (pz-_pzfill)*(pz-_pzfill);
- _tmpiglfill=_image->GetScalarComponentAsDouble(px,py,pz, 0);
-
- _auxGrayLevelValidationFill = (_tmpiglfill!=_graylevel) &&
- (_tmpiglfill>=_graylevelbasefill-_tolerancefill) &&
- (_tmpiglfill<=_graylevelbasefill+_tolerancefill) &&
- (_tmpDistfill<=_distbasefill);
-
- if ( _auxGrayLevelValidationFill==true )
- {
- _image->SetScalarComponentFromFloat (px,py,pz, 0, (float)_graylevel );
-
- if (_countRecursiveFill< _limitRecursionFill)
- {
-
- if (_2D3D==0) //2D
- {
- if (_direction==0) // YZ
- {
- //FillToolRecursive(px+1,py,pz);
- //FillToolRecursive(px-1,py,pz);
- FillToolRecursive(px,py+1,pz);
- FillToolRecursive(px,py-1,pz);
- FillToolRecursive(px,py,pz-1);
- FillToolRecursive(px,py,pz+1);
- }
- if (_direction==1) // XZ
- {
- FillToolRecursive(px+1,py,pz);
- FillToolRecursive(px-1,py,pz);
- //FillToolRecursive(px,py+1,pz);
- //FillToolRecursive(px,py-1,pz);
- FillToolRecursive(px,py,pz-1);
- FillToolRecursive(px,py,pz+1);
- }
- if (_direction==2) // XY
- {
- FillToolRecursive(px+1,py,pz);
- FillToolRecursive(px,py+1,pz);
- FillToolRecursive(px-1,py,pz);
- FillToolRecursive(px,py-1,pz);
- //FillToolRecursive(px,py,pz-1);
- //FillToolRecursive(px,py,pz+1);
- }
- } else { // 3D
-
- FillToolRecursive(px+1,py,pz);
- FillToolRecursive(px-1,py,pz);
- FillToolRecursive(px,py+1,pz);
- FillToolRecursive(px,py-1,pz);
- FillToolRecursive(px,py,pz-1);
- FillToolRecursive(px,py,pz+1);
- } // 2D 3D
-
- } //_countRecursiveFill
- } // _graylevel
-
-
- if ( (_auxGrayLevelValidationFill==true ) &&
- (_countRecursiveFill>= _limitRecursionFill)
- )
- {
- _countRecursiveFillProblem++;
-
- if (_2D3D==0) //2D
- {
- if (_direction==0) // YZ
- {
- //SetAuxImageFill(px+1,py,pz);
- //SetAuxImageFill(px-1,py,pz);
- SetAuxImageFill(px,py+1,pz);
- SetAuxImageFill(px,py-1,pz);
- SetAuxImageFill(px,py,pz-1);
- SetAuxImageFill(px,py,pz+1);
- }
- if (_direction==1) // XZ
- {
- SetAuxImageFill(px+1,py,pz);
- SetAuxImageFill(px-1,py,pz);
- //SetAuxImageFill(px,py+1,pz);
- //SetAuxImageFill(px,py-1,pz);
- SetAuxImageFill(px,py,pz-1);
- SetAuxImageFill(px,py,pz+1);
- }
- if (_direction==2) // XY
- {
- SetAuxImageFill(px+1,py,pz);
- SetAuxImageFill(px-1,py,pz);
- SetAuxImageFill(px,py+1,pz);
- SetAuxImageFill(px,py-1,pz);
- //SetAuxImageFill(px,py,pz-1);
- //SetAuxImageFill(px,py,pz+1);
- }
- } else { // 3D
-
- SetAuxImageFill(px+1,py,pz);
- SetAuxImageFill(px-1,py,pz);
- SetAuxImageFill(px,py+1,pz);
- SetAuxImageFill(px,py-1,pz);
- SetAuxImageFill(px,py,pz-1);
- SetAuxImageFill(px,py,pz+1);
- } // 2D 3D
-
- } // _graylevel //_limitRecursionFill
-
-
- } //if _minX _maxX _minY _maxY _minZ _maxZ
-
-
- _countRecursiveFill--;
-
-}
-
-//---------------------------------------------------------------------------
-void ManualPaintModel::SetAuxImageFill(int px,int py, int pz)
-{
- if ((px>=_minX) && (px<=_maxX) && (py>=_minY) && (py<=_maxY) && (pz>=_minZ) && (pz<=_maxZ))
- {
- _auxImageFill->SetScalarComponentFromFloat (px, py, pz,0, 1);
- }
-}
-
-//---------------------------------------------------------------------------
-void ManualPaintModel::BrushTool(int px,int py, int pz)