33 #if defined(StarShaped2D_RECURSES)
34 #error Recursive header files inclusion detected in StarShaped2D.h
35 #else // defined(StarShaped2D_RECURSES)
37 #define StarShaped2D_RECURSES
39 #if !defined StarShaped2D_h
41 #define StarShaped2D_h
47 #include "DGtal/base/Common.h"
48 #include "DGtal/kernel/NumberTraits.h"
73 template <
typename TSpace>
157 virtual RealPoint x(
const double t )
const = 0;
210 double curvature(
const double t )
const;
219 double arclength(
const double t1,
double t2,
const unsigned int nb )
const;
265 template <
typename T>
269 return std::abs(x - y) <= std::numeric_limits<T>::epsilon();
281 template <
typename T>
283 operator<< ( std::ostream & out,
const StarShaped2D<T> &
object );
290 #include "DGtal/shapes/parametric/StarShaped2D.ih"
295 #endif // !defined StarShaped2D_h
297 #undef StarShaped2D_RECURSES
298 #endif // else defined(StarShaped2D_RECURSES)
double curvature(const double t) const
virtual RealPoint x(const double t) const =0
StarShaped2D & operator=(const StarShaped2D &other)=delete
RealPoint normal(const double t) const
RealPoint findIntersection(const RealPoint &inner, const RealPoint &outer, const double epsilon) const
virtual RealPoint center() const =0
Orientation orientation(const RealPoint &p) const
std::ostream & operator<<(std::ostream &out, const ATu0v1< TKSpace, TLinearAlgebra > &object)
virtual RealPoint getLowerBound() const =0
virtual RealPoint getUpperBound() const =0
DGtal is the top-level namespace which contains all DGtal functions and types.
virtual RealPoint interiorPoint() const
RealPoint tangent(const double t) const
double arclength(const double t1, double t2, const unsigned int nb) const
RealPoint closestPointWithWitnesses(const RealPoint &p, const RealPoint &left, const RealPoint &right, const int step) const
void selfDisplay(std::ostream &out) const
virtual ~StarShaped2D()=default
PointVector< dim, double > RealPoint
virtual RealPoint xp(const double t) const =0
Aim: Implements basic operations that will be used in Point and Vector classes.
bool isAlmostEqual(T x, T y) const
virtual void moveTo(const RealPoint &newCenter)=0
virtual RealPoint xpp(const double t) const =0
virtual double parameter(const RealPoint &p) const =0
Space::RealPoint RealPoint