Viskores  1.0
ContourUncertainUniform.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 
19 // This code is based on the algorithm presented in the following papers:
20 // Wang, J., Athawale, T., Moreland, K., Chen, J., Johnson, C., & Pugmire,
21 // D. (2023). FunMC^ 2: A Filter for Uncertainty Visualization of Marching
22 // Cubes on Multi-Core Devices. Oak Ridge National Laboratory (ORNL),
23 // Oak Ridge, TN (United States).
24 //
25 // Athawale, T. M., Sane, S., & Johnson, C. R. (2021, October). Uncertainty
26 // Visualization of the Marching Squares and Marching Cubes Topology Cases.
27 // In 2021 IEEE Visualization Conference (VIS) (pp. 106-110). IEEE.
28 
29 #ifndef viskores_filter_uncertainty_ContourUncertainUniform_h
30 #define viskores_filter_uncertainty_ContourUncertainUniform_h
31 
32 #include <viskores/filter/Filter.h>
34 
35 namespace viskores
36 {
37 namespace filter
38 {
39 namespace uncertainty
40 {
51 class VISKORES_FILTER_UNCERTAINTY_EXPORT ContourUncertainUniform : public viskores::filter::Filter
52 {
53 
54  std::string NumberNonzeroProbabilityName = "num_nonzero_probability";
55  std::string EntropyName = "entropy";
56  viskores::Float64 IsoValue = 0.0;
57 
58 public:
61 
64  VISKORES_CONT void SetMinField(const std::string& fieldName)
65  {
66  this->SetActiveField(0, fieldName, viskores::cont::Field::Association::Points);
67  }
68 
71  VISKORES_CONT void SetMaxField(const std::string& fieldName)
72  {
73  this->SetActiveField(1, fieldName, viskores::cont::Field::Association::Points);
74  }
75 
78  VISKORES_CONT void SetIsoValue(viskores::Float64 value) { this->IsoValue = value; }
79 
82  VISKORES_CONT viskores::Float64 GetIsoValue() const { return this->IsoValue; }
83 
86  VISKORES_CONT void SetCrossProbabilityName(const std::string& name)
87  {
88  this->SetOutputFieldName(name);
89  }
90 
93  VISKORES_CONT const std::string& GetCrossProbabilityName() const
94  {
95  return this->GetOutputFieldName();
96  }
97 
100  VISKORES_CONT void SetNumberNonzeroProbabilityName(const std::string& name)
101  {
102  this->NumberNonzeroProbabilityName = name;
103  }
104 
108  {
109  return this->NumberNonzeroProbabilityName;
110  }
111 
114  VISKORES_CONT void SetEntropyName(const std::string& name) { this->EntropyName = name; }
115 
118  VISKORES_CONT const std::string& GetEntropyName() const { return this->EntropyName; }
119 
120 protected:
121  VISKORES_CONT viskores::cont::DataSet DoExecute(const viskores::cont::DataSet& input) override;
122 };
123 }
124 }
125 }
126 #endif
viskores::filter::uncertainty::ContourUncertainUniform::SetEntropyName
void SetEntropyName(const std::string &name)
Sets entropy field.
Definition: ContourUncertainUniform.h:114
viskores::cont::DataSet
Contains and manages the geometric data structures that Viskores operates on.
Definition: DataSet.h:66
viskores::filter::uncertainty::ContourUncertainUniform::GetCrossProbabilityName
const std::string & GetCrossProbabilityName() const
Gets crossing probability field (uncertainty field type 1).
Definition: ContourUncertainUniform.h:93
viskores::filter::Filter
Base class for all filters.
Definition: Filter.h:171
viskores::filter::uncertainty::ContourUncertainUniform::SetCrossProbabilityName
void SetCrossProbabilityName(const std::string &name)
Sets crossing probability field (uncertainty field type 1).
Definition: ContourUncertainUniform.h:86
viskores::filter::uncertainty::ContourUncertainUniform::SetMinField
void SetMinField(const std::string &fieldName)
Sets minimum field.
Definition: ContourUncertainUniform.h:64
viskores_filter_uncertainty_export.h
viskores::filter::uncertainty::ContourUncertainUniform::SetNumberNonzeroProbabilityName
void SetNumberNonzeroProbabilityName(const std::string &name)
Sets toplogy case count field (uncertainty field type 2).
Definition: ContourUncertainUniform.h:100
viskores::filter::uncertainty::ContourUncertainUniform
Visualize isosurface uncertainty for uniform distributed data.
Definition: ContourUncertainUniform.h:51
VISKORES_CONT
#define VISKORES_CONT
Definition: ExportMacros.h:65
viskores
Groups connected points that have the same field value.
Definition: Atomic.h:27
viskores::filter::uncertainty::ContourUncertainUniform::GetNumberNonzeroProbabilityName
const std::string & GetNumberNonzeroProbabilityName() const
Gets toplogy case count field (uncertainty field type 2.
Definition: ContourUncertainUniform.h:107
viskores::filter::uncertainty::ContourUncertainUniform::GetEntropyName
const std::string & GetEntropyName() const
Gets entropy field.
Definition: ContourUncertainUniform.h:118
viskores::filter::uncertainty::ContourUncertainUniform::SetIsoValue
void SetIsoValue(viskores::Float64 value)
Sets isovalue.
Definition: ContourUncertainUniform.h:78
viskores::filter::uncertainty::ContourUncertainUniform::GetIsoValue
viskores::Float64 GetIsoValue() const
Gets isovalue Gets isovalue used for visualizing isosurfaces.
Definition: ContourUncertainUniform.h:82
viskores::filter::uncertainty::ContourUncertainUniform::SetMaxField
void SetMaxField(const std::string &fieldName)
Sets maximum field.
Definition: ContourUncertainUniform.h:71
viskores::Float64
double Float64
Base type to use for 64-bit floating-point numbers.
Definition: Types.h:169
viskores::cont::Field::Association::Points
@ Points
A field that applies to points.
Filter.h