52 #ifndef vtkSparseArray_h
53 #define vtkSparseArray_h
60 VTK_ABI_NAMESPACE_BEGIN
81 const T&
GetValue(CoordinateT i)
override;
82 const T&
GetValue(CoordinateT i, CoordinateT j)
override;
83 const T&
GetValue(CoordinateT i, CoordinateT j, CoordinateT k)
override;
87 void SetValue(CoordinateT i, CoordinateT j,
const T&
value)
override;
88 void SetValue(CoordinateT i, CoordinateT j, CoordinateT k,
const T&
value)
override;
184 inline void AddValue(CoordinateT i, CoordinateT j,
const T&
value);
185 inline void AddValue(CoordinateT i, CoordinateT j, CoordinateT k,
const T&
value);
209 void InternalSetDimensionLabel(DimensionT i,
const vtkStdString& label)
override;
210 vtkStdString InternalGetDimensionLabel(DimensionT i)
override;
222 std::vector<std::string> DimensionLabels;
228 std::vector<std::vector<CoordinateT>> Coordinates;
233 std::vector<T> Values;
244 VTK_ABI_NAMESPACE_END
245 #include "vtkSparseArray.txx"
Controls sorting of sparse array coordinates.
Stores coordinate into an N-way array.
Wrapper around std::string to keep symbols short.
Stores the number of dimensions and valid coordinate ranges along each dimension for vtkArray...
Sparse, independent coordinate storage for N-way arrays.
Abstract interface for N-dimensional arrays.
void SetExtents(const vtkArrayExtents &extents)
Specify arbitrary array extents, without altering the contents of the array.
vtkArray::DimensionT DimensionT
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetNullValue(const T &value)
Set the value that will be returned by GetValue() for nullptr areas of the array. ...
static vtkSparseArray< T > * New()
vtkTemplateTypeMacro(vtkSparseArray< T >, vtkTypedArray< T >)
void Sort(const vtkArraySort &sort)
Sorts array values so that their coordinates appear in some well-defined order.
const T & GetNullValue()
Returns the value that will be returned by GetValue() for nullptr areas of the array.
vtkArrayExtents::DimensionT DimensionT
a simple class to control print indentation
~vtkSparseArray() override
void GetCoordinatesN(SizeT n, vtkArrayCoordinates &coordinates) override
Returns the coordinates of the n-th value in the array, where n is in the range [0, GetNonNullSize()).
bool IsDense() override
Returns true iff the underlying array storage is "dense", i.e.
const T * GetValueStorage() const
Return a read-only reference to the underlying value storage.
const T & GetValueN(SizeT n) override
Returns the n-th value stored in the array, where n is in the range [0, GetNonNullSize()).
vtkArrayExtents::SizeT SizeT
std::vector< CoordinateT > GetUniqueCoordinates(DimensionT dimension)
Returns the set of unique coordinates along the given dimension.
const CoordinateT * GetCoordinateStorage(DimensionT dimension) const
Return a read-only reference to the underlying coordinate storage.
void Clear()
Remove all non-null elements from the array, leaving the number of dimensions, the extent of each dim...
void SetExtentsFromContents()
Update the array extents to match its contents, so that the extent along each dimension matches the m...
vtkArray::CoordinateT CoordinateT
const vtkArrayExtents & GetExtents() override
Returns the extents (the number of dimensions and size along each dimension) of the array...
void AddValue(CoordinateT i, const T &value)
Adds a new non-null element to the array.
Provides a type-specific interface to N-way arrays.
SizeT GetNonNullSize() override
Returns the number of non-null values stored in the array.
void SetValueN(SizeT n, const T &value) override
Overwrites the n-th value stored in the array, where n is in the range [0, GetNonNullSize()).
vtkArray * DeepCopy() override
Returns a new array that is a deep copy of this array.
bool Validate()
Validate the contents of the array, returning false if there are any problems.
vtkArrayExtents::CoordinateT CoordinateT
void SetValue(CoordinateT i, const T &value) override
Overwrites the value stored in the array at the given coordinates.
void ReserveStorage(SizeT value_count)
Reserve storage for a specific number of values.
const T & GetValue(CoordinateT i) override
Returns the value stored in the array at the given coordinates.