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"
20 #include "vtkRenderWindowInteractor.h"
22 #include "vtkVolumeRayCastMIPFunction.h"
24 #include "volumerendererdata.h"
26 class vtkClipping3DDataViewer {
28 //----------------------
29 //Constructo-Destructor
30 //----------------------
31 vtkClipping3DDataViewer();
32 virtual ~vtkClipping3DDataViewer();
34 // vtkImageActor* GetImageActor(int id);
35 vtkActor* GetOutlineActor();
36 vtkClipPolyData* GetTissueClipper(int id);
37 vtkPolyDataMapper* GetTissueMapper(int id);
38 vtkPlanes* GetTissuePlanes(int id);
39 vtkStripper* GetTissueStripper(int id);
40 // vtkGlyph3D* GetGlyph(int id);
41 vtkLODActor* GetMaceActor(int id);
43 vtkMarchingCubes *GetMCubes(int idTissue);
45 virtual void Refresh();
46 void RefreshSurface();
48 virtual void Configure();
49 void Configure_Tissue();
50 void Configure_Volume();
52 void SetIsovalue(int idTissue, int isoValue);
53 double GetIsovalue(int idTissue);
55 vtkVolume *GetVolumeActor();
56 vtkVolumeRayCastMapper *GetVolumeMapper();
57 vtkPlanes *GetVolumePlanes();
59 void SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata);
60 vtkMPRBaseData* GetVtkMPRBaseData();
62 vtkActor *GetTissueActor(int id);
63 void SetVisibleTissue(int idTissue, bool visible);
64 bool GetVisibleTissue(int idTissue);
65 bool GetVisibleVolume();
66 void SetVisibleVolume(bool visibleVolume);
68 bool GetVisibleVolumeBox();
69 void SetVisibleVolumeBox(bool visibleBox);
71 void SetRepresentationType(int idTissue, bool representationType);
72 bool GetRepresentationType(int idTissue);
74 boxSurfaceObserver *GetObserverS(int idObserverS);
75 boxSurfaceObserver *GetObserverV();
77 //void ReadVolumeFunctions(char *namefile);
78 void ReadVolumeFunctions();
79 void ReadMeshVTK(char *namefile);
82 void Configure_VolumeBox();
83 void SetInteractor(vtkRenderWindowInteractor* interactor);
84 void SetRenderer(vtkRenderer* renderer);
90 std::vector<double>* GetGreyValuesTransferenceFVector();
91 std::vector<double>* GetIntensityValuesTransferenceFVector();
92 std::vector<double>* GetRedColorsOfColorTransferenceFVector();
93 std::vector<double>* GetGreenColorsOfColorTransferenceFVector();
94 std::vector<double>* GetBlueColorsOfColorTransferenceFVector();
95 std::vector<double>* GetGreyValueColorsOfColorTransferenceFVector();
97 void setColorTransferFunction(vtkColorTransferFunction* colortable);
99 //--------------------------------------
100 //Getters transference function
101 //and color of the transference function
102 //---------------------------------------
103 vtkPiecewiseFunction *GetTransferencefunction();
104 vtkColorTransferFunction *GetColorTransferenceFunction();
106 void SetRayCasting(bool active);
107 void SetMIPActive(bool active);
108 void SetInterpolation(bool active);
109 void SetShade(bool active);
113 void BoxActorChanged(bool changed);
114 void UpdateVolumeBox(vector<double> gf, vector<double> vf, vtkColorTransferFunction* ctfun);
120 vtkMarchingCubes *_mCubes[ VTKMPRDATA_MAXTISSUE ];
121 vtkStripper *_tissueStripper[ VTKMPRDATA_MAXTISSUE ];
122 vtkPolyDataMapper *_tissueMapper[ VTKMPRDATA_MAXTISSUE ];
123 vtkPlanes *_tissuePlanes[ VTKMPRDATA_MAXTISSUE ];
124 vtkClipPolyData *_tissueClipper[ VTKMPRDATA_MAXTISSUE ];
127 vtkOutlineFilter *_outlineData;
128 vtkPolyDataMapper *_mapOutline;
132 vtkPiecewiseFunction *_tfun;
133 vtkColorTransferFunction *_ctfun;
134 // vtkVolumeRayCastCompositeFunction *_compositeFunction;
135 vtkPlanes *_volumePlanes;
136 vtkVolumeRayCastMapper *_volumeMapper;
137 vtkVolumeProperty *_volumeProperty;
140 vtkMPRBaseData *_vtkmprbasedata;
144 bool _visibleVolumeBox;
147 bool _representationType[VTKMPRDATA_MAXTISSUE];
148 bool _visibleTissue[VTKMPRDATA_MAXTISSUE];
149 vtkActor *_tissue[VTKMPRDATA_MAXTISSUE];
150 boxSurfaceObserver *_observerV;
151 boxSurfaceObserver *_observerS[VTKMPRDATA_MAXTISSUE];
153 std::vector<double> greyValuesTransferenceFVector;
154 std::vector<double> intensityValuesTransferenceFVector;
155 std::vector<double> redColorsOfColorTransferenceFVector;
156 std::vector<double> greenColorsOfColorTransferenceFVector;
157 std::vector<double> blueColorsOfColorTransferenceFVector;
158 std::vector<double> greyValueColorsOfColorTransferenceFVector;
160 vtkVolumeRayCastCompositeFunction *_compositeFunction;
161 vtkVolumeRayCastMIPFunction *_compositeFunctionMIP ;
168 VolumeRendererData* _volumerendererdata;
171 #endif /*VTKCLIPPING3DDATAVIEWER_H_*/