/*========================================================================= Program: wxMaracas Module: $RCSfile: CutModel2Data.h,v $ Language: C++ Date: $Date: 2009/11/19 15:24:57 $ Version: $Revision: 1.1 $ Copyright: (c) 2002, 2003 License: This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #ifndef __CutModel2DataH__ #define __CutModel2DataH__ #include #include #include "vtkImageData.h" #include "vtkRenderWindowInteractor.h" #include "vtkCommand.h" #include "vtkBoxWidget.h" #include "vtkPolyDataMapper.h" #include "vtkActor.h" #include "vtkProperty.h" #include "CutModel2Exception.h" #include "CutModel2Figure.h" #include "CutModel2FigureCube.h" #include "CutModel2FigureSphere.h" #include "CutModel2FigureCylinder.h" #include class CutModel2Data { public: CutModel2Data(); CutModel2Data(int id, vtkRenderWindowInteractor* interactor, vtkCommand* observer, vtkImageData* img); ~CutModel2Data(); void initializeData(int id, vtkRenderWindowInteractor* interactor, vtkCommand* observer, vtkImageData* img); int getId(){ return _id; } void changeOpacity(int opacity)throw( CutModel2Exception); void ShowViewBox(bool check)throw( CutModel2Exception); void ChangeShape(int selection)throw( CutModel2Exception); vtkActor* getActor()throw( CutModel2Exception); vtkPolyData* getPolyData()throw( CutModel2Exception); void changeColor(double r,double g,double b)throw( CutModel2Exception); void udapteActorDirection()throw( CutModel2Exception); void ExecuteCut( double* range, bool isinside, vtkImageData* copyimage)throw( CutModel2Exception); void ExecuteUnCut( bool isinside, vtkImageData* image, vtkImageData* copyimage)throw( CutModel2Exception); void RefreshViewBox(); vtkTransform* getCurrentMatrix(){ return currentmatrix; } int getCurrentShape(){ return _currentshape; } void setCurrentShape(int currentshape){ _currentshape = currentshape; } void setTransform(vtkTransform* transform,vtkImageData* img)throw( CutModel2Exception); private: void checkInvariant()throw( CutModel2Exception); void createBoxWidget(vtkRenderWindowInteractor* interactor, vtkCommand* observer); void createActor(); void setTransform(vtkImageData* img)throw( CutModel2Exception); void createShapes(); vtkBoxWidget* _boxWidgetVolume; vtkPolyDataMapper* _Mapper; vtkActor* _Actor; int _id; int _currentshape; CutModel2FigureCube* _cubefigure; CutModel2FigureCylinder* _cylinderfigure; CutModel2FigureSphere* _spherefigure; vtkTransform* currentmatrix; vtkTransform* modeltransform; vtkTransform* inversModel; CutModel2Figure* getCurentCuttingModel(); vtkTransform* getModelTransform(vtkImageData* copyimage); vtkTransform* getModelTransformInvers(); }; #endif