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