Jet  v1.3.3
constant_scalar_field2.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_FIELD2_H_
8 #define INCLUDE_JET_CONSTANT_SCALAR_FIELD2_H_
9 
10 #include <jet/scalar_field2.h>
11 
12 namespace jet {
13 
15 class ConstantScalarField2 final : public ScalarField2 {
16  public:
17  class Builder;
18 
20  explicit ConstantScalarField2(double value);
21 
23  double sample(const Vector2D& x) const override;
24 
26  std::function<double(const Vector2D&)> sampler() const override;
27 
29  static Builder builder();
30 
31  private:
32  double _value = 0.0;
33 };
34 
36 typedef std::shared_ptr<ConstantScalarField2> ConstantScalarField2Ptr;
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_FIELD2_H_
jet::ConstantScalarField2::Builder::build
ConstantScalarField2 build() const
Builds ConstantScalarField2.
jet::ConstantScalarField2::ConstantScalarField2
ConstantScalarField2(double value)
Constructs a constant scalar field with given value.
scalar_field2.h
jet::ConstantScalarField2::Builder
Front-end to create ConstantScalarField2 objects step by step.
Definition: constant_scalar_field2.h:42
jet::ConstantScalarField2::sampler
std::function< double(const Vector2D &)> sampler() const override
Returns the sampler function.
jet::ScalarField2
Abstract base class for 2-D scalar field.
Definition: scalar_field2.h:18
jet::ConstantScalarField2::Builder::withValue
Builder & withValue(double value)
Returns builder with value.
jet::ConstantScalarField2::Builder::makeShared
ConstantScalarField2Ptr makeShared() const
Builds shared pointer of ConstantScalarField2 instance.
jet
Definition: advection_solver2.h:18
jet::ConstantScalarField2
2-D constant scalar field.
Definition: constant_scalar_field2.h:15
jet::Vector< T, 2 >
2-D vector class.
Definition: vector2.h:24
jet::ConstantScalarField2Ptr
std::shared_ptr< ConstantScalarField2 > ConstantScalarField2Ptr
Shared pointer for the ConstantScalarField2 type.
Definition: constant_scalar_field2.h:36
jet::ConstantScalarField2::sample
double sample(const Vector2D &x) const override
Returns the sampled value at given position x.
jet::ConstantScalarField2::builder
static Builder builder()
Returns builder fox ConstantScalarField2.