35 #ifndef vtkDataArray_h
36 #define vtkDataArray_h
39 #include "vtkCommonCoreModule.h"
40 #include "vtkVTK_USE_SCALED_SOA_ARRAYS.h"
87 double* weights)
override;
134 virtual
void SetTuple(
vtkIdType tupleIdx, const
float* tuple)
135 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
136 virtual
void SetTuple(
vtkIdType tupleIdx, const
double* tuple)
137 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
147 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
148 void SetTuple2(
vtkIdType tupleIdx,
double val0,
double val1)
149 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
150 void SetTuple3(
vtkIdType tupleIdx,
double val0,
double val1,
double val2)
151 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
152 void SetTuple4(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3)
153 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
154 void SetTuple6(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3,
155 double val4,
double val5)
VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
156 void SetTuple9(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3,
157 double val4,
double val5,
double val6,
double val7,
double val8)
158 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples());
178 void InsertTuple3(
vtkIdType tupleIdx,
double val0,
double val1,
double val2)
180 void InsertTuple4(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3)
182 void InsertTuple6(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3,
183 double val4,
double val5)
VTK_EXPECTS(0 <= tupleIdx);
184 void InsertTuple9(
vtkIdType tupleIdx,
double val0,
double val1,
double val2,
double val3,
185 double val4,
double val5,
double val6,
double val7,
double val8)
VTK_EXPECTS(0 <= tupleIdx);
194 virtual
vtkIdType InsertNextTuple(const
float* tuple) = 0;
195 virtual
vtkIdType InsertNextTuple(const
double* tuple) = 0;
204 void InsertNextTuple1(
double value);
205 void InsertNextTuple2(
double val0,
double val1);
206 void InsertNextTuple3(
double val0,
double val1,
double val2);
207 void InsertNextTuple4(
double val0,
double val1,
double val2,
double val3);
208 void InsertNextTuple6(
209 double val0,
double val1,
double val2,
double val3,
double val4,
double val5);
210 void InsertNextTuple9(
double val0,
double val1,
double val2,
double val3,
double val4,
211 double val5,
double val6,
double val7,
double val8);
221 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples()) = 0;
222 virtual
void RemoveFirstTuple() { this->RemoveTuple(0); }
241 VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples())
242 VTK_EXPECTS(0 <= compIdx && compIdx < GetNumberOfComponents());
259 virtual
void GetData(
288 virtual
void FillComponent(
int compIdx,
double value)
289 VTK_EXPECTS(0 <= compIdx && compIdx < GetNumberOfComponents());
304 virtual
void CopyComponent(
int dstComponent,
vtkDataArray* src,
int srcComponent);
321 unsigned long GetActualMemorySize() const override;
327 void CreateDefaultLookupTable();
346 void GetRange(
double range[2],
int comp) { this->ComputeRange(
range, comp); }
359 this->GetRange(this->
Range, comp);
405 this->GetFiniteRange(this->FiniteRange, comp);
406 return this->FiniteRange;
566 double FiniteRange[2];
581 switch (
source->GetArrayType())
Abstract superclass for all arrays.
vtkIdType GetNumberOfTuples() const
Get the number of complete tuples (a component group) in the array.
virtual int GetDataTypeSize() const =0
Return the size of the underlying data type.
abstract superclass for arrays of numeric data
static double GetDataTypeMin(int type)
void InterpolateTuple(vtkIdType dstTupleIdx, vtkIdList *ptIndices, vtkAbstractArray *source, double *weights) override
Set the tuple at dstTupleIdx in this array to the interpolated tuple value, given the ptIndices in th...
static vtkInformationDoubleVectorKey * L2_NORM_RANGE()
This key is used to hold tight bounds on the $L_2$ norm of tuples in the array.
virtual bool ComputeVectorRange(double range[2])
Returns true if the range was computed.
int IsNumeric() const override
This method is here to make backward compatibility easier.
void GetDataTypeRange(double range[2])
These methods return the Min and Max possible range of the native data type.
void InterpolateTuple(vtkIdType dstTupleIdx, vtkIdType srcTupleIdx1, vtkAbstractArray *source1, vtkIdType srcTupleIdx2, vtkAbstractArray *source2, double t) override
Insert the tuple at dstTupleIdx in this array to the tuple interpolated from the two tuple indices,...
virtual void ComputeRange(double range[2], int comp)
Compute the range for a specific component.
virtual bool ComputeScalarRange(double *ranges)
Computes the range for each component of an array, the length of ranges must be two times the number ...
double * GetFiniteRange(int comp)
Return the range of the data array values for the given component.
void InsertTuples(vtkIdList *dstIds, vtkIdList *srcIds, vtkAbstractArray *source) override
Copy the tuples indexed in srcIds from the source array to the tuple locations indexed by dstIds in t...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int GetArrayType() const override
Method for type-checking in FastDownCast implementations.
int GetElementComponentSize() const override
Return the size, in bytes, of the lowest-level element of an array.
virtual bool ComputeFiniteVectorRange(double range[2])
Returns true if the range was computed.
virtual void RemoveLastTuple()
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...
double * GetRange(int comp)
Return the range of the data array values for the given component.
static vtkInformationStringKey * UNITS_LABEL()
A human-readable string indicating the units for the array data.
void GetTuples(vtkIdType p1, vtkIdType p2, vtkAbstractArray *output) override
Get the tuples for the range of tuple ids specified (i.e., p1->p2 inclusive).
void GetTuples(vtkIdList *tupleIds, vtkAbstractArray *output) override
Given a list of tuple ids, return an array of tuples.
virtual void GetTuple(vtkIdType tupleIdx, double *tuple)=0
Get the data tuple at tupleIdx by filling in a user-provided array, Make sure that your array is larg...
double GetTuple1(vtkIdType tupleIdx)
These methods are included as convenience for the wrappers.
static vtkInformationDoubleVectorKey * COMPONENT_RANGE()
This key is used to hold tight bounds on the range of one component over all tuples of the array.
int CopyInformation(vtkInformation *infoFrom, int deep=1) override
Copy information instance.
void GetRange(double range[2])
The range of the data array values will be returned in the provided range array argument.
virtual double * GetTuple(vtkIdType tupleIdx)=0
Get the data tuple at tupleIdx.
static vtkDataArray * FastDownCast(vtkAbstractArray *source)
Perform a fast, safe cast from a vtkAbstractArray to a vtkDataArray.
double * GetRange()
Return the range of the data array.
double * GetFiniteRange()
Return the range of the data array.
static vtkInformationDoubleVectorKey * L2_NORM_FINITE_RANGE()
This key is used to hold tight bounds on the $L_2$ norm of tuples in the array.
virtual double GetComponent(vtkIdType tupleIdx, int compIdx)
Return the data component at the location specified by tupleIdx and compIdx.
vtkIdType InsertNextTuple(vtkIdType srcTupleIdx, vtkAbstractArray *source) override
Insert the tuple from srcTupleIdx in the source array at the end of this array.
virtual void ComputeFiniteRange(double range[2], int comp)
Compute the range for a specific component.
virtual double GetMaxNorm()
Return the maximum norm for the tuples.
double * GetTuple2(vtkIdType tupleIdx)
void InsertTuple(vtkIdType dstTupleIdx, vtkIdType srcTupleIdx, vtkAbstractArray *source) override
Insert the tuple at srcTupleIdx in the source array into this array at dstTupleIdx.
static void GetDataTypeRange(int type, double range[2])
void GetFiniteRange(double range[2])
The range of the data array values will be returned in the provided range array argument.
static vtkDataArray * CreateDataArray(int dataType)
Creates an array for dataType where dataType is one of VTK_BIT, VTK_CHAR, VTK_SIGNED_CHAR,...
void InsertTuples(vtkIdType dstStart, vtkIdType n, vtkIdType srcStart, vtkAbstractArray *source) override
Copy n consecutive tuples starting at srcStart from the source array to this array,...
virtual bool ComputeFiniteScalarRange(double *ranges)
Computes the range for each component of an array, the length of ranges must be two times the number ...
void Modified() override
Removes out-of-date L2_NORM_RANGE() and L2_NORM_FINITE_RANGE() values.
static double GetDataTypeMax(int type)
vtkLookupTable * LookupTable
dynamic, self-adjusting array of double
list of point or cell ids
a simple class to control print indentation
map scalar values into colors via a lookup table
represent and manipulate 3D points
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.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
vtkArrayDownCast_FastCastMacro(vtkDataArray)
#define VTK_SIZEHINT(...)