VTK
vtkTypedDataArray.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkTypedDataArray.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 =========================================================================*/
33 #ifndef vtkTypedDataArray_h
34 #define vtkTypedDataArray_h
35 
36 #include "vtkDataArray.h"
37 
38 #include "vtkCommonCoreModule.h" // For export macro
39 #include "vtkTypeTemplate.h" // For vtkTypeTemplate
40 #include "vtkTypeTraits.h" // For type metadata
41 
42 template <class Scalar> class vtkTypedDataArrayIterator;
43 
44 template <class Scalar>
46  public vtkTypeTemplate<vtkTypedDataArray<Scalar>, vtkDataArray>
47 {
48 public:
50  typedef Scalar ValueType;
51 
56 
61 
66 
69 
77 
79  int GetDataType();
80 
83 
88 
90  virtual void SetTupleValue(vtkIdType i, const ValueType *t) = 0;
91 
94  virtual void InsertTupleValue(vtkIdType i, const ValueType *t) = 0;
95 
99 
101 
105 
107  virtual ValueType GetValue(vtkIdType idx) = 0;
108 
111 
114  virtual void SetValue(vtkIdType idx, ValueType value) = 0;
115 
117  virtual void GetTupleValue(vtkIdType idx, ValueType *t) = 0;
118 
122 
124  virtual void InsertValue(vtkIdType idx, ValueType v) = 0;
125 
128 
129 protected:
132 
133 private:
134  vtkTypedDataArray(const vtkTypedDataArray &); // Not implemented.
135  void operator=(const vtkTypedDataArray &); // Not implemented.
136 };
137 
138 // Included here to resolve chicken/egg issue with container/iterator:
139 #include "vtkTypedDataArrayIterator.h" // For iterator
140 
141 template <class Scalar> inline
143 {
144  return Iterator(this, 0);
145 }
146 
147 template <class Scalar> inline
149 {
150  return Iterator(this, this->MaxId + 1);
151 }
152 
153 #include "vtkTypedDataArray.txx"
154 
155 #endif //vtkTypedDataArray_h
156 
157 // VTK-HeaderTest-Exclude: vtkTypedDataArray.h
vtkTypedDataArray::LookupTypedValue
virtual void LookupTypedValue(ValueType value, vtkIdList *ids)=0
vtkTypedDataArray::GetArrayType
virtual int GetArrayType()
Definition: vtkTypedDataArray.h:127
vtkTypeTraits
Template defining traits of native types used by VTK.
Definition: vtkTypeTraits.h:31
vtkTypedDataArray::FastDownCast
static vtkTypedDataArray< Scalar > * FastDownCast(vtkAbstractArray *source)
vtkTypedDataArray::SetTupleValue
virtual void SetTupleValue(vtkIdType i, const ValueType *t)=0
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkTypedDataArray::InsertNextValue
virtual vtkIdType InsertNextValue(ValueType v)=0
vtkTypedDataArray
Extend vtkDataArray with abstract type-specific API.
Definition: vtkTypedDataArray.h:47
vtkgl::v
const GLdouble * v
Definition: vtkgl.h:11595
vtkTypedDataArray::vtkTypedDataArray
vtkTypedDataArray()
vtkTypedDataArray::GetDataType
int GetDataType()
vtkTypeTemplate.h
vtkTypedDataArray::InsertValue
virtual void InsertValue(vtkIdType idx, ValueType v)=0
vtkTypedDataArray::InsertTupleValue
virtual void InsertTupleValue(vtkIdType i, const ValueType *t)=0
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:821
vtkTypedDataArray::InsertNextTupleValue
virtual vtkIdType InsertNextTupleValue(const ValueType *t)=0
vtkTypedDataArray::ValueType
Scalar ValueType
Definition: vtkTypedDataArray.h:50
vtkgl::value
GLsizei const GLfloat * value
Definition: vtkgl.h:12021
vtkCommonCoreModule.h
vtkgl::ids
GLuint * ids
Definition: vtkgl.h:11831
vtkTypeTraits.h
vtkTypedDataArray::GetValueReference
virtual ValueType & GetValueReference(vtkIdType idx)=0
vtkTypedDataArray::~vtkTypedDataArray
~vtkTypedDataArray()
vtkgl::num
GLuint GLuint num
Definition: vtkgl.h:16907
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:36
vtkTypedDataArray::GetValue
virtual ValueType GetValue(vtkIdType idx)=0
vtkTypedDataArray::End
Iterator End()
Definition: vtkTypedDataArray.h:148
vtkTypedDataArray::Begin
Iterator Begin()
Definition: vtkTypedDataArray.h:142
vtkTypedDataArray::VTK_DATA_TYPE
@ VTK_DATA_TYPE
Definition: vtkTypedDataArray.h:68
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:65
vtkgl::t
GLdouble GLdouble t
Definition: vtkgl.h:11602
vtkDataArray.h
vtkAbstractArray::TypedDataArray
@ TypedDataArray
Definition: vtkAbstractArray.h:462
vtkTypedDataArray::LookupTypedValue
virtual vtkIdType LookupTypedValue(ValueType value)=0
vtkTypedDataArrayIterator.h
vtkTypedDataArrayIterator
STL-style random access iterator for vtkTypedDataArrays.
Definition: vtkTypedDataArrayIterator.h:41
vtkTypedDataArray::GetTupleValue
virtual void GetTupleValue(vtkIdType idx, ValueType *t)=0
vtkTypedDataArray::Iterator
vtkTypedDataArrayIterator< ValueType > Iterator
Definition: vtkTypedDataArray.h:55
vtkTypedDataArray::SetValue
virtual void SetValue(vtkIdType idx, ValueType value)=0
vtkTypedDataArray::SetNumberOfValues
virtual void SetNumberOfValues(vtkIdType num)
vtkTypedDataArray::GetDataTypeSize
int GetDataTypeSize()
vtkTypeTemplate
Provides the equivalent of vtkTypeMacro for use with template classes.
Definition: vtkTypeTemplate.h:40