Go to the documentation of this file.
40 #ifndef vtkArrayListTemplate_h
41 #define vtkArrayListTemplate_h
69 const double *weights,
vtkIdType outId) = 0;
94 for (
int j=0; j < this->
NumComp; ++j)
96 this->Output[outId*this->NumComp+j] = this->Input[inId*this->NumComp+j];
101 const double *weights,
vtkIdType outId)
override
103 for (
int j=0; j < this->
NumComp; ++j)
108 v += weights[i] * static_cast<double>(this->Input[ids[i]*this->NumComp+j]);
110 this->Output[outId*this->NumComp+j] = static_cast<T>(v);
118 for (
int j=0; j < numComp; ++j)
120 v = this->Input[v0*numComp+j] +
121 t * (this->Input[v1*numComp+j] - this->Input[v0*numComp+j]);
122 this->Output[outId*numComp+j] = static_cast<T>(v);
128 for (
int j=0; j < this->
NumComp; ++j)
130 this->Output[outId*this->NumComp+j] = this->
NullValue;
144 template <
typename TInput,
typename TOutput>
161 for (
int j=0; j < this->
NumComp; ++j)
163 this->Output[outId*this->NumComp+j] = static_cast<TOutput>(this->Input[inId*this->NumComp+j]);
168 const double *weights,
vtkIdType outId)
override
170 for (
int j=0; j < this->
NumComp; ++j)
175 v += weights[i] * static_cast<double>(this->Input[ids[i]*this->NumComp+j]);
177 this->Output[outId*this->NumComp+j] = static_cast<TOutput>(v);
185 for (
int j=0; j < numComp; ++j)
187 v = this->Input[v0*numComp+j] +
188 t * (this->Input[v1*numComp+j] - this->Input[v0*numComp+j]);
189 this->Output[outId*numComp+j] = static_cast<TOutput>(v);
195 for (
int j=0; j < this->
NumComp; ++j)
197 this->Output[outId*this->NumComp+j] = this->
NullValue;
212 template <
typename T>
214 vtkIdType numTuples,
int numComp, T nullValue);
231 double nullValue=0.0);
248 for (std::vector<BaseArrayPair*>::iterator it =
Arrays.begin();
251 (*it)->Copy(inId, outId);
258 for (std::vector<BaseArrayPair*>::iterator it =
Arrays.begin();
261 (*it)->Interpolate(numWeights, ids, weights, outId);
268 for (std::vector<BaseArrayPair*>::iterator it =
Arrays.begin();
271 (*it)->InterpolateEdge(v0, v1, t, outId);
278 for (std::vector<BaseArrayPair*>::iterator it =
Arrays.begin();
281 (*it)->AssignNullValue(outId);
288 for (std::vector<BaseArrayPair*>::iterator it =
Arrays.begin();
298 for (std::vector<BaseArrayPair*>::iterator it =
Arrays.begin();
308 return static_cast<vtkIdType>(
Arrays.size());
314 #include "vtkArrayListTemplate.txx"
virtual void * WriteVoidPointer(vtkIdType valueIdx, vtkIdType numValues)=0
Get the address of a particular data index.
BaseArrayPair(vtkIdType num, int numComp, vtkDataArray *outArray)
virtual void Copy(vtkIdType inId, vtkIdType outId)=0
vtkTypeBool IsExcluded(vtkDataArray *da)
vtkIdType GetNumberOfArrays()
vtkDataArray * AddArrayPair(vtkIdType numTuples, vtkDataArray *inArray, vtkStdString &outArrayName, double nullValue, vtkTypeBool promote)
void AssignNullValue(vtkIdType outId) override
void AddSelfInterpolatingArrays(vtkIdType numOutPts, vtkDataSetAttributes *attr, double nullValue=0.0)
represent and manipulate attribute data in a dataset
virtual void AssignNullValue(vtkIdType outId)=0
void Copy(vtkIdType inId, vtkIdType outId) override
void Interpolate(int numWeights, const vtkIdType *ids, const double *weights, vtkIdType outId)
void InterpolateEdge(vtkIdType v0, vtkIdType v1, double t, vtkIdType outId) override
abstract superclass for arrays of numeric data
void Copy(vtkIdType inId, vtkIdType outId)
void InterpolateEdge(vtkIdType v0, vtkIdType v1, double t, vtkIdType outId) override
virtual void * GetVoidPointer(vtkIdType valueIdx)=0
Return a void pointer.
void AssignNullValue(vtkIdType outId) override
void InterpolateEdge(vtkIdType v0, vtkIdType v1, double t, vtkIdType outId)
void Realloc(vtkIdType sze) override
void Interpolate(int numWeights, const vtkIdType *ids, const double *weights, vtkIdType outId) override
void Interpolate(int numWeights, const vtkIdType *ids, const double *weights, vtkIdType outId) override
virtual void Interpolate(int numWeights, const vtkIdType *ids, const double *weights, vtkIdType outId)=0
void AddArrays(vtkIdType numOutPts, vtkDataSetAttributes *inPD, vtkDataSetAttributes *outPD, double nullValue=0.0, vtkTypeBool promote=true)
void CreateArrayPair(ArrayList *list, T *inData, T *outData, vtkIdType numTuples, int numComp, T nullValue)
vtkSmartPointer< vtkDataArray > OutputArray
void Copy(vtkIdType inId, vtkIdType outId) override
void Realloc(vtkIdType sze)
RealArrayPair(TInput *in, TOutput *out, vtkIdType num, int numComp, vtkDataArray *outArray, TOutput null)
virtual void Realloc(vtkIdType sze)=0
void AssignNullValue(vtkIdType outId)
virtual void InterpolateEdge(vtkIdType v0, vtkIdType v1, double t, vtkIdType outId)=0
void Realloc(vtkIdType sze) override
std::vector< BaseArrayPair * > Arrays
void ExcludeArray(vtkDataArray *da)
Wrapper around std::string to keep symbols short.
std::vector< vtkDataArray * > ExcludedArrays
ArrayPair(T *in, T *out, vtkIdType num, int numComp, vtkDataArray *outArray, T null)
~RealArrayPair() override