Jet  v1.3.3
implicit_surface3.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_IMPLICIT_SURFACE3_H_
8 #define INCLUDE_JET_IMPLICIT_SURFACE3_H_
9 
10 #include <jet/surface3.h>
11 
12 namespace jet {
13 
15 class ImplicitSurface3 : public Surface3 {
16  public:
19  const Transform3& transform = Transform3(),
20  bool isNormalFlipped = false);
21 
24 
26  virtual ~ImplicitSurface3();
27 
29  double signedDistance(const Vector3D& otherPoint) const;
30 
31  protected:
34  virtual double signedDistanceLocal(const Vector3D& otherPoint) const = 0;
35 
36  private:
37  double closestDistanceLocal(const Vector3D& otherPoint) const override;
38 
39  bool isInsideLocal(const Vector3D& otherPoint) const override;
40 };
41 
43 typedef std::shared_ptr<ImplicitSurface3> ImplicitSurface3Ptr;
44 
45 } // namespace jet
46 
47 #endif // INCLUDE_JET_IMPLICIT_SURFACE3_H_
jet::ImplicitSurface3::signedDistance
double signedDistance(const Vector3D &otherPoint) const
Returns signed distance from the given point otherPoint.
jet::ImplicitSurface3::ImplicitSurface3
ImplicitSurface3(const ImplicitSurface3 &other)
Copy constructor.
jet::ImplicitSurface3Ptr
std::shared_ptr< ImplicitSurface3 > ImplicitSurface3Ptr
Shared pointer type for the ImplicitSurface3.
Definition: implicit_surface3.h:43
surface3.h
jet::ImplicitSurface3
Abstract base class for 3-D implicit surface.
Definition: implicit_surface3.h:15
jet::Surface3::isNormalFlipped
bool isNormalFlipped
Flips normal when calling Surface3::closestNormal(...).
Definition: surface3.h:33
jet
Definition: advection_solver2.h:18
jet::ImplicitSurface3::signedDistanceLocal
virtual double signedDistanceLocal(const Vector3D &otherPoint) const =0
jet::Surface3::transform
Transform3 transform
Local-to-world transform.
Definition: surface3.h:30
jet::ImplicitSurface3::~ImplicitSurface3
virtual ~ImplicitSurface3()
Default destructor.
jet::Vector< T, 3 >
3-D vector class.
Definition: vector3.h:25
jet::Transform3
Represents 3-D rigid body transform.
Definition: transform3.h:20
jet::ImplicitSurface3::ImplicitSurface3
ImplicitSurface3(const Transform3 &transform=Transform3(), bool isNormalFlipped=false)
Default constructor.
jet::Surface3
Abstract base class for 3-D surface.
Definition: surface3.h:27