Attached Files | vtkGeometryFilter_issue.tgz [^] (2,893 bytes) 2011-10-31 05:25
vtkGeometryFilter.cxx [^] (40,022 bytes) 2015-02-07 02:03
vtkGeometryFilter.cxx.patch [^] (22,478 bytes) 2015-02-07 02:05 [Show Content] [Hide Content]diff --git a/Filters/Geometry/vtkGeometryFilter.cxx b/Filters/Geometry/vtkGeometryFilter.cxx
index e8dc7e9..05a2d65 100644
--- a/Filters/Geometry/vtkGeometryFilter.cxx
+++ b/Filters/Geometry/vtkGeometryFilter.cxx
@@ -598,14 +598,13 @@ void vtkGeometryFilter::UnstructuredGridExecute(vtkDataSet *dataSetInput,
vtkCellArray *verts, *lines, *polys, *strips;
vtkIdList *cellIds, *faceIds;
char *cellVis;
- vtkIdType newCellId;
int faceId, *faceVerts, numFacePts;
double x[3];
int pixelConvert[4];
// ghost cell stuff
unsigned char updateLevel = static_cast<unsigned char>
(outInfo->Get(
- vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS()));
+ vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS()));
unsigned char *cellGhostLevels = 0;
pixelConvert[0] = 0;
@@ -688,10 +687,10 @@ void vtkGeometryFilter::UnstructuredGridExecute(vtkDataSet *dataSetInput,
p->GetPoint(pts[i], x);
if ( (this->PointClipping && (pts[i] < this->PointMinimum ||
pts[i] > this->PointMaximum) ) ||
- (this->ExtentClipping &&
- (x[0] < this->Extent[0] || x[0] > this->Extent[1] ||
- x[1] < this->Extent[2] || x[1] > this->Extent[3] ||
- x[2] < this->Extent[4] || x[2] > this->Extent[5] )) )
+ (this->ExtentClipping &&
+ (x[0] < this->Extent[0] || x[0] > this->Extent[1] ||
+ x[1] < this->Extent[2] || x[1] > this->Extent[3] ||
+ x[2] < this->Extent[4] || x[2] > this->Extent[5] )) )
{
cellVis[cellId] = 0;
break;
@@ -701,13 +700,24 @@ void vtkGeometryFilter::UnstructuredGridExecute(vtkDataSet *dataSetInput,
}//for all cells
}//if not all visible
+ // These store the cell ids of the input that map to the
+ // new vert/line/poly/strip cells, for copying cell data
+ // in appropriate order.
+ std::vector< vtkIdType > vertCellIds;
+ std::vector< vtkIdType > lineCellIds;
+ std::vector< vtkIdType > polyCellIds;
+ std::vector< vtkIdType > stripCellIds;
+ vertCellIds.reserve( numCells );
+ lineCellIds.reserve( numCells );
+ polyCellIds.reserve( numCells );
+ stripCellIds.reserve( numCells );
+
// Loop over all cells now that visibility is known
// (Have to compute visibility first for 3D cell boundarys)
int progressInterval = numCells/20 + 1;
- newCellId = 0;
for (cellId=0, connectivity->InitTraversal();
- connectivity->GetNextCell(npts,pts);
- cellId++)
+ connectivity->GetNextCell(npts,pts);
+ cellId++)
{
//Progress and abort method support
if ( !(cellId % progressInterval) )
@@ -728,257 +738,245 @@ void vtkGeometryFilter::UnstructuredGridExecute(vtkDataSet *dataSetInput,
//is slow.
switch (input->GetCellType(cellId))
{
- case VTK_EMPTY_CELL:
- break;
-
- case VTK_VERTEX:
- case VTK_POLY_VERTEX:
- verts->InsertNextCell(npts,pts);
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
- break;
-
- case VTK_LINE:
- case VTK_POLY_LINE:
- lines->InsertNextCell(npts,pts);
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
- break;
-
- case VTK_TRIANGLE:
- case VTK_QUAD:
- case VTK_POLYGON:
- polys->InsertNextCell(npts,pts);
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
- break;
-
- case VTK_TRIANGLE_STRIP:
- strips->InsertNextCell(npts,pts);
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
- break;
+ case VTK_EMPTY_CELL:
+ break;
+
+ case VTK_VERTEX:
+ case VTK_POLY_VERTEX:
+ verts->InsertNextCell(npts,pts);
+ vertCellIds.push_back(cellId);
+ break;
+
+ case VTK_LINE:
+ case VTK_POLY_LINE:
+ lines->InsertNextCell(npts,pts);
+ lineCellIds.push_back(cellId);
+ break;
+
+ case VTK_TRIANGLE:
+ case VTK_QUAD:
+ case VTK_POLYGON:
+ polys->InsertNextCell(npts,pts);
+ polyCellIds.push_back(cellId);
+ break;
+
+ case VTK_TRIANGLE_STRIP:
+ strips->InsertNextCell(npts,pts);
+ stripCellIds.push_back(cellId);
+ break;
+
+ case VTK_PIXEL:
+ polys->InsertNextCell(npts);
+ for ( i=0; i < npts; i++)
+ {
+ polys->InsertCellPoint(pts[pixelConvert[i]]);
+ }
+ polyCellIds.push_back(cellId);
+ break;
- case VTK_PIXEL:
- polys->InsertNextCell(npts);
- for ( i=0; i < npts; i++)
+ case VTK_TETRA:
+ for (faceId = 0; faceId < 4; faceId++)
+ {
+ faceIds->Reset();
+ faceVerts = vtkTetra::GetFaceArray(faceId);
+ faceIds->InsertNextId(pts[faceVerts[0]]);
+ faceIds->InsertNextId(pts[faceVerts[1]]);
+ faceIds->InsertNextId(pts[faceVerts[2]]);
+ numFacePts = 3;
+ input->GetCellNeighbors(cellId, faceIds, cellIds);
+ if ( cellIds->GetNumberOfIds() <= 0 ||
+ (!allVisible && !cellVis[cellIds->GetId(0)]) )
{
- polys->InsertCellPoint(pts[pixelConvert[i]]);
+ polys->InsertNextCell(numFacePts);
+ for ( i=0; i < numFacePts; i++)
+ {
+ polys->InsertCellPoint(pts[faceVerts[i]]);
+ }
+ polyCellIds.push_back(cellId);
}
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
- break;
+ }
+ break;
- case VTK_TETRA:
- for (faceId = 0; faceId < 4; faceId++)
+ case VTK_VOXEL:
+ for (faceId = 0; faceId < 6; faceId++)
+ {
+ faceIds->Reset();
+ faceVerts = vtkVoxel::GetFaceArray(faceId);
+ faceIds->InsertNextId(pts[faceVerts[0]]);
+ faceIds->InsertNextId(pts[faceVerts[1]]);
+ faceIds->InsertNextId(pts[faceVerts[2]]);
+ faceIds->InsertNextId(pts[faceVerts[3]]);
+ numFacePts = 4;
+ input->GetCellNeighbors(cellId, faceIds, cellIds);
+ if ( cellIds->GetNumberOfIds() <= 0 ||
+ (!allVisible && !cellVis[cellIds->GetId(0)]) )
{
- faceIds->Reset();
- faceVerts = vtkTetra::GetFaceArray(faceId);
- faceIds->InsertNextId(pts[faceVerts[0]]);
- faceIds->InsertNextId(pts[faceVerts[1]]);
- faceIds->InsertNextId(pts[faceVerts[2]]);
- numFacePts = 3;
- input->GetCellNeighbors(cellId, faceIds, cellIds);
- if ( cellIds->GetNumberOfIds() <= 0 ||
- (!allVisible && !cellVis[cellIds->GetId(0)]) )
+ polys->InsertNextCell(numFacePts);
+ for ( i=0; i < numFacePts; i++)
{
- polys->InsertNextCell(numFacePts);
- for ( i=0; i < numFacePts; i++)
- {
- polys->InsertCellPoint(pts[faceVerts[i]]);
- }
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
+ polys->InsertCellPoint(pts[faceVerts[pixelConvert[i]]]);
}
+ polyCellIds.push_back(cellId);
}
- break;
+ }
+ break;
- case VTK_VOXEL:
- for (faceId = 0; faceId < 6; faceId++)
+ case VTK_HEXAHEDRON:
+ for (faceId = 0; faceId < 6; faceId++)
+ {
+ faceIds->Reset();
+ faceVerts = vtkHexahedron::GetFaceArray(faceId);
+ faceIds->InsertNextId(pts[faceVerts[0]]);
+ faceIds->InsertNextId(pts[faceVerts[1]]);
+ faceIds->InsertNextId(pts[faceVerts[2]]);
+ faceIds->InsertNextId(pts[faceVerts[3]]);
+ numFacePts = 4;
+ input->GetCellNeighbors(cellId, faceIds, cellIds);
+ if ( cellIds->GetNumberOfIds() <= 0 ||
+ (!allVisible && !cellVis[cellIds->GetId(0)]) )
{
- faceIds->Reset();
- faceVerts = vtkVoxel::GetFaceArray(faceId);
- faceIds->InsertNextId(pts[faceVerts[0]]);
- faceIds->InsertNextId(pts[faceVerts[1]]);
- faceIds->InsertNextId(pts[faceVerts[2]]);
- faceIds->InsertNextId(pts[faceVerts[3]]);
- numFacePts = 4;
- input->GetCellNeighbors(cellId, faceIds, cellIds);
- if ( cellIds->GetNumberOfIds() <= 0 ||
- (!allVisible && !cellVis[cellIds->GetId(0)]) )
+ polys->InsertNextCell(numFacePts);
+ for ( i=0; i < numFacePts; i++)
{
- polys->InsertNextCell(numFacePts);
- for ( i=0; i < numFacePts; i++)
- {
- polys->InsertCellPoint(pts[faceVerts[pixelConvert[i]]]);
- }
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
+ polys->InsertCellPoint(pts[faceVerts[i]]);
}
+ polyCellIds.push_back(cellId);
}
- break;
+ }
+ break;
- case VTK_HEXAHEDRON:
- for (faceId = 0; faceId < 6; faceId++)
+ case VTK_WEDGE:
+ for (faceId = 0; faceId < 5; faceId++)
+ {
+ faceIds->Reset();
+ faceVerts = vtkWedge::GetFaceArray(faceId);
+ faceIds->InsertNextId(pts[faceVerts[0]]);
+ faceIds->InsertNextId(pts[faceVerts[1]]);
+ faceIds->InsertNextId(pts[faceVerts[2]]);
+ numFacePts = 3;
+ if (faceVerts[3] >= 0)
{
- faceIds->Reset();
- faceVerts = vtkHexahedron::GetFaceArray(faceId);
- faceIds->InsertNextId(pts[faceVerts[0]]);
- faceIds->InsertNextId(pts[faceVerts[1]]);
- faceIds->InsertNextId(pts[faceVerts[2]]);
faceIds->InsertNextId(pts[faceVerts[3]]);
numFacePts = 4;
- input->GetCellNeighbors(cellId, faceIds, cellIds);
- if ( cellIds->GetNumberOfIds() <= 0 ||
- (!allVisible && !cellVis[cellIds->GetId(0)]) )
- {
- polys->InsertNextCell(numFacePts);
- for ( i=0; i < numFacePts; i++)
- {
- polys->InsertCellPoint(pts[faceVerts[i]]);
- }
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
- }
}
- break;
-
- case VTK_WEDGE:
- for (faceId = 0; faceId < 5; faceId++)
+ input->GetCellNeighbors(cellId, faceIds, cellIds);
+ if ( cellIds->GetNumberOfIds() <= 0 ||
+ (!allVisible && !cellVis[cellIds->GetId(0)]) )
{
- faceIds->Reset();
- faceVerts = vtkWedge::GetFaceArray(faceId);
- faceIds->InsertNextId(pts[faceVerts[0]]);
- faceIds->InsertNextId(pts[faceVerts[1]]);
- faceIds->InsertNextId(pts[faceVerts[2]]);
- numFacePts = 3;
- if (faceVerts[3] >= 0)
+ polys->InsertNextCell(numFacePts);
+ for ( i=0; i < numFacePts; i++)
{
- faceIds->InsertNextId(pts[faceVerts[3]]);
- numFacePts = 4;
- }
- input->GetCellNeighbors(cellId, faceIds, cellIds);
- if ( cellIds->GetNumberOfIds() <= 0 ||
- (!allVisible && !cellVis[cellIds->GetId(0)]) )
- {
- polys->InsertNextCell(numFacePts);
- for ( i=0; i < numFacePts; i++)
- {
- polys->InsertCellPoint(pts[faceVerts[i]]);
- }
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
+ polys->InsertCellPoint(pts[faceVerts[i]]);
}
+ polyCellIds.push_back(cellId);
}
- break;
+ }
+ break;
- case VTK_PYRAMID:
- for (faceId = 0; faceId < 5; faceId++)
+ case VTK_PYRAMID:
+ for (faceId = 0; faceId < 5; faceId++)
+ {
+ faceIds->Reset();
+ faceVerts = vtkPyramid::GetFaceArray(faceId);
+ faceIds->InsertNextId(pts[faceVerts[0]]);
+ faceIds->InsertNextId(pts[faceVerts[1]]);
+ faceIds->InsertNextId(pts[faceVerts[2]]);
+ numFacePts = 3;
+ if (faceVerts[3] >= 0)
{
- faceIds->Reset();
- faceVerts = vtkPyramid::GetFaceArray(faceId);
- faceIds->InsertNextId(pts[faceVerts[0]]);
- faceIds->InsertNextId(pts[faceVerts[1]]);
- faceIds->InsertNextId(pts[faceVerts[2]]);
- numFacePts = 3;
- if (faceVerts[3] >= 0)
- {
- faceIds->InsertNextId(pts[faceVerts[3]]);
- numFacePts = 4;
- }
- input->GetCellNeighbors(cellId, faceIds, cellIds);
- if ( cellIds->GetNumberOfIds() <= 0 ||
- (!allVisible && !cellVis[cellIds->GetId(0)]) )
+ faceIds->InsertNextId(pts[faceVerts[3]]);
+ numFacePts = 4;
+ }
+ input->GetCellNeighbors(cellId, faceIds, cellIds);
+ if ( cellIds->GetNumberOfIds() <= 0 ||
+ (!allVisible && !cellVis[cellIds->GetId(0)]) )
+ {
+ polys->InsertNextCell(numFacePts);
+ for ( i=0; i < numFacePts; i++)
{
- polys->InsertNextCell(numFacePts);
- for ( i=0; i < numFacePts; i++)
- {
- polys->InsertCellPoint(pts[faceVerts[i]]);
- }
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
+ polys->InsertCellPoint(pts[faceVerts[i]]);
}
+ polyCellIds.push_back(cellId);
}
- break;
+ }
+ break;
- case VTK_PENTAGONAL_PRISM:
- for (faceId = 0; faceId < 7; faceId++)
+ case VTK_PENTAGONAL_PRISM:
+ for (faceId = 0; faceId < 7; faceId++)
+ {
+ faceIds->Reset();
+ faceVerts = vtkPentagonalPrism::GetFaceArray(faceId);
+ faceIds->InsertNextId(pts[faceVerts[0]]);
+ faceIds->InsertNextId(pts[faceVerts[1]]);
+ faceIds->InsertNextId(pts[faceVerts[2]]);
+ faceIds->InsertNextId(pts[faceVerts[3]]);
+ numFacePts = 4;
+ if (faceVerts[4] >= 0)
{
- faceIds->Reset();
- faceVerts = vtkPentagonalPrism::GetFaceArray(faceId);
- faceIds->InsertNextId(pts[faceVerts[0]]);
- faceIds->InsertNextId(pts[faceVerts[1]]);
- faceIds->InsertNextId(pts[faceVerts[2]]);
- faceIds->InsertNextId(pts[faceVerts[3]]);
- numFacePts = 4;
- if (faceVerts[4] >= 0)
+ faceIds->InsertNextId(pts[faceVerts[4]]);
+ numFacePts = 5;
+ }
+ input->GetCellNeighbors(cellId, faceIds, cellIds);
+ if ( cellIds->GetNumberOfIds() <= 0 ||
+ (!allVisible && !cellVis[cellIds->GetId(0)]) )
+ {
+ polys->InsertNextCell(numFacePts);
+ for ( i=0; i < numFacePts; i++)
{
- faceIds->InsertNextId(pts[faceVerts[4]]);
- numFacePts = 5;
- }
- input->GetCellNeighbors(cellId, faceIds, cellIds);
- if ( cellIds->GetNumberOfIds() <= 0 ||
- (!allVisible && !cellVis[cellIds->GetId(0)]) )
- {
- polys->InsertNextCell(numFacePts);
- for ( i=0; i < numFacePts; i++)
- {
- polys->InsertCellPoint(pts[faceVerts[i]]);
- }
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
+ polys->InsertCellPoint(pts[faceVerts[i]]);
}
+ polyCellIds.push_back(cellId);
}
- break;
+ }
+ break;
- case VTK_HEXAGONAL_PRISM:
- for (faceId = 0; faceId < 8; faceId++)
+ case VTK_HEXAGONAL_PRISM:
+ for (faceId = 0; faceId < 8; faceId++)
+ {
+ faceIds->Reset();
+ faceVerts = vtkHexagonalPrism::GetFaceArray(faceId);
+ faceIds->InsertNextId(pts[faceVerts[0]]);
+ faceIds->InsertNextId(pts[faceVerts[1]]);
+ faceIds->InsertNextId(pts[faceVerts[2]]);
+ faceIds->InsertNextId(pts[faceVerts[3]]);
+ numFacePts = 4;
+ if (faceVerts[4] >= 0)
{
- faceIds->Reset();
- faceVerts = vtkHexagonalPrism::GetFaceArray(faceId);
- faceIds->InsertNextId(pts[faceVerts[0]]);
- faceIds->InsertNextId(pts[faceVerts[1]]);
- faceIds->InsertNextId(pts[faceVerts[2]]);
- faceIds->InsertNextId(pts[faceVerts[3]]);
- numFacePts = 4;
- if (faceVerts[4] >= 0)
+ faceIds->InsertNextId(pts[faceVerts[4]]);
+ faceIds->InsertNextId(pts[faceVerts[5]]);
+ numFacePts = 6;
+ }
+ input->GetCellNeighbors(cellId, faceIds, cellIds);
+ if ( cellIds->GetNumberOfIds() <= 0 ||
+ (!allVisible && !cellVis[cellIds->GetId(0)]) )
+ {
+ polys->InsertNextCell(numFacePts);
+ for ( i=0; i < numFacePts; i++)
{
- faceIds->InsertNextId(pts[faceVerts[4]]);
- faceIds->InsertNextId(pts[faceVerts[5]]);
- numFacePts = 6;
- }
- input->GetCellNeighbors(cellId, faceIds, cellIds);
- if ( cellIds->GetNumberOfIds() <= 0 ||
- (!allVisible && !cellVis[cellIds->GetId(0)]) )
- {
- polys->InsertNextCell(numFacePts);
- for ( i=0; i < numFacePts; i++)
- {
- polys->InsertCellPoint(pts[faceVerts[i]]);
- }
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
+ polys->InsertCellPoint(pts[faceVerts[i]]);
}
+ polyCellIds.push_back(cellId);
}
- break;
+ }
+ break;
//Quadratic cells
- case VTK_QUADRATIC_EDGE:
- case VTK_CUBIC_LINE:
- case VTK_QUADRATIC_TRIANGLE:
- case VTK_QUADRATIC_QUAD:
- case VTK_QUADRATIC_POLYGON:
- case VTK_QUADRATIC_TETRA:
- case VTK_QUADRATIC_HEXAHEDRON:
- case VTK_QUADRATIC_WEDGE:
- case VTK_QUADRATIC_PYRAMID:
- case VTK_QUADRATIC_LINEAR_QUAD:
- case VTK_BIQUADRATIC_TRIANGLE:
- case VTK_BIQUADRATIC_QUAD:
- case VTK_TRIQUADRATIC_HEXAHEDRON:
- case VTK_QUADRATIC_LINEAR_WEDGE:
- case VTK_BIQUADRATIC_QUADRATIC_WEDGE:
- case VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON:
+ case VTK_QUADRATIC_EDGE:
+ case VTK_CUBIC_LINE:
+ case VTK_QUADRATIC_TRIANGLE:
+ case VTK_QUADRATIC_QUAD:
+ case VTK_QUADRATIC_POLYGON:
+ case VTK_QUADRATIC_TETRA:
+ case VTK_QUADRATIC_HEXAHEDRON:
+ case VTK_QUADRATIC_WEDGE:
+ case VTK_QUADRATIC_PYRAMID:
+ case VTK_QUADRATIC_LINEAR_QUAD:
+ case VTK_BIQUADRATIC_TRIANGLE:
+ case VTK_BIQUADRATIC_QUAD:
+ case VTK_TRIQUADRATIC_HEXAHEDRON:
+ case VTK_QUADRATIC_LINEAR_WEDGE:
+ case VTK_BIQUADRATIC_QUADRATIC_WEDGE:
+ case VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON:
{
vtkGenericCell *cell = vtkGenericCell::New();
input->GetCell(cellId,cell);
@@ -994,8 +992,7 @@ void vtkGeometryFilter::UnstructuredGridExecute(vtkDataSet *dataSetInput,
lines->InsertNextCell(2);
lines->InsertCellPoint(ipts->GetId(i));
lines->InsertCellPoint(ipts->GetId(i+1));
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
+ lineCellIds.push_back(cellId);
}
}
else if ( cell->GetCellDimension() == 2 )
@@ -1007,8 +1004,7 @@ void vtkGeometryFilter::UnstructuredGridExecute(vtkDataSet *dataSetInput,
polys->InsertCellPoint(ipts->GetId(i));
polys->InsertCellPoint(ipts->GetId(i+1));
polys->InsertCellPoint(ipts->GetId(i+2));
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
+ polyCellIds.push_back(cellId);
}
}
else //3D nonlinear cell
@@ -1027,8 +1023,7 @@ void vtkGeometryFilter::UnstructuredGridExecute(vtkDataSet *dataSetInput,
polys->InsertCellPoint(ipts->GetId(i));
polys->InsertCellPoint(ipts->GetId(i+1));
polys->InsertCellPoint(ipts->GetId(i+2));
- outputCD->CopyData(cd,cellId,newCellId);
- newCellId++;
+ polyCellIds.push_back(cellId);
}
}
}
@@ -1038,7 +1033,7 @@ void vtkGeometryFilter::UnstructuredGridExecute(vtkDataSet *dataSetInput,
ipts->Delete();
cell->Delete();
}
- break; //done with quadratic cells
+ break; //done with quadratic cells
} //switch
} //if visible
} //for all cells
@@ -1054,10 +1049,36 @@ void vtkGeometryFilter::UnstructuredGridExecute(vtkDataSet *dataSetInput,
output->SetStrips(strips);
strips->Delete();
+ // Copy the cell data in appropriate order : verts / lines / polys / strips
+ int offset = 0;
+ size_t size = vertCellIds.size();
+ for ( int i = 0; i < size; ++i )
+ {
+ outputCD->CopyData(cd, vertCellIds[i], i );
+ }
+ offset += size;
+ size = lineCellIds.size();
+ for ( int i = 0; i < size; ++i )
+ {
+ outputCD->CopyData(cd, lineCellIds[i], i+offset );
+ }
+ offset += size;
+ size = polyCellIds.size();
+ for ( int i = 0; i < size; ++i )
+ {
+ outputCD->CopyData(cd, polyCellIds[i], i+offset );
+ }
+ offset += size;
+ size = stripCellIds.size();
+ for ( int i = 0; i < size; ++i )
+ {
+ outputCD->CopyData(cd, stripCellIds[i], i+offset );
+ }
+
output->Squeeze();
vtkDebugMacro(<<"Extracted " << input->GetNumberOfPoints() << " points,"
- << output->GetNumberOfCells() << " cells.");
+ << output->GetNumberOfCells() << " cells.");
cellIds->Delete();
faceIds->Delete();
TestGeometryFilterCellData.cxx [^] (9,196 bytes) 2015-02-19 07:28 |