Jet  v1.3.3
constant_scalar_field3.h
Go to the documentation of this file.
1 // Copyright (c) 2018 Doyub Kim
2 //
3 // I am making my contributions/submissions to this project solely in my
4 // personal capacity and am not conveying any rights to any intellectual
5 // property of any third parties.
6 
7 #ifndef INCLUDE_JET_CONSTANT_SCALAR_FIELD3_H_
8 #define INCLUDE_JET_CONSTANT_SCALAR_FIELD3_H_
9 
10 #include <jet/scalar_field3.h>
11 
12 namespace jet {
13 
15 class ConstantScalarField3 final : public ScalarField3 {
16  public:
17  class Builder;
18 
20  explicit ConstantScalarField3(double value);
21 
23  double sample(const Vector3D& x) const override;
24 
26  std::function<double(const Vector3D&)> sampler() const override;
27 
29  static Builder builder();
30 
31  private:
32  double _value = 0.0;
33 };
34 
36 typedef std::shared_ptr<ConstantScalarField3> ConstantScalarField3Ptr;
37 
38 
43  public:
45  Builder& withValue(double value);
46 
49 
52 
53  private:
54  double _value = 0.0;
55 };
56 
57 } // namespace jet
58 
59 #endif // INCLUDE_JET_CONSTANT_SCALAR_FIELD3_H_
jet::ScalarField3
Abstract base class for 3-D scalar field.
Definition: scalar_field3.h:18
jet::ConstantScalarField3::Builder::makeShared
ConstantScalarField3Ptr makeShared() const
Builds shared pointer of ConstantScalarField3 instance.
jet::ConstantScalarField3::Builder::withValue
Builder & withValue(double value)
Returns builder with value.
jet::ConstantScalarField3::sampler
std::function< double(const Vector3D &)> sampler() const override
Returns the sampler function.
jet::ConstantScalarField3::sample
double sample(const Vector3D &x) const override
Returns the sampled value at given position x.
jet::ConstantScalarField3::ConstantScalarField3
ConstantScalarField3(double value)
Constructs a constant scalar field with given value.
scalar_field3.h
jet
Definition: advection_solver2.h:18
jet::ConstantScalarField3
3-D constant scalar field.
Definition: constant_scalar_field3.h:15
jet::ConstantScalarField3Ptr
std::shared_ptr< ConstantScalarField3 > ConstantScalarField3Ptr
Shared pointer for the ConstantScalarField3 type.
Definition: constant_scalar_field3.h:36
jet::ConstantScalarField3::Builder::build
ConstantScalarField3 build() const
Builds ConstantScalarField3.
jet::ConstantScalarField3::Builder
Front-end to create ConstantScalarField3 objects step by step.
Definition: constant_scalar_field3.h:42
jet::Vector< T, 3 >
3-D vector class.
Definition: vector3.h:25
jet::ConstantScalarField3::builder
static Builder builder()
Returns builder fox ConstantScalarField3.