1 /*=========================================================================
4 Module: $RCSfile: CutModel2Data.h,v $
6 Date: $Date: 2009/11/19 15:00:33 $
7 Version: $Revision: 1.1 $
9 Copyright: (c) 2002, 2003
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notice for more information.
16 =========================================================================*/
21 #ifndef __CutModel2DataH__
22 #define __CutModel2DataH__
27 #include "vtkImageData.h"
28 #include "vtkRenderWindowInteractor.h"
29 #include "vtkCommand.h"
30 #include "vtkBoxWidget.h"
31 #include "vtkPolyDataMapper.h"
33 #include "vtkProperty.h"
34 #include "CutModel2Exception.h"
35 #include "CutModel2Figure.h"
36 #include "CutModel2FigureCube.h"
37 #include "CutModel2FigureSphere.h"
38 #include "CutModel2FigureCylinder.h"
46 CutModel2Data(int id, vtkRenderWindowInteractor* interactor, vtkCommand* observer, vtkImageData* img);
48 void initializeData(int id, vtkRenderWindowInteractor* interactor, vtkCommand* observer, vtkImageData* img);
55 void changeOpacity(int opacity)throw( CutModel2Exception);
57 void ShowViewBox(bool check)throw( CutModel2Exception);
59 void ChangeShape(int selection)throw( CutModel2Exception);
61 vtkActor* getActor()throw( CutModel2Exception);
63 vtkPolyData* getPolyData()throw( CutModel2Exception);
65 void changeColor(double r,double g,double b)throw( CutModel2Exception);
67 void udapteActorDirection()throw( CutModel2Exception);
69 void ExecuteCut( double* range, bool isinside, vtkImageData* copyimage)throw( CutModel2Exception);
71 void ExecuteUnCut( bool isinside, vtkImageData* image, vtkImageData* copyimage)throw( CutModel2Exception);
73 void RefreshViewBox();
75 vtkTransform* getCurrentMatrix(){
79 int getCurrentShape(){
83 void setCurrentShape(int currentshape){
84 _currentshape = currentshape;
87 void setTransform(vtkTransform* transform,vtkImageData* img)throw( CutModel2Exception);
90 void checkInvariant()throw( CutModel2Exception);
92 void createBoxWidget(vtkRenderWindowInteractor* interactor, vtkCommand* observer);
94 void setTransform(vtkImageData* img)throw( CutModel2Exception);
97 vtkBoxWidget* _boxWidgetVolume;
98 vtkPolyDataMapper* _Mapper;
104 CutModel2FigureCube* _cubefigure;
105 CutModel2FigureCylinder* _cylinderfigure;
106 CutModel2FigureSphere* _spherefigure;
107 vtkTransform* currentmatrix;
108 vtkTransform* modeltransform;
109 vtkTransform* inversModel;
112 CutModel2Figure* getCurentCuttingModel();
114 vtkTransform* getModelTransform(vtkImageData* copyimage);
115 vtkTransform* getModelTransformInvers();