]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp
DFCH: Manual Paint Changes (Undo/Redo) 80% :) :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / ManualPaintModel.cpp
index 17a86cf96f2faa06c40ba10995fe66c25268542e..3c1f351f7927f9fc2a958313c779448803fa969b 100644 (file)
-
 #include "ManualPaintModel.h"
 
-
-ManualPaintModel::ManualPaintModel()
-{
-    _tool           =  0;      // 0 pencil         ,   1 fill
-    _brushfilter    =  new BrushFilter();
-    _fillfilter     =  new FillFilter();
+ManualPaintModel::ManualPaintModel() {
+       _tool = 0; // 0 pencil         ,   1 fill
+       _brushfilter = new BrushFilter();
+       _fillfilter = new FillFilter();
+       _imageUndoRedo = new ImageUndoRedo();
 }
 
 //---------------------------------------------------------------------------
-ManualPaintModel::~ManualPaintModel()
-{
-    delete _brushfilter;
-    delete _fillfilter;
+ManualPaintModel::~ManualPaintModel() {
+       delete _brushfilter;
+       delete _fillfilter;
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintModel::PaintImage(int px,int py, int pz)
-{
-    if (_tool==0)
-    {
-        _brushfilter->SetPoint(px,py,pz);
-        _brushfilter->Run();
-    }
-    if (_tool==1)
-    {
-        _fillfilter->SetPoint(px,py,pz);
-        _fillfilter->Run();
-    }
+void ManualPaintModel::PaintImage(int px, int py, int pz) {
+       if (_tool == 0) {
+               _brushfilter->SetPoint(px, py, pz);
+               _brushfilter->Run();
+       }
+       if (_tool == 1) {
+               _fillfilter->SetPoint(px, py, pz);
+               _fillfilter->Run();
+       }
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetTool( int tool )
-{
-    _tool = tool;
+void ManualPaintModel::SetTool(int tool) {
+       _tool = tool;
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintModel::Set2D3D( int dim2D3D )
-{
-    _brushfilter->Set2D3D(dim2D3D);
-    _fillfilter->Set2D3D(dim2D3D);
+void ManualPaintModel::Set2D3D(int dim2D3D) {
+       _brushfilter->Set2D3D(dim2D3D);
+       _fillfilter->Set2D3D(dim2D3D);
 }
 
-
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetImage(vtkImageData *image)
-{
-    _brushfilter->SetImage(image);
-    _fillfilter->SetImage(image);
+void ManualPaintModel::SetImage(vtkImageData *image) {
+       _brushfilter->SetImage(image);
+       _fillfilter->SetImage(image);
+       _imageUndoRedo->SetImage(image);
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetGrayLevel( double graylevel )
-{
-    _brushfilter->SetGrayLevel(graylevel);
-    _fillfilter->SetGrayLevel(graylevel);
+void ManualPaintModel::SetGrayLevel(double graylevel) {
+       _brushfilter->SetGrayLevel(graylevel);
+       _fillfilter->SetGrayLevel(graylevel);
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetRangeMin( int min )
-{
+void ManualPaintModel::SetRangeMin(int min) {
        _brushfilter->SetRangeMin(min);
        _fillfilter->SetRangeMin(min);
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetRangeMax( int max )
-{
+void ManualPaintModel::SetRangeMax(int max) {
        _brushfilter->SetRangeMax(max);
        _fillfilter->SetRangeMax(max);
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetDirection(int direction)
-{
-    _brushfilter->SetDirection(direction);
-    _fillfilter->SetDirection(direction);
+void ManualPaintModel::SetDirection(int direction) {
+       _brushfilter->SetDirection(direction);
+       _fillfilter->SetDirection(direction);
 }
 
-
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetBrushSize( int brushsize )
-{
-    _brushfilter->SetBrushSize(brushsize);
+void ManualPaintModel::SetBrushSize(int brushsize) {
+       _brushfilter->SetBrushSize(brushsize);
 }
 
-
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetBrushForm( int brushform )
-{
-    _brushfilter->SetBrushForm(brushform);
+void ManualPaintModel::SetBrushForm(int brushform) {
+       _brushfilter->SetBrushForm(brushform);
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetToleranceFill(double tolerancefill)
-{
-    _fillfilter->SetToleranceFill(tolerancefill);
+void ManualPaintModel::SetToleranceFill(double tolerancefill) {
+       _fillfilter->SetToleranceFill(tolerancefill);
 }
 
 //---------------------------------------------------------------------------
-void ManualPaintModel::SetDistanceFill(int distancefill)
-{
-    _fillfilter->SetDistanceFill(distancefill);
+void ManualPaintModel::SetDistanceFill(int distancefill) {
+       _fillfilter->SetDistanceFill(distancefill);
 }
 //---------------------------------------------------------------------------
-void ManualPaintModel::GetScalarRange( double * range )
-{
-       _fillfilter->GetScalarRange( range );
+void ManualPaintModel::GetScalarRange(double * range) {
+       _fillfilter->GetScalarRange(range);
 }
+//---------------------------------------------------------------------------
+void ManualPaintModel::SetUndoImage() {
+       RegionStructUR* region = NULL;
+       if (_tool == 0) {
+               region = this->_brushfilter->GetModifiedRegion();
+       }
+       if (_tool == 1) {
+               region = this->_fillfilter->GetModifiedRegion();
+       }
+       this->_imageUndoRedo->SetUndoImage((*region));
+       this->_brushfilter->CleanModifiedRegion();
+       this->_fillfilter->CleanModifiedRegion();
+}
+//---------------------------------------------------------------------------
 
+void ManualPaintModel::Undo() {
+       //this->_imageUndoRedo->Undo();
+}