CubbyFlow::IntersectionQueryEngine< T, N > Class Template Referenceabstract

Abstract base class for N-D intersection test query engine. More...

#include <Core/QueryEngine/IntersectionQueryEngine.hpp>

Inheritance diagram for CubbyFlow::IntersectionQueryEngine< T, N >:
CubbyFlow::BVH< T, N > CubbyFlow::ListQueryEngine< T, N > CubbyFlow::Octree< T > CubbyFlow::Quadtree< T >

Public Member Functions

 IntersectionQueryEngine ()=default
 Default constructor. More...
 
virtual ~IntersectionQueryEngine ()=default
 Default virtual destructor. More...
 
 IntersectionQueryEngine (const IntersectionQueryEngine &other)=default
 Default copy constructor. More...
 
 IntersectionQueryEngine (IntersectionQueryEngine &&other) noexcept=default
 Default move constructor. More...
 
IntersectionQueryEngineoperator= (const IntersectionQueryEngine &other)=default
 Default copy assignment operator. More...
 
IntersectionQueryEngineoperator= (IntersectionQueryEngine &&other) noexcept=default
 Default move assignment operator. More...
 
virtual bool Intersects (const BoundingBox< double, N > &box, const BoxIntersectionTestFunc< T, N > &testFunc) const =0
 Returns true if given box intersects with any of the stored items. More...
 
virtual bool Intersects (const Ray< double, N > &ray, const RayIntersectionTestFunc< T, N > &testFunc) const =0
 Returns true if given ray intersects with any of the stored items. More...
 
virtual void ForEachIntersectingItem (const BoundingBox< double, N > &box, const BoxIntersectionTestFunc< T, N > &testFunc, const IntersectionVisitorFunc< T > &visitorFunc) const =0
 Invokes visitorFunc for every intersecting items. More...
 
virtual void ForEachIntersectingItem (const Ray< double, N > &ray, const RayIntersectionTestFunc< T, N > &testFunc, const IntersectionVisitorFunc< T > &visitorFunc) const =0
 Invokes visitorFunc for every intersecting items. More...
 
virtual ClosestIntersectionQueryResult< T, N > ClosestIntersection (const Ray< double, N > &ray, const GetRayIntersectionFunc< T, N > &testFunc) const =0
 Returns the closest intersection for given ray. More...
 

Detailed Description

template<typename T, size_t N>
class CubbyFlow::IntersectionQueryEngine< T, N >

Abstract base class for N-D intersection test query engine.

Constructor & Destructor Documentation

◆ IntersectionQueryEngine() [1/3]

template<typename T, size_t N>
CubbyFlow::IntersectionQueryEngine< T, N >::IntersectionQueryEngine ( )
default

Default constructor.

◆ ~IntersectionQueryEngine()

template<typename T, size_t N>
virtual CubbyFlow::IntersectionQueryEngine< T, N >::~IntersectionQueryEngine ( )
virtualdefault

Default virtual destructor.

◆ IntersectionQueryEngine() [2/3]

template<typename T, size_t N>
CubbyFlow::IntersectionQueryEngine< T, N >::IntersectionQueryEngine ( const IntersectionQueryEngine< T, N > &  other)
default

Default copy constructor.

◆ IntersectionQueryEngine() [3/3]

template<typename T, size_t N>
CubbyFlow::IntersectionQueryEngine< T, N >::IntersectionQueryEngine ( IntersectionQueryEngine< T, N > &&  other)
defaultnoexcept

Default move constructor.

Member Function Documentation

◆ ClosestIntersection()

template<typename T, size_t N>
virtual ClosestIntersectionQueryResult<T, N> CubbyFlow::IntersectionQueryEngine< T, N >::ClosestIntersection ( const Ray< double, N > &  ray,
const GetRayIntersectionFunc< T, N > &  testFunc 
) const
pure virtual

◆ ForEachIntersectingItem() [1/2]

template<typename T, size_t N>
virtual void CubbyFlow::IntersectionQueryEngine< T, N >::ForEachIntersectingItem ( const BoundingBox< double, N > &  box,
const BoxIntersectionTestFunc< T, N > &  testFunc,
const IntersectionVisitorFunc< T > &  visitorFunc 
) const
pure virtual

◆ ForEachIntersectingItem() [2/2]

template<typename T, size_t N>
virtual void CubbyFlow::IntersectionQueryEngine< T, N >::ForEachIntersectingItem ( const Ray< double, N > &  ray,
const RayIntersectionTestFunc< T, N > &  testFunc,
const IntersectionVisitorFunc< T > &  visitorFunc 
) const
pure virtual

◆ Intersects() [1/2]

template<typename T, size_t N>
virtual bool CubbyFlow::IntersectionQueryEngine< T, N >::Intersects ( const BoundingBox< double, N > &  box,
const BoxIntersectionTestFunc< T, N > &  testFunc 
) const
pure virtual

◆ Intersects() [2/2]

template<typename T, size_t N>
virtual bool CubbyFlow::IntersectionQueryEngine< T, N >::Intersects ( const Ray< double, N > &  ray,
const RayIntersectionTestFunc< T, N > &  testFunc 
) const
pure virtual

◆ operator=() [1/2]

template<typename T, size_t N>
IntersectionQueryEngine& CubbyFlow::IntersectionQueryEngine< T, N >::operator= ( const IntersectionQueryEngine< T, N > &  other)
default

Default copy assignment operator.

◆ operator=() [2/2]

template<typename T, size_t N>
IntersectionQueryEngine& CubbyFlow::IntersectionQueryEngine< T, N >::operator= ( IntersectionQueryEngine< T, N > &&  other)
defaultnoexcept

Default move assignment operator.


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