VTK  9.7.20260824
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:
75 // NOLINTNEXTLINE(readability-redundant-typename)
77 // NOLINTNEXTLINE(readability-redundant-typename)
79
80 VISKORES_EXEC_CONT
82
83 VISKORES_CONT
84 vtkPointsPortal(vtkPoints* points, viskores::Id size);
85
86 VISKORES_SUPPRESS_EXEC_WARNINGS
87 VISKORES_EXEC_CONT
88 viskores::Id GetNumberOfValues() const { return this->Size; }
89
90 VISKORES_SUPPRESS_EXEC_WARNINGS
91 VISKORES_EXEC_CONT
92 inline ValueType Get(viskores::Id index) const;
93
94 VISKORES_SUPPRESS_EXEC_WARNINGS
95 VISKORES_EXEC_CONT
96 inline void Set(viskores::Id index, const ValueType& value) const;
97
98 typedef viskores::cont::internal::IteratorFromArrayPortal<vtkPointsPortal> IteratorType;
99
100 VISKORES_CONT
101 IteratorType GetIteratorBegin() const { return IteratorType(*this, 0); }
102
103 VISKORES_CONT
104 IteratorType GetIteratorEnd() const { return IteratorType(*this, this->Size); }
105
106 VISKORES_CONT
107 vtkPoints* GetVtkData() const { return Points; }
108
109private:
111 ComponentType* Array;
112 viskores::Id Size;
113};
114VTK_ABI_NAMESPACE_END
115}
116
117#ifndef vtkmlib_Portals_cxx
118#include <viskores/cont/internal/ArrayPortalFromIterators.h>
119namespace tovtkm
120{
121VTK_ABI_NAMESPACE_BEGIN
122// T extern template instantiations
123extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
125extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
127extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
129extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
131VTK_ABI_NAMESPACE_END
132}
133
134#endif // defined vtkmlib_Portals_cxx
135
136#include "Portals.hxx"
137#endif // vtkmlib_Portals_h
138/* 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:98
VISKORES_SUPPRESS_EXEC_WARNINGS VISKORES_EXEC_CONT void Set(viskores::Id index, const ValueType &value) const
VISKORES_CONT vtkPoints * GetVtkData() const
Definition Portals.h:107
VISKORES_SUPPRESS_EXEC_WARNINGS VISKORES_EXEC_CONT ValueType Get(viskores::Id index) const
typename vtkPortalTraits< Type >::ComponentType ComponentType
Definition Portals.h:78
VISKORES_CONT IteratorType GetIteratorBegin() const
Definition Portals.h:101
VISKORES_SUPPRESS_EXEC_WARNINGS VISKORES_EXEC_CONT viskores::Id GetNumberOfValues() const
Definition Portals.h:88
VISKORES_CONT vtkPointsPortal(vtkPoints *points, viskores::Id size)
typename vtkPortalTraits< Type >::Type ValueType
Definition Portals.h:76
VISKORES_EXEC_CONT vtkPointsPortal()
VISKORES_CONT IteratorType GetIteratorEnd() const
Definition Portals.h:104
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)