Core 1.0
RevolutionQuadricVolume2 Class Reference

Symmetry axis of revolution with a quadric curve. More...

#include <revolution.h>

Inheritance diagram for RevolutionQuadricVolume2:
Axis2

Public Member Functions

 RevolutionQuadricVolume2 (const Vector2 &, const Vector2 &, const QuadricCurve2 &)
 Creates a surface of revolution based on a quadric parametric profile curve.
 
virtual ~RevolutionQuadricVolume2 ()
 Destructor.
 
void Translate (const Vector2 &)
 Translation.
 
void Rotate (const Matrix2 &)
 Rotation.
 
void Scale (const double &)
 Scaling.
 
Vector2 Normal (const Vector2 &) const
 Compute the distance vector between a point and the surface.
 
double R (const Vector2 &) const
 Compute the squared distance between a point and the surface of revolution.
 
double Signed (const Vector2 &) const
 Compute the intensity at a given point.
 
Box2 GetBox () const
 Compute the bounding box.
 
OrientedBox2 GetOrientedBox () const
 Compute the bounding cylinder.
 

Protected Attributes

Quadric y
 Quadric profile curves.
 
Quadric xy
 Constant coefficients used to speed-up queries.
 
double yb
 Range of values for the y quadric profile curve.
 
- Protected Attributes inherited from Axis2
Vector2 b = Vector2(1.0, 0.0)
 End vertexes of the axis.
 
Vector2 axis = Vector2::X
 Normalized axis vector.
 
double length = 1.0
 Length of the axis.
 

Additional Inherited Members

- Protected Member Functions inherited from Axis2
double Radial (const Vector2 &, Vector2 &, Vector2 &) const
 Compute the radial coordinates of a point.
 
Vector2 Radial (const Vector2 &) const
 Compute the radial coordinates of a point.
 
 Axis2 ()
 Empty.
 
 Axis2 (const Vector2 &, const Vector2 &)
 Creates an axis given end vertices.
 
 ~Axis2 ()
 Empty.
 
Vector2 Vertex (int) const
 Return one of the end vertexes of the axis.
 
Vector2 Point (const double &) const
 Compute a point on the axis.
 
Vector2 GetAxis () const
 Returns the normalized axis vector.
 
constexpr double Length () const
 Return the axis length.
 
void Translate (const Vector2 &)
 Translation.
 
void Rotate (const Matrix2 &)
 Rotation.
 
void Scale (const double &)
 Scaling.
 
Vector2 Symmetric (const Vector2 &) const
 Symmetric point.
 
Circle2 Symmetric (const Circle2 &) const
 Symmetric circle.
 
Box2 Symmetric (const Box2 &) const
 Symmetric box.
 

Detailed Description

Symmetry axis of revolution with a quadric curve.

Constructor & Destructor Documentation

◆ RevolutionQuadricVolume2()

RevolutionQuadricVolume2::RevolutionQuadricVolume2 ( const Vector2 & a,
const Vector2 & b,
const QuadricCurve2 & c )
explicit

Creates a surface of revolution based on a quadric parametric profile curve.

Parameters
a,bAxis vertices.
cQuadric curve.

Member Function Documentation

◆ Normal()

Vector2 RevolutionQuadricVolume2::Normal ( const Vector2 & p) const

Compute the distance vector between a point and the surface.

Parameters
pPoint.

◆ R()

double RevolutionQuadricVolume2::R ( const Vector2 & p) const

Compute the squared distance between a point and the surface of revolution.

Parameters
pPoint.

◆ Rotate()

void RevolutionQuadricVolume2::Rotate ( const Matrix2 & r)

Rotation.

Parameters
rRotation matrix.

◆ Scale()

void RevolutionQuadricVolume2::Scale ( const double & s)

Scaling.

Parameters
sScaling factor.

◆ Signed()

double RevolutionQuadricVolume2::Signed ( const Vector2 & p) const

Compute the intensity at a given point.

Parameters
pPoint.

◆ Translate()

void RevolutionQuadricVolume2::Translate ( const Vector2 & t)

Translation.

Parameters
tTranslation vector.