17 #include "vtkCellArray.h" 18 #include "vtkCellData.h" 19 #include "vtkCutter.h" 20 #include "vtkDataSet.h" 21 #include "vtkDoubleArray.h" 22 #include "vtkFloatArray.h" 23 #include "vtkGenericCell.h" 24 #include "vtkMergePoints.h" 25 #include "vtkObjectFactory.h" 27 #include "vtkPointData.h" 28 #include "vtkPolyData.h" 30 #include "vtkUnstructuredGrid.h" 32 #include "vtkInformation.h" 33 #include "vtkInformationVector.h" 34 #include "vtkStreamingDemandDrivenPipeline.h" 46 this->
Cutter = vtkCutter::New();
47 this->
Cutter->GenerateValues(1, 0, 1);
55 this->
Locator->UnRegister(
this);
75 plane->Register(
this);
76 this->
Cutter->SetCutFunction(plane);
86 vtkMTimeType mTime = this->Superclass::GetMTime();
92 mTime = (time > mTime ? time : mTime);
97 time = this->
Locator->GetMTime();
98 mTime = (time > mTime ? time : mTime);
105 vtkInformationVector **inputVector,
106 vtkInformationVector *outputVector)
109 vtkInformation *inInfo = inputVector[0]->GetInformationObject(0);
110 vtkInformation *outInfo = outputVector->GetInformationObject(0);
113 vtkDataSet *input = vtkDataSet::SafeDownCast(inInfo->Get(vtkDataObject::DATA_OBJECT()));
114 vtkPolyData *output = vtkPolyData::SafeDownCast(outInfo->Get(vtkDataObject::DATA_OBJECT()));
116 vtkDebugMacro(<<
"Executing cutter");
120 vtkErrorMacro(
"No slice plane specified");
124 if (input->GetNumberOfPoints() < 1)
129 if (input->GetDataObjectType() == VTK_STRUCTURED_POINTS || input->GetDataObjectType() == VTK_IMAGE_DATA)
131 if (input->GetCell(0) && input->GetCell(0)->GetCellDimension() >= 3)
137 if (input->GetDataObjectType() == VTK_STRUCTURED_GRID)
139 if (input->GetCell(0))
141 int dim = input->GetCell(0)->GetCellDimension();
150 if (input->GetDataObjectType() == VTK_RECTILINEAR_GRID)
156 if (input->GetDataObjectType() == VTK_UNSTRUCTURED_GRID)
158 vtkDebugMacro(<<
"Executing Unstructured Grid Cutter");
163 vtkDebugMacro(<<
"Executing DataSet Cutter");
171 vtkInformation *inInfo = inputVector[0]->GetInformationObject(0);
172 inInfo->Set(vtkStreamingDemandDrivenPipeline::EXACT_EXTENT(), 1);
177 info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(),
"vtkDataSet");
184 vtkDoubleArray *cellScalars;
185 vtkCellArray *newVerts, *newLines, *newPolys;
186 vtkPoints *newPoints;
187 vtkDoubleArray *cutScalars;
189 vtkIdType estimatedSize, numCells = input->GetNumberOfCells();
190 vtkIdType numPts = input->GetNumberOfPoints();
191 vtkIdType cellArrayIt = 0;
193 vtkPointData *inPD, *outPD;
194 vtkCellData *inCD = input->GetCellData(), *outCD = output->GetCellData();
196 int abortExecute = 0;
202 estimatedSize = (vtkIdType)pow((
double)numCells, .75);
203 estimatedSize = estimatedSize / 1024 * 1024;
204 if (estimatedSize < 1024)
206 estimatedSize = 1024;
209 newPoints = vtkPoints::New();
210 newPoints->Allocate(estimatedSize, estimatedSize / 2);
211 newVerts = vtkCellArray::New();
212 newVerts->Allocate(estimatedSize, estimatedSize / 2);
213 newLines = vtkCellArray::New();
214 newLines->Allocate(estimatedSize, estimatedSize / 2);
215 newPolys = vtkCellArray::New();
216 newPolys->Allocate(estimatedSize, estimatedSize / 2);
217 cutScalars = vtkDoubleArray::New();
218 cutScalars->SetNumberOfTuples(numPts);
223 inPD = vtkPointData::New();
224 inPD->ShallowCopy(input->GetPointData());
225 inPD->SetScalars(cutScalars);
229 inPD = input->GetPointData();
231 outPD = output->GetPointData();
232 outPD->InterpolateAllocate(inPD, estimatedSize, estimatedSize / 2);
233 outCD->CopyAllocate(inCD, estimatedSize, estimatedSize / 2);
240 this->
Locator->InitPointInsertion(newPoints, input->GetBounds());
244 for (i = 0; i < numPts; i++)
246 s = this->
SlicePlane->FunctionValue(input->GetPoint(i));
247 cutScalars->SetComponent(i, 0, s);
252 vtkIdType numCuts = numCells;
253 vtkIdType progressInterval = numCuts / 20 + 1;
256 vtkUnstructuredGrid *grid = (vtkUnstructuredGrid *)input;
257 vtkIdType *cellArrayPtr = grid->GetCells()->GetPointer();
258 double *scalarArrayPtr = cutScalars->GetPointer(0);
260 cellScalars = cutScalars->NewInstance();
261 cellScalars->SetNumberOfComponents(cutScalars->GetNumberOfComponents());
262 cellScalars->Allocate(VTK_CELL_SIZE * cutScalars->GetNumberOfComponents());
278 unsigned char cellTypeDimensions[VTK_NUMBER_OF_CELL_TYPES];
279 vtkCutter::GetCellTypeDimensions(cellTypeDimensions);
282 for (dimensionality = 1; dimensionality <= 3; ++dimensionality)
288 for (cellId = 0; cellId < numCells && !abortExecute; cellId++)
290 numCellPts = cellArrayPtr[cellArrayIt];
292 cellType = input->GetCellType(cellId);
293 if (cellType >= VTK_NUMBER_OF_CELL_TYPES)
295 vtkErrorMacro(
"Unknown cell type " << cellType);
296 cellArrayIt += 1 + numCellPts;
299 if (cellTypeDimensions[cellType] != dimensionality)
301 cellArrayIt += 1 + numCellPts;
307 range[0] = scalarArrayPtr[cellArrayPtr[cellArrayIt]];
308 range[1] = scalarArrayPtr[cellArrayPtr[cellArrayIt]];
311 for (i = 1; i < numCellPts; i++)
313 tempScalar = scalarArrayPtr[cellArrayPtr[cellArrayIt]];
315 if (tempScalar <= range[0])
317 range[0] = tempScalar;
319 if (tempScalar >= range[1])
321 range[1] = tempScalar;
326 if (0.0 >= range[0] && 0.0 <= range[1])
333 vtkCell *cell = input->GetCell(cellId);
334 cellIds = cell->GetPointIds();
335 cutScalars->GetTuples(cellIds, cellScalars);
337 if (dimensionality == 3 && !(++cut % progressInterval))
339 vtkDebugMacro(<<
"Cutting #" << cut);
340 this->UpdateProgress(static_cast<double>(cut) / numCuts);
341 abortExecute = this->GetAbortExecute();
345 cell, cellScalars, this->
Locator, newVerts, newLines, newPolys, inPD, outPD, inCD, cellId, outCD);
353 cellScalars->Delete();
354 cutScalars->Delete();
361 output->SetPoints(newPoints);
364 if (newVerts->GetNumberOfCells())
366 output->SetVerts(newVerts);
370 if (newLines->GetNumberOfCells())
372 output->SetLines(newLines);
376 if (newPolys->GetNumberOfCells())
378 output->SetPolys(newPolys);
387 vtkDataArray *cellScalars,
388 vtkPointLocator *locator,
398 if (cell->GetCellType() == VTK_HEXAHEDRON)
400 static int CASE_MASK[8] = {1, 2, 4, 8, 16, 32, 64, 128};
401 POLY_CASES *polyCase;
403 int i, j, index, *vert;
405 int v1, v2, newCellId;
406 double t, x1[3], x2[3], x[3], deltaScalar;
407 vtkIdType
offset = verts->GetNumberOfCells() + lines->GetNumberOfCells();
410 for (i = 0, index = 0; i < 8; i++)
412 if (cellScalars->GetComponent(i, 0) >= 0)
414 index |= CASE_MASK[i];
418 polyCase = polyCases + index;
419 edge = polyCase->edges;
423 for (i = 0; i < 8; i++)
429 vtkIdType *pts =
new vtkIdType[pnum];
430 for (i = 0; i < pnum; i++)
432 vert = edges[edge[i]];
435 deltaScalar = (cellScalars->GetComponent(vert[1], 0) - cellScalars->GetComponent(vert[0], 0));
445 deltaScalar = -deltaScalar;
449 t = (deltaScalar == 0.0 ? 0.0 : (-cellScalars->GetComponent(v1, 0)) / deltaScalar);
451 cell->GetPoints()->GetPoint(v1, x1);
452 cell->GetPoints()->GetPoint(v2, x2);
454 for (j = 0; j < 3; j++)
456 x[j] = x1[j] + t * (x2[j] - x1[j]);
458 if (locator->InsertUniquePoint(x, pts[i]))
462 vtkIdType p1 = cell->GetPointIds()->GetId(v1);
463 vtkIdType p2 = cell->GetPointIds()->GetId(v2);
464 outPd->InterpolateEdge(inPd, pts[i], p1, p2, t);
470 std::vector<vtkIdType> pset;
471 for (i = 0; i < pnum; i++)
473 if (std::find(pset.begin(), pset.end(), pts[i]) == pset.end())
474 pset.push_back(pts[i]);
480 for (std::vector<vtkIdType>::iterator iter = pset.begin(); iter != pset.end(); iter++)
485 newCellId = offset + polys->InsertNextCell(pset.size(), pts);
486 outCd->CopyData(inCd, cellId, newCellId);
492 cell->Contour(0, cellScalars, locator, verts, lines, polys, inPd, outPd, inCd, cellId, outCd);
506 this->
Locator->UnRegister(
this);
511 locator->Register(
this);
521 this->
Locator = vtkMergePoints::New();
529 this->Superclass::PrintSelf(os, indent);
531 os << indent <<
"Slice Plane: " << this->
SlicePlane <<
"\n";
535 os << indent <<
"Locator: " << this->
Locator <<
"\n";
539 os << indent <<
"Locator: (none)\n";
542 os << indent <<
"Generate Cut Scalars: " << (this->
GenerateCutScalars ?
"On\n" :
"Off\n");
545 int vtkPointSetSlicer::edges[12][2] = {
546 {0, 1}, {1, 2}, {3, 2}, {0, 3}, {4, 5}, {5, 6}, {7, 6}, {4, 7}, {0, 4}, {1, 5}, {2, 6}, {3, 7}};
548 vtkPointSetSlicer::POLY_CASES vtkPointSetSlicer::polyCases[256] = {
549 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{0, 3, 8, -1, -1, -1, -1, -1}}, {{1, 0, 9, -1, -1, -1, -1, -1}},
550 {{1, 3, 8, 9, -1, -1, -1, -1}}, {{2, 1, 10, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
551 {{2, 0, 9, 10, -1, -1, -1, -1}}, {{2, 10, 9, 8, 3, -1, -1, -1}}, {{3, 2, 11, -1, -1, -1, -1, -1}},
552 {{0, 2, 11, 8, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 9, 8, 11, 2, -1, -1, -1}},
553 {{3, 1, 10, 11, -1, -1, -1, -1}}, {{0, 8, 11, 10, 1, -1, -1, -1}}, {{3, 11, 10, 9, 0, -1, -1, -1}},
554 {{8, 9, 10, 11, -1, -1, -1, -1}}, {{4, 7, 8, -1, -1, -1, -1, -1}}, {{3, 7, 4, 0, -1, -1, -1, -1}},
555 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{9, 1, 3, 7, 4, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
556 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
557 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{11, 2, 0, 4, 7, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
558 {{1, 2, 11, 7, 4, 9, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
559 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{4, 7, 11, 10, 9, -1, -1, -1}}, {{5, 4, 9, -1, -1, -1, -1, -1}},
560 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{0, 4, 5, 1, -1, -1, -1, -1}}, {{8, 3, 1, 5, 4, -1, -1, -1}},
561 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{10, 2, 0, 4, 5, -1, -1, -1}},
562 {{2, 3, 8, 4, 5, 10, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
563 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
564 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{5, 4, 8, 11, 10, -1, -1, -1}},
565 {{5, 7, 8, 9, -1, -1, -1, -1}}, {{9, 5, 7, 3, 0, -1, -1, -1}}, {{8, 7, 5, 1, 0, -1, -1, -1}},
566 {{1, 3, 7, 5, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
567 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{2, 10, 5, 7, 3, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
568 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{2, 11, 7, 5, 1, -1, -1, -1}},
569 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
570 {{5, 7, 11, 10, -1, -1, -1, -1}}, {{6, 5, 10, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
571 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 5, 6, 2, -1, -1, -1, -1}},
572 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{9, 0, 2, 6, 5, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
573 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
574 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{11, 3, 1, 5, 6, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
575 {{3, 0, 9, 5, 6, 11, -1, -1}}, {{6, 5, 9, 8, 11, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
576 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
577 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
578 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
579 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
580 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
581 {{6, 4, 9, 10, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{10, 6, 4, 0, 1, -1, -1, -1}},
582 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{9, 4, 6, 2, 1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
583 {{2, 0, 4, 6, -1, -1, -1, -1}}, {{3, 8, 4, 6, 2, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
584 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
585 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{3, 11, 6, 4, 0, -1, -1, -1}},
586 {{6, 4, 8, 11, -1, -1, -1, -1}}, {{6, 10, 9, 8, 7, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
587 {{6, 7, 8, 0, 1, 10, -1, -1}}, {{6, 10, 1, 3, 7, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
588 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{7, 8, 0, 2, 6, -1, -1, -1}}, {{2, 6, 7, 3, -1, -1, -1, -1}},
589 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
590 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
591 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{6, 7, 11, -1, -1, -1, -1, -1}}, {{7, 6, 11, -1, -1, -1, -1, -1}},
592 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
593 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
594 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{2, 6, 7, 3, -1, -1, -1, -1}}, {{8, 0, 2, 6, 7, -1, -1, -1}},
595 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{10, 1, 3, 7, 6, -1, -1, -1}},
596 {{0, 1, 10, 6, 7, 8, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{7, 6, 10, 9, 8, -1, -1, -1}},
597 {{4, 6, 11, 8, -1, -1, -1, -1}}, {{11, 6, 4, 0, 3, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
598 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
599 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{8, 4, 6, 2, 3, -1, -1, -1}},
600 {{0, 2, 6, 4, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 9, 4, 6, 2, -1, -1, -1}},
601 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 10, 6, 4, 0, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
602 {{4, 6, 10, 9, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
603 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
604 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
605 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
606 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
607 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{5, 9, 8, 11, 6, -1, -1, -1}},
608 {{5, 6, 11, 3, 0, 9, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{6, 11, 3, 1, 5, -1, -1, -1}},
609 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
610 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{5, 9, 0, 2, 6, -1, -1, -1}},
611 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 5, 6, 2, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
612 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{5, 6, 10, -1, -1, -1, -1, -1}},
613 {{7, 5, 10, 11, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
614 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{11, 7, 5, 1, 2, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
615 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{10, 5, 7, 3, 2, -1, -1, -1}},
616 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
617 {{3, 1, 5, 7, -1, -1, -1, -1}}, {{0, 8, 7, 5, 1, -1, -1, -1}}, {{0, 9, 5, 7, 3, -1, -1, -1}},
618 {{7, 5, 9, 8, -1, -1, -1, -1}}, {{4, 8, 11, 10, 5, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
619 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
620 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
621 {{4, 5, 10, 2, 3, 8, -1, -1}}, {{5, 10, 2, 0, 4, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
622 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{4, 8, 3, 1, 5, -1, -1, -1}}, {{0, 4, 5, 1, -1, -1, -1, -1}},
623 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{4, 5, 9, -1, -1, -1, -1, -1}}, {{7, 11, 10, 9, 4, -1, -1, -1}},
624 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
625 {{7, 4, 9, 1, 2, 11, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{7, 11, 2, 0, 4, -1, -1, -1}},
626 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
627 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{4, 9, 1, 3, 7, -1, -1, -1}},
628 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{3, 7, 4, 0, -1, -1, -1, -1}}, {{7, 4, 8, -1, -1, -1, -1, -1}},
629 {{10, 11, 8, 9, -1, -1, -1, -1}}, {{0, 3, 11, 10, 9, -1, -1, -1}}, {{1, 0, 8, 11, 10, -1, -1, -1}},
630 {{1, 3, 11, 10, -1, -1, -1, -1}}, {{2, 1, 9, 8, 11, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
631 {{2, 0, 8, 11, -1, -1, -1, -1}}, {{2, 3, 11, -1, -1, -1, -1, -1}}, {{3, 2, 10, 9, 8, -1, -1, -1}},
632 {{0, 2, 10, 9, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 2, 10, -1, -1, -1, -1, -1}},
633 {{3, 1, 9, 8, -1, -1, -1, -1}}, {{0, 1, 9, -1, -1, -1, -1, -1}}, {{3, 0, 8, -1, -1, -1, -1, -1}},
634 {{-1, -1, -1, -1, -1, -1, -1, -1}}};
void PrintSelf(std::ostream &os, vtkIndent indent) override
virtual void SetSlicePlane(vtkPlane *)
vtkPointSetSlicer(vtkPlane *cf=nullptr)
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
void ContourUnstructuredGridCell(vtkCell *cell, vtkDataArray *cellScalars, vtkPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd)
vtkPointLocator * Locator
static void info(const char *fmt,...)
~vtkPointSetSlicer() override
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
void UnstructuredGridCutter(vtkDataSet *input, vtkPolyData *output)
vtkStandardNewMacro(vtkPointSetSlicer)
void SetLocator(vtkPointLocator *locator)
int FillInputPortInformation(int port, vtkInformation *info) override
vtkMTimeType GetMTime() override
void CreateDefaultLocator()