3-D implicit surface wrapper for generic Surface3 instance. More...

#include <Core/Surface/SurfaceToImplicit3.h>

Inheritance diagram for CubbyFlow::SurfaceToImplicit3:
CubbyFlow::ImplicitSurface3 CubbyFlow::Surface3

Classes

class  Builder
 Front-end to create SurfaceToImplicit3 objects step by step. More...
 

Public Member Functions

 SurfaceToImplicit3 (const Surface3Ptr &surface, const Transform3 &transform=Transform3(), bool isNormalFlipped=false)
 Constructs an instance with generic Surface3 instance. More...
 
 SurfaceToImplicit3 (const SurfaceToImplicit3 &other)
 Copy constructor. More...
 
Surface3Ptr GetSurface () const
 Returns the raw surface instance. More...
 
- Public Member Functions inherited from CubbyFlow::ImplicitSurface3
 ImplicitSurface3 (const Transform3 &transform=Transform3(), bool isNormalFlipped=false)
 Default constructor. More...
 
 ImplicitSurface3 (const ImplicitSurface3 &other)
 Copy constructor. More...
 
virtual ~ImplicitSurface3 ()
 Default destructor. More...
 
double SignedDistance (const Vector3D &otherPoint) const
 Returns signed distance from the given point otherPoint. More...
 
- Public Member Functions inherited from CubbyFlow::Surface3
 Surface3 (const Transform3 &transform=Transform3(), bool isNormalFlipped=false)
 Constructs a surface with normal direction. More...
 
 Surface3 (const Surface3 &other)
 Copy constructor. More...
 
virtual ~Surface3 ()
 Default destructor. More...
 
Vector3D ClosestPoint (const Vector3D &otherPoint) const
 Returns the closest point from the given point otherPoint to the surface. More...
 
BoundingBox3D BoundingBox () const
 Returns the bounding box of this surface object. More...
 
bool Intersects (const Ray3D &ray) const
 Returns true if the given ray intersects with this surface object. More...
 
double ClosestDistance (const Vector3D &otherPoint) const
 
SurfaceRayIntersection3 ClosestIntersection (const Ray3D &ray) const
 Returns the closest intersection point for given ray. More...
 
Vector3D ClosestNormal (const Vector3D &otherPoint) const
 
virtual void UpdateQueryEngine ()
 Updates internal spatial query engine. More...
 

Static Public Member Functions

static Builder GetBuilder ()
 Returns builder for SurfaceToImplicit3. More...
 

Protected Member Functions

Vector3D ClosestPointLocal (const Vector3D &otherPoint) const override
 
double ClosestDistanceLocal (const Vector3D &otherPoint) const override
 
bool IntersectsLocal (const Ray3D &ray) const override
 
BoundingBox3D BoundingBoxLocal () const override
 Returns the bounding box of this surface object in local frame. More...
 
Vector3D ClosestNormalLocal (const Vector3D &ohterPoint) const override
 
double SignedDistanceLocal (const Vector3D &otherPoint) const override
 Returns signed distance from the given point otherPoint in local space. More...
 
SurfaceRayIntersection3 ClosestIntersectionLocal (const Ray3D &ray) const override
 Returns the closest intersection point for given ray in local frame. More...
 

Additional Inherited Members

- Public Attributes inherited from CubbyFlow::Surface3
Transform3 transform
 Local-to-world transform. More...
 
bool isNormalFlipped = false
 Flips normal when calling Surface3::closestNormal(...). More...
 

Detailed Description

3-D implicit surface wrapper for generic Surface3 instance.

This class represents 3-D implicit surface that converts Surface3 instance. to an ImplicitSurface3 object. The conversion is made by evaluating closest point and normal from a given point for the given (explicit) surface. Thus, this conversion won't work for every single surfaces, especially TriangleMesh3. To use TriangleMesh3 as an ImplicitSurface3 instance, please take a look at ImplicitTriangleMesh3. Use this class only for the basic primitives such as Sphere3 or Box3.

Constructor & Destructor Documentation

◆ SurfaceToImplicit3() [1/2]

CubbyFlow::SurfaceToImplicit3::SurfaceToImplicit3 ( const Surface3Ptr surface,
const Transform3 transform = Transform3(),
bool  isNormalFlipped = false 
)

Constructs an instance with generic Surface3 instance.

◆ SurfaceToImplicit3() [2/2]

CubbyFlow::SurfaceToImplicit3::SurfaceToImplicit3 ( const SurfaceToImplicit3 other)

Copy constructor.

Member Function Documentation

◆ BoundingBoxLocal()

BoundingBox3D CubbyFlow::SurfaceToImplicit3::BoundingBoxLocal ( ) const
overrideprotectedvirtual

Returns the bounding box of this surface object in local frame.

Implements CubbyFlow::Surface3.

◆ ClosestDistanceLocal()

double CubbyFlow::SurfaceToImplicit3::ClosestDistanceLocal ( const Vector3D otherPoint) const
overrideprotectedvirtual

Returns the closest distance from the given point otherPoint to the point on the surface in local frame.

Reimplemented from CubbyFlow::ImplicitSurface3.

◆ ClosestIntersectionLocal()

SurfaceRayIntersection3 CubbyFlow::SurfaceToImplicit3::ClosestIntersectionLocal ( const Ray3D ray) const
overrideprotectedvirtual

Returns the closest intersection point for given ray in local frame.

Implements CubbyFlow::Surface3.

◆ ClosestNormalLocal()

Vector3D CubbyFlow::SurfaceToImplicit3::ClosestNormalLocal ( const Vector3D otherPoint) const
overrideprotectedvirtual

Returns the normal to the closest point on the surface from the given point otherPoint in local frame.

Implements CubbyFlow::Surface3.

◆ ClosestPointLocal()

Vector3D CubbyFlow::SurfaceToImplicit3::ClosestPointLocal ( const Vector3D otherPoint) const
overrideprotectedvirtual

Returns the closest point from the given point otherPoint to the surface in local frame.

Implements CubbyFlow::Surface3.

◆ GetBuilder()

static Builder CubbyFlow::SurfaceToImplicit3::GetBuilder ( )
static

Returns builder for SurfaceToImplicit3.

◆ GetSurface()

Surface3Ptr CubbyFlow::SurfaceToImplicit3::GetSurface ( ) const

Returns the raw surface instance.

◆ IntersectsLocal()

bool CubbyFlow::SurfaceToImplicit3::IntersectsLocal ( const Ray3D ray) const
overrideprotectedvirtual

Returns true if the given ray intersects with this surface object in local frame.

Reimplemented from CubbyFlow::Surface3.

◆ SignedDistanceLocal()

double CubbyFlow::SurfaceToImplicit3::SignedDistanceLocal ( const Vector3D otherPoint) const
overrideprotectedvirtual

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

Implements CubbyFlow::ImplicitSurface3.


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