21 #include "vtkCellArray.h"
22 #include "vtkCellData.h"
23 #include "vtkCutter.h"
24 #include "vtkDataSet.h"
25 #include "vtkDoubleArray.h"
26 #include "vtkFloatArray.h"
27 #include "vtkGenericCell.h"
28 #include "vtkMergePoints.h"
29 #include "vtkObjectFactory.h"
31 #include "vtkPointData.h"
32 #include "vtkPolyData.h"
34 #include "vtkUnstructuredGrid.h"
36 #include "vtkInformation.h"
37 #include "vtkInformationVector.h"
38 #include "vtkStreamingDemandDrivenPipeline.h"
51 this->
Cutter->GenerateValues(1, 0, 1);
59 this->
Locator->UnRegister(
this);
79 plane->Register(
this);
80 this->
Cutter->SetCutFunction(plane);
90 unsigned long mTime = this->Superclass::GetMTime();
96 mTime = (time > mTime ? time : mTime);
101 time = this->
Locator->GetMTime();
102 mTime = (time > mTime ? time : mTime);
109 vtkInformationVector **inputVector,
110 vtkInformationVector *outputVector)
113 vtkInformation *inInfo = inputVector[0]->GetInformationObject(0);
114 vtkInformation *outInfo = outputVector->GetInformationObject(0);
117 vtkDataSet *input = vtkDataSet::SafeDownCast(inInfo->Get(vtkDataObject::DATA_OBJECT()));
118 vtkPolyData *output = vtkPolyData::SafeDownCast(outInfo->Get(vtkDataObject::DATA_OBJECT()));
120 vtkDebugMacro(<<
"Executing cutter");
124 vtkErrorMacro(
"No slice plane specified");
128 if (input->GetNumberOfPoints() < 1)
133 if (input->GetDataObjectType() == VTK_STRUCTURED_POINTS || input->GetDataObjectType() == VTK_IMAGE_DATA)
135 if (input->GetCell(0) && input->GetCell(0)->GetCellDimension() >= 3)
141 if (input->GetDataObjectType() == VTK_STRUCTURED_GRID)
143 if (input->GetCell(0))
145 int dim = input->GetCell(0)->GetCellDimension();
154 if (input->GetDataObjectType() == VTK_RECTILINEAR_GRID)
160 if (input->GetDataObjectType() == VTK_UNSTRUCTURED_GRID)
162 vtkDebugMacro(<<
"Executing Unstructured Grid Cutter");
167 vtkDebugMacro(<<
"Executing DataSet Cutter");
175 vtkInformation *inInfo = inputVector[0]->GetInformationObject(0);
176 inInfo->Set(vtkStreamingDemandDrivenPipeline::EXACT_EXTENT(), 1);
181 info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(),
"vtkDataSet");
188 vtkDoubleArray *cellScalars;
189 vtkCellArray *newVerts, *newLines, *newPolys;
190 vtkPoints *newPoints;
191 vtkDoubleArray *cutScalars;
193 vtkIdType estimatedSize, numCells = input->GetNumberOfCells();
194 vtkIdType numPts = input->GetNumberOfPoints();
195 vtkIdType cellArrayIt = 0;
197 vtkPointData *inPD, *outPD;
198 vtkCellData *inCD = input->GetCellData(), *outCD = output->GetCellData();
200 int abortExecute = 0;
206 estimatedSize = (vtkIdType)pow((
double)numCells, .75);
207 estimatedSize = estimatedSize / 1024 * 1024;
208 if (estimatedSize < 1024)
210 estimatedSize = 1024;
214 newPoints->Allocate(estimatedSize, estimatedSize / 2);
216 newVerts->Allocate(estimatedSize, estimatedSize / 2);
218 newLines->Allocate(estimatedSize, estimatedSize / 2);
220 newPolys->Allocate(estimatedSize, estimatedSize / 2);
222 cutScalars->SetNumberOfTuples(numPts);
228 inPD->ShallowCopy(input->GetPointData());
229 inPD->SetScalars(cutScalars);
233 inPD = input->GetPointData();
235 outPD = output->GetPointData();
236 outPD->InterpolateAllocate(inPD, estimatedSize, estimatedSize / 2);
237 outCD->CopyAllocate(inCD, estimatedSize, estimatedSize / 2);
244 this->
Locator->InitPointInsertion(newPoints, input->GetBounds());
248 for (i = 0; i < numPts; i++)
250 s = this->
SlicePlane->FunctionValue(input->GetPoint(i));
251 cutScalars->SetComponent(i, 0, s);
256 vtkIdType numCuts = numCells;
257 vtkIdType progressInterval = numCuts / 20 + 1;
260 vtkUnstructuredGrid *grid = (vtkUnstructuredGrid *)input;
261 vtkIdType *cellArrayPtr = grid->GetCells()->GetPointer();
262 double *scalarArrayPtr = cutScalars->GetPointer(0);
264 cellScalars = cutScalars->NewInstance();
265 cellScalars->SetNumberOfComponents(cutScalars->GetNumberOfComponents());
266 cellScalars->Allocate(VTK_CELL_SIZE * cutScalars->GetNumberOfComponents());
282 unsigned char cellTypeDimensions[VTK_NUMBER_OF_CELL_TYPES];
283 vtkCutter::GetCellTypeDimensions(cellTypeDimensions);
286 for (dimensionality = 1; dimensionality <= 3; ++dimensionality)
292 for (cellId = 0; cellId < numCells && !abortExecute; cellId++)
294 numCellPts = cellArrayPtr[cellArrayIt];
296 cellType = input->GetCellType(cellId);
297 if (cellType >= VTK_NUMBER_OF_CELL_TYPES)
299 vtkErrorMacro(
"Unknown cell type " << cellType);
300 cellArrayIt += 1 + numCellPts;
303 if (cellTypeDimensions[cellType] != dimensionality)
305 cellArrayIt += 1 + numCellPts;
311 range[0] = scalarArrayPtr[cellArrayPtr[cellArrayIt]];
312 range[1] = scalarArrayPtr[cellArrayPtr[cellArrayIt]];
315 for (i = 1; i < numCellPts; i++)
317 tempScalar = scalarArrayPtr[cellArrayPtr[cellArrayIt]];
319 if (tempScalar <= range[0])
321 range[0] = tempScalar;
323 if (tempScalar >= range[1])
325 range[1] = tempScalar;
330 if (0.0 >= range[0] && 0.0 <= range[1])
337 vtkCell *cell = input->GetCell(cellId);
338 cellIds = cell->GetPointIds();
339 cutScalars->GetTuples(cellIds, cellScalars);
341 if (dimensionality == 3 && !(++cut % progressInterval))
343 vtkDebugMacro(<<
"Cutting #" << cut);
344 this->UpdateProgress(static_cast<double>(cut) / numCuts);
345 abortExecute = this->GetAbortExecute();
349 cell, cellScalars, this->
Locator, newVerts, newLines, newPolys, inPD, outPD, inCD, cellId, outCD);
357 cellScalars->Delete();
358 cutScalars->Delete();
365 output->SetPoints(newPoints);
368 if (newVerts->GetNumberOfCells())
370 output->SetVerts(newVerts);
374 if (newLines->GetNumberOfCells())
376 output->SetLines(newLines);
380 if (newPolys->GetNumberOfCells())
382 output->SetPolys(newPolys);
391 vtkDataArray *cellScalars,
392 vtkPointLocator *locator,
402 if (cell->GetCellType() == VTK_HEXAHEDRON)
404 static int CASE_MASK[8] = {1, 2, 4, 8, 16, 32, 64, 128};
405 POLY_CASES *polyCase;
407 int i, j, index, *vert;
409 int v1, v2, newCellId;
410 double t, x1[3], x2[3], x[3], deltaScalar;
411 vtkIdType
offset = verts->GetNumberOfCells() + lines->GetNumberOfCells();
414 for (i = 0, index = 0; i < 8; i++)
416 if (cellScalars->GetComponent(i, 0) >= 0)
418 index |= CASE_MASK[i];
422 polyCase = polyCases + index;
423 edge = polyCase->edges;
427 for (i = 0; i < 8; i++)
433 vtkIdType *pts =
new vtkIdType[pnum];
434 for (i = 0; i < pnum; i++)
436 vert = edges[edge[i]];
439 deltaScalar = (cellScalars->GetComponent(vert[1], 0) - cellScalars->GetComponent(vert[0], 0));
449 deltaScalar = -deltaScalar;
453 t = (deltaScalar == 0.0 ? 0.0 : (-cellScalars->GetComponent(v1, 0)) / deltaScalar);
455 cell->GetPoints()->GetPoint(v1, x1);
456 cell->GetPoints()->GetPoint(v2, x2);
458 for (j = 0; j < 3; j++)
460 x[j] = x1[j] + t * (x2[j] - x1[j]);
462 if (locator->InsertUniquePoint(x, pts[i]))
466 vtkIdType p1 = cell->GetPointIds()->GetId(v1);
467 vtkIdType p2 = cell->GetPointIds()->GetId(v2);
468 outPd->InterpolateEdge(inPd, pts[i], p1, p2, t);
474 std::vector<vtkIdType> pset;
475 for (i = 0; i < pnum; i++)
477 if (std::find(pset.begin(), pset.end(), pts[i]) == pset.end())
478 pset.push_back(pts[i]);
484 for (std::vector<vtkIdType>::iterator iter = pset.begin(); iter != pset.end(); iter++)
489 newCellId = offset + polys->InsertNextCell(pset.size(), pts);
490 outCd->CopyData(inCd, cellId, newCellId);
496 cell->Contour(0, cellScalars, locator, verts, lines, polys, inPd, outPd, inCd, cellId, outCd);
510 this->
Locator->UnRegister(
this);
515 locator->Register(
this);
533 this->Superclass::PrintSelf(os, indent);
535 os << indent <<
"Slice Plane: " << this->
SlicePlane <<
"\n";
539 os << indent <<
"Locator: " << this->
Locator <<
"\n";
543 os << indent <<
"Locator: (none)\n";
546 os << indent <<
"Generate Cut Scalars: " << (this->
GenerateCutScalars ?
"On\n" :
"Off\n");
549 int vtkPointSetSlicer::edges[12][2] = {
550 {0, 1}, {1, 2}, {3, 2}, {0, 3}, {4, 5}, {5, 6}, {7, 6}, {4, 7}, {0, 4}, {1, 5}, {2, 6}, {3, 7}};
552 vtkPointSetSlicer::POLY_CASES vtkPointSetSlicer::polyCases[256] = {
553 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{0, 3, 8, -1, -1, -1, -1, -1}}, {{1, 0, 9, -1, -1, -1, -1, -1}},
554 {{1, 3, 8, 9, -1, -1, -1, -1}}, {{2, 1, 10, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
555 {{2, 0, 9, 10, -1, -1, -1, -1}}, {{2, 10, 9, 8, 3, -1, -1, -1}}, {{3, 2, 11, -1, -1, -1, -1, -1}},
556 {{0, 2, 11, 8, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 9, 8, 11, 2, -1, -1, -1}},
557 {{3, 1, 10, 11, -1, -1, -1, -1}}, {{0, 8, 11, 10, 1, -1, -1, -1}}, {{3, 11, 10, 9, 0, -1, -1, -1}},
558 {{8, 9, 10, 11, -1, -1, -1, -1}}, {{4, 7, 8, -1, -1, -1, -1, -1}}, {{3, 7, 4, 0, -1, -1, -1, -1}},
559 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{9, 1, 3, 7, 4, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
560 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
561 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{11, 2, 0, 4, 7, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
562 {{1, 2, 11, 7, 4, 9, -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}}, {{4, 7, 11, 10, 9, -1, -1, -1}}, {{5, 4, 9, -1, -1, -1, -1, -1}},
564 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{0, 4, 5, 1, -1, -1, -1, -1}}, {{8, 3, 1, 5, 4, -1, -1, -1}},
565 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{10, 2, 0, 4, 5, -1, -1, -1}},
566 {{2, 3, 8, 4, 5, 10, -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}}, {{-1, -1, -1, -1, -1, -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}}, {{5, 4, 8, 11, 10, -1, -1, -1}},
569 {{5, 7, 8, 9, -1, -1, -1, -1}}, {{9, 5, 7, 3, 0, -1, -1, -1}}, {{8, 7, 5, 1, 0, -1, -1, -1}},
570 {{1, 3, 7, 5, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
571 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{2, 10, 5, 7, 3, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
572 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{2, 11, 7, 5, 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 {{5, 7, 11, 10, -1, -1, -1, -1}}, {{6, 5, 10, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
575 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 5, 6, 2, -1, -1, -1, -1}},
576 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{9, 0, 2, 6, 5, -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}}, {{11, 3, 1, 5, 6, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
579 {{3, 0, 9, 5, 6, 11, -1, -1}}, {{6, 5, 9, 8, 11, -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 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
582 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
583 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -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 {{6, 4, 9, 10, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{10, 6, 4, 0, 1, -1, -1, -1}},
586 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{9, 4, 6, 2, 1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
587 {{2, 0, 4, 6, -1, -1, -1, -1}}, {{3, 8, 4, 6, 2, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
588 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
589 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{3, 11, 6, 4, 0, -1, -1, -1}},
590 {{6, 4, 8, 11, -1, -1, -1, -1}}, {{6, 10, 9, 8, 7, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
591 {{6, 7, 8, 0, 1, 10, -1, -1}}, {{6, 10, 1, 3, 7, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
592 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{7, 8, 0, 2, 6, -1, -1, -1}}, {{2, 6, 7, 3, -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}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
595 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{6, 7, 11, -1, -1, -1, -1, -1}}, {{7, 6, 11, -1, -1, -1, -1, -1}},
596 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
597 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
598 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{2, 6, 7, 3, -1, -1, -1, -1}}, {{8, 0, 2, 6, 7, -1, -1, -1}},
599 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{10, 1, 3, 7, 6, -1, -1, -1}},
600 {{0, 1, 10, 6, 7, 8, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{7, 6, 10, 9, 8, -1, -1, -1}},
601 {{4, 6, 11, 8, -1, -1, -1, -1}}, {{11, 6, 4, 0, 3, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
602 {{-1, -1, -1, -1, -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}}, {{8, 4, 6, 2, 3, -1, -1, -1}},
604 {{0, 2, 6, 4, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 9, 4, 6, 2, -1, -1, -1}},
605 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 10, 6, 4, 0, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
606 {{4, 6, 10, 9, -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}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
608 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -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}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
611 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{5, 9, 8, 11, 6, -1, -1, -1}},
612 {{5, 6, 11, 3, 0, 9, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{6, 11, 3, 1, 5, -1, -1, -1}},
613 {{-1, -1, -1, -1, -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}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{5, 9, 0, 2, 6, -1, -1, -1}},
615 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 5, 6, 2, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
616 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{5, 6, 10, -1, -1, -1, -1, -1}},
617 {{7, 5, 10, 11, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
618 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{11, 7, 5, 1, 2, -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}}, {{10, 5, 7, 3, 2, -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 {{3, 1, 5, 7, -1, -1, -1, -1}}, {{0, 8, 7, 5, 1, -1, -1, -1}}, {{0, 9, 5, 7, 3, -1, -1, -1}},
622 {{7, 5, 9, 8, -1, -1, -1, -1}}, {{4, 8, 11, 10, 5, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
623 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -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 {{4, 5, 10, 2, 3, 8, -1, -1}}, {{5, 10, 2, 0, 4, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
626 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{4, 8, 3, 1, 5, -1, -1, -1}}, {{0, 4, 5, 1, -1, -1, -1, -1}},
627 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{4, 5, 9, -1, -1, -1, -1, -1}}, {{7, 11, 10, 9, 4, -1, -1, -1}},
628 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
629 {{7, 4, 9, 1, 2, 11, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{7, 11, 2, 0, 4, -1, -1, -1}},
630 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
631 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{4, 9, 1, 3, 7, -1, -1, -1}},
632 {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{3, 7, 4, 0, -1, -1, -1, -1}}, {{7, 4, 8, -1, -1, -1, -1, -1}},
633 {{10, 11, 8, 9, -1, -1, -1, -1}}, {{0, 3, 11, 10, 9, -1, -1, -1}}, {{1, 0, 8, 11, 10, -1, -1, -1}},
634 {{1, 3, 11, 10, -1, -1, -1, -1}}, {{2, 1, 9, 8, 11, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}},
635 {{2, 0, 8, 11, -1, -1, -1, -1}}, {{2, 3, 11, -1, -1, -1, -1, -1}}, {{3, 2, 10, 9, 8, -1, -1, -1}},
636 {{0, 2, 10, 9, -1, -1, -1, -1}}, {{-1, -1, -1, -1, -1, -1, -1, -1}}, {{1, 2, 10, -1, -1, -1, -1, -1}},
637 {{3, 1, 9, 8, -1, -1, -1, -1}}, {{0, 1, 9, -1, -1, -1, -1, -1}}, {{3, 0, 8, -1, -1, -1, -1, -1}},
638 {{-1, -1, -1, -1, -1, -1, -1, -1}}};
void PrintSelf(std::ostream &os, vtkIndent indent) override
virtual void SetSlicePlane(vtkPlane *)
virtual 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,...)
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
unsigned long GetMTime() override
vtkPointSetSlicer(vtkPlane *cf=0)
void UnstructuredGridCutter(vtkDataSet *input, vtkPolyData *output)
vtkStandardNewMacro(vtkPointSetSlicer)
void SetLocator(vtkPointLocator *locator)
virtual int FillInputPortInformation(int port, vtkInformation *info) override
void CreateDefaultLocator()
static itkEventMacro(BoundingShapeInteractionEvent, itk::AnyEvent) class MITKBOUNDINGSHAPE_EXPORT BoundingShapeInteractor Pointer New()
Basic interaction methods for mitk::GeometryData.