Jet  v1.3.3
constant_vector_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_VECTOR_FIELD2_H_
8 #define INCLUDE_JET_CONSTANT_VECTOR_FIELD2_H_
9 
10 #include <jet/vector_field2.h>
11 #include <memory>
12 
13 namespace jet {
14 
16 class ConstantVectorField2 final : public VectorField2 {
17  public:
18  class Builder;
19 
21  explicit ConstantVectorField2(const Vector2D& value);
22 
24  Vector2D sample(const Vector2D& x) const override;
25 
27  std::function<Vector2D(const Vector2D&)> sampler() const override;
28 
30  static Builder builder();
31 
32  private:
33  Vector2D _value;
34 };
35 
37 typedef std::shared_ptr<ConstantVectorField2> ConstantVectorField2Ptr;
38 
39 
44  public:
46  Builder& withValue(const Vector2D& value);
47 
50 
53 
54  private:
55  Vector2D _value{0, 0};
56 };
57 
58 } // namespace jet
59 
60 #endif // INCLUDE_JET_CONSTANT_VECTOR_FIELD2_H_
jet::ConstantVectorField2::Builder::build
ConstantVectorField2 build() const
Builds ConstantVectorField2.
jet::Vector2D
Vector2< double > Vector2D
Double-type 2D vector.
Definition: vector2.h:340
jet::ConstantVectorField2::Builder::withValue
Builder & withValue(const Vector2D &value)
Returns builder with value.
jet::ConstantVectorField2::sampler
std::function< Vector2D(const Vector2D &)> sampler() const override
Returns the sampler function.
vector_field2.h
jet::ConstantVectorField2::sample
Vector2D sample(const Vector2D &x) const override
Returns the sampled value at given position x.
jet::ConstantVectorField2Ptr
std::shared_ptr< ConstantVectorField2 > ConstantVectorField2Ptr
Shared pointer for the ConstantVectorField2 type.
Definition: constant_vector_field2.h:37
jet
Definition: advection_solver2.h:18
jet::ConstantVectorField2::ConstantVectorField2
ConstantVectorField2(const Vector2D &value)
Constructs a constant vector field with given value.
jet::Vector< T, 2 >
2-D vector class.
Definition: vector2.h:24
jet::ConstantVectorField2::builder
static Builder builder()
Returns builder fox ConstantVectorField2.
jet::ConstantVectorField2::Builder::makeShared
ConstantVectorField2Ptr makeShared() const
Builds shared pointer of ConstantVectorField2 instance.
jet::VectorField2
Abstract base class for 2-D vector field.
Definition: vector_field2.h:18
jet::ConstantVectorField2::Builder
Front-end to create ConstantVectorField2 objects step by step.
Definition: constant_vector_field2.h:43
jet::ConstantVectorField2
2-D constant vector field.
Definition: constant_vector_field2.h:16