52 #ifndef vtkDenseArray_h 53 #define vtkDenseArray_h 79 const T&
GetValue(CoordinateT i) override;
80 const T&
GetValue(CoordinateT i, CoordinateT j) override;
81 const T&
GetValue(CoordinateT i, CoordinateT j, CoordinateT k) override;
83 const T&
GetValueN(const SizeT n) override;
85 void SetValue(CoordinateT i, CoordinateT j, const T&
value) override;
86 void SetValue(CoordinateT i, CoordinateT j, CoordinateT k, const T&
value) override;
100 virtual ~MemoryBlock();
105 virtual T* GetAddress() = 0;
212 std::vector<vtkStdString> DimensionLabels;
231 std::vector<vtkIdType> Offsets;
236 std::vector<vtkIdType> Strides;
240 #include "vtkDenseArray.txx" Stores coordinate into an N-way array.
Wrapper around std::string to keep symbols short.
vtkDenseArray()
Stores the current array extents (its size along each dimension)
MemoryBlock implementation that manages internally-allocated memory using new[] and delete[]...
Stores the number of dimensions and valid coordinate ranges along each dimension for vtkArray...
~vtkDenseArray() override
Stores the current array extents (its size along each dimension)
const T & GetValueN(const SizeT n) override
Returns the n-th value stored in the array, where n is in the range [0, GetNonNullSize()).
const T * GetStorage() const
Returns a read-only reference to the underlying storage.
HeapMemoryBlock(const vtkArrayExtents &extents)
void ExternalStorage(const vtkArrayExtents &extents, MemoryBlock *storage)
Initializes the array to use an externally-allocated memory block.
Abstract interface for N-dimensional arrays.
void SetValueN(const SizeT n, const T &value) override
Overwrites the n-th value stored in the array, where n is in the range [0, GetNonNullSize()).
~HeapMemoryBlock() override
void SetValue(CoordinateT i, const T &value) override
Overwrites the value stored in the array at the given coordinates.
Strategy object that contains a block of memory to be used by vtkDenseArray for value storage...
vtkArray * DeepCopy() override
Returns a new array that is a deep copy of this array.
SizeT GetNonNullSize() override
Returns the number of non-null values stored in the array.
const vtkArrayExtents & GetExtents() override
Returns the extents (the number of dimensions and size along each dimension) of the array...
void Fill(const T &value)
Fills every element in the array with the given value.
void GetCoordinatesN(const SizeT n, vtkArrayCoordinates &coordinates) override
Returns the coordinates of the n-th value in the array, where n is in the range [0, GetNonNullSize()).
vtkArrayExtents::DimensionT DimensionT
T * GetAddress() override
Returns a pointer to the block of memory to be used for storage.
a simple class to control print indentation
bool IsDense() override
Returns true iff the underlying array storage is "dense", i.e.
const T & GetValue(CoordinateT i) override
Returns the value stored in the array at the given coordinates.
vtkArrayExtents::SizeT SizeT
vtkTemplateTypeMacro(vtkDenseArray< T >, vtkTypedArray< T >) void PrintSelf(ostream &os
static vtkDenseArray< T > * New()
vtkIndent indent override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Contiguous storage for N-way arrays.
Provides a type-specific interface to N-way arrays.
vtkArrayExtents::CoordinateT CoordinateT
T & operator[](const vtkArrayCoordinates &coordinates)
Returns a value by-reference, which is useful for performance and code-clarity.
MemoryBlock implementation that manages a static (will not be freed) memory block.