36 #include "vtkPolyData.h"
38 #include "vtkCutter.h"
68 SetSpacing(
const double& iX,
const double & iY,
const double& iZ)
77 std::map<double, vtkPolyData *>
81 std::map<double, vtkPolyData*> contours;
84 double normal[3] = {0., 0., 0.};
109 double origin[3] = {0., 0., 0.};
110 origin[0] =
m_Input->GetCenter()[0];
111 origin[1] =
m_Input->GetCenter()[1];
112 origin[2] =
m_Input->GetCenter()[2];
114 double position =
m_Input->GetBounds()[4 - 2*iOrientation];
115 double maxPosition =
m_Input->GetBounds()[5 - 2*iOrientation];
116 double spacing = this->
m_Spacing[2-iOrientation];
118 while( position < maxPosition)
120 origin[2-iOrientation] = position;
122 vtkPlane* plane = vtkPlane::New();
123 plane->SetNormal(normal);
124 plane->SetOrigin(origin);
127 vtkCutter* cutter = vtkCutter::New();
129 cutter->SetCutFunction(plane);
132 vtkPolyData* polydata = vtkPolyData::New();
133 polydata->DeepCopy( cutter->GetOutput() );
138 contours[position] = polydata;
void SetSpacing(const double &iX, const double &iY, const double &iZ)
Set spacing of the original image to know how many slices to extract.
void SetInput(vtkPolyData *iInput)
Set polydata to be splitted.
std::map< double, vtkPolyData * > ExtractPolyData(ORIENTATION iOrientation)
Extract contours from polydata given an orientation.