VTK  9.6.20260302
Portals.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright (c) Kitware, Inc.
3// SPDX-FileCopyrightText: Copyright 2012 Sandia Corporation.
4// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
5
6#ifndef vtkmlib_Portals_h
7#define vtkmlib_Portals_h
8
9#include "PortalTraits.h"
10#include "vtkAcceleratorsVTKmCoreModule.h"
11#include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_7_0
12#include "vtkmConfigCore.h" //required for general viskores setup
13
14VTK_ABI_NAMESPACE_BEGIN
15class vtkDataArray;
16class vtkPoints;
17VTK_ABI_NAMESPACE_END
18
19#include <viskores/cont/internal/IteratorFromArrayPortal.h>
20
21namespace tovtkm
22{
23VTK_ABI_NAMESPACE_BEGIN
24
25template <typename Type, typename VTKDataArrayType_>
26class VTK_DEPRECATED_IN_9_7_0("No longer needed") VISKORES_ALWAYS_EXPORT vtkArrayPortal
27{
28 static const int NUM_COMPONENTS = viskores::VecTraits<Type>::NUM_COMPONENTS;
29
30public:
31 typedef VTKDataArrayType_ VTKDataArrayType;
34
35 VISKORES_EXEC_CONT
37
38 VISKORES_CONT
39 vtkArrayPortal(VTKDataArrayType* array, viskores::Id size);
40
41 VISKORES_SUPPRESS_EXEC_WARNINGS
42 VISKORES_EXEC_CONT
43 viskores::Id GetNumberOfValues() const { return this->Size; }
44
45 VISKORES_SUPPRESS_EXEC_WARNINGS
46 VISKORES_EXEC_CONT
47 inline ValueType Get(viskores::Id index) const;
48
49 VISKORES_SUPPRESS_EXEC_WARNINGS
50 VISKORES_EXEC_CONT
51 inline void Set(viskores::Id index, const ValueType& value) const;
52
53 typedef viskores::cont::internal::IteratorFromArrayPortal<vtkArrayPortal> IteratorType;
54
55 VISKORES_CONT
56 IteratorType GetIteratorBegin() const { return IteratorType(*this, 0); }
57
58 VISKORES_CONT
59 IteratorType GetIteratorEnd() const { return IteratorType(*this, this->Size); }
60
61 VISKORES_CONT
62 VTKDataArrayType* GetVtkData() const { return this->VTKData; }
63
64private:
65 VTKDataArrayType* VTKData;
66 viskores::Id Size;
67};
68
69template <typename Type>
70class VTK_DEPRECATED_IN_9_7_0("No longer needed") VISKORES_ALWAYS_EXPORT vtkPointsPortal
71{
72 static const int NUM_COMPONENTS = viskores::VecTraits<Type>::NUM_COMPONENTS;
73
74public:
77
78 VISKORES_EXEC_CONT
80
81 VISKORES_CONT
82 vtkPointsPortal(vtkPoints* points, viskores::Id size);
83
84 VISKORES_SUPPRESS_EXEC_WARNINGS
85 VISKORES_EXEC_CONT
86 viskores::Id GetNumberOfValues() const { return this->Size; }
87
88 VISKORES_SUPPRESS_EXEC_WARNINGS
89 VISKORES_EXEC_CONT
90 inline ValueType Get(viskores::Id index) const;
91
92 VISKORES_SUPPRESS_EXEC_WARNINGS
93 VISKORES_EXEC_CONT
94 inline void Set(viskores::Id index, const ValueType& value) const;
95
96 typedef viskores::cont::internal::IteratorFromArrayPortal<vtkPointsPortal> IteratorType;
97
98 VISKORES_CONT
99 IteratorType GetIteratorBegin() const { return IteratorType(*this, 0); }
100
101 VISKORES_CONT
102 IteratorType GetIteratorEnd() const { return IteratorType(*this, this->Size); }
103
104 VISKORES_CONT
105 vtkPoints* GetVtkData() const { return Points; }
106
107private:
109 ComponentType* Array;
110 viskores::Id Size;
111};
112VTK_ABI_NAMESPACE_END
113}
114
115#ifndef vtkmlib_Portals_cxx
116#include <viskores/cont/internal/ArrayPortalFromIterators.h>
117namespace tovtkm
118{
119VTK_ABI_NAMESPACE_BEGIN
120// T extern template instantiations
121extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
123extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
125extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
127extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
129VTK_ABI_NAMESPACE_END
130}
131
132#endif // defined vtkmlib_Portals_cxx
133
134#include "Portals.hxx"
135#endif // vtkmlib_Portals_h
136/* VTK-HeaderTest-Exclude: Portals.h */
viskores::cont::internal::IteratorFromArrayPortal< vtkArrayPortal > IteratorType
Definition Portals.h:53
typename vtkPortalTraits< Type >::ComponentType ComponentType
Definition Portals.h:33
VISKORES_SUPPRESS_EXEC_WARNINGS VISKORES_EXEC_CONT ValueType Get(viskores::Id index) const
VISKORES_SUPPRESS_EXEC_WARNINGS VISKORES_EXEC_CONT void Set(viskores::Id index, const ValueType &value) const
VISKORES_SUPPRESS_EXEC_WARNINGS VISKORES_EXEC_CONT viskores::Id GetNumberOfValues() const
Definition Portals.h:43
VISKORES_CONT vtkArrayPortal(VTKDataArrayType *array, viskores::Id size)
VISKORES_CONT IteratorType GetIteratorBegin() const
Definition Portals.h:56
typename vtkPortalTraits< Type >::Type ValueType
Definition Portals.h:32
VISKORES_EXEC_CONT vtkArrayPortal()
VISKORES_CONT IteratorType GetIteratorEnd() const
Definition Portals.h:59
VISKORES_CONT VTKDataArrayType * GetVtkData() const
Definition Portals.h:62
VTKDataArrayType_ VTKDataArrayType
Definition Portals.h:31
viskores::cont::internal::IteratorFromArrayPortal< vtkPointsPortal > IteratorType
Definition Portals.h:96
VISKORES_SUPPRESS_EXEC_WARNINGS VISKORES_EXEC_CONT void Set(viskores::Id index, const ValueType &value) const
VISKORES_CONT vtkPoints * GetVtkData() const
Definition Portals.h:105
VISKORES_SUPPRESS_EXEC_WARNINGS VISKORES_EXEC_CONT ValueType Get(viskores::Id index) const
typename vtkPortalTraits< Type >::ComponentType ComponentType
Definition Portals.h:76
VISKORES_CONT IteratorType GetIteratorBegin() const
Definition Portals.h:99
VISKORES_SUPPRESS_EXEC_WARNINGS VISKORES_EXEC_CONT viskores::Id GetNumberOfValues() const
Definition Portals.h:86
VISKORES_CONT vtkPointsPortal(vtkPoints *points, viskores::Id size)
typename vtkPortalTraits< Type >::Type ValueType
Definition Portals.h:75
VISKORES_EXEC_CONT vtkPointsPortal()
VISKORES_CONT IteratorType GetIteratorEnd() const
Definition Portals.h:102
represent and manipulate 3D points
Definition vtkPoints.h:140
typename std::remove_const< T >::type ComponentType
#define vtkDataArray
#define VTK_DEPRECATED_IN_9_7_0(reason)