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"
21 #include "vtkVolumeRayCastMIPFunction.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();
96 void SetRayCasting(bool active);
97 void SetMIPActive(bool active);
98 void SetInterpolation(bool active);
99 void SetShade(bool active);
105 vtkMarchingCubes *_mCubes[ VTKMPRDATA_MAXTISSUE ];
106 vtkStripper *_tissueStripper[ VTKMPRDATA_MAXTISSUE ];
107 vtkPolyDataMapper *_tissueMapper[ VTKMPRDATA_MAXTISSUE ];
108 vtkPlanes *_tissuePlanes[ VTKMPRDATA_MAXTISSUE ];
109 vtkClipPolyData *_tissueClipper[ VTKMPRDATA_MAXTISSUE ];
112 vtkOutlineFilter *_outlineData;
113 vtkPolyDataMapper *_mapOutline;
117 vtkPiecewiseFunction *_tfun;
118 vtkColorTransferFunction *_ctfun;
119 vtkVolumeRayCastCompositeFunction *_compositeFunction;
120 vtkPlanes *_volumePlanes;
121 vtkVolumeRayCastMapper *_volumeMapper;
122 vtkVolumeProperty *_volumeProperty;
125 vtkMPRBaseData *_vtkmprbasedata;
128 bool _representationType[VTKMPRDATA_MAXTISSUE];
129 bool _visibleTissue[VTKMPRDATA_MAXTISSUE];
130 vtkActor *_tissue[VTKMPRDATA_MAXTISSUE];
131 boxSurfaceObserver *_observerV;
132 boxSurfaceObserver *_observerS[VTKMPRDATA_MAXTISSUE];
134 std::vector<double> greyValuesTransferenceFVector;
135 std::vector<double> intensityValuesTransferenceFVector;
136 std::vector<double> redColorsOfColorTransferenceFVector;
137 std::vector<double> greenColorsOfColorTransferenceFVector;
138 std::vector<double> blueColorsOfColorTransferenceFVector;
139 std::vector<double> greyValueColorsOfColorTransferenceFVector;
147 #endif /*VTKCLIPPING3DDATAVIEWER_H_*/