3-D cylinder geometry. More...

#include <Core/Geometry/Cylinder3.hpp>

Inheritance diagram for CubbyFlow::Cylinder3:
CubbyFlow::Surface< N >

Classes

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

Public Member Functions

 Cylinder3 (const Transform3 &_transform=Transform3{}, bool _isNormalFlipped=false)
 Constructs a cylinder with _transform and _isNormalFlipped. More...
 
 Cylinder3 (Vector3D _center, double _radius, double _height, const Transform3 &_transform=Transform3{}, bool _isNormalFlipped=false)
 
 Cylinder3 (const Cylinder3 &)=default
 Default copy constructor. More...
 
 Cylinder3 (Cylinder3 &&) noexcept=default
 Default move constructor. More...
 
 ~Cylinder3 () override=default
 Default virtual destructor. More...
 
Cylinder3operator= (const Cylinder3 &)=default
 Default copy assignment operator. More...
 
Cylinder3operator= (Cylinder3 &&) noexcept=default
 Default move assignment operator. 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
 

Static Public Member Functions

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

Public Attributes

Vector3D center
 Center of the cylinder. More...
 
double radius = 1.0
 Radius of the cylinder. More...
 
double height = 1.0
 Height of the cylinder. More...
 
- Public Attributes inherited from CubbyFlow::Surface< N >
Transform< N > transform
 Local-to-world transform. More...
 
bool isNormalFlipped = false
 Flips normal. 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 &otherPoint) const override
 
SurfaceRayIntersection3 ClosestIntersectionLocal (const Ray3D &ray) const override
 
- Protected Member Functions inherited from CubbyFlow::Surface< N >
virtual Vector< double, N > ClosestPointLocal (const Vector< double, N > &otherPoint) const =0
 
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 double ClosestDistanceLocal (const Vector< double, N > &otherPoint) const
 
virtual bool IsInsideLocal (const Vector< double, N > &otherPoint) const
 

Detailed Description

3-D cylinder geometry.

This class represents 3-D cylinder geometry which extends Surface3 by overriding surface-related queries. The cylinder is aligned with the y-axis.

Constructor & Destructor Documentation

◆ Cylinder3() [1/4]

CubbyFlow::Cylinder3::Cylinder3 ( const Transform3 _transform = Transform3{},
bool  _isNormalFlipped = false 
)

Constructs a cylinder with _transform and _isNormalFlipped.

◆ Cylinder3() [2/4]

CubbyFlow::Cylinder3::Cylinder3 ( Vector3D  _center,
double  _radius,
double  _height,
const Transform3 _transform = Transform3{},
bool  _isNormalFlipped = false 
)

Constructs a cylinder with _center, _radius, _height, _transform and _isNormalFlipped.

◆ Cylinder3() [3/4]

CubbyFlow::Cylinder3::Cylinder3 ( const Cylinder3 )
default

Default copy constructor.

◆ Cylinder3() [4/4]

CubbyFlow::Cylinder3::Cylinder3 ( Cylinder3 &&  )
defaultnoexcept

Default move constructor.

◆ ~Cylinder3()

CubbyFlow::Cylinder3::~Cylinder3 ( )
overridedefault

Default virtual destructor.

Member Function Documentation

◆ BoundingBoxLocal()

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

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

Implements CubbyFlow::Surface< N >.

◆ ClosestDistanceLocal()

double CubbyFlow::Cylinder3::ClosestDistanceLocal ( const Vector3D otherPoint) const
overrideprotected

◆ ClosestIntersectionLocal()

SurfaceRayIntersection3 CubbyFlow::Cylinder3::ClosestIntersectionLocal ( const Ray3D ray) const
overrideprotected

◆ ClosestNormalLocal()

Vector3D CubbyFlow::Cylinder3::ClosestNormalLocal ( const Vector3D otherPoint) const
overrideprotected

◆ ClosestPointLocal()

Vector3D CubbyFlow::Cylinder3::ClosestPointLocal ( const Vector3D otherPoint) const
overrideprotected

◆ GetBuilder()

static Builder CubbyFlow::Cylinder3::GetBuilder ( )
static

Returns builder fox Cylinder3.

◆ IntersectsLocal()

bool CubbyFlow::Cylinder3::IntersectsLocal ( const Ray3D ray) const
overrideprotected

◆ operator=() [1/2]

Cylinder3& CubbyFlow::Cylinder3::operator= ( const Cylinder3 )
default

Default copy assignment operator.

◆ operator=() [2/2]

Cylinder3& CubbyFlow::Cylinder3::operator= ( Cylinder3 &&  )
defaultnoexcept

Default move assignment operator.

Member Data Documentation

◆ center

Vector3D CubbyFlow::Cylinder3::center

Center of the cylinder.

◆ height

double CubbyFlow::Cylinder3::height = 1.0

Height of the cylinder.

◆ radius

double CubbyFlow::Cylinder3::radius = 1.0

Radius of the cylinder.


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