Viskores  1.0
DataSetBuilderUniform.h
Go to the documentation of this file.
1 //============================================================================
2 // The contents of this file are covered by the Viskores license. See
3 // LICENSE.txt for details.
4 //
5 // By contributing to this file, all contributors agree to the Developer
6 // Certificate of Origin Version 1.1 (DCO 1.1) as stated in DCO.txt.
7 //============================================================================
8 
9 //============================================================================
10 // Copyright (c) Kitware, Inc.
11 // All rights reserved.
12 // See LICENSE.txt for details.
13 //
14 // This software is distributed WITHOUT ANY WARRANTY; without even
15 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16 // PURPOSE. See the above copyright notice for more information.
17 //============================================================================
18 #ifndef viskores_cont_DataSetBuilderUniform_h
19 #define viskores_cont_DataSetBuilderUniform_h
20 
22 #include <viskores/cont/DataSet.h>
23 
24 namespace viskores
25 {
26 namespace cont
27 {
28 
29 class VISKORES_CONT_EXPORT DataSetBuilderUniform
30 {
32 
33 public:
36 
45  template <typename T>
47  const T& origin,
48  const T& spacing,
49  const std::string& coordNm = "coords")
50  {
52  viskores::Id3(dimension, 1, 1),
53  VecType(static_cast<viskores::FloatDefault>(origin), 0, 0),
54  VecType(static_cast<viskores::FloatDefault>(spacing), 1, 1),
55  coordNm);
56  }
57 
65  VISKORES_CONT static viskores::cont::DataSet Create(const viskores::Id& dimension,
66  const std::string& coordNm = "coords");
67 
76  template <typename T>
78  const viskores::Vec<T, 2>& origin,
79  const viskores::Vec<T, 2>& spacing,
80  const std::string& coordNm = "coords")
81  {
83  viskores::Id3(dimensions[0], dimensions[1], 1),
84  VecType(static_cast<viskores::FloatDefault>(origin[0]),
85  static_cast<viskores::FloatDefault>(origin[1]),
86  0),
87  VecType(static_cast<viskores::FloatDefault>(spacing[0]),
88  static_cast<viskores::FloatDefault>(spacing[1]),
89  1),
90  coordNm);
91  }
92 
100  VISKORES_CONT static viskores::cont::DataSet Create(const viskores::Id2& dimensions,
101  const std::string& coordNm = "coords");
102 
111  template <typename T>
113  const viskores::Vec<T, 3>& origin,
114  const viskores::Vec<T, 3>& spacing,
115  const std::string& coordNm = "coords")
116  {
118  viskores::Id3(dimensions[0], dimensions[1], dimensions[2]),
119  VecType(static_cast<viskores::FloatDefault>(origin[0]),
120  static_cast<viskores::FloatDefault>(origin[1]),
121  static_cast<viskores::FloatDefault>(origin[2])),
122  VecType(static_cast<viskores::FloatDefault>(spacing[0]),
123  static_cast<viskores::FloatDefault>(spacing[1]),
124  static_cast<viskores::FloatDefault>(spacing[2])),
125  coordNm);
126  }
127 
135  VISKORES_CONT static viskores::cont::DataSet Create(const viskores::Id3& dimensions,
136  const std::string& coordNm = "coords");
137 
138 private:
140  static viskores::cont::DataSet CreateDataSet(const viskores::Id3& dimensions,
141  const viskores::Vec3f& origin,
142  const viskores::Vec3f& spacing,
143  const std::string& coordNm);
144 };
145 
146 } // namespace cont
147 } // namespace viskores
148 
149 #endif //viskores_cont_DataSetBuilderUniform_h
viskores::cont::DataSet
Contains and manages the geometric data structures that Viskores operates on.
Definition: DataSet.h:66
CoordinateSystem.h
viskores::Vec< T, 3 >
Definition: Types.h:1025
viskores::Vec< T, 2 >
Definition: Types.h:909
viskores::cont::DataSetBuilderUniform
Definition: DataSetBuilderUniform.h:29
viskores::Id
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
VISKORES_CONT
#define VISKORES_CONT
Definition: ExportMacros.h:65
viskores::cont::DataSetBuilderUniform::CreateDataSet
static viskores::cont::DataSet CreateDataSet(const viskores::Id3 &dimensions, const viskores::Vec3f &origin, const viskores::Vec3f &spacing, const std::string &coordNm)
viskores
Groups connected points that have the same field value.
Definition: Atomic.h:27
viskores::cont::DataSetBuilderUniform::Create
static viskores::cont::DataSet Create(const viskores::Id3 &dimensions, const viskores::Vec< T, 3 > &origin, const viskores::Vec< T, 3 > &spacing, const std::string &coordNm="coords")
Create a 3D uniform DataSet.
Definition: DataSetBuilderUniform.h:112
viskores::cont::DataSetBuilderUniform::Create
static viskores::cont::DataSet Create(const viskores::Id &dimension, const T &origin, const T &spacing, const std::string &coordNm="coords")
Create a 1D uniform DataSet.
Definition: DataSetBuilderUniform.h:46
viskores::cont::DataSetBuilderUniform::Create
static viskores::cont::DataSet Create(const viskores::Id2 &dimensions, const viskores::Vec< T, 2 > &origin, const viskores::Vec< T, 2 > &spacing, const std::string &coordNm="coords")
Create a 2D uniform DataSet.
Definition: DataSetBuilderUniform.h:77
viskores::FloatDefault
viskores::Float32 FloatDefault
The floating point type to use when no other precision is specified.
Definition: Types.h:244
viskores::Vec< viskores::FloatDefault, 3 >
DataSet.h
viskores::Vec3f
viskores::Vec< viskores::FloatDefault, 3 > Vec3f
Vec3f corresponds to a 3-dimensional vector of floating point values.
Definition: Types.h:1064