VTK
vtkPeriodicDataArray.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPeriodicDataArray.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 =========================================================================*/
15 
28 #ifndef vtkPeriodicDataArray_h
29 #define vtkPeriodicDataArray_h
30 
31 #include "vtkMappedDataArray.h" // Parent
32 #include "vtkDataArrayTemplate.h" // Template
33 
34 template <class Scalar>
36 public vtkTypeTemplate <vtkPeriodicDataArray <Scalar>, vtkMappedDataArray <Scalar> >
37 {
38 public:
39  virtual void PrintSelf(ostream &os, vtkIndent indent);
40 
43 
45  void Initialize();
46 
48  void GetTuples(vtkIdList *ptIds, vtkAbstractArray *output);
49 
52 
54  void Squeeze();
55 
58 
61 
64 
67 
69  void ClearLookup();
70 
73  double* GetTuple(vtkIdType i);
74 
76  void GetTuple(vtkIdType i, double *tuple);
77 
80 
83 
86  Scalar GetValue(vtkIdType idx);
87 
91 
93  void GetTupleValue(vtkIdType idx, Scalar *t);
94 
96  unsigned long GetActualMemorySize();
97 
100 
102  int Resize(vtkIdType numTuples);
103 
106 
109 
111  void SetTuple(vtkIdType i, const float *source);
112 
114  void SetTuple(vtkIdType i, const double *source);
115 
118 
120  void InsertTuple(vtkIdType i, const float *source);
121 
123  void InsertTuple(vtkIdType i, const double *source);
124 
126 
127  void InsertTuples(vtkIdList *dstIds, vtkIdList *srcIds,
130 
132 
133  void InsertTuples(vtkIdType dstStart, vtkIdType n, vtkIdType srcStart,
136 
139 
142 
145 
148 
151 
153 
155  vtkAbstractArray* source, double* weights);
157 
159 
161  vtkIdType id2, vtkAbstractArray *source2, double t);
163 
166 
169 
172 
175 
177  void SetTupleValue(vtkIdType i, const Scalar *t);
178 
180  void InsertTupleValue(vtkIdType i, const Scalar *t);
181 
184 
186  void SetValue(vtkIdType idx, Scalar value);
187 
190 
192  void InsertValue(vtkIdType idx, Scalar v);
193 
195 
199 
200 protected:
203 
205  virtual void Transform(Scalar* tuple) = 0;
206 
208  virtual bool ComputeScalarRange(double* range);
209 
211  virtual bool ComputeVectorRange(double range[2]);
212 
214  virtual void ComputePeriodicRange();
215 
218 
219  bool Normalize; // If transformed vector must be normalized
220 
221 private:
222  vtkPeriodicDataArray(const vtkPeriodicDataArray &); // Not implemented.
223  void operator=(const vtkPeriodicDataArray &); // Not implemented.
224 
225  Scalar* TempScalarArray; // Temporary array used by GetTupleValue methods
226  double* TempDoubleArray; // Temporary array used by GetTuple vethods
227  vtkIdType TempTupleIdx; // Location of currently stored Temp Tuple to use as cache
228  vtkDataArrayTemplate<Scalar>* Data; // Original data
229 
230  bool InvalidRange;
231  double PeriodicRange[6]; // Transformed periodic range
232 };
233 
234 #include "vtkPeriodicDataArray.txx"
235 
236 #endif //vtkPeriodicDataArray_h
237 // VTK-HeaderTest-Exclude: vtkPeriodicDataArray.h
vtkPeriodicDataArray::vtkPeriodicDataArray
vtkPeriodicDataArray()
vtkPeriodicDataArray
Map native an Array into an angulat periodic array.
Definition: vtkPeriodicDataArray.h:37
vtkPeriodicDataArray::GetVariantValue
vtkVariant GetVariantValue(vtkIdType idx)
vtkPeriodicDataArray::DeepCopy
void DeepCopy(vtkDataArray *da)
vtkgl::weights
const GLbyte * weights
Definition: vtkgl.h:12766
vtkPeriodicDataArray::Normalize
bool Normalize
Definition: vtkPeriodicDataArray.h:219
vtkPeriodicDataArray::InsertTupleValue
void InsertTupleValue(vtkIdType i, const Scalar *t)
vtkPeriodicDataArray::SetTuple
void SetTuple(vtkIdType i, const float *source)
vtkPeriodicDataArray::GetValueReference
Scalar & GetValueReference(vtkIdType idx)
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkPeriodicDataArray::GetActualMemorySize
unsigned long GetActualMemorySize()
vtkPeriodicDataArray::LookupValue
void LookupValue(vtkVariant value, vtkIdList *ids)
vtkPeriodicDataArray::Transform
virtual void Transform(Scalar *tuple)=0
vtkPeriodicDataArray::ComputeVectorRange
virtual bool ComputeVectorRange(double range[2])
vtkPeriodicDataArray::InsertNextTuple
vtkIdType InsertNextTuple(const double *source)
vtkPeriodicDataArray::InsertTuples
void InsertTuples(vtkIdList *dstIds, vtkIdList *srcIds, vtkAbstractArray *source)
vtkgl::n
GLclampd n
Definition: vtkgl.h:14370
vtkPeriodicDataArray::LookupTypedValue
vtkIdType LookupTypedValue(Scalar value)
vtkPeriodicDataArray::InsertTuple
void InsertTuple(vtkIdType i, const double *source)
vtkPeriodicDataArray::InsertNextValue
vtkIdType InsertNextValue(Scalar v)
vtkPeriodicDataArray::InsertTuples
void InsertTuples(vtkIdType dstStart, vtkIdType n, vtkIdType srcStart, vtkAbstractArray *source)
vtkgl::v
const GLdouble * v
Definition: vtkgl.h:11595
vtkPeriodicDataArray::GetTupleValue
void GetTupleValue(vtkIdType idx, Scalar *t)
vtkPeriodicDataArray::SetTuple
void SetTuple(vtkIdType i, vtkIdType j, vtkAbstractArray *source)
vtkPeriodicDataArray::GetTuple
void GetTuple(vtkIdType i, double *tuple)
vtkPeriodicDataArray::RemoveFirstTuple
void RemoveFirstTuple()
vtkPeriodicDataArray::RemoveTuple
void RemoveTuple(vtkIdType id)
vtkPeriodicDataArray::SetTupleValue
void SetTupleValue(vtkIdType i, const Scalar *t)
vtkMappedDataArray.h
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkPeriodicDataArray::InsertNextTuple
vtkIdType InsertNextTuple(vtkIdType j, vtkAbstractArray *source)
vtkgl::range
GLenum GLint * range
Definition: vtkgl.h:14180
vtkPeriodicDataArray::SetValue
void SetValue(vtkIdType idx, Scalar value)
vtkPeriodicDataArray::InsertValue
void InsertValue(vtkIdType idx, Scalar v)
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:821
vtkPeriodicDataArray::LookupTypedValue
void LookupTypedValue(Scalar value, vtkIdList *ids)
vtkPeriodicDataArray::InsertNextTuple
vtkIdType InsertNextTuple(const float *source)
vtkPeriodicDataArray::GetValue
Scalar GetValue(vtkIdType idx)
vtkPeriodicDataArray::InvalidateRange
void InvalidateRange()
vtkPeriodicDataArray::Initialize
void Initialize()
vtkPeriodicDataArray::GetTuple
double * GetTuple(vtkIdType i)
vtkgl::value
GLsizei const GLfloat * value
Definition: vtkgl.h:12021
vtkPeriodicDataArray::GetTuples
void GetTuples(vtkIdList *ptIds, vtkAbstractArray *output)
vtkgl::ids
GLuint * ids
Definition: vtkgl.h:11831
vtkPeriodicDataArray::ComputePeriodicRange
virtual void ComputePeriodicRange()
vtkPeriodicDataArray::Squeeze
void Squeeze()
vtkPeriodicDataArray::SetNumberOfTuples
void SetNumberOfTuples(vtkIdType number)
vtkPeriodicDataArray::InitializeArray
void InitializeArray(vtkDataArrayTemplate< Scalar > *inputData)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkVariant
A atomic type representing the union of many types.
Definition: vtkVariant.h:79
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:36
vtkDataArrayTemplate.h
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkDataArrayTemplate< Scalar >
vtkPeriodicDataArray::Allocate
int Allocate(vtkIdType sz, vtkIdType ext)
vtkPeriodicDataArray::LookupValue
vtkIdType LookupValue(vtkVariant value)
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:65
vtkPeriodicDataArray::SetVariantValue
void SetVariantValue(vtkIdType idx, vtkVariant value)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkPeriodicDataArray::InterpolateTuple
void InterpolateTuple(vtkIdType i, vtkIdType id1, vtkAbstractArray *source1, vtkIdType id2, vtkAbstractArray *source2, double t)
vtkgl::t
GLdouble GLdouble t
Definition: vtkgl.h:11602
vtkPeriodicDataArray::RemoveLastTuple
void RemoveLastTuple()
vtkPeriodicDataArray::ComputeScalarRange
virtual bool ComputeScalarRange(double *range)
vtkArrayIterator
Abstract superclass to iterate over elements in an vtkAbstractArray.
Definition: vtkArrayIterator.h:49
vtkPeriodicDataArray::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
vtkPeriodicDataArray::Resize
int Resize(vtkIdType numTuples)
vtkPeriodicDataArray::InsertNextTupleValue
vtkIdType InsertNextTupleValue(const Scalar *t)
vtkPeriodicDataArray::SetTuple
void SetTuple(vtkIdType i, const double *source)
vtkPeriodicDataArray::DeepCopy
void DeepCopy(vtkAbstractArray *aa)
vtkPeriodicDataArray::GetTuples
void GetTuples(vtkIdType p1, vtkIdType p2, vtkAbstractArray *output)
vtkPeriodicDataArray::NewIterator
vtkArrayIterator * NewIterator()
vtkPeriodicDataArray::InterpolateTuple
void InterpolateTuple(vtkIdType i, vtkIdList *ptIndices, vtkAbstractArray *source, double *weights)
vtkPeriodicDataArray::~vtkPeriodicDataArray
~vtkPeriodicDataArray()
vtkPeriodicDataArray::InsertTuple
void InsertTuple(vtkIdType i, const float *source)
vtkPeriodicDataArray::ClearLookup
void ClearLookup()
vtkPeriodicDataArray::InsertTuple
void InsertTuple(vtkIdType i, vtkIdType j, vtkAbstractArray *source)
vtkTypeTemplate
Provides the equivalent of vtkTypeMacro for use with template classes.
Definition: vtkTypeTemplate.h:40