VTK  9.1.0
vtkAOSDataArrayTemplate.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAOSDataArrayTemplate.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
31 #ifndef vtkAOSDataArrayTemplate_h
32 #define vtkAOSDataArrayTemplate_h
33 
34 #include "vtkBuffer.h" // For storage buffer.
35 #include "vtkBuild.h" // For VTK_BUILD_SHARED_LIBS
36 #include "vtkCommonCoreModule.h" // For export macro
37 #include "vtkCompiler.h" // for VTK_USE_EXTERN_TEMPLATE
38 #include "vtkGenericDataArray.h"
39 
40 // The export macro below makes no sense, but is necessary for older compilers
41 // when we export instantiations of this class from vtkCommonCore.
42 template <class ValueTypeT>
43 class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate
44  : public vtkGenericDataArray<vtkAOSDataArrayTemplate<ValueTypeT>, ValueTypeT>
45 {
47 
48 public:
51  typedef typename Superclass::ValueType ValueType;
52 
54  {
56  VTK_DATA_ARRAY_DELETE = vtkAbstractArray::VTK_DATA_ARRAY_DELETE,
57  VTK_DATA_ARRAY_ALIGNED_FREE = vtkAbstractArray::VTK_DATA_ARRAY_ALIGNED_FREE,
58  VTK_DATA_ARRAY_USER_DEFINED = vtkAbstractArray::VTK_DATA_ARRAY_USER_DEFINED
59  };
60 
62 
66  ValueType GetValue(vtkIdType valueIdx) const
67  VTK_EXPECTS(0 <= valueIdx && valueIdx < GetNumberOfValues())
68  {
69  return this->Buffer->GetBuffer()[valueIdx];
70  }
71 
76  VTK_EXPECTS(0 <= valueIdx && valueIdx < GetNumberOfValues())
77  {
78  this->Buffer->GetBuffer()[valueIdx] = value;
79  }
80 
82 
85  void GetTypedTuple(vtkIdType tupleIdx, ValueType* tuple) const
86  VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples())
87  {
88  const vtkIdType valueIdx = tupleIdx * this->NumberOfComponents;
89  std::copy(this->Buffer->GetBuffer() + valueIdx,
90  this->Buffer->GetBuffer() + valueIdx + this->NumberOfComponents, tuple);
91  }
93 
95 
98  void SetTypedTuple(vtkIdType tupleIdx, const ValueType* tuple)
99  VTK_EXPECTS(0 <= tupleIdx && tupleIdx < GetNumberOfTuples())
100  {
101  const vtkIdType valueIdx = tupleIdx * this->NumberOfComponents;
102  std::copy(tuple, tuple + this->NumberOfComponents, this->Buffer->GetBuffer() + valueIdx);
103  }
105 
109  ValueType GetTypedComponent(vtkIdType tupleIdx, int comp) const VTK_EXPECTS(0 <= tupleIdx &&
110  tupleIdx < GetNumberOfTuples()) VTK_EXPECTS(0 <= comp && comp < GetNumberOfComponents())
111  {
112  return this->Buffer->GetBuffer()[this->NumberOfComponents * tupleIdx + comp];
113  }
114 
116 
119  void SetTypedComponent(vtkIdType tupleIdx, int comp, ValueType value) VTK_EXPECTS(0 <= tupleIdx &&
120  tupleIdx < GetNumberOfTuples()) VTK_EXPECTS(0 <= comp && comp < GetNumberOfComponents())
121  {
122  const vtkIdType valueIdx = tupleIdx * this->NumberOfComponents + comp;
123  this->SetValue(valueIdx, value);
124  }
126 
128 
131  void FillTypedComponent(int compIdx, ValueType value) override;
133 
135 
138  void FillValue(ValueType value) override;
139  void Fill(double value) override;
141 
143 
148  ValueType* WritePointer(vtkIdType valueIdx, vtkIdType numValues);
149  void* WriteVoidPointer(vtkIdType valueIdx, vtkIdType numValues) override;
151 
153 
161  void* GetVoidPointer(vtkIdType valueIdx) override;
163 
165 
179  void SetArray(VTK_ZEROCOPY ValueType* array, vtkIdType size, int save, int deleteMethod);
181  void SetVoidArray(void* array, vtkIdType size, int save) override;
182  void SetVoidArray(void* array, vtkIdType size, int save, int deleteMethod) override;
184 
191  void SetArrayFreeFunction(void (*callback)(void*)) override;
192 
193  // Overridden for optimized implementations:
194  void SetTuple(vtkIdType tupleIdx, const float* tuple) override;
195  void SetTuple(vtkIdType tupleIdx, const double* tuple) override;
196  // MSVC doesn't like 'using' here (error C2487). Just forward instead:
197  // using Superclass::SetTuple;
198  void SetTuple(vtkIdType dstTupleIdx, vtkIdType srcTupleIdx, vtkAbstractArray* source) override
199  {
200  this->Superclass::SetTuple(dstTupleIdx, srcTupleIdx, source);
201  }
202  void InsertTuple(vtkIdType tupleIdx, const float* source) override;
203  void InsertTuple(vtkIdType tupleIdx, const double* source) override;
204  // MSVC doesn't like 'using' here (error C2487). Just forward instead:
205  // using Superclass::InsertTuple;
206  void InsertTuple(vtkIdType dstTupleIdx, vtkIdType srcTupleIdx, vtkAbstractArray* source) override
207  {
208  this->Superclass::InsertTuple(dstTupleIdx, srcTupleIdx, source);
209  }
210  void InsertComponent(vtkIdType tupleIdx, int compIdx, double value) override;
211  vtkIdType InsertNextTuple(const float* tuple) override;
212  vtkIdType InsertNextTuple(const double* tuple) override;
213  // MSVC doesn't like 'using' here (error C2487). Just forward instead:
214  // using Superclass::InsertNextTuple;
216  {
217  return this->Superclass::InsertNextTuple(srcTupleIdx, source);
218  }
219  void GetTuple(vtkIdType tupleIdx, double* tuple) override;
220  double* GetTuple(vtkIdType tupleIdx) override;
221 
233 
238  typedef ValueType* Iterator;
239  Iterator Begin() { return Iterator(this->GetVoidPointer(0)); }
240  Iterator End() { return Iterator(this->GetVoidPointer(this->MaxId + 1)); }
241 
243 
252 
253  int GetArrayType() const override { return vtkAbstractArray::AoSDataArrayTemplate; }
255  bool HasStandardMemoryLayout() const override { return true; }
256  void ShallowCopy(vtkDataArray* other) override;
257 
258  // Reimplemented for efficiency:
260  vtkIdType dstStart, vtkIdType n, vtkIdType srcStart, vtkAbstractArray* source) override;
261  // MSVC doesn't like 'using' here (error C2487). Just forward instead:
262  // using Superclass::InsertTuples;
263  void InsertTuples(vtkIdList* dstIds, vtkIdList* srcIds, vtkAbstractArray* source) override
264  {
265  this->Superclass::InsertTuples(dstIds, srcIds, source);
266  }
267 
268 protected:
271 
276  bool AllocateTuples(vtkIdType numTuples);
277 
282  bool ReallocateTuples(vtkIdType numTuples);
283 
285 
286 private:
288  void operator=(const vtkAOSDataArrayTemplate&) = delete;
289 
290  friend class vtkGenericDataArray<vtkAOSDataArrayTemplate<ValueTypeT>, ValueTypeT>;
291 };
292 
293 // Declare vtkArrayDownCast implementations for AoS containers:
295 
296 // This macro is used by the subclasses to create dummy
297 // declarations for these functions such that the wrapper
298 // can see them. The wrappers ignore vtkAOSDataArrayTemplate.
299 #define vtkCreateWrappedArrayInterface(T) \
300  int GetDataType() const override; \
301  void GetTypedTuple(vtkIdType i, T* tuple) VTK_EXPECTS(0 <= i && i < GetNumberOfTuples()); \
302  void SetTypedTuple(vtkIdType i, const T* tuple) VTK_EXPECTS(0 <= i && i < GetNumberOfTuples()); \
303  void InsertTypedTuple(vtkIdType i, const T* tuple) VTK_EXPECTS(0 <= i); \
304  vtkIdType InsertNextTypedTuple(const T* tuple); \
305  T GetValue(vtkIdType id) const VTK_EXPECTS(0 <= id && id < GetNumberOfValues()); \
306  void SetValue(vtkIdType id, T value) VTK_EXPECTS(0 <= id && id < GetNumberOfValues()); \
307  bool SetNumberOfValues(vtkIdType number) override; \
308  void InsertValue(vtkIdType id, T f) VTK_EXPECTS(0 <= id); \
309  vtkIdType InsertNextValue(T f); \
310  T* GetValueRange(int comp) VTK_SIZEHINT(2); \
311  T* GetValueRange() VTK_SIZEHINT(2); \
312  T* WritePointer(vtkIdType id, vtkIdType number); \
313  T* GetPointer(vtkIdType id); \
314  void SetArray(VTK_ZEROCOPY T* array, vtkIdType size, int save); \
315  void SetArray(VTK_ZEROCOPY T* array, vtkIdType size, int save, int deleteMethod)
316 
317 #endif // header guard
318 
319 // This portion must be OUTSIDE the include blockers. This is used to tell
320 // libraries other than vtkCommonCore that instantiations of
321 // vtkAOSDataArrayTemplate can be found externally. This prevents each library
322 // from instantiating these on their own.
323 #ifdef VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATING
324 #define VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(T) \
325  namespace vtkDataArrayPrivate \
326  { \
327  VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkAOSDataArrayTemplate<T>, double); \
328  } \
329  template class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate<T>
330 
331 #elif defined(VTK_USE_EXTERN_TEMPLATE)
332 #ifndef VTK_AOS_DATA_ARRAY_TEMPLATE_EXTERN
333 #define VTK_AOS_DATA_ARRAY_TEMPLATE_EXTERN
334 #ifdef _MSC_VER
335 #pragma warning(push)
336 // The following is needed when the vtkAOSDataArrayTemplate is declared
337 // dllexport and is used from another class in vtkCommonCore
338 #pragma warning(disable : 4910) // extern and dllexport incompatible
339 #endif
340 vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate);
341 #ifdef _MSC_VER
342 #pragma warning(pop)
343 #endif
344 #endif // VTK_AOS_DATA_ARRAY_TEMPLATE_EXTERN
345 
346 // The following clause is only for MSVC
347 #elif defined(_MSC_VER) && !defined(VTK_BUILD_SHARED_LIBS)
348 #pragma warning(push)
349 
350 // C4091: 'extern ' : ignored on left of 'int' when no variable is declared
351 #pragma warning(disable : 4091)
352 
353 // Compiler-specific extension warning.
354 #pragma warning(disable : 4231)
355 
356 // We need to disable warning 4910 and do an extern dllexport
357 // anyway. When deriving vtkCharArray and other types from an
358 // instantiation of this template the compiler does an explicit
359 // instantiation of the base class. From outside the vtkCommon
360 // library we block this using an extern dllimport instantiation.
361 // For classes inside vtkCommon we should be able to just do an
362 // extern instantiation, but VS complains about missing
363 // definitions. We cannot do an extern dllimport inside vtkCommon
364 // since the symbols are local to the dll. An extern dllexport
365 // seems to be the only way to convince VS to do the right
366 // thing, so we just disable the warning.
367 #pragma warning(disable : 4910) // extern and dllexport incompatible
368 
369 // Use an "extern explicit instantiation" to give the class a DLL
370 // interface. This is a compiler-specific extension.
371 vtkInstantiateTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate);
372 
373 #pragma warning(pop)
374 
375 #endif
376 
377 // VTK-HeaderTest-Exclude: vtkAOSDataArrayTemplate.h
vtkAOSDataArrayTemplate::InsertTuple
void InsertTuple(vtkIdType dstTupleIdx, vtkIdType srcTupleIdx, vtkAbstractArray *source) override
Insert the tuple at srcTupleIdx in the source array into this array at dstTupleIdx.
Definition: vtkAOSDataArrayTemplate.h:206
vtkAOSDataArrayTemplate::InsertNextTuple
vtkIdType InsertNextTuple(vtkIdType srcTupleIdx, vtkAbstractArray *source) override
Insert the tuple from srcTupleIdx in the source array at the end of this array.
Definition: vtkAOSDataArrayTemplate.h:215
vtkAOSDataArrayTemplate::GetTuple
void GetTuple(vtkIdType tupleIdx, double *tuple) override
Get the data tuple at tupleIdx by filling in a user-provided array, Make sure that your array is larg...
vtkAbstractArray::DeleteMethod
DeleteMethod
Definition: vtkAbstractArray.h:322
VTK_ZEROCOPY
#define VTK_ZEROCOPY
Definition: vtkWrappingHints.h:45
vtkAbstractArray::VTK_DATA_ARRAY_ALIGNED_FREE
@ VTK_DATA_ARRAY_ALIGNED_FREE
Definition: vtkAbstractArray.h:325
vtkGenericDataArray::SetValue
void SetValue(vtkIdType valueIdx, ValueType value)
Set the value at valueIdx to value.
Definition: vtkGenericDataArray.h:119
vtkAOSDataArrayTemplate::ReallocateTuples
bool ReallocateTuples(vtkIdType numTuples)
Allocate space for numTuples.
vtkAOSDataArrayTemplate::WritePointer
ValueType * WritePointer(vtkIdType valueIdx, vtkIdType numValues)
Get the address of a particular data index.
vtkAOSDataArrayTemplate::InsertTuples
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,...
VTK_EXPECTS
#define VTK_EXPECTS(x)
Definition: vtkWrappingHints.h:47
vtkAOSDataArrayTemplate::Begin
Iterator Begin()
Definition: vtkAOSDataArrayTemplate.h:239
vtkX3D::value
@ value
Definition: vtkX3D.h:226
vtkAbstractArray::VTK_DATA_ARRAY_DELETE
@ VTK_DATA_ARRAY_DELETE
Definition: vtkAbstractArray.h:324
vtkIdType
int vtkIdType
Definition: vtkType.h:332
vtkGenericDataArray::GetVoidPointer
void * GetVoidPointer(vtkIdType valueIdx) override
Default implementation raises a runtime error.
vtkAOSDataArrayTemplate::SetArray
void SetArray(ValueType *array, vtkIdType size, int save)
This method lets the user specify data to be held by the array.
vtkAOSDataArrayTemplate::vtkTemplateTypeMacro
vtkTemplateTypeMacro(SelfType, GenericDataArrayType)
vtkAOSDataArrayTemplate::SelfType
vtkAOSDataArrayTemplate< ValueTypeT > SelfType
Definition: vtkAOSDataArrayTemplate.h:49
vtkAOSDataArrayTemplate::SetVoidArray
void SetVoidArray(void *array, vtkIdType size, int save) override
This method lets the user specify data to be held by the array.
vtkAbstractArray::VTK_DATA_ARRAY_FREE
@ VTK_DATA_ARRAY_FREE
Definition: vtkAbstractArray.h:323
vtkAOSDataArrayTemplate::New
static vtkAOSDataArrayTemplate * New()
vtkGenericDataArray
Base interface for all typed vtkDataArray subclasses.
Definition: vtkGenericDataArray.h:80
vtkAOSDataArrayTemplate::InsertNextTuple
vtkIdType InsertNextTuple(const float *tuple) override
Insert the data tuple at the end of the array and return the tuple index at which the data was insert...
vtkAOSDataArrayTemplate::GetPointer
ValueType * GetPointer(vtkIdType valueIdx)
Get the address of a particular data index.
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:159
vtkAOSDataArrayTemplate::SetTuple
void SetTuple(vtkIdType tupleIdx, const float *tuple) override
Set the data tuple at tupleIdx.
vtkAOSDataArrayTemplate::InsertComponent
void InsertComponent(vtkIdType tupleIdx, int compIdx, double value) override
Insert value at the location specified by tupleIdx and compIdx.
vtkAOSDataArrayTemplate::ShallowCopy
void ShallowCopy(vtkDataArray *other) override
Create a shallow copy of other into this, if possible.
vtkAOSDataArrayTemplate::SetArray
void SetArray(ValueType *array, vtkIdType size, int save, int deleteMethod)
This method lets the user specify data to be held by the array.
vtkAOSDataArrayTemplate::SetTypedComponent
void SetTypedComponent(vtkIdType tupleIdx, int comp, ValueType value)
Set component comp of the tuple at tupleIdx to value.
Definition: vtkAOSDataArrayTemplate.h:119
vtkGenericDataArray::DataChanged
void DataChanged() override
Tell the array explicitly that the data has changed.
vtkAOSDataArrayTemplate::GetTypedTuple
void GetTypedTuple(vtkIdType tupleIdx, ValueType *tuple) const
Copy the tuple at tupleIdx into tuple.
Definition: vtkAOSDataArrayTemplate.h:85
vtkAbstractArray::GetNumberOfTuples
vtkIdType GetNumberOfTuples() const
Get the number of complete tuples (a component group) in the array.
Definition: vtkAbstractArray.h:172
vtkAOSDataArrayTemplate::InsertTuple
void InsertTuple(vtkIdType tupleIdx, const float *source) override
Insert the data tuple at tupleIdx.
vtkBuffer< ValueType >
vtkAOSDataArrayTemplate::HasStandardMemoryLayout
bool HasStandardMemoryLayout() const override
Returns true if this array uses the standard memory layout defined in the VTK user guide,...
Definition: vtkAOSDataArrayTemplate.h:255
vtkAbstractArray::GetNumberOfValues
vtkIdType GetNumberOfValues() const
Get the total number of values in the array.
Definition: vtkAbstractArray.h:180
vtkAbstractArray::AoSDataArrayTemplate
@ AoSDataArrayTemplate
Definition: vtkAbstractArray.h:637
vtkBuffer.h
vtkAOSDataArrayTemplate::GetValue
ValueType GetValue(vtkIdType valueIdx) const
Get the value at valueIdx.
Definition: vtkAOSDataArrayTemplate.h:66
vtkAbstractArray::VTK_DATA_ARRAY_USER_DEFINED
@ VTK_DATA_ARRAY_USER_DEFINED
Definition: vtkAbstractArray.h:326
vtkAOSDataArrayTemplate::NewIterator
vtkArrayIterator * NewIterator() override
Subclasses must override this method and provide the right kind of templated vtkArrayIteratorTemplate...
save
void save(Archiver &ar, const std::string &str, const unsigned int vtkNotUsed(version))
Definition: vtkVariantBoostSerialization.h:64
vtkAOSDataArrayTemplate::FillValue
void FillValue(ValueType value) override
Set all the values in array to value.
vtkGenericDataArray.h
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:140
vtkX3D::size
@ size
Definition: vtkX3D.h:259
vtkAOSDataArrayTemplate::SetArrayFreeFunction
void SetArrayFreeFunction(void(*callback)(void *)) override
This method allows the user to specify a custom free function to be called when the array is dealloca...
vtkAOSDataArrayTemplate::End
Iterator End()
Definition: vtkAOSDataArrayTemplate.h:240
vtkAOSDataArrayTemplate::~vtkAOSDataArrayTemplate
~vtkAOSDataArrayTemplate() override
vtkAOSDataArrayTemplate::DataElementChanged
void DataElementChanged(vtkIdType)
Tell the array explicitly that a single data element has changed.
Definition: vtkAOSDataArrayTemplate.h:232
vtkArrayDownCast_TemplateFastCastMacro
vtkArrayDownCast_TemplateFastCastMacro(vtkAOSDataArrayTemplate)
vtkCompiler.h
vtkAOSDataArrayTemplate::SetValue
void SetValue(vtkIdType valueIdx, ValueType value)
Set the value at valueIdx to value.
Definition: vtkAOSDataArrayTemplate.h:75
vtkAOSDataArrayTemplate::InsertNextTuple
vtkIdType InsertNextTuple(const double *tuple) override
Insert the data tuple at the end of the array and return the tuple index at which the data was insert...
vtkAOSDataArrayTemplate::SetVoidArray
void SetVoidArray(void *array, vtkIdType size, int save, int deleteMethod) override
This method lets the user specify data to be held by the array.
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:76
vtkAOSDataArrayTemplate::GetTypedComponent
ValueType GetTypedComponent(vtkIdType tupleIdx, int comp) const
Get component comp of the tuple at tupleIdx.
Definition: vtkAOSDataArrayTemplate.h:109
vtkInstantiateTemplateMacro
vtkInstantiateTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate)
vtkAOSDataArrayTemplate::FillTypedComponent
void FillTypedComponent(int compIdx, ValueType value) override
Set component comp of all tuples to value.
vtkAOSDataArrayTemplate::GetTuple
double * GetTuple(vtkIdType tupleIdx) override
Get the data tuple at tupleIdx.
vtkAOSDataArrayTemplate::InsertTuple
void InsertTuple(vtkIdType tupleIdx, const double *source) override
Insert the data tuple at tupleIdx.
vtkArrayIterator
Abstract superclass to iterate over elements in an vtkAbstractArray.
Definition: vtkArrayIterator.h:50
vtkAOSDataArrayTemplate::Fill
void Fill(double value) override
Set all the values in array to value.
vtkAOSDataArrayTemplate::GetArrayType
int GetArrayType() const override
Method for type-checking in FastDownCast implementations.
Definition: vtkAOSDataArrayTemplate.h:253
vtkAOSDataArrayTemplate::WriteVoidPointer
void * WriteVoidPointer(vtkIdType valueIdx, vtkIdType numValues) override
Get the address of a particular data index.
vtkAOSDataArrayTemplate::InsertTuples
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...
Definition: vtkAOSDataArrayTemplate.h:263
vtkAOSDataArrayTemplate::Buffer
vtkBuffer< ValueType > * Buffer
Definition: vtkAOSDataArrayTemplate.h:284
vtkAOSDataArrayTemplate::FastDownCast
static vtkAOSDataArrayTemplate< ValueType > * FastDownCast(vtkAbstractArray *source)
Perform a fast, safe cast from a vtkAbstractArray to a vtkAOSDataArrayTemplate.
vtkAOSDataArrayTemplate
Array-Of-Structs implementation of vtkGenericDataArray.
Definition: vtkAOSDataArrayTemplate.h:45
vtkAOSDataArrayTemplate::AllocateTuples
bool AllocateTuples(vtkIdType numTuples)
Allocate space for numTuples.
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:998
vtkAOSDataArrayTemplate::vtkAOSDataArrayTemplate
vtkAOSDataArrayTemplate()
vtkAOSDataArrayTemplate::SetTuple
void SetTuple(vtkIdType tupleIdx, const double *tuple) override
Set the data tuple at tupleIdx.
VTK_NEWINSTANCE
#define VTK_NEWINSTANCE
Definition: vtkWrappingHints.h:44
vtkAOSDataArrayTemplate::GetVoidPointer
void * GetVoidPointer(vtkIdType valueIdx) override
Get the address of a particular data index.
vtkAOSDataArrayTemplate::ValueType
Superclass::ValueType ValueType
Definition: vtkAOSDataArrayTemplate.h:51
vtkAOSDataArrayTemplate::SetTypedTuple
void SetTypedTuple(vtkIdType tupleIdx, const ValueType *tuple)
Set this array's tuple at tupleIdx to the values in tuple.
Definition: vtkAOSDataArrayTemplate.h:98
vtkAOSDataArrayTemplate::Iterator
ValueType * Iterator
Legacy support for array-of-structs value iteration.
Definition: vtkAOSDataArrayTemplate.h:238
vtkAOSDataArrayTemplate::SetTuple
void SetTuple(vtkIdType dstTupleIdx, vtkIdType srcTupleIdx, vtkAbstractArray *source) override
Set the tuple at dstTupleIdx in this array to the tuple at srcTupleIdx in the source array.
Definition: vtkAOSDataArrayTemplate.h:198
vtkExternTemplateMacro
vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate)
vtkAbstractArray::NumberOfComponents
int NumberOfComponents
Definition: vtkAbstractArray.h:679