CubbyFlow::ImplicitSurface< N > Class Template Referenceabstract

Abstract base class for N-D implicit surface. More...

#include <Core/Geometry/ImplicitSurface.hpp>

Inheritance diagram for CubbyFlow::ImplicitSurface< N >:
CubbyFlow::Surface< N > CubbyFlow::CustomImplicitSurface< N > CubbyFlow::ImplicitSurfaceSet< N > CubbyFlow::ImplicitTriangleMesh3 CubbyFlow::SurfaceToImplicit< N >

Public Member Functions

 ImplicitSurface (const Transform< N > &_transform=Transform< N >{}, bool _isNormalFlipped=false)
 Constructs an implicit surface with normal direction. More...
 
 ~ImplicitSurface () override=default
 Default virtual destructor. More...
 
 ImplicitSurface (const ImplicitSurface &other)
 Copy constructor. More...
 
 ImplicitSurface (ImplicitSurface &&other) noexcept
 Move constructor. More...
 
ImplicitSurfaceoperator= (const ImplicitSurface &other)
 Copy assignment operator. More...
 
ImplicitSurfaceoperator= (ImplicitSurface &&other) noexcept
 Move assignment operator. More...
 
double SignedDistance (const Vector< double, N > &otherPoint) const
 Returns signed distance from the given point otherPoint. More...
 
- Public Member Functions inherited from CubbyFlow::Surface< N >
 Surface (const Transform< N > &transform=Transform< N >(), bool isNormalFlipped=false)
 Constructs a surface with normal direction. More...
 
virtual ~Surface ()=default
 Default virtual destructor. More...
 
 Surface (const Surface &other)
 Copy constructor. More...
 
 Surface (Surface &&other) noexcept
 Move constructor. More...
 
Surfaceoperator= (const Surface &other)
 Copy assignment operator. More...
 
Surfaceoperator= (Surface &&other) noexcept
 Move assignment operator. More...
 
Vector< double, N > ClosestPoint (const Vector< double, N > &otherPoint) const
 
BoundingBox< double, N > GetBoundingBox () const
 Returns the bounding box of this surface object. More...
 
bool Intersects (const Ray< double, N > &ray) const
 Returns true if the given ray intersects with this surface object. More...
 
double ClosestDistance (const Vector< double, N > &otherPoint) const
 
SurfaceRayIntersection< N > ClosestIntersection (const Ray< double, N > &ray) const
 Returns the closest intersection point for given ray. More...
 
Vector< double, N > ClosestNormal (const Vector< double, N > &otherPoint) const
 
virtual void UpdateQueryEngine ()
 Updates internal spatial query engine. More...
 
virtual bool IsBounded () const
 Returns true if bounding box can be defined. More...
 
virtual bool IsValidGeometry () const
 Returns true if the surface is a valid geometry. More...
 
bool IsInside (const Vector< double, N > &otherPoint) const
 

Protected Member Functions

virtual double SignedDistanceLocal (const Vector< double, N > &otherPoint) const =0
 
- Protected Member Functions inherited from CubbyFlow::Surface< N >
virtual Vector< double, N > ClosestPointLocal (const Vector< double, N > &otherPoint) const =0
 
virtual BoundingBox< double, N > BoundingBoxLocal () const =0
 Returns the bounding box of this surface object in local frame. More...
 
virtual SurfaceRayIntersection< N > ClosestIntersectionLocal (const Ray< double, N > &ray) const =0
 Returns the closest intersection point for given ray in local frame. More...
 
virtual Vector< double, N > ClosestNormalLocal (const Vector< double, N > &otherPoint) const =0
 
virtual bool IntersectsLocal (const Ray< double, N > &ray) const
 
virtual bool IsInsideLocal (const Vector< double, N > &otherPoint) const
 

Additional Inherited Members

- Public Attributes inherited from CubbyFlow::Surface< N >
Transform< N > transform
 Local-to-world transform. More...
 
bool isNormalFlipped = false
 Flips normal. More...
 

Detailed Description

template<size_t N>
class CubbyFlow::ImplicitSurface< N >

Abstract base class for N-D implicit surface.

Constructor & Destructor Documentation

◆ ImplicitSurface() [1/3]

template<size_t N>
CubbyFlow::ImplicitSurface< N >::ImplicitSurface ( const Transform< N > &  _transform = Transform< N >{},
bool  _isNormalFlipped = false 
)

Constructs an implicit surface with normal direction.

◆ ~ImplicitSurface()

template<size_t N>
CubbyFlow::ImplicitSurface< N >::~ImplicitSurface ( )
overridedefault

Default virtual destructor.

◆ ImplicitSurface() [2/3]

template<size_t N>
CubbyFlow::ImplicitSurface< N >::ImplicitSurface ( const ImplicitSurface< N > &  other)

Copy constructor.

◆ ImplicitSurface() [3/3]

template<size_t N>
CubbyFlow::ImplicitSurface< N >::ImplicitSurface ( ImplicitSurface< N > &&  other)
noexcept

Move constructor.

Member Function Documentation

◆ operator=() [1/2]

template<size_t N>
ImplicitSurface& CubbyFlow::ImplicitSurface< N >::operator= ( const ImplicitSurface< N > &  other)

Copy assignment operator.

◆ operator=() [2/2]

template<size_t N>
ImplicitSurface& CubbyFlow::ImplicitSurface< N >::operator= ( ImplicitSurface< N > &&  other)
noexcept

Move assignment operator.

◆ SignedDistance()

template<size_t N>
double CubbyFlow::ImplicitSurface< N >::SignedDistance ( const Vector< double, N > &  otherPoint) const

Returns signed distance from the given point otherPoint.

◆ SignedDistanceLocal()

template<size_t N>
virtual double CubbyFlow::ImplicitSurface< N >::SignedDistanceLocal ( const Vector< double, N > &  otherPoint) const
protectedpure virtual

Returns signed distance from the given point otherPoint in local space.

Implemented in CubbyFlow::SurfaceToImplicit< N >.


The documentation for this class was generated from the following file: