31#if defined(ExactPredicateLpSeparableMetric_RECURSES)
32#error Recursive header files inclusion detected in ExactPredicateLpSeparableMetric.h
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 );
170 const Point &second)
const;
207 const Point &startingPoint,
208 const Point &endPoint,
259 template <
typename TSpace,
302 boost::ignore_unused_variable_warning( other );
312 boost::ignore_unused_variable_warning( other );
357 const Point &second)
const;
394 const Point &startingPoint,
395 const Point &endPoint,
447 template <
typename T, DGtal::u
int32_t p,
typename P>
456#include "DGtal/geometry/volumes/distance/ExactPredicateLpSeparableMetric.ih"
463#undef ExactPredicateLpSeparableMetric_RECURSES
Space::Vector Vector
Type for vectors.
ExactPredicateLpSeparableMetric< TSpace, 2, TRawValue > Self
Self type.
double Value
Type for distance values.
Point::Coordinate Abscissa
Type for points.
ExactPredicateLpSeparableMetric(const Self &other)
ExactPredicateLpSeparableMetric()
TSpace Space
Copy the space type.
bool hiddenBy(const Point &u, const Point &v, const Point &w, const Point &startingPoint, const Point &endPoint, const typename Point::UnsignedComponent dim) const
Value local(const Point &aP, const Vector &aDir) const
TRawValue RawValue
Type for internal distance values.
Abscissa binarySearchHidden(const Abscissa &udim, const Abscissa &vdim, const RawValue &nu, const RawValue &nv, const Abscissa &lower, const Abscissa &upper) const
Space::Point Point
Type for points.
~ExactPredicateLpSeparableMetric()
void selfDisplay(std::ostream &out) const
Value operator()(const Point &aP, const Point &aQ) const
RawValue rawDistance(const Point &aP, const Point &aQ) const
Closest closest(const Point &origin, const Point &first, const Point &second) const
Aim: implements separable l_p metrics with exact predicates.
Space::Point Point
Type for points.
~ExactPredicateLpSeparableMetric()
TRawValue RawValue
Type for internal distance values.
BOOST_CONCEPT_ASSERT((concepts::CInteger< RawValue >))
Self & operator=(const Self &other)
ExactPredicateLpSeparableMetric(const Self &other)
Closest closest(const Point &origin, const Point &first, const Point &second) const
Abscissa binarySearchHidden(const Abscissa &udim, const Abscissa &vdim, const RawValue &nu, const RawValue &nv, const Abscissa &lower, const Abscissa &upper) const
double Value
Type for distance values.
ExactPredicateLpSeparableMetric()
bool hiddenBy(const Point &u, const Point &v, const Point &w, const Point &startingPoint, const Point &endPoint, const typename Point::UnsignedComponent dim) const
TSpace Space
Copy the space type.
Point::Coordinate Abscissa
Type for points.
RawValue rawDistance(const Point &aP, const Point &aQ) const
Space::Vector Vector
Type for vectors.
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
ExactPredicateLpSeparableMetric< TSpace, p, RawValue > Self
Self type.
void selfDisplay(std::ostream &out) const
Value operator()(const Point &aP, const Point &aQ) const
NumberTraits< Component >::UnsignedVersion UnsignedComponent
DGtal is the top-level namespace which contains all DGtal functions and types.
boost::int64_t int64_t
signed 94-bit integer.
boost::uint32_t uint32_t
unsigned 32-bit integer.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.
Vector lower(const Vector &z, unsigned int k)
Vector upper(const Vector &z, unsigned int k)