Viskores  1.0
ScalarRenderer.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_rendering_ScalarRenderer_h
19 #define viskores_rendering_ScalarRenderer_h
20 
21 #include <viskores/cont/DataSet.h>
23 
24 #include <memory>
25 
26 namespace viskores
27 {
28 namespace rendering
29 {
30 
31 class VISKORES_RENDERING_EXPORT ScalarRenderer
32 {
33 public:
35 
36  // Disable copying due to unique_ptr;
37  ScalarRenderer(const ScalarRenderer&) = delete;
38  ScalarRenderer& operator=(const ScalarRenderer&) = delete;
39 
40  ScalarRenderer(ScalarRenderer&&) noexcept;
41  ScalarRenderer& operator=(ScalarRenderer&&) noexcept;
42  // Default destructor implemented in source file to support PIMPL idiom.
43  ~ScalarRenderer();
44 
45  void SetInput(viskores::cont::DataSet& dataSet);
46 
47  void SetWidth(viskores::Int32 width);
48  void SetHeight(viskores::Int32 height);
49  void SetDefaultValue(viskores::Float32 value);
50 
51  struct VISKORES_RENDERING_EXPORT Result
52  {
56  std::vector<viskores::cont::ArrayHandle<viskores::Float32>> Scalars;
57  std::vector<std::string> ScalarNames;
58  std::map<std::string, viskores::Range> Ranges;
59 
60  viskores::cont::DataSet ToDataSet();
61  };
62 
64 
65 private:
66  struct InternalsType;
67  std::unique_ptr<InternalsType> Internals;
68 };
69 }
70 } //namespace viskores::rendering
71 
72 #endif //viskores_rendering_ScalarRenderer_h
viskores::cont::DataSet
Contains and manages the geometric data structures that Viskores operates on.
Definition: DataSet.h:66
viskores::rendering::ScalarRenderer::Internals
std::unique_ptr< InternalsType > Internals
Definition: ScalarRenderer.h:66
viskores::rendering::ScalarRenderer::Result::Height
viskores::Int32 Height
Definition: ScalarRenderer.h:54
viskores::rendering::ScalarRenderer::Result::Scalars
std::vector< viskores::cont::ArrayHandle< viskores::Float32 > > Scalars
Definition: ScalarRenderer.h:56
viskores::cont::ArrayHandle< viskores::Float32 >
viskores::rendering::ScalarRenderer::Result::Depths
viskores::cont::ArrayHandle< viskores::Float32 > Depths
Definition: ScalarRenderer.h:55
viskores
Groups connected points that have the same field value.
Definition: Atomic.h:27
viskores::Float32
float Float32
Base type to use for 32-bit floating-point numbers.
Definition: Types.h:165
viskores::rendering::ScalarRenderer::Result::Ranges
std::map< std::string, viskores::Range > Ranges
Definition: ScalarRenderer.h:58
viskores::rendering::ScalarRenderer::Result::Width
viskores::Int32 Width
Definition: ScalarRenderer.h:53
viskores::rendering::ScalarRenderer::Result
Definition: ScalarRenderer.h:51
viskores::Int32
int32_t Int32
Base type to use for 32-bit signed integer numbers.
Definition: Types.h:189
viskores::rendering::Camera
Specifies the viewport for a rendering.
Definition: Camera.h:45
viskores::rendering::ScalarRenderer
Definition: ScalarRenderer.h:31
Camera.h
viskores::rendering::ScalarRenderer::Result::ScalarNames
std::vector< std::string > ScalarNames
Definition: ScalarRenderer.h:57
DataSet.h