1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
#include "vtkUnstructuredGridBase.h"
#include "vtkCellArray.h"
#include "vtkCellIterator.h"
#include "vtkInformation.h"
#include "vtkInformationVector.h"
#include "vtkSmartPointer.h"
//------------------------------------------------------------------------------
VTK_ABI_NAMESPACE_BEGIN
vtkUnstructuredGridBase::vtkUnstructuredGridBase() = default;
//------------------------------------------------------------------------------
vtkUnstructuredGridBase::~vtkUnstructuredGridBase() = default;
//------------------------------------------------------------------------------
void vtkUnstructuredGridBase::DeepCopy(vtkDataObject* src)
{
this->Superclass::DeepCopy(src);
if (vtkDataSet* ds = vtkDataSet::SafeDownCast(src))
{
vtkSmartPointer<vtkCellIterator> cellIter =
vtkSmartPointer<vtkCellIterator>::Take(ds->NewCellIterator());
for (cellIter->InitTraversal(); !cellIter->IsDoneWithTraversal(); cellIter->GoToNextCell())
{
this->InsertNextCell(cellIter->GetCellType(), cellIter->GetNumberOfPoints(),
cellIter->GetPointIds()->GetPointer(0), cellIter->GetCellFaces());
}
}
}
//------------------------------------------------------------------------------
vtkUnstructuredGridBase* vtkUnstructuredGridBase::GetData(vtkInformation* info)
{
return vtkUnstructuredGridBase::SafeDownCast(info ? info->Get(DATA_OBJECT()) : nullptr);
}
//------------------------------------------------------------------------------
vtkUnstructuredGridBase* vtkUnstructuredGridBase::GetData(vtkInformationVector* v, int i)
{
return vtkUnstructuredGridBase::GetData(v->GetInformationObject(i));
}
//------------------------------------------------------------------------------
vtkIdType vtkUnstructuredGridBase::InsertNextCell(int type, vtkIdType npts, const vtkIdType pts[])
{
return this->InternalInsertNextCell(type, npts, pts);
}
//------------------------------------------------------------------------------
vtkIdType vtkUnstructuredGridBase::InsertNextCell(int type, vtkIdList* ptIds)
{
return this->InternalInsertNextCell(type, ptIds);
}
//------------------------------------------------------------------------------
vtkIdType vtkUnstructuredGridBase::InsertNextCell(
int type, vtkIdType npts, const vtkIdType pts[], vtkCellArray* faces)
{
return this->InternalInsertNextCell(type, npts, pts, faces);
}
//------------------------------------------------------------------------------
vtkIdType vtkUnstructuredGridBase::InsertNextCell(
int type, vtkIdType npts, const vtkIdType pts[], vtkIdType nfaces, const vtkIdType faces[])
{
vtkIdType size = 0;
vtkNew<vtkCellArray> convert;
for (vtkIdType count = 0; count < nfaces; ++count)
{
size += faces[size] + 1;
}
convert->ImportLegacyFormat(faces, size);
return this->InternalInsertNextCell(type, npts, pts, convert);
}
//------------------------------------------------------------------------------
void vtkUnstructuredGridBase::ReplaceCell(vtkIdType cellId, int npts, const vtkIdType pts[])
{
this->InternalReplaceCell(cellId, npts, pts);
}
VTK_ABI_NAMESPACE_END
|