00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00035 #ifndef __vtkVolumePicker_h
00036 #define __vtkVolumePicker_h
00037
00038 #include "vtkCellPicker.h"
00039
00040 class VTK_VOLUMERENDERING_EXPORT vtkVolumePicker : public vtkCellPicker
00041 {
00042 public:
00043 static vtkVolumePicker *New();
00044 vtkTypeRevisionMacro(vtkVolumePicker, vtkCellPicker);
00045 void PrintSelf(ostream& os, vtkIndent indent);
00046
00048
00053 vtkSetMacro(PickCroppingPlanes, int);
00054 vtkBooleanMacro(PickCroppingPlanes, int);
00055 vtkGetMacro(PickCroppingPlanes, int);
00057
00059
00064 vtkGetMacro(CroppingPlaneId, int);
00066
00067 protected:
00068 vtkVolumePicker();
00069 ~vtkVolumePicker();
00070
00071 virtual void ResetPickInfo();
00072
00073 virtual double IntersectVolumeWithLine(const double p1[3],
00074 const double p2[3],
00075 double t1, double t2,
00076 vtkProp3D *prop,
00077 vtkAbstractVolumeMapper *mapper);
00078
00079 static int ClipLineWithCroppingRegion(const double bounds[6],
00080 const int extent[6], int flags,
00081 const double x1[3], const double x2[3],
00082 double t1, double t2,
00083 int &extentPlaneId, int &numSegments,
00084 double *t1List, double *t2List,
00085 double *s1List, int *planeIdList);
00086
00087 int PickCroppingPlanes;
00088 int CroppingPlaneId;
00089
00090 private:
00091 vtkVolumePicker(const vtkVolumePicker&);
00092 void operator=(const vtkVolumePicker&);
00093 };
00094
00095 #endif
00096
00097