VTK
vtkArray.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkArray.h
5 
6 -------------------------------------------------------------------------
7  Copyright 2008 Sandia Corporation.
8  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9  the U.S. Government retains certain rights in this software.
10 -------------------------------------------------------------------------
11 
12  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
13  All rights reserved.
14  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
15 
16  This software is distributed WITHOUT ANY WARRANTY; without even
17  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
18  PURPOSE. See the above copyright notice for more information.
19 
20 =========================================================================*/
21 
59 #ifndef vtkArray_h
60 #define vtkArray_h
61 
62 #include "vtkCommonCoreModule.h" // For export macro
63 #include "vtkArrayCoordinates.h"
64 #include "vtkArrayExtents.h"
65 #include "vtkObject.h"
66 #include "vtkStdString.h"
67 #include "vtkVariant.h"
68 
70 {
71 public:
73  void PrintSelf(ostream &os, vtkIndent indent);
74 
78 
79 //BTX
80  enum
81  {
83  DENSE = 0,
85  SPARSE = 1
86  };
87 //ETX
88 
95  static vtkArray* CreateArray(int StorageType, int ValueType);
96 
100  virtual bool IsDense() = 0;
101 
103 
111  void Resize(const CoordinateT i);
112  void Resize(const CoordinateT i, const CoordinateT j);
113  void Resize(const CoordinateT i, const CoordinateT j, const CoordinateT k);
114  void Resize(const vtkArrayRange& i);
115  void Resize(const vtkArrayRange& i, const vtkArrayRange& j);
116  void Resize(const vtkArrayRange& i, const vtkArrayRange& j, const vtkArrayRange& k);
117  void Resize(const vtkArrayExtents& extents);
119 
125  virtual const vtkArrayExtents& GetExtents() = 0;
126 
130 
138 
142  virtual SizeT GetNonNullSize() = 0;
143 
145  void SetName(const vtkStdString& name);
148 
151 
154 
160  virtual void GetCoordinatesN(const SizeT n, vtkArrayCoordinates& coordinates) = 0;
161 
163 
166  inline vtkVariant GetVariantValue(CoordinateT i);
167  inline vtkVariant GetVariantValue(CoordinateT i, CoordinateT j);
168  inline vtkVariant GetVariantValue(CoordinateT i, CoordinateT j, CoordinateT k);
169  virtual vtkVariant GetVariantValue(const vtkArrayCoordinates& coordinates) = 0;
171 
177  virtual vtkVariant GetVariantValueN(const SizeT n) = 0;
178 
180 
183  inline void SetVariantValue(CoordinateT i, const vtkVariant& value);
184  inline void SetVariantValue(CoordinateT i, CoordinateT j, const vtkVariant& value);
185  inline void SetVariantValue(CoordinateT i, CoordinateT j, CoordinateT k, const vtkVariant& value);
186  virtual void SetVariantValue(const vtkArrayCoordinates& coordinates, const vtkVariant& value) = 0;
188 
194  virtual void SetVariantValueN(const SizeT n, const vtkVariant& value) = 0;
195 
197 
199  virtual void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const vtkArrayCoordinates& target_coordinates) = 0;
200  virtual void CopyValue(vtkArray* source, const SizeT source_index, const vtkArrayCoordinates& target_coordinates) = 0;
201  virtual void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const SizeT target_index) = 0;
203 
205  virtual vtkArray* DeepCopy() = 0;
206 
207 protected:
210 
211 private:
212  vtkArray(const vtkArray&); // Not implemented
213  void operator=(const vtkArray&); // Not implemented
214 
216  vtkStdString Name;
217 
220  virtual void InternalResize(const vtkArrayExtents&) = 0;
221 
223  virtual void InternalSetDimensionLabel(DimensionT i, const vtkStdString& label) = 0;
224 
226 
227  virtual vtkStdString InternalGetDimensionLabel(DimensionT i) = 0;
228 };
230 
232 {
233  return this->GetVariantValue(vtkArrayCoordinates(i));
234 }
235 
237 {
238  return this->GetVariantValue(vtkArrayCoordinates(i, j));
239 }
240 
242 {
243  return this->GetVariantValue(vtkArrayCoordinates(i, j, k));
244 }
245 
247 {
249 }
250 
252 {
254 }
255 
257 {
258  this->SetVariantValue(vtkArrayCoordinates(i, j, k), value);
259 }
260 
261 #endif
262 
263 // VTK-HeaderTest-Exclude: vtkArray.h
vtkArray::GetSize
SizeT GetSize()
vtkArray::GetVariantValue
virtual vtkVariant GetVariantValue(const vtkArrayCoordinates &coordinates)=0
vtkStdString.h
VTKCOMMONCORE_EXPORT
#define VTKCOMMONCORE_EXPORT
Definition: vtkCommonCoreModule.h:15
vtkArray::SetName
void SetName(const vtkStdString &name)
vtkVariant.h
vtkArrayExtents::SizeT
vtkTypeUInt64 SizeT
Definition: vtkArrayExtents.h:78
vtkArray::SizeT
vtkArrayExtents::SizeT SizeT
Definition: vtkArray.h:77
vtkArray::Resize
void Resize(const CoordinateT i, const CoordinateT j, const CoordinateT k)
vtkArray::Resize
void Resize(const vtkArrayExtents &extents)
vtkArrayRange
Stores a half-open range of array coordinates.
Definition: vtkArrayRange.h:51
vtkArray::Resize
void Resize(const CoordinateT i, const CoordinateT j)
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkgl::n
GLclampd n
Definition: vtkgl.h:14370
vtkArray::Resize
void Resize(const vtkArrayRange &i, const vtkArrayRange &j, const vtkArrayRange &k)
vtkArray::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkArray::GetDimensionLabel
vtkStdString GetDimensionLabel(DimensionT i)
vtkArray::SetVariantValue
virtual void SetVariantValue(const vtkArrayCoordinates &coordinates, const vtkVariant &value)=0
vtkArray::IsDense
virtual bool IsDense()=0
vtkArray::CopyValue
virtual void CopyValue(vtkArray *source, const vtkArrayCoordinates &source_coordinates, const SizeT target_index)=0
vtkArray::SetVariantValue
void SetVariantValue(CoordinateT i, const vtkVariant &value)
Definition: vtkArray.h:246
vtkArray::GetExtent
const vtkArrayRange GetExtent(DimensionT dimension)
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:821
vtkArray::SetVariantValueN
virtual void SetVariantValueN(const SizeT n, const vtkVariant &value)=0
vtkArray::CopyValue
virtual void CopyValue(vtkArray *source, const vtkArrayCoordinates &source_coordinates, const vtkArrayCoordinates &target_coordinates)=0
vtkArrayCoordinates.h
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkArray::GetDimensions
DimensionT GetDimensions()
vtkArray::vtkArray
vtkArray()
vtkgl::value
GLsizei const GLfloat * value
Definition: vtkgl.h:12021
vtkCommonCoreModule.h
vtkArray::Resize
void Resize(const vtkArrayRange &i)
vtkArray::GetVariantValue
vtkVariant GetVariantValue(CoordinateT i)
Definition: vtkArray.h:231
vtkArray::CreateArray
static vtkArray * CreateArray(int StorageType, int ValueType)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkArray::GetVariantValueN
virtual vtkVariant GetVariantValueN(const SizeT n)=0
vtkVariant
A atomic type representing the union of many types.
Definition: vtkVariant.h:79
vtkArray::GetCoordinatesN
virtual void GetCoordinatesN(const SizeT n, vtkArrayCoordinates &coordinates)=0
vtkArray::Resize
void Resize(const vtkArrayRange &i, const vtkArrayRange &j)
vtkArray
Abstract interface for N-dimensional arrays.
Definition: vtkArray.h:70
vtkObject.h
vtkArray::GetExtents
virtual const vtkArrayExtents & GetExtents()=0
vtkArray::CopyValue
virtual void CopyValue(vtkArray *source, const SizeT source_index, const vtkArrayCoordinates &target_coordinates)=0
vtkArray::GetNonNullSize
virtual SizeT GetNonNullSize()=0
vtkArrayExtents.h
vtkArray::Resize
void Resize(const CoordinateT i)
vtkArray::DeepCopy
virtual vtkArray * DeepCopy()=0
vtkArray::GetName
vtkStdString GetName()
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:48
vtkArray::CoordinateT
vtkArrayExtents::CoordinateT CoordinateT
Definition: vtkArray.h:75
vtkArrayExtents::DimensionT
vtkArrayCoordinates::DimensionT DimensionT
Definition: vtkArrayExtents.h:76
vtkArray::~vtkArray
~vtkArray()
vtkArray::SetDimensionLabel
void SetDimensionLabel(DimensionT i, const vtkStdString &label)
vtkArrayExtents
Stores the number of dimensions and valid coordinate ranges along each dimension for vtkArray.
Definition: vtkArrayExtents.h:74
vtkArrayCoordinates
Stores coordinate into an N-way array.
Definition: vtkArrayCoordinates.h:57
vtkArrayExtents::CoordinateT
vtkArrayCoordinates::CoordinateT CoordinateT
Definition: vtkArrayExtents.h:77
vtkArray::DimensionT
vtkArrayExtents::DimensionT DimensionT
Definition: vtkArray.h:76