VTK
vtkTypedArray.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkTypedArray.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
50#ifndef vtkTypedArray_h
51#define vtkTypedArray_h
52
53#include "vtkArray.h"
54
56
57template<typename T>
58class vtkTypedArray : public vtkArray
59{
60public:
61 vtkTemplateTypeMacro(vtkTypedArray<T>, vtkArray)
62 typedef typename vtkArray::CoordinateT CoordinateT;
63 typedef typename vtkArray::SizeT SizeT;
64
67
68 void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE;
69
70 // vtkArray API
71 vtkVariant GetVariantValue(const vtkArrayCoordinates& coordinates) VTK_OVERRIDE;
72 vtkVariant GetVariantValueN(const SizeT n) VTK_OVERRIDE;
73 void SetVariantValue(const vtkArrayCoordinates& coordinates, const vtkVariant& value) VTK_OVERRIDE;
74 void SetVariantValueN(const SizeT n, const vtkVariant& value) VTK_OVERRIDE;
75 void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const vtkArrayCoordinates& target_coordinates) VTK_OVERRIDE;
76 void CopyValue(vtkArray* source, const SizeT source_index, const vtkArrayCoordinates& target_coordinates) VTK_OVERRIDE;
77 void CopyValue(vtkArray* source, const vtkArrayCoordinates& source_coordinates, const SizeT target_index) VTK_OVERRIDE;
78
80
85 virtual const T& GetValue(CoordinateT i) = 0;
86 virtual const T& GetValue(CoordinateT i, CoordinateT j) = 0;
87 virtual const T& GetValue(CoordinateT i, CoordinateT j, CoordinateT k) = 0;
88 virtual const T& GetValue(const vtkArrayCoordinates& coordinates) = 0;
90
98 virtual const T& GetValueN(const SizeT n) = 0;
99
101
106 virtual void SetValue(CoordinateT i, const T& value) = 0;
107 virtual void SetValue(CoordinateT i, CoordinateT j, const T& value) = 0;
108 virtual void SetValue(CoordinateT i, CoordinateT j, CoordinateT k, const T& value) = 0;
109 virtual void SetValue(const vtkArrayCoordinates& coordinates, const T& value) = 0;
111
119 virtual void SetValueN(const SizeT n, const T& value) = 0;
120
121protected:
123 ~vtkTypedArray() VTK_OVERRIDE {}
124
125private:
126 vtkTypedArray(const vtkTypedArray&) VTK_DELETE_FUNCTION;
127 void operator=(const vtkTypedArray&) VTK_DELETE_FUNCTION;
128};
129
130#include "vtkTypedArray.txx"
131
132#endif
133
134// VTK-HeaderTest-Exclude: vtkTypedArray.h
Stores coordinate into an N-way array.
Abstract interface for N-dimensional arrays.
Definition: vtkArray.h:71
void SetVariantValue(CoordinateT i, const vtkVariant &value)
Overwrites the value stored in the array at the given coordinates.
Definition: vtkArray.h:294
vtkArrayExtents::SizeT SizeT
Definition: vtkArray.h:78
vtkArrayExtents::CoordinateT CoordinateT
Definition: vtkArray.h:76
vtkVariant GetVariantValue(CoordinateT i)
Returns the value stored in the array at the given coordinates.
Definition: vtkArray.h:279
a simple class to control print indentation
Definition: vtkIndent.h:40
Provides a type-specific interface to N-way arrays.
Definition: vtkTypedArray.h:59
virtual const T & GetValue(const vtkArrayCoordinates &coordinates)=0
~vtkTypedArray() override
vtkVariant GetVariantValue(const vtkArrayCoordinates &coordinates) override
virtual void SetValue(CoordinateT i, CoordinateT j, const T &value)=0
virtual void SetValue(CoordinateT i, const T &value)=0
Overwrites the value stored in the array at the given coordinates.
vtkVariant GetVariantValueN(const SizeT n) override
Returns the n-th value stored in the array, where n is in the range [0, GetNonNullSize()).
vtkTemplateTypeMacro(vtkTypedArray< T >, vtkArray) typedef typename vtkArray typedef vtkArray::SizeT SizeT
Definition: vtkTypedArray.h:61
void CopyValue(vtkArray *source, const SizeT source_index, const vtkArrayCoordinates &target_coordinates) override
void SetVariantValueN(const SizeT n, const vtkVariant &value) override
Overwrites the n-th value stored in the array, where n is in the range [0, GetNonNullSize()).
virtual const T & GetValue(CoordinateT i, CoordinateT j, CoordinateT k)=0
void CopyValue(vtkArray *source, const vtkArrayCoordinates &source_coordinates, const SizeT target_index) override
virtual void SetValueN(const SizeT n, const T &value)=0
Overwrites the n-th value stored in the array, where n is in the range [0, GetNonNullSize()).
virtual void SetValue(const vtkArrayCoordinates &coordinates, const T &value)=0
void CopyValue(vtkArray *source, const vtkArrayCoordinates &source_coordinates, const vtkArrayCoordinates &target_coordinates) override
Overwrites a value with a value retrieved from another array.
virtual const T & GetValue(CoordinateT i, CoordinateT j)=0
virtual void SetValue(CoordinateT i, CoordinateT j, CoordinateT k, const T &value)=0
virtual const T & GetValueN(const SizeT n)=0
Returns the n-th value stored in the array, where n is in the range [0, GetNonNullSize()).
virtual const T & GetValue(CoordinateT i)=0
Returns the value stored in the array at the given coordinates.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetVariantValue(const vtkArrayCoordinates &coordinates, const vtkVariant &value) override
A atomic type representing the union of many types.
Definition: vtkVariant.h:76
@ value
Definition: vtkX3D.h:220
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)