48 #ifndef __vtkRectilinearGridToTetrahedra_h
49 #define __vtkRectilinearGridToTetrahedra_h
52 #define VTK_VOXEL_TO_12_TET 12
53 #define VTK_VOXEL_TO_5_TET 5
54 #define VTK_VOXEL_TO_6_TET 6
55 #define VTK_VOXEL_TO_5_AND_12_TET -1
57 #include "vtkFiltersGeneralModule.h"
58 #include "vtkUnstructuredGridAlgorithm.h"
59 class vtkRectilinearGrid;
60 class vtkSignedCharArray;
69 void PrintSelf(ostream& os, vtkIndent indent);
81 vtkSetMacro(TetraPerCell,
int);
82 vtkGetMacro(TetraPerCell,
int);
88 vtkSetMacro(RememberVoxelId,
int);
89 vtkGetMacro(RememberVoxelId,
int);
90 vtkBooleanMacro(RememberVoxelId,
int);
99 void SetInput(
const double Extent[3],
const double Spacing[3],
100 const double tol=0.001);
104 void SetInput(
const double ExtentX,
105 const double ExtentY,
106 const double ExtentZ,
107 const double SpacingX,
108 const double SpacingY,
109 const double SpacingZ,
110 const double tol=0.001);
117 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
122 virtual int FillInputPortInformation(
int, vtkInformation*);
134 static void DetermineGridDivisionTypes(vtkRectilinearGrid *RectGrid,
135 vtkSignedCharArray *VoxelSubdivisionType,
136 const int &TetraPerCell);
141 static void GridToTetMesh(vtkRectilinearGrid *RectGrid,
142 vtkSignedCharArray *VoxelSubdivisionType,
143 const int &TetraPerCell,
144 const int &RememberVoxelId,
145 vtkUnstructuredGrid *TetMesh);
153 static int TetrahedralizeVoxel(vtkIdList *VoxelCorners,
154 const int &DivisionType,
156 vtkCellArray *TetList);
162 static inline void TetrahedralizeAddCenterPoint(vtkIdList *VoxelCorners,
163 vtkPoints *NodeList);
#define VTK_VOXEL_TO_6_TET
void SetTetraPerCellTo6()
create a Tetrahedral mesh from a RectilinearGrid
#define VTK_VOXEL_TO_12_TET
#define VTK_VOXEL_TO_5_AND_12_TET
void SetTetraPerCellTo5And12()
#define VTK_VOXEL_TO_5_TET
~vtkRectilinearGridToTetrahedra()
void SetTetraPerCellTo12()
void SetTetraPerCellTo5()