dox/Graphics/vtkHull.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00047 #ifndef __vtkHull_h
00048 #define __vtkHull_h
00049
00050 #include "vtkPolyDataToPolyDataFilter.h"
00051
00052 class vtkCellArray;
00053 class vtkPlanes;
00054 class vtkPoints;
00055 class vtkPolyData;
00056
00057 class VTK_GRAPHICS_EXPORT vtkHull : public vtkPolyDataToPolyDataFilter
00058 {
00059 public:
00060 static vtkHull *New();
00061 vtkTypeRevisionMacro(vtkHull,vtkPolyDataToPolyDataFilter);
00062 void PrintSelf(ostream& os, vtkIndent indent);
00063
00065 void RemoveAllPlanes( void );
00066
00068
00077 int AddPlane( float A, float B, float C );
00078 int AddPlane( float plane[3] );
00080
00082
00088 void SetPlane( int i, float A, float B, float C );
00089 void SetPlane( int i, float plane[3] );
00091
00093
00095 int AddPlane( float A, float B, float C, float D );
00096 int AddPlane( float plane[3], float D );
00097 void SetPlane( int i, float A, float B, float C, float D );
00098 void SetPlane( int i, float plane[3], float D );
00100
00103 void SetPlanes( vtkPlanes *planes );
00104
00106
00107 vtkGetMacro( NumberOfPlanes, int );
00109
00114 void AddCubeVertexPlanes();
00115
00120 void AddCubeEdgePlanes();
00121
00124 void AddCubeFacePlanes();
00125
00133 void AddRecursiveSpherePlanes( int level );
00134
00136
00144 void GenerateHull(vtkPolyData *pd, float *bounds);
00145 void GenerateHull(vtkPolyData *pd, float xmin, float xmax,
00146 float ymin, float ymax, float zmin, float zmax);
00148
00149 protected:
00150 vtkHull();
00151 ~vtkHull();
00152
00153
00154 double *Planes;
00155
00156
00157
00158
00159 int PlanesStorageSize;
00160
00161
00162 int NumberOfPlanes;
00163
00164
00165 void ComputePlaneDistances();
00166
00167
00168
00169 void ClipPolygonsFromPlanes( vtkPoints *points, vtkCellArray *polys,
00170 float *bounds );
00171
00172
00173
00174
00175 void CreateInitialPolygon( double *, int, float * );
00176
00177
00178 void Execute();
00179 private:
00180 vtkHull(const vtkHull&);
00181 void operator=(const vtkHull&);
00182 };
00183
00184 #endif