31 #if defined(ExactPredicateLpSeparableMetric_RECURSES)
32 #error Recursive header files inclusion detected in ExactPredicateLpSeparableMetric.h
33 #else // defined(ExactPredicateLpSeparableMetric_RECURSES)
35 #define ExactPredicateLpSeparableMetric_RECURSES
37 #if !defined ExactPredicateLpSeparableMetric_h
39 #define ExactPredicateLpSeparableMetric_h
45 #include "DGtal/base/Common.h"
46 #include "DGtal/math/BasicMathFunctions.h"
47 #include "DGtal/kernel/CInteger.h"
48 #include "DGtal/kernel/CSpace.h"
49 #include "DGtal/kernel/CInteger.h"
129 boost::ignore_unused_variable_warning( other );
139 boost::ignore_unused_variable_warning( other );
155 Value
operator()(
const Point & aP,
const Point &aQ)
const;
170 const Point &second)
const;
180 RawValue
rawDistance(
const Point & aP,
const Point &aQ)
const;
207 const Point &startingPoint,
208 const Point &endPoint,
245 const Abscissa &vdim,
248 const Abscissa &lower,
249 const Abscissa &upper)
const;
259 template <
typename TSpace,
302 boost::ignore_unused_variable_warning( other );
312 boost::ignore_unused_variable_warning( other );
330 Value local(
const Point & aP,
const Vector &aDir)
const;
342 Value
operator()(
const Point & aP,
const Point &aQ)
const;
357 const Point &second)
const;
370 RawValue
rawDistance(
const Point &aP,
const Point &aQ)
const;
394 const Point &startingPoint,
395 const Point &endPoint,
432 const Abscissa &vdim,
435 const Abscissa &lower,
436 const Abscissa &upper)
const;
447 template <
typename T, DGtal::u
int32_t p,
typename P>
449 operator<< ( std::ostream & out, const ExactPredicateLpSeparableMetric<T,p,P> & object );
456 #include "DGtal/geometry/volumes/distance/ExactPredicateLpSeparableMetric.ih"
461 #endif // !defined ExactPredicateLpSeparableMetric_h
463 #undef ExactPredicateLpSeparableMetric_RECURSES
464 #endif // else defined(ExactPredicateLpSeparableMetric_RECURSES)
ExactPredicateLpSeparableMetric(const Self &other)
boost::uint32_t uint32_t
unsigned 32-bit integer.
TSpace Space
Copy the space type.
Component Coordinate
Type for Point elements.
Point::Coordinate Abscissa
Type for points.
Space::Vector Vector
Type for vectors.
Space::Vector Vector
Type for vectors.
ExactPredicateLpSeparableMetric< TSpace, p, RawValue > Self
Self type.
Space::Point Point
Type for points.
ExactPredicateLpSeparableMetric(const Self &other)
void selfDisplay(std::ostream &out) const
TSpace Space
Copy the space type.
Aim: implements separable l_p metrics with exact predicates.
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...
Value operator()(const Point &aP, const Point &aQ) const
Abscissa binarySearchHidden(const Abscissa &udim, const Abscissa &vdim, const RawValue &nu, const RawValue &nv, const Abscissa &lower, const Abscissa &upper) const
ExactPredicateLpSeparableMetric()
double Value
Type for distance values.
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines...
Point::Coordinate Abscissa
Type for points.
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
ExactPredicateLpSeparableMetric< TSpace, 2, TRawValue > Self
Self type.
NumberTraits< Component >::UnsignedVersion UnsignedComponent
Unsigned version of the components.
DGtal is the top-level namespace which contains all DGtal functions and types.
RawValue rawDistance(const Point &aP, const Point &aQ) const
Space::Point Point
Type for points.
bool hiddenBy(const Point &u, const Point &v, const Point &w, const Point &startingPoint, const Point &endPoint, const typename Point::UnsignedComponent dim) const
Self & operator=(const Self &other)
Closest closest(const Point &origin, const Point &first, const Point &second) const
double Value
Type for distance values.
TRawValue RawValue
Type for internal distance values.
TRawValue RawValue
Type for internal distance values.
boost::int64_t int64_t
signed 94-bit integer.
~ExactPredicateLpSeparableMetric()