3-D plane geometry. More...

#include <Core/Geometry/Plane3.h>

Inheritance diagram for CubbyFlow::Plane3:
CubbyFlow::Surface3

Classes

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

Public Member Functions

 Plane3 (const Transform3 &transform=Transform3(), bool isNormalFlipped=false)
 Constructs a plane that crosses (0, 0, 0) with surface normal (0, 1, 0). More...
 
 Plane3 (const Vector3D &normal, const Vector3D &point, const Transform3 &transform=Transform3(), bool isNormalFlipped=false)
 Constructs a plane that cross point with surface normal normal. More...
 
 Plane3 (const Vector3D &point0, const Vector3D &point1, const Vector3D &point2, const Transform3 &transform=Transform3(), bool isNormalFlipped=false)
 
 Plane3 (const Plane3 &other)
 Copy constructor. 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 fox Plane3. More...
 

Public Attributes

Vector3D normal = Vector3D(0, 1, 0)
 Plane normal. More...
 
Vector3D point
 Point that lies on the plane. More...
 
- Public Attributes inherited from CubbyFlow::Surface3
Transform3 transform
 Local-to-world transform. More...
 
bool isNormalFlipped = false
 Flips normal when calling Surface3::closestNormal(...). More...
 

Protected Member Functions

Vector3D ClosestPointLocal (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
 Returns the closest intersection point for given ray in local frame. More...
 
- Protected Member Functions inherited from CubbyFlow::Surface3
virtual double ClosestDistanceLocal (const Vector3D &otherPoint) const
 

Detailed Description

3-D plane geometry.

This class represents 3-D plane geometry which extends Surface3 by overriding surface-related queries.

Constructor & Destructor Documentation

◆ Plane3() [1/4]

CubbyFlow::Plane3::Plane3 ( const Transform3 transform = Transform3(),
bool  isNormalFlipped = false 
)

Constructs a plane that crosses (0, 0, 0) with surface normal (0, 1, 0).

◆ Plane3() [2/4]

CubbyFlow::Plane3::Plane3 ( const Vector3D normal,
const Vector3D point,
const Transform3 transform = Transform3(),
bool  isNormalFlipped = false 
)

Constructs a plane that cross point with surface normal normal.

◆ Plane3() [3/4]

CubbyFlow::Plane3::Plane3 ( const Vector3D point0,
const Vector3D point1,
const Vector3D point2,
const Transform3 transform = Transform3(),
bool  isNormalFlipped = false 
)

Constructs a plane with three points on the surface. The normal will be set using the counter clockwise direction.

◆ Plane3() [4/4]

CubbyFlow::Plane3::Plane3 ( const Plane3 other)

Copy constructor.

Member Function Documentation

◆ BoundingBoxLocal()

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

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

Implements CubbyFlow::Surface3.

◆ ClosestIntersectionLocal()

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

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

Implements CubbyFlow::Surface3.

◆ ClosestNormalLocal()

Vector3D CubbyFlow::Plane3::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::Plane3::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::Plane3::GetBuilder ( )
static

Returns builder fox Plane3.

◆ IntersectsLocal()

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

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

Reimplemented from CubbyFlow::Surface3.

Member Data Documentation

◆ normal

Vector3D CubbyFlow::Plane3::normal = Vector3D(0, 1, 0)

Plane normal.

◆ point

Vector3D CubbyFlow::Plane3::point

Point that lies on the plane.


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