236#ifndef vtkCellArray_h
237#define vtkCellArray_h
240#include "vtkCommonDataModelModule.h"
248#include "vtkFeatures.h"
250#include "vtkTypeInt32Array.h"
251#include "vtkTypeInt64Array.h"
255#include <initializer_list>
256#include <type_traits>
279#define VTK_CELL_ARRAY_V2
281VTK_ABI_NAMESPACE_BEGIN
316 "Use vtkArrayDispatch::OffsetsArrays/ConnectivityArrays instead.") =
317 vtkTypeList::Create<vtkTypeInt32Array, vtkTypeInt64Array>;
359 return this->
AllocateExact(numCells, numCells * maxCellSize);
451 this->
Offsets->SetComponent(cellId, 0,
static_cast<double>(offset));
583 return std::is_same_v<vtkTypeInt32, vtkIdType>;
586 return std::is_same_v<vtkTypeInt64, vtkIdType>;
691 vtkTypeInt32Array* GetOffsetsArray32()
const
693 return vtkTypeInt32Array::FastDownCast(this->
Offsets);
697 vtkTypeInt64Array* GetOffsetsArray64()
const
699 return vtkTypeInt64Array::FastDownCast(this->
Offsets);
701 AOSArray64* GetOffsetsAOSArray64()
const {
return AOSArray64::FastDownCast(this->Offsets); }
702 AffineArray32* GetOffsetsAffineArray32()
const
706 AffineArray64* GetOffsetsAffineArray64()
const
708 return AffineArray64::FastDownCast(this->Offsets);
720 vtkTypeInt32Array* GetConnectivityArray32()
const
724 AOSArray32* GetConnectivityAOSArray32()
const
726 return AOSArray32::FastDownCast(this->Connectivity);
729 vtkTypeInt64Array* GetConnectivityArray64()
const
733 AOSArray64* GetConnectivityAOSArray64()
const
735 return AOSArray64::FastDownCast(this->Connectivity);
868 inline vtkIdType InsertNextCell(
int npts);
880 void UpdateCellCount(
int npts);
1016 template <
class ArrayT>
1019 template <
class OffsetsT>
1022 return offsets->GetNumberOfValues() - 1;
1025 template <
class ArrayT>
1032 template <
class OffsetsT>
1038 template <
class OffsetsT>
1044 template <
class OffsetsT>
1047 auto offsetsRange =
GetRange(offsets);
1048 return static_cast<vtkIdType>(offsetsRange[cellId + 1] - offsetsRange[cellId]);
1051 template <
class OffsetsT,
class ConnectivityT>
1055 auto offsetsRange =
GetRange(offsets);
1057 conn, offsetsRange[cellId], offsetsRange[cellId + 1]);
1125 template <
typename Functor,
typename... Args>
1126 void Dispatch(Functor&& functor, Args&&... args)
1132 static_cast<AOSArray32*
>(this->Connectivity.Get()), std::forward<Args>(args)...);
1136 static_cast<AOSArray64*
>(this->Connectivity.Get()), std::forward<Args>(args)...);
1140 static_cast<AOSArray32*
>(this->Connectivity.Get()), std::forward<Args>(args)...);
1144 static_cast<AOSArray64*
>(this->Connectivity.Get()), std::forward<Args>(args)...);
1148 functor(this->
Offsets.Get(), this->Connectivity.Get(), std::forward<Args>(args)...);
1152 template <
typename Functor,
typename... Args>
1153 void Dispatch(Functor&& functor, Args&&... args)
const
1155 switch (this->StorageType)
1157 case StorageTypes::Int32:
1158 functor(
static_cast<AOSArray32*
>(this->Offsets.Get()),
1159 static_cast<AOSArray32*
>(this->Connectivity.Get()), std::forward<Args>(args)...);
1161 case StorageTypes::Int64:
1162 functor(
static_cast<AOSArray64*
>(this->Offsets.Get()),
1163 static_cast<AOSArray64*
>(this->Connectivity.Get()), std::forward<Args>(args)...);
1165 case StorageTypes::FixedSizeInt32:
1166 functor(
static_cast<AffineArray32*
>(this->Offsets.Get()),
1167 static_cast<AOSArray32*
>(this->Connectivity.Get()), std::forward<Args>(args)...);
1169 case StorageTypes::FixedSizeInt64:
1170 functor(
static_cast<AffineArray64*
>(this->Offsets.Get()),
1171 static_cast<AOSArray64*
>(this->Connectivity.Get()), std::forward<Args>(args)...);
1173 case StorageTypes::Generic:
1175 functor(this->Offsets.Get(), this->Connectivity.Get(), std::forward<Args>(args)...);
1183 template <
typename ArrayT>
1187 using ValueType =
typename ArrayType::ValueType;
1202 const ArrayType* GetConnectivity()
const {
return this->
Connectivity; }
1221 this->
Offsets->InsertNextValue(0);
1224 this->IsInMemkind =
true;
1228 void*
operator new(
size_t nSize)
1231#ifdef VTK_USE_MEMKIND
1238 void operator delete(
void* p)
1240#ifdef VTK_USE_MEMKIND
1261 bool IsInMemkind =
false;
1265 template <
typename Functor,
typename... Args>
1266 using GetReturnType =
decltype(std::declval<Functor>()(
1267 std::declval<VisitState<AOSArray32>&>(), std::declval<Args>()...));
1269 template <
typename Functor,
typename... Args>
1270 struct ReturnsVoid : std::is_same<GetReturnType<Functor, Args...>, void>
1344 template <
typename Functor,
typename... Args,
1345 typename =
typename std::enable_if<ReturnsVoid<Functor, Args...>::value>::type>
1347 void
Visit(Functor&& functor, Args&&... args)
1356 functor(state, std::forward<Args>(args)...);
1364 functor(state, std::forward<Args>(args)...);
1372 vtkWarningMacro(
"Use Dispatch");
1378 template <
typename Functor,
typename... Args,
1379 typename =
typename std::enable_if<ReturnsVoid<Functor, Args...>::value>::type>
1381 void
Visit(Functor&& functor, Args&&... args)
const
1390 functor(state, std::forward<Args>(args)...);
1398 functor(state, std::forward<Args>(args)...);
1406 vtkWarningMacro(
"Use Dispatch");
1412 template <
typename Functor,
typename... Args,
1413 typename =
typename std::enable_if<!ReturnsVoid<Functor, Args...>::value>::type>
1415 GetReturnType<Functor, Args...>
Visit(Functor&& functor, Args&&... args)
1424 return functor(state, std::forward<Args>(args)...);
1431 return functor(state, std::forward<Args>(args)...);
1438 vtkWarningMacro(
"Use Dispatch");
1439 return GetReturnType<Functor, Args...>();
1443 template <
typename Functor,
typename... Args,
1444 typename =
typename std::enable_if<!ReturnsVoid<Functor, Args...>::value>::type>
1446 GetReturnType<Functor, Args...>
Visit(Functor&& functor, Args&&... args)
const
1455 return functor(state, std::forward<Args>(args)...);
1462 return functor(state, std::forward<Args>(args)...);
1469 vtkWarningMacro(
"Use Dispatch");
1470 return GetReturnType<Functor, Args...>();
1635 "Use ExportLegacyFormat, or GetOffsetsArray/GetConnectivityArray instead.")
1660template <
typename ArrayT>
1663 return this->
Offsets->GetNumberOfValues() - 1;
1666template <
typename ArrayT>
1672template <
typename ArrayT>
1678template <
typename ArrayT>
1684template <
typename ArrayT>
1691VTK_ABI_NAMESPACE_END
1695VTK_ABI_NAMESPACE_BEGIN
1700 template <
class OffsetsT,
class ConnectivityT>
1707 OffsetsAccessorType offsetsAccesor(offsets);
1708 ConnectivityAccessorType connAccesor(conn);
1710 cellId = offsets->GetNumberOfValues() - 1;
1712 offsetsAccesor.InsertNext(
static_cast<ValueType
>(conn->GetNumberOfValues() + npts));
1716 connAccesor.InsertNext(
static_cast<ValueType
>(pts[i]));
1721 template <
class OffsetsT,
class ConnectivityT>
1726 AccessorType offsetsAccesor(offsets);
1728 cellId = offsets->GetNumberOfValues() - 1;
1730 offsetsAccesor.InsertNext(
static_cast<ValueType
>(conn->GetNumberOfValues() + npts));
1737 template <
class OffsetsT,
class ConnectivityT>
1742 auto offsetsRange =
GetRange(offsets);
1743 const ValueType cellBegin = offsetsRange[offsets->GetMaxId() - 1];
1744 offsetsRange[offsets->GetMaxId()] =
static_cast<ValueType
>(cellBegin + npts);
1750 template <
class OffsetsT,
class ConnectivityT>
1752 OffsetsT* offsets, ConnectivityT* vtkNotUsed(conn),
vtkIdType cellId,
vtkIdType& cellSize)
1760 template <
class OffsetsT,
class ConnectivityT>
1763 auto offsetsRange =
GetRange(offsets);
1764 const auto& beginOffset = offsetsRange[cellId];
1765 const auto& endOffset = offsetsRange[cellId + 1];
1767 const auto cellConnectivity =
GetRange(conn).begin() + beginOffset;
1772 for (
vtkIdType i = 0; i < cellSize; ++i)
1774 idPtr[i] =
static_cast<vtkIdType>(cellConnectivity[i]);
1778 template <
class OffsetsT,
class ConnectivityT>
1782 auto offsetsRange =
GetRange(offsets);
1783 const auto& beginOffset = offsetsRange[cellId];
1784 const auto& endOffset = offsetsRange[cellId + 1];
1785 cellSize =
static_cast<vtkIdType>(endOffset - beginOffset);
1786 const auto cellConnectivity =
GetRange(conn).begin() + beginOffset;
1789 for (
vtkIdType i = 0; i < cellSize; ++i)
1791 cellPoints[i] =
static_cast<vtkIdType>(cellConnectivity[i]);
1796 template <
typename ConnectivityT>
1800 std::is_base_of_v<vtkAOSDataArrayTemplate<vtkIdType>, ConnectivityT>;
1803 template <
class OffsetsT,
class ConnectivityT>
1804 typename std::enable_if_t<CanShareConnPtr<ConnectivityT>::value,
void>
operator()(
1808 auto offsetsRange =
GetRange(offsets);
1809 const auto& beginOffset = offsetsRange[cellId];
1810 const auto& endOffset = offsetsRange[cellId + 1];
1811 cellSize =
static_cast<vtkIdType>(endOffset - beginOffset);
1813 cellPoints = conn->GetPointer(beginOffset);
1816 template <
class OffsetsT,
class ConnectivityT>
1817 typename std::enable_if_t<!CanShareConnPtr<ConnectivityT>::value,
void>
operator()(
1821 auto offsetsRange =
GetRange(offsets);
1822 const auto& beginOffset = offsetsRange[cellId];
1823 const auto& endOffset = offsetsRange[cellId + 1];
1824 cellSize =
static_cast<vtkIdType>(endOffset - beginOffset);
1825 const auto cellConnectivity =
GetRange(conn).begin() + beginOffset;
1829 for (
vtkIdType i = 0; i < cellSize; ++i)
1831 tempPtr[i] =
static_cast<vtkIdType>(cellConnectivity[i]);
1834 cellPoints = tempPtr;
1840 template <
class OffsetsT,
class ConnectivityT>
1851 template <
class OffsetsT,
class ConnectivityT>
1858 AccessorType accessor(offsets);
1859 ValueType firstOffset = 0;
1860 accessor.InsertNext(firstOffset);
1866 template <
class OffsetsT,
class ConnectivityT>
1871 AccessorType accessor(conn);
1872 accessor.InsertNext(
static_cast<ValueType
>(
id));
1876VTK_ABI_NAMESPACE_END
1879VTK_ABI_NAMESPACE_BEGIN
2002VTK_ABI_NAMESPACE_END
Array-Of-Structs implementation of vtkGenericDataArray.
virtual void Initialize()=0
Free any memory and reset to an empty state.
virtual void DeepCopy(vtkAbstractCellArray *ca)=0
Perform a deep copy (no reference counting) of the given cell array.
virtual bool IsStorageShareable() const =0
virtual int GetMaxCellSize()=0
Returns the size of the largest cell.
virtual vtkIdType IsHomogeneous() const =0
Check if all cells have the same number of vertices.
virtual vtkIdType GetNumberOfCells() const =0
Get the number of cells in the array.
virtual vtkIdType GetOffset(vtkIdType cellId)=0
Get the offset (into the connectivity) for a specified cell id.
void GetCellAtId(vtkIdType cellId, vtkIdType &cellSize, vtkIdType const *&cellPoints)
Return the point ids for the cell at cellId.
virtual vtkIdType GetNumberOfConnectivityIds() const =0
Get the size of the connectivity array that stores the point ids.
virtual void ShallowCopy(vtkAbstractCellArray *ca)=0
Shallow copy ca into this cell array.
virtual vtkIdType GetNumberOfOffsets() const =0
Get the number of elements in the offsets array.
Encapsulate traversal logic for vtkCellArray.
vtkIdType GetCellSize(vtkIdType cellId) const override
Return the size of the cell at cellId.
vtkDataArray * GetOffsetsArray() const
Return the array used to store cell offsets.
int GetNextCell(vtkIdType &npts, vtkIdType const *&pts)
vtkIdTypeArray * GetData()
Return the underlying data as a data array.
void UseFixedSizeDefaultStorage(vtkIdType cellSize)
Initialize internal data structures to use 32- or 64-bit storage.
vtkIdType GetNumberOfConnectivityEntries()
Return the size of the array that would be returned from ExportLegacyFormat().
void UseDefaultStorage()
Initialize internal data structures to use 32- or 64-bit storage.
bool AllocateCopy(vtkCellArray *other)
Pre-allocate memory in internal data structures to match the used size of the input vtkCellArray.
void AppendLegacyFormat(vtkIdTypeArray *data, vtkIdType ptOffset=0)
Append an array of data with the legacy vtkCellArray layout, e.g.:
bool IsValid()
Check that internal storage is consistent and in a valid state.
friend class vtkCellArrayIterator
bool CanConvertToFixedSize64BitStorage() const
Check if the existing data can safely be converted to use 32- or 64- bit storage.
void ReplaceCell(vtkIdType loc, int npts, const vtkIdType pts[])
Replace the point ids of the cell at the legacy location with a different list of point ids.
vtkIdType GetTraversalCellId()
Get/Set the current cellId for traversal.
void Visit(Functor &&functor, Args &&... args)
vtkTypeInt32Array ArrayType32
vtkIdType GetNumberOfCells() const override
Get the number of cells in the array.
vtkAOSDataArrayTemplate< vtkTypeInt32 > AOSArray32
bool CanConvertToFixedSizeDefaultStorage() const
Check if the existing data can safely be converted to use 32- or 64- bit storage.
vtkIdType GetNumberOfConnectivityIds() const override
Get the size of the connectivity array that stores the point ids.
vtkIdType GetTraversalLocation()
Get/Set the current traversal legacy location.
vtkAOSDataArrayTemplate< vtkTypeInt64 > AOSArray64
bool CanConvertToStorageType(StorageTypes type) const
Check if the existing data can safely be converted to use 32- or 64- bit storage.
void SetData(AffineArray32 *, AOSArray32 *connectivity)
Set the internal data arrays to the supplied offsets and connectivity arrays.
bool ConvertToFixedSize64BitStorage()
Convert internal data structures to use 32- or 64-bit storage.
vtkAffineArray< vtkTypeInt64 > AffineArray64
bool AllocateExact(vtkIdType numCells, vtkIdType connectivitySize)
Pre-allocate memory in internal data structures.
bool ResizeExact(vtkIdType numCells, vtkIdType connectivitySize)
ResizeExact() resizes the internal structures to hold numCells total cell offsets and connectivitySiz...
vtkIdType EstimateSize(vtkIdType numCells, int maxPtsPerCell)
Utility routines help manage memory of cell array.
bool AllocateEstimate(vtkIdType numCells, vtkIdType maxCellSize)
Pre-allocate memory in internal data structures.
void ReverseCell(vtkIdType loc)
Special method inverts ordering of cell at the specified legacy location.
vtkTypeInt64Array ArrayType64
vtkIdType TraversalCellId
void UseFixedSize64BitStorage(vtkIdType cellSize)
Initialize internal data structures to use 32- or 64-bit storage.
bool IsStorageGeneric() const
void Use64BitStorage()
Initialize internal data structures to use 32- or 64-bit storage.
vtkSmartPointer< vtkDataArray > Offsets
vtkDataArray * GetConnectivityArray() const
Return the array used to store the point ids that define the cells' connectivity.
bool ConvertToDefaultStorage()
Convert internal data structures to use 32- or 64-bit storage.
bool CanConvertToDefaultStorage() const
Check if the existing data can safely be converted to use 32- or 64- bit storage.
static bool DefaultStorageIs64Bit
void GetCell(vtkIdType loc, vtkIdType &npts, const vtkIdType *&pts)
Internal method used to retrieve a cell given a legacy offset location.
bool CanConvertTo32BitStorage() const
Check if the existing data can safely be converted to use 32- or 64- bit storage.
void GetCellAtId(vtkIdType cellId, vtkIdType &cellSize, vtkIdType const *&cellPoints, vtkIdList *ptIds) override
Return the point ids for the cell at cellId.
void SetData(AffineArray64 *, AOSArray64 *connectivity)
Set the internal data arrays to the supplied offsets and connectivity arrays.
void InsertCellPoint(vtkIdType id)
Used in conjunction with InsertNextCell(npts) to add another point to the list of cells.
unsigned long GetActualMemorySize() const
Return the memory in kibibytes (1024 bytes) consumed by this cell array.
vtkCellArrayIterator * NewIterator()
NewIterator returns a new instance of vtkCellArrayIterator that is initialized to point at the first ...
void SetTraversalLocation(vtkIdType loc)
Get/Set the current traversal legacy location.
void ReplaceCellAtId(vtkIdType cellId, vtkIdList *list)
Replaces the point ids for the specified cell with the supplied list.
void UseFixedSize32BitStorage(vtkIdType cellSize)
Initialize internal data structures to use 32- or 64-bit storage.
void ReverseCellAtId(vtkIdType cellId)
Reverses the order of the point ids for the specified cell.
bool IsStorage32Bit() const
void Squeeze()
Reclaim any extra memory while preserving data.
vtkSmartPointer< vtkDataArray > Connectivity
bool IsStorageFixedSize32Bit() const
bool ConvertTo32BitStorage()
Convert internal data structures to use 32- or 64-bit storage.
vtkTypeBool Allocate(vtkIdType sz, vtkIdType ext=1000)
Allocate memory.
bool ConvertToFixedSizeDefaultStorage()
Convert internal data structures to use 32- or 64-bit storage.
vtkTypeList::Create< vtkTypeInt32Array, vtkTypeInt64Array > StorageArrayList
List of possible array types used for storage.
void SetData(AOSArray32 *, AOSArray32 *connectivity)
Set the internal data arrays to the supplied offsets and connectivity arrays.
bool ConvertToStorageType(StorageTypes type)
Convert internal data structures to use 32- or 64-bit storage.
void SetOffset(vtkIdType cellId, vtkIdType offset)
Set the offset (into the connectivity) for a specified cell id.
bool ConvertToSmallestStorage()
Convert internal data structures to use 32- or 64-bit storage.
void ExportLegacyFormat(vtkIdTypeArray *data)
Fill data with the old-style vtkCellArray data layout, e.g.
bool ConvertTo64BitStorage()
Convert internal data structures to use 32- or 64-bit storage.
bool ConvertToFixedSize32BitStorage()
Convert internal data structures to use 32- or 64-bit storage.
void ImportLegacyFormat(vtkIdTypeArray *data)
Import an array of data with the legacy vtkCellArray layout, e.g.:
vtkAffineArray< vtkTypeInt32 > AffineArray32
void Use32BitStorage()
Initialize internal data structures to use 32- or 64-bit storage.
vtkIdType GetCellPointAtId(vtkIdType cellId, vtkIdType cellPointIndex) const
Return the point id at cellPointIndex for the cell at cellId.
void SetTraversalCellId(vtkIdType cellId)
Get/Set the current cellId for traversal.
bool IsStorageFixedSize64Bit() const
static bool GetDefaultStorageIs64Bit()
Control the default internal storage size.
vtkIdType InsertNextCell(vtkCell *cell)
Insert a cell object.
virtual void SetNumberOfCells(vtkIdType)
Set the number of cells in the array.
vtkNew< vtkIdTypeArray > LegacyData
void Dispatch(Functor &&functor, Args &&... args)
AOSArray32 * GetOffsetsAOSArray32() const
Return the array used to store cell offsets.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instantiation, type information, and printing.
void PrintDebug(ostream &os)
Standard methods for instantiation, type information, and printing.
vtkIdType GetInsertLocation(int npts)
Computes the current legacy insertion location within the internal array.
void UpdateCellCount(int npts)
Used in conjunction with InsertNextCell(int npts) and InsertCellPoint() to update the number of point...
bool IsStorageFixedSize() const
vtkTypeList::Unique< vtkTypeList::Create< vtkAOSDataArrayTemplate< int >, vtkAOSDataArrayTemplate< long >, vtkAOSDataArrayTemplate< long long > > >::Result InputArrayList
List of possible ArrayTypes that are compatible with internal storage.
void SetCells(vtkIdType ncells, vtkIdTypeArray *cells)
Define multiple cells by providing a connectivity list.
static vtkCellArray * New()
Standard methods for instantiation, type information, and printing.
StorageTypes GetStorageType() const noexcept
void ReplaceCellPointAtId(vtkIdType cellId, vtkIdType cellPointIndex, vtkIdType newPointId)
Replaces the pointId at cellPointIndex of a cell with newPointId.
vtkIdType GetSize()
Get the size of the allocated connectivity array.
bool CanConvertToFixedSize32BitStorage() const
Check if the existing data can safely be converted to use 32- or 64- bit storage.
void Append(vtkCellArray *src, vtkIdType pointOffset=0)
Append cells from src into this.
bool IsStorage64Bit() const
bool CanConvertTo64BitStorage() const
Check if the existing data can safely be converted to use 32- or 64- bit storage.
abstract class to specify cell behavior
vtkIdList * GetPointIds()
Return the list of point ids defining the cell.
static vtkDataArray * FastDownCast(vtkAbstractArray *source)
Perform a fast, safe cast from a vtkAbstractArray to a vtkDataArray.
list of point or cell ids
void SetNumberOfIds(vtkIdType number)
Specify the number of ids for this object to hold.
vtkIdType GetNumberOfIds() const noexcept
Return the number of id's in the list.
void Reset()
Reset to an empty state but retain previously allocated memory.
vtkIdType * GetPointer(vtkIdType i)
Get a pointer to a particular data index.
dynamic, self-adjusting array of vtkIdType
static vtkImplicitArray< vtkAffineImplicitBackend< T >, ArrayType > * FastDownCast(vtkAbstractArray *source)
a simple class to control print indentation
Allocate and hold a VTK object.
static vtkMallocingFunction GetCurrentMallocFunction()
static vtkFreeingFunction GetAlternateFreeFunction()
static bool GetUsingMemkind()
A global state flag that controls whether vtkObjects are constructed in the usual way (the default) o...
Hold a reference to a vtkObjectBase instance.
static vtkSmartPointer< T > New()
Create an instance of a VTK object.
typename detail::GetAPITypeImpl< ArrayType, ForceValueTypeForVtkDataArray >::APIType GetAPIType
VTK_ITER_INLINE auto DataArrayValueRange(const ArrayTypePtr &array, ValueIdType start=-1, ValueIdType end=-1) -> typename detail::SelectValueRange< ArrayTypePtr, TupleSize, ForceValueTypeForVtkDataArray >::type
Generate an stl and for-range compatible range of flat AOS iterators from a vtkDataArray.
vtkIdType GetNumberOfCells(OffsetsT *offsets)
static vtkIdType GetCellSize(OffsetsT *offsets, vtkIdType cellId)
static vtkIdType GetEndOffset(OffsetsT *offsets, vtkIdType cellId)
static decltype(vtk::DataArrayValueRange< 1, vtkIdType >(std::declval< ConnectivityT >())) GetCellRange(OffsetsT *offsets, ConnectivityT *conn, vtkIdType cellId)
static vtkIdType GetBeginOffset(OffsetsT *offsets, vtkIdType cellId)
static decltype(vtk::DataArrayValueRange< 1, vtkIdType >(std::declval< ArrayT >())) GetRange(ArrayT *array)
vtk::GetAPIType< ArrayT, vtkIdType > GetAPIType
vtkIdType GetNumberOfCells() const
friend class vtkCellArray
vtkIdType GetEndOffset(vtkIdType cellId) const
vtkSmartPointer< ArrayType > Offsets
vtkSmartPointer< ArrayType > Connectivity
static constexpr bool ValueTypeIsSameAsIdType
decltype(vtk::DataArrayValueRange< 1 >(std::declval< ArrayType >())) CellRangeType
CellRangeType GetCellRange(vtkIdType cellId)
vtkIdType GetBeginOffset(vtkIdType cellId) const
vtkIdType GetCellSize(vtkIdType cellId) const
typename ArrayType::ValueType ValueType
ArrayType * GetConnectivity()
void operator()(OffsetsT *offsets, ConnectivityT *conn, vtkIdType cellId, vtkIdType cellPointIndex, vtkIdType &pointId)
static constexpr bool value
void operator()(OffsetsT *offsets, ConnectivityT *conn, const vtkIdType cellId, vtkIdList *ids)
void operator()(OffsetsT *offsets, ConnectivityT *conn, const vtkIdType cellId, vtkIdType &cellSize, vtkIdType *cellPoints)
std::enable_if_t< CanShareConnPtr< ConnectivityT >::value, void > operator()(OffsetsT *offsets, ConnectivityT *conn, const vtkIdType cellId, vtkIdType &cellSize, vtkIdType const *&cellPoints, vtkIdList *temp)
std::enable_if_t<!CanShareConnPtr< ConnectivityT >::value, void > operator()(OffsetsT *offsets, ConnectivityT *conn, const vtkIdType cellId, vtkIdType &cellSize, vtkIdType const *&cellPoints, vtkIdList *temp)
void operator()(OffsetsT *offsets, ConnectivityT *conn, vtkIdType cellId, vtkIdType &cellSize)
void operator()(OffsetsT *offsets, ConnectivityT *conn, vtkIdType id)
void operator()(OffsetsT *offsets, ConnectivityT *conn, const vtkIdType npts, vtkIdType &cellId)
void operator()(OffsetsT *offsets, ConnectivityT *conn, const vtkIdType npts, const vtkIdType pts[], vtkIdType &cellId)
void operator()(OffsetsT *offsets, ConnectivityT *conn)
void operator()(OffsetsT *offsets, ConnectivityT *conn, const vtkIdType npts)
Efficient templated access to vtkDataArray.
Remove all duplicate types from TypeList TList, storing the new list in Result.
vtkImplicitArray< vtkAffineImplicitBackend< T >, vtkArrayTypes::VTK_AFFINE_ARRAY > vtkAffineArray
A utility alias for wrapping affine functions in implicit arrays.
STL-compatible iterable ranges that provide access to vtkDataArray elements.
#define VTK_DEPRECATED_IN_9_6_0(reason)
#define VTK_SIZEHINT(...)
#define VTK_MARSHALMANUAL