VTK  9.0.1
vtkTestDataArray.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkTestDataArray.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 =========================================================================*/
29 #ifndef vtkTestDataArray_h
30 #define vtkTestDataArray_h
31 
32 #include "vtkCommonCoreModule.h" // For export macro
33 #include "vtkGenericDataArray.h"
34 #include "vtkObjectFactory.h" // For VTK_STANDARD_NEW_BODY
35 
36 template <class ArrayT>
38  : public vtkGenericDataArray<vtkTestDataArray<ArrayT>, typename ArrayT::ValueType>
39 {
40 public:
41  typedef ArrayT ArrayType;
42  typedef typename ArrayType::ValueType ValueType;
46 
49 
51 
52  void PrintSelf(ostream& os, vtkIndent indent) override
53  {
55  }
56 
57  ValueType GetValue(vtkIdType valueIdx) const { return this->Array->GetValue(valueIdx); }
58  void SetValue(vtkIdType valueIdx, ValueType value) { this->Array->SetValue(valueIdx, value); }
59 
60  void GetTypedTuple(vtkIdType tupleIdx, ValueType* tuple) const
61  {
62  this->Array->SetTypedTuple(tupleIdx, tuple);
63  }
64  void SetTypedTuple(vtkIdType tupleIdx, const ValueType* tuple)
65  {
66  this->Array->SetTypedTuple(tupleIdx, tuple);
67  }
68 
69  ValueType GetTypedComponent(vtkIdType tupleIdx, int compIdx) const
70  {
71  return this->Array->GetTypedComponent(tupleIdx, compIdx);
72  }
73  void SetTypedComponent(vtkIdType tupleIdx, int compIdx, ValueType value)
74  {
75  this->Array->SetTypedComponent(tupleIdx, compIdx, value);
76  }
77 
78  void* GetVoidPointer(vtkIdType valueIdx) override
79  {
80  return this->Array->GetVoidPointer(valueIdx);
81  }
82 
83 protected:
84  vtkTestDataArray() { this->Array = ArrayType::New(); }
85  ~vtkTestDataArray() override { this->Array->Delete(); }
86 
87  bool AllocateTuples(vtkIdType numTuples) { return this->Array->Allocate(numTuples) != 0; }
88  bool ReallocateTuples(vtkIdType numTuples) { return this->Array->Allocate(numTuples) != 0; }
89 
90 private:
91  ArrayType* Array;
92 
93  vtkTestDataArray(const vtkTestDataArray&) = delete;
94  void operator=(const vtkTestDataArray&) = delete;
95 };
96 
97 #endif
98 // VTK-HeaderTest-Exclude: vtkTestDataArray.h
vtkTestDataArray::SetTypedComponent
void SetTypedComponent(vtkIdType tupleIdx, int compIdx, ValueType value)
Definition: vtkTestDataArray.h:73
vtkTestDataArray::ArrayType
ArrayT ArrayType
Definition: vtkTestDataArray.h:41
vtkTestDataArray::ReallocateTuples
bool ReallocateTuples(vtkIdType numTuples)
Definition: vtkTestDataArray.h:88
vtkX3D::value
@ value
Definition: vtkX3D.h:226
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkTestDataArray::GetTypedTuple
void GetTypedTuple(vtkIdType tupleIdx, ValueType *tuple) const
Definition: vtkTestDataArray.h:60
vtkTestDataArray::vtkAbstractTemplateTypeMacro
vtkAbstractTemplateTypeMacro(SelfType, GenericDataArrayType)
vtkGenericDataArray
Base interface for all typed vtkDataArray subclasses.
Definition: vtkGenericDataArray.h:79
vtkTestDataArray::vtkAOSArrayNewInstanceMacro
vtkAOSArrayNewInstanceMacro(SelfType)
vtkTestDataArray::vtkTestDataArray
vtkTestDataArray()
Definition: vtkTestDataArray.h:84
vtkObjectFactory.h
vtkTestDataArray::GetValue
ValueType GetValue(vtkIdType valueIdx) const
Definition: vtkTestDataArray.h:57
vtkTestDataArray
An implementation of vtkGenericDataArray for testing fallback algorithms.
Definition: vtkTestDataArray.h:37
vtkTestDataArray::GenericDataArrayType
vtkGenericDataArray< vtkTestDataArray< ArrayT >, ValueType > GenericDataArrayType
Definition: vtkTestDataArray.h:44
vtkTestDataArray::~vtkTestDataArray
~vtkTestDataArray() override
Definition: vtkTestDataArray.h:85
vtkDataArray::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkGenericDataArray.h
vtkTestDataArray::GetVoidPointer
void * GetVoidPointer(vtkIdType valueIdx) override
Return a void pointer.
Definition: vtkTestDataArray.h:78
vtkTestDataArray::AllocateTuples
bool AllocateTuples(vtkIdType numTuples)
Definition: vtkTestDataArray.h:87
vtkTestDataArray::SetTypedTuple
void SetTypedTuple(vtkIdType tupleIdx, const ValueType *tuple)
Definition: vtkTestDataArray.h:64
vtkTestDataArray::New
static vtkTestDataArray< ArrayType > * New()
Definition: vtkTestDataArray.h:50
vtkTestDataArray::SelfType
vtkTestDataArray< ArrayT > SelfType
Definition: vtkTestDataArray.h:43
vtkTestDataArray::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Definition: vtkTestDataArray.h:52
VTK_STANDARD_NEW_BODY
#define VTK_STANDARD_NEW_BODY(thisClass)
Definition: vtkObjectFactory.h:341
vtkTestDataArray::ValueType
ArrayType::ValueType ValueType
Definition: vtkTestDataArray.h:42
vtkTestDataArray::GetTypedComponent
ValueType GetTypedComponent(vtkIdType tupleIdx, int compIdx) const
Definition: vtkTestDataArray.h:69
vtkTestDataArray::SetValue
void SetValue(vtkIdType valueIdx, ValueType value)
Definition: vtkTestDataArray.h:58