1 #ifndef VTKCLIPPING3DDATAVIEWER_H_
2 #define VTKCLIPPING3DDATAVIEWER_H_
4 #include "wxMPRBaseData.h"
6 #include "vtkClipPolyData.h"
7 #include "vtkStripper.h"
8 #include "vtkLODActor.h"
9 #include "vtkMarchingCubes.h"
10 #include "vtkVolumeRayCastMapper.h"
11 #include "boxSurfaceObserver.h"
12 #include "vtkVolumeRayCastCompositeFunction.h"
13 #include <vtkPiecewiseFunction.h>
14 #include "vtkVolumeProperty.h"
15 #include "vtkPolyDataMapper.h"
16 #include "vtkColorTransferFunction.h"
17 #include "vtkVolume.h"
19 #include "vtkOutlineFilter.h"
23 class vtkClipping3DDataViewer {
25 //----------------------
26 //Constructo-Destructor
27 //----------------------
28 vtkClipping3DDataViewer();
29 virtual ~vtkClipping3DDataViewer();
31 // vtkImageActor* GetImageActor(int id);
32 vtkActor* GetOutlineActor();
33 vtkClipPolyData* GetTissueClipper(int id);
34 vtkPolyDataMapper* GetTissueMapper(int id);
35 vtkPlanes* GetTissuePlanes(int id);
36 vtkStripper* GetTissueStripper(int id);
37 // vtkGlyph3D* GetGlyph(int id);
38 vtkLODActor* GetMaceActor(int id);
40 vtkMarchingCubes *GetMCubes(int idTissue);
42 virtual void Refresh();
43 void RefreshSurface();
45 virtual void Configure();
46 void Configure_Tissue();
47 void Configure_Volume();
49 void SetIsovalue(int idTissue, int isoValue);
50 double GetIsovalue(int idTissue);
52 vtkVolume *GetVolumeActor();
53 vtkVolumeRayCastMapper *GetVolumeMapper();
54 vtkPlanes *GetVolumePlanes();
56 void SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata);
57 vtkMPRBaseData* GetVtkMPRBaseData();
59 vtkActor *GetTissueActor(int id);
60 void SetVisibleTissue(int idTissue, bool visible);
61 bool GetVisibleTissue(int idTissue);
62 bool GetVisibleVolume();
63 void SetVisibleVolume(bool visibleVolume);
65 void SetRepresentationType(int idTissue, bool representationType);
66 bool GetRepresentationType(int idTissue);
68 boxSurfaceObserver *GetObserverS(int idObserverS);
69 boxSurfaceObserver *GetObserverV();
71 //void ReadVolumeFunctions(char *namefile);
72 void ReadVolumeFunctions();
73 void ReadMeshVTK(char *namefile);
80 std::vector<double>* GetGreyValuesTransferenceFVector();
81 std::vector<double>* GetIntensityValuesTransferenceFVector();
82 std::vector<double>* GetRedColorsOfColorTransferenceFVector();
83 std::vector<double>* GetGreenColorsOfColorTransferenceFVector();
84 std::vector<double>* GetBlueColorsOfColorTransferenceFVector();
85 std::vector<double>* GetGreyValueColorsOfColorTransferenceFVector();
87 void setColorTransferFunction(vtkColorTransferFunction* colortable);
89 //--------------------------------------
90 //Getters transference function
91 //and color of the transference function
92 //---------------------------------------
93 vtkPiecewiseFunction *GetTransferencefunction();
94 vtkColorTransferFunction *GetColorTransferenceFunction();
100 vtkMarchingCubes *_mCubes[ VTKMPRDATA_MAXTISSUE ];
101 vtkStripper *_tissueStripper[ VTKMPRDATA_MAXTISSUE ];
102 vtkPolyDataMapper *_tissueMapper[ VTKMPRDATA_MAXTISSUE ];
103 vtkPlanes *_tissuePlanes[ VTKMPRDATA_MAXTISSUE ];
104 vtkClipPolyData *_tissueClipper[ VTKMPRDATA_MAXTISSUE ];
107 vtkOutlineFilter *_outlineData;
108 vtkPolyDataMapper *_mapOutline;
112 vtkPiecewiseFunction *_tfun;
113 vtkColorTransferFunction *_ctfun;
114 vtkVolumeRayCastCompositeFunction *_compositeFunction;
115 vtkPlanes *_volumePlanes;
116 vtkVolumeRayCastMapper *_volumeMapper;
117 vtkVolumeProperty *_volumeProperty;
120 vtkMPRBaseData *_vtkmprbasedata;
123 bool _representationType[VTKMPRDATA_MAXTISSUE];
124 bool _visibleTissue[VTKMPRDATA_MAXTISSUE];
125 vtkActor *_tissue[VTKMPRDATA_MAXTISSUE];
126 boxSurfaceObserver *_observerV;
127 boxSurfaceObserver *_observerS[VTKMPRDATA_MAXTISSUE];
129 std::vector<double> greyValuesTransferenceFVector;
130 std::vector<double> intensityValuesTransferenceFVector;
131 std::vector<double> redColorsOfColorTransferenceFVector;
132 std::vector<double> greenColorsOfColorTransferenceFVector;
133 std::vector<double> blueColorsOfColorTransferenceFVector;
134 std::vector<double> greyValueColorsOfColorTransferenceFVector;
137 #endif /*VTKCLIPPING3DDATAVIEWER_H_*/