Loading [MathJax]/extensions/MathMenu.js
DGtal 2.0.0
DGtal::Ellipse2D< TSpace > Class Template Referencefinal

Aim: Model of the concept StarShaped represents any ellipse in the plane. More...

#include <DGtal/shapes/parametric/Ellipse2D.h>

Inheritance diagram for DGtal::Ellipse2D< TSpace >:
[legend]

Public Types

typedef TSpace Space
typedef Space::RealPoint RealPoint
typedef Space::RealVector RealVector
Public Types inherited from DGtal::StarShaped2D< TSpace >
typedef TSpace Space
typedef Space::RealPoint RealPoint

Public Member Functions

 Ellipse2D ()=delete
 Ellipse2D (const double x0, const double y0, const double a0, const double a1, const double theta)
 Ellipse2D (const RealPoint &aPoint, const double a0, const double a1, const double theta)
 Ellipse2D (const Ellipse2D &other)
Ellipse2Doperator= (const Ellipse2D &other)=delete
 ~Ellipse2D ()=default
RealPoint getLowerBound () const
RealPoint getUpperBound () const
RealPoint center () const
void moveTo (const RealPoint &newCenter)
double parameter (const RealPoint &p) const
RealPoint x (const double t) const
RealVector xp (const double t) const
RealVector xpp (const double t) const
void selfDisplay (std::ostream &out) const
bool isValid () const
Public Member Functions inherited from DGtal::StarShaped2D< TSpace >
 StarShaped2D ()=default
 StarShaped2D (const StarShaped2D &other)=delete
StarShaped2Doperator= (const StarShaped2D &other)=delete
virtual ~StarShaped2D ()=default
virtual RealPoint interiorPoint () const
Orientation orientation (const RealPoint &p) const
RealPoint tangent (const double t) const
RealPoint normal (const double t) const
double curvature (const double t) const
double arclength (const double t1, double t2, const unsigned int nb) const
RealPoint findIntersection (const RealPoint &inner, const RealPoint &outer, const double epsilon) const
RealPoint closestPointWithWitnesses (const RealPoint &p, const RealPoint &left, const RealPoint &right, const int step) const
void selfDisplay (std::ostream &out) const
bool isValid () const

Private Member Functions

template<typename T>
bool isAlmostEqual (T x, T y) const

Private Attributes

RealPoint myCenter
double myAxis1
double myAxis2
double myTheta

Detailed Description

template<typename TSpace>
class DGtal::Ellipse2D< TSpace >

Aim: Model of the concept StarShaped represents any ellipse in the plane.

Description of template class 'Ellipse2D'

NB: A backport from ImaGene.

Examples
geometry/curves/estimation/exampleCurvature.cpp.

Definition at line 64 of file Ellipse2D.h.

Member Typedef Documentation

◆ RealPoint

template<typename TSpace>
typedef Space::RealPoint DGtal::Ellipse2D< TSpace >::RealPoint

Definition at line 70 of file Ellipse2D.h.

◆ RealVector

template<typename TSpace>
typedef Space::RealVector DGtal::Ellipse2D< TSpace >::RealVector

Definition at line 71 of file Ellipse2D.h.

◆ Space

template<typename TSpace>
typedef TSpace DGtal::Ellipse2D< TSpace >::Space

Definition at line 69 of file Ellipse2D.h.

Constructor & Destructor Documentation

◆ Ellipse2D() [1/4]

template<typename TSpace>
DGtal::Ellipse2D< TSpace >::Ellipse2D ( )
delete

Constructor. Forbidden by default.

Referenced by Ellipse2D(), and operator=().

◆ Ellipse2D() [2/4]

template<typename TSpace>
DGtal::Ellipse2D< TSpace >::Ellipse2D ( const double x0,
const double y0,
const double a0,
const double a1,
const double theta )

Constructor.

Parameters
x0the x-coordinate of the circle center.
y0the y-coordinate of the circle center.
a0the half big axis of the ellipse.
a1the half small axis of the ellipse.
thetathe orientation of the ellipse.

◆ Ellipse2D() [3/4]

template<typename TSpace>
DGtal::Ellipse2D< TSpace >::Ellipse2D ( const RealPoint & aPoint,
const double a0,
const double a1,
const double theta )

Constructor.

Parameters
aPointthe circle center.
a0the half big axis of the ellipse.
a1the half small axis of the ellipse.
thetathe orientation of the ellipse.

References aPoint.

◆ Ellipse2D() [4/4]

template<typename TSpace>
DGtal::Ellipse2D< TSpace >::Ellipse2D ( const Ellipse2D< TSpace > & other)

Copy constructor.

Parameters
otherthe object to clone.

References Ellipse2D().

◆ ~Ellipse2D()

template<typename TSpace>
DGtal::Ellipse2D< TSpace >::~Ellipse2D ( )
default

Destructor.

Member Function Documentation

◆ center()

template<typename TSpace>
RealPoint DGtal::Ellipse2D< TSpace >::center ( ) const
inlinevirtual
Returns
the center of the star-shaped object.

Implements DGtal::StarShaped2D< TSpace >.

Definition at line 143 of file Ellipse2D.h.

144 {
145 return myCenter;
146 }
RealPoint myCenter
Definition Ellipse2D.h:197

References myCenter.

◆ getLowerBound()

template<typename TSpace>
RealPoint DGtal::Ellipse2D< TSpace >::getLowerBound ( ) const
inlinevirtual
Returns
the lower bound of the shape bounding box.

Implements DGtal::StarShaped2D< TSpace >.

Definition at line 126 of file Ellipse2D.h.

127 {
128 return myCenter - myAxis1;
129 }

References myAxis1, and myCenter.

◆ getUpperBound()

template<typename TSpace>
RealPoint DGtal::Ellipse2D< TSpace >::getUpperBound ( ) const
inlinevirtual
Returns
the upper bound of the shape bounding box.

Implements DGtal::StarShaped2D< TSpace >.

Definition at line 135 of file Ellipse2D.h.

136 {
137 return myCenter + myAxis1;
138 }

References myAxis1, and myCenter.

◆ isAlmostEqual()

template<typename TSpace>
template<typename T>
bool DGtal::Ellipse2D< TSpace >::isAlmostEqual ( T x,
T y ) const
inlineprivate

Equality test using relative tolerance.

Definition at line 238 of file Ellipse2D.h.

239 {
241 }
Aim: Model of the concept StarShaped represents any ellipse in the plane.
Definition Ellipse2D.h:65
RealPoint x(const double t) const

References x().

◆ isValid()

template<typename TSpace>
bool DGtal::Ellipse2D< TSpace >::isValid ( ) const

Checks the validity/consistency of the object.

Returns
'true' if the object is valid, 'false' otherwise.

◆ moveTo()

template<typename TSpace>
void DGtal::Ellipse2D< TSpace >::moveTo ( const RealPoint & newCenter)
inlinevirtual

Modify the shape center

Parameters
newCenterthe new center position

Implements DGtal::StarShaped2D< TSpace >.

Definition at line 153 of file Ellipse2D.h.

154 {
156 }

References myCenter.

◆ operator=()

template<typename TSpace>
Ellipse2D & DGtal::Ellipse2D< TSpace >::operator= ( const Ellipse2D< TSpace > & other)
delete

Assignment.

Parameters
otherthe object to copy.
Returns
a reference on 'this'. Forbidden by default.

References Ellipse2D().

◆ parameter()

template<typename TSpace>
double DGtal::Ellipse2D< TSpace >::parameter ( const RealPoint & p) const
virtual
Parameters
pany point in the plane.
Returns
the angle parameter between 0 and 2*Pi corresponding to this point for the shape.

Implements DGtal::StarShaped2D< TSpace >.

◆ selfDisplay()

template<typename TSpace>
void DGtal::Ellipse2D< TSpace >::selfDisplay ( std::ostream & out) const

Writes/Displays the object on an output stream.

Parameters
outthe output stream where the object is written.

◆ x()

template<typename TSpace>
RealPoint DGtal::Ellipse2D< TSpace >::x ( const double t) const
virtual
Parameters
tany angle between 0 and 2*Pi.
Returns
the vector (x(t),y(t)) which is the position on the shape boundary.

Implements DGtal::StarShaped2D< TSpace >.

Referenced by isAlmostEqual().

◆ xp()

template<typename TSpace>
RealVector DGtal::Ellipse2D< TSpace >::xp ( const double t) const
virtual
Parameters
tany angle between 0 and 2*Pi.
Returns
the vector (x'(t),y'(t)) which is the tangent to the shape boundary.

Implements DGtal::StarShaped2D< TSpace >.

◆ xpp()

template<typename TSpace>
RealVector DGtal::Ellipse2D< TSpace >::xpp ( const double t) const
virtual
Parameters
tany angle between 0 and 2*Pi.
Returns
the vector (x''(t),y''(t)).

Implements DGtal::StarShaped2D< TSpace >.

Field Documentation

◆ myAxis1

template<typename TSpace>
double DGtal::Ellipse2D< TSpace >::myAxis1
private

First axis.

Definition at line 202 of file Ellipse2D.h.

Referenced by getLowerBound(), and getUpperBound().

◆ myAxis2

template<typename TSpace>
double DGtal::Ellipse2D< TSpace >::myAxis2
private

Second axis.

Definition at line 208 of file Ellipse2D.h.

◆ myCenter

template<typename TSpace>
RealPoint DGtal::Ellipse2D< TSpace >::myCenter
private

Center of the circle.

Definition at line 197 of file Ellipse2D.h.

Referenced by center(), getLowerBound(), getUpperBound(), and moveTo().

◆ myTheta

template<typename TSpace>
double DGtal::Ellipse2D< TSpace >::myTheta
private

Orientation (radian).

Definition at line 213 of file Ellipse2D.h.


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