CubbyFlow::ImplicitSurfaceSet< N > Class Template Referencefinal

N-D implicit surface set. More...

#include <Core/Geometry/ImplicitSurfaceSet.hpp>

Inheritance diagram for CubbyFlow::ImplicitSurfaceSet< N >:
CubbyFlow::ImplicitSurface< N > CubbyFlow::Surface< N >

Classes

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

Public Member Functions

 ImplicitSurfaceSet ()=default
 Constructs an empty implicit surface set. More...
 
 ImplicitSurfaceSet (ConstArrayView1< std::shared_ptr< ImplicitSurface< N >>> surfaces, const Transform< N > &_transform=Transform< N >{}, bool _isNormalFlipped=false)
 Constructs an implicit surface set using list of other surfaces. More...
 
 ImplicitSurfaceSet (ConstArrayView1< std::shared_ptr< Surface< N >>> surfaces, const Transform< N > &_transform=Transform< N >{}, bool _isNormalFlipped=false)
 Constructs an implicit surface set using list of other surfaces. More...
 
 ~ImplicitSurfaceSet () override=default
 Default virtual destructor. More...
 
 ImplicitSurfaceSet (const ImplicitSurfaceSet &other)
 Copy constructor. More...
 
 ImplicitSurfaceSet (ImplicitSurfaceSet &&other) noexcept
 Move constructor. More...
 
ImplicitSurfaceSetoperator= (const ImplicitSurfaceSet &other)
 Copy assignment operator. More...
 
ImplicitSurfaceSetoperator= (ImplicitSurfaceSet &&other) noexcept
 Move assignment operator. More...
 
void UpdateQueryEngine () override
 Updates internal spatial query engine. More...
 
bool IsBounded () const override
 Returns true if bounding box can be defined. More...
 
bool IsValidGeometry () const override
 Returns true if the surface is a valid geometry. More...
 
size_t NumberOfSurfaces () const
 Returns the number of implicit surfaces. More...
 
const std::shared_ptr< ImplicitSurface< N > > & SurfaceAt (size_t i) const
 Returns the i-th implicit surface. More...
 
void AddExplicitSurface (const std::shared_ptr< Surface< N >> &surface)
 Adds an explicit surface instance. More...
 
void AddSurface (const std::shared_ptr< ImplicitSurface< N >> &surface)
 Adds an implicit surface instance. More...
 
- Public Member Functions inherited from CubbyFlow::ImplicitSurface< N >
 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
 
bool IsInside (const Vector< double, N > &otherPoint) const
 

Static Public Member Functions

static Builder GetBuilder ()
 Returns builder fox ImplicitSurfaceSet. More...
 

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::ImplicitSurfaceSet< N >

N-D implicit surface set.

This class represents N-D implicit surface set which extends ImplicitSurface by overriding implicit surface-related queries. This is class can hold a collection of other implicit surface instances.

Constructor & Destructor Documentation

◆ ImplicitSurfaceSet() [1/5]

template<size_t N>
CubbyFlow::ImplicitSurfaceSet< N >::ImplicitSurfaceSet ( )
default

Constructs an empty implicit surface set.

◆ ImplicitSurfaceSet() [2/5]

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

Constructs an implicit surface set using list of other surfaces.

◆ ImplicitSurfaceSet() [3/5]

template<size_t N>
CubbyFlow::ImplicitSurfaceSet< N >::ImplicitSurfaceSet ( ConstArrayView1< std::shared_ptr< Surface< N >>>  surfaces,
const Transform< N > &  _transform = Transform< N >{},
bool  _isNormalFlipped = false 
)

Constructs an implicit surface set using list of other surfaces.

◆ ~ImplicitSurfaceSet()

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

Default virtual destructor.

◆ ImplicitSurfaceSet() [4/5]

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

Copy constructor.

◆ ImplicitSurfaceSet() [5/5]

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

Move constructor.

Member Function Documentation

◆ AddExplicitSurface()

template<size_t N>
void CubbyFlow::ImplicitSurfaceSet< N >::AddExplicitSurface ( const std::shared_ptr< Surface< N >> &  surface)

Adds an explicit surface instance.

◆ AddSurface()

template<size_t N>
void CubbyFlow::ImplicitSurfaceSet< N >::AddSurface ( const std::shared_ptr< ImplicitSurface< N >> &  surface)

Adds an implicit surface instance.

◆ GetBuilder()

template<size_t N>
static Builder CubbyFlow::ImplicitSurfaceSet< N >::GetBuilder ( )
static

Returns builder fox ImplicitSurfaceSet.

◆ IsBounded()

template<size_t N>
bool CubbyFlow::ImplicitSurfaceSet< N >::IsBounded ( ) const
overridevirtual

Returns true if bounding box can be defined.

Reimplemented from CubbyFlow::Surface< N >.

◆ IsValidGeometry()

template<size_t N>
bool CubbyFlow::ImplicitSurfaceSet< N >::IsValidGeometry ( ) const
overridevirtual

Returns true if the surface is a valid geometry.

Reimplemented from CubbyFlow::Surface< N >.

◆ NumberOfSurfaces()

template<size_t N>
size_t CubbyFlow::ImplicitSurfaceSet< N >::NumberOfSurfaces ( ) const

Returns the number of implicit surfaces.

◆ operator=() [1/2]

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

Copy assignment operator.

◆ operator=() [2/2]

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

Move assignment operator.

◆ SurfaceAt()

template<size_t N>
const std::shared_ptr<ImplicitSurface<N> >& CubbyFlow::ImplicitSurfaceSet< N >::SurfaceAt ( size_t  i) const

Returns the i-th implicit surface.

◆ UpdateQueryEngine()

template<size_t N>
void CubbyFlow::ImplicitSurfaceSet< N >::UpdateQueryEngine ( )
overridevirtual

Updates internal spatial query engine.

Reimplemented from CubbyFlow::Surface< N >.


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