29 #ifndef vtkDataArray_h
30 #define vtkDataArray_h
33 #include "vtkCommonCoreModule.h"
36 VTK_ABI_NAMESPACE_BEGIN
49 using ArrayTypeTag = std::integral_constant<int, vtkArrayTypes::VTK_DATA_ARRAY>;
94 double* weights)
override;
103 virtual double* GetTuple(
vtkIdType tupleIdx)
111 virtual void GetTuple(
vtkIdType tupleIdx,
double* tuple)
124 virtual void GetIntegerTuple(
vtkIdType tupleIdx, vtkTypeInt64* tuple)
126 virtual void SetIntegerTuple(
vtkIdType tupleIdx, vtkTypeInt64* tuple)
140 virtual void GetUnsignedTuple(
vtkIdType tupleIdx, vtkTypeUInt64* tuple)
142 virtual void SetUnsignedTuple(
vtkIdType tupleIdx, vtkTypeUInt64* tuple)
155 double* GetTuple3(
vtkIdType tupleIdx)
VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples())
157 double* GetTuple4(
vtkIdType tupleIdx)
VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples())
159 double* GetTuple6(
vtkIdType tupleIdx)
VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples())
161 double* GetTuple9(
vtkIdType tupleIdx)
VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples())
171 virtual
void SetTuple(
vtkIdType tupleIdx, const
float* tuple)
172 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
173 virtual
void SetTuple(
vtkIdType tupleIdx, const
double* tuple)
174 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
184 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
185 void SetTuple2(
vtkIdType tupleIdx,
double val0,
double val1)
186 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
187 void SetTuple3(
vtkIdType tupleIdx,
double val0,
double val1,
double val2)
188 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
189 void SetTuple4(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3)
190 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
191 void SetTuple6(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3,
192 double val4,
double val5)
VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
193 void SetTuple9(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3,
194 double val4,
double val5,
double val6,
double val7,
double val8)
195 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
203 virtual
void InsertTuple(
vtkIdType tupleIdx, const
float* tuple)
VTK_EXPECTS(0 <= tupleIdx) = 0;
204 virtual
void InsertTuple(
vtkIdType tupleIdx, const
double* tuple)
VTK_EXPECTS(0 <= tupleIdx) = 0;
215 void InsertTuple3(
vtkIdType tupleIdx,
double val0,
double val1,
double val2)
217 void InsertTuple4(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3)
219 void InsertTuple6(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3,
220 double val4,
double val5)
VTK_EXPECTS(0 <= tupleIdx);
221 void InsertTuple9(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3,
222 double val4,
double val5,
double val6,
double val7,
double val8)
VTK_EXPECTS(0 <= tupleIdx);
231 virtual
vtkIdType InsertNextTuple(const
float* tuple) = 0;
232 virtual
vtkIdType InsertNextTuple(const
double* tuple) = 0;
241 void InsertNextTuple1(
double value);
242 void InsertNextTuple2(
double val0,
double val1);
243 void InsertNextTuple3(
double val0,
double val1,
double val2);
244 void InsertNextTuple4(
double val0,
double val1,
double val2,
double val3);
245 void InsertNextTuple6(
246 double val0,
double val1,
double val2,
double val3,
double val4,
double val5);
247 void InsertNextTuple9(
double val0,
double val1,
double val2,
double val3,
double val4,
248 double val5,
double val6,
double val7,
double val8);
257 virtual
void RemoveTuple(
vtkIdType tupleIdx)
258 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples()) = 0;
259 virtual
void RemoveFirstTuple() { this->RemoveTuple(0); }
260 virtual void RemoveLastTuple();
267 virtual double GetComponent(
vtkIdType tupleIdx,
int compIdx)
269 VTK_EXPECTS(0 <= compIdx && compIdx < GetNumberOfComponents());
278 virtual
void SetComponent(
vtkIdType tupleIdx,
int compIdx,
double value)
279 VTK_EXPECTS(0 <= tupleIdx && GetNumberOfComponents() * tupleIdx + compIdx < GetNumberOfValues())
280 VTK_EXPECTS(0 <= compIdx && compIdx < GetNumberOfComponents());
286 virtual
void InsertComponent(
vtkIdType tupleIdx,
int compIdx,
double value)
328 virtual
void FillComponent(
int compIdx,
double value)
329 VTK_EXPECTS(0 <= compIdx && compIdx < GetNumberOfComponents());
334 virtual
void Fill(
double value);
348 bool CopyComponent(
int dstComponent,
vtkAbstractArray* src,
int srcComponent) override;
349 virtual
bool CopyComponent(
int dstComponent,
vtkDataArray* src,
int srcComponent);
369 unsigned long GetActualMemorySize() const override;
375 void CreateDefaultLookupTable();
403 void GetRange(
double range[2],
int comp) { this->ComputeRange(range, comp); }
404 void GetRange(
double range[2],
int comp,
const unsigned char* ghosts,
unsigned char ghostsToSkip)
406 this->ComputeRange(range, comp, ghosts, ghostsToSkip);
421 this->GetRange(this->
Range, comp);
466 double range[2],
int comp,
const unsigned char* ghosts,
unsigned char ghostsToSkip)
468 this->ComputeFiniteRange(range, comp, ghosts, ghostsToSkip);
483 this->GetFiniteRange(this->FiniteRange, comp);
484 return this->FiniteRange;
513 void GetDataTypeRange(
double range[2]);
514 double GetDataTypeMin();
515 double GetDataTypeMax();
516 static void GetDataTypeRange(
int type,
double range[2]);
517 static double GetDataTypeMin(
int type);
518 static double GetDataTypeMax(
int type);
525 virtual double GetMaxNorm();
639 virtual void ComputeRange(
double range[2],
int comp);
640 virtual void ComputeRange(
641 double range[2],
int comp,
const unsigned char* ghosts,
unsigned char ghostsToSkip = 0xff);
661 virtual void ComputeFiniteRange(
double range[2],
int comp);
662 virtual void ComputeFiniteRange(
663 double range[2],
int comp,
const unsigned char* ghosts,
unsigned char ghostsToSkip = 0xff);
682 virtual bool ComputeScalarRange(
double* ranges);
683 virtual bool ComputeScalarRange(
684 double* ranges,
const unsigned char* ghosts,
unsigned char ghostsToSkip = 0xff);
700 virtual bool ComputeVectorRange(
double range[2]);
701 virtual bool ComputeVectorRange(
702 double range[2],
const unsigned char* ghosts,
unsigned char ghostsToSkip = 0xff);
720 virtual bool ComputeFiniteScalarRange(
double* ranges);
721 virtual bool ComputeFiniteScalarRange(
722 double* ranges,
const unsigned char* ghosts,
unsigned char ghostsToSkip = 0xff);
738 virtual bool ComputeFiniteVectorRange(
double range[2]);
739 virtual bool ComputeFiniteVectorRange(
740 double range[2],
const unsigned char* ghosts,
unsigned char ghostsToSkip = 0xff);
749 double FiniteRange[2];
759 VTK_ABI_NAMESPACE_END
765 VTK_ABI_NAMESPACE_BEGIN
772 VTK_ABI_NAMESPACE_END
void Modified() override
Removes out-of-date PER_COMPONENT() and PER_FINITE_COMPONENT() values.
void GetRange(double range[2])
The range of the data array values will be returned in the provided range array argument.
void GetFiniteRange(double range[2], int comp)
The range of the data array values for the given component will be returned in the provided range arr...
virtual void InsertTuplesStartingAt(vtkIdType dstStart, vtkIdList *srcIds, vtkAbstractArray *source)=0
Copy the tuples indexed in srcIds from the source array to the tuple locations starting at index dstS...
int GetArrayType() const override
Method for type-checking in FastDownCast implementations.
int GetNumberOfComponents() const
Set/Get the dimension (n) of the components.
virtual void GetTuples(vtkIdList *tupleIds, vtkAbstractArray *output)
Given a list of tuple ids, return an array of tuples.
Abstract superclass for all arrays.
map scalar values into colors via a lookup table
void GetFiniteRange(double range[2], int comp, const unsigned char *ghosts, unsigned char ghostsToSkip)
The range of the data array values for the given component will be returned in the provided range arr...
virtual MemorySpace GetMemorySpace()
Return the MemorySpace of where the data is stored.
void GetRange(double range[2], int comp, const unsigned char *ghosts, unsigned char ghostsToSkip)
The range of the data array values for the given component will be returned in the provided range arr...
virtual void InterpolateTuple(vtkIdType dstTupleIdx, vtkIdList *ptIndices, vtkAbstractArray *source, double *weights)=0
Set the tuple at dstTupleIdx in this array to the interpolated tuple value, given the ptIndices in th...
int GetElementComponentSize() const override
Return the size, in bytes, of the lowest-level element of an array.
void GetFiniteRange(double range[2])
The range of the data array values will be returned in the provided range array argument.
double * GetFiniteRange(int comp)
Return the range of the data array values for the given component.
dynamic, self-adjusting array of double
double * GetRange(int comp)
Return the range of the data array values for the given component.
vtkIdType GetNumberOfValues() const
Get the total number of values in the array.
auto Range(IterablePtr iterable, Options &&...opts) -> typename detail::IterableTraits< typename detail::StripPointers< IterablePtr >::type >::RangeType
Generate an iterable STL proxy object for a VTK container.
virtual int GetDataTypeSize() const =0
Return the size of the underlying data type.
#define VTK_MARSHALMANUAL
double * GetFiniteRange()
Return the range of the data array.
a simple class to control print indentation
double * GetRange()
Return the range of the data array.
virtual int CopyInformation(vtkInformation *infoFrom, vtkTypeBool deep=1)
Copy information instance.
Array-Of-Structs implementation of vtkGenericDataArray.
list of point or cell ids
abstract superclass for arrays of numeric data
vtkLookupTable * LookupTable
vtkIdType GetNumberOfTuples() const
Get the number of complete tuples (a component group) in the array.
#define VTK_SIZEHINT(...)
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.
virtual void InsertTuple(vtkIdType dstTupleIdx, vtkIdType srcTupleIdx, vtkAbstractArray *source)=0
Insert the tuple at srcTupleIdx in the source array into this array at dstTupleIdx.
std::integral_constant< int, VTK_OPAQUE > DataTypeTag
int IsNumeric() const override
This method is here to make backward compatibility easier.
virtual vtkIdType InsertNextTuple(vtkIdType srcTupleIdx, vtkAbstractArray *source)=0
Insert the tuple from srcTupleIdx in the source array at the end of this array.
virtual void SetTuple(vtkIdType dstTupleIdx, vtkIdType srcTupleIdx, vtkAbstractArray *source)=0
Set the tuple at dstTupleIdx in this array to the tuple at srcTupleIdx in the source array...
std::integral_constant< int, vtkArrayTypes::VTK_ABSTRACT_ARRAY > ArrayTypeTag
vtkArrayDownCast_FastCastMacro(vtkDataArray)
virtual void * GetDeviceVoidPointer(vtkIdType valueIdx)
Return a pointer to the data that live on a device (CUDA or HIP).
#define VTK_DEPRECATED_IN_9_7_0(reason)
virtual void InsertTuples(vtkIdList *dstIds, vtkIdList *srcIds, vtkAbstractArray *source)=0
Copy the tuples indexed in srcIds from the source array to the tuple locations indexed by dstIds in t...
represent and manipulate 3D points
Represents and manipulates a collection of data arrays.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.