DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
InexactPredicateLpSeparableMetric.h
1
16
17
#pragma once
18
30
31
#if defined(InexactPredicateLpSeparableMetric_RECURSES)
32
#error Recursive header files inclusion detected in InexactPredicateLpSeparableMetric.h
33
#else
// defined(InexactPredicateLpSeparableMetric_RECURSES)
35
#define InexactPredicateLpSeparableMetric_RECURSES
36
37
#if !defined InexactPredicateLpSeparableMetric_h
39
#define InexactPredicateLpSeparableMetric_h
40
42
// Inclusions
43
#include <iostream>
44
#include <cmath>
45
#include "DGtal/base/Common.h"
46
#include "DGtal/kernel/CSpace.h"
47
#include "DGtal/kernel/CEuclideanRing.h"
49
50
namespace
DGtal
51
{
52
54
// template class InexactPredicateLpSeparableMetric
80
template
<
typename
TSpace,
typename
TValue =
double
>
81
class
InexactPredicateLpSeparableMetric
82
{
83
// ----------------------- Standard services ------------------------------
84
public
:
85
87
typedef
TSpace
Space
;
88
89
BOOST_CONCEPT_ASSERT
((
concepts::CSpace<TSpace>
));
90
BOOST_CONCEPT_ASSERT
((
concepts::CEuclideanRing<TValue>
));
91
93
typedef
typename
Space::Point
Point
;
95
typedef
typename
Point::Coordinate
Abscissa
;
97
typedef
typename
Space::Vector
Vector
;
99
typedef
TValue
Value
;
101
typedef
TValue
RawValue
;
102
106
InexactPredicateLpSeparableMetric
(
const
double
anExponent );
107
108
112
~InexactPredicateLpSeparableMetric
();
113
118
InexactPredicateLpSeparableMetric
(
const
InexactPredicateLpSeparableMetric
& other )
119
{
120
myExponent
= other.
myExponent
;
121
}
122
128
InexactPredicateLpSeparableMetric
&
operator=
(
const
InexactPredicateLpSeparableMetric
& other )
129
{
130
myExponent
= other.
myExponent
;
131
return
*
this
;
132
}
133
134
// ----------------------- Interface --------------------------------------
135
public
:
136
137
// ----------------------- CMetric --------------------------------------
146
Value
operator()
(
const
Point
& aP,
const
Point
&aQ)
const
;
147
156
RawValue
rawDistance
(
const
Point
& aP,
const
Point
&aQ)
const
;
157
169
Closest
closest
(
const
Point
&origin,
170
const
Point
&first,
171
const
Point
&second)
const
;
172
173
// ----------------------- CSeparableMetric --------------------------------------
194
bool
hiddenBy
(
const
Point
&u,
195
const
Point
&v,
196
const
Point
&w,
197
const
Point
&startingPoint,
198
const
Point
&endPoint,
199
const
typename
Point::UnsignedComponent
dim
)
const
;
200
201
206
void
selfDisplay
( std::ostream & out )
const
;
207
212
bool
isValid
()
const
;
213
214
// ------------------------- Protected Data ------------------------------
215
private
:
216
226
Value
distanceLp
(
const
Point
&aP,
const
Point
&aQ)
const
;
227
228
248
Abscissa
binarySearchHidden
(
const
Abscissa
&udim,
249
const
Abscissa
&vdim,
250
const
Value
&nu,
251
const
Value
&nv,
252
const
Abscissa
&
lower
,
253
const
Abscissa
&
upper
)
const
;
254
255
256
// ------------------------- Private Data --------------------------------
257
private
:
258
260
Value
myExponent
;
261
262
};
// end of class InexactPredicateLpSeparableMetric
263
270
template
<
typename
T,
typename
V>
271
std::ostream&
272
operator<<
( std::ostream & out,
const
InexactPredicateLpSeparableMetric<T,V>
&
object
);
273
274
}
// namespace DGtal
275
276
278
// Includes inline functions.
279
#include "DGtal/geometry/volumes/distance/InexactPredicateLpSeparableMetric.ih"
280
281
// //
283
284
#endif
// !defined InexactPredicateLpSeparableMetric_h
285
286
#undef InexactPredicateLpSeparableMetric_RECURSES
287
#endif
// else defined(InexactPredicateLpSeparableMetric_RECURSES)
DGtal::InexactPredicateLpSeparableMetric
Aim: implements separable l_p metrics with approximated predicates.
Definition
InexactPredicateLpSeparableMetric.h:82
DGtal::InexactPredicateLpSeparableMetric::InexactPredicateLpSeparableMetric
InexactPredicateLpSeparableMetric(const InexactPredicateLpSeparableMetric &other)
Definition
InexactPredicateLpSeparableMetric.h:118
DGtal::InexactPredicateLpSeparableMetric::rawDistance
RawValue rawDistance(const Point &aP, const Point &aQ) const
DGtal::InexactPredicateLpSeparableMetric::hiddenBy
bool hiddenBy(const Point &u, const Point &v, const Point &w, const Point &startingPoint, const Point &endPoint, const typename Point::UnsignedComponent dim) const
DGtal::InexactPredicateLpSeparableMetric::distanceLp
Value distanceLp(const Point &aP, const Point &aQ) const
DGtal::InexactPredicateLpSeparableMetric::operator=
InexactPredicateLpSeparableMetric & operator=(const InexactPredicateLpSeparableMetric &other)
Definition
InexactPredicateLpSeparableMetric.h:128
DGtal::InexactPredicateLpSeparableMetric::Point
Space::Point Point
Type for points.
Definition
InexactPredicateLpSeparableMetric.h:93
DGtal::InexactPredicateLpSeparableMetric::closest
Closest closest(const Point &origin, const Point &first, const Point &second) const
DGtal::InexactPredicateLpSeparableMetric::~InexactPredicateLpSeparableMetric
~InexactPredicateLpSeparableMetric()
DGtal::InexactPredicateLpSeparableMetric::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
DGtal::InexactPredicateLpSeparableMetric::isValid
bool isValid() const
DGtal::InexactPredicateLpSeparableMetric::Space
TSpace Space
Copy the space type.
Definition
InexactPredicateLpSeparableMetric.h:87
DGtal::InexactPredicateLpSeparableMetric::myExponent
Value myExponent
Exponent value.
Definition
InexactPredicateLpSeparableMetric.h:260
DGtal::InexactPredicateLpSeparableMetric::RawValue
TValue RawValue
Type for raw distance values.
Definition
InexactPredicateLpSeparableMetric.h:101
DGtal::InexactPredicateLpSeparableMetric::binarySearchHidden
Abscissa binarySearchHidden(const Abscissa &udim, const Abscissa &vdim, const Value &nu, const Value &nv, const Abscissa &lower, const Abscissa &upper) const
DGtal::InexactPredicateLpSeparableMetric::Value
TValue Value
Type for distance values.
Definition
InexactPredicateLpSeparableMetric.h:99
DGtal::InexactPredicateLpSeparableMetric::Abscissa
Point::Coordinate Abscissa
Type for points.
Definition
InexactPredicateLpSeparableMetric.h:95
DGtal::InexactPredicateLpSeparableMetric::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CEuclideanRing< TValue >))
DGtal::InexactPredicateLpSeparableMetric::operator()
Value operator()(const Point &aP, const Point &aQ) const
DGtal::InexactPredicateLpSeparableMetric::Vector
Space::Vector Vector
Type for vectors.
Definition
InexactPredicateLpSeparableMetric.h:97
DGtal::InexactPredicateLpSeparableMetric::selfDisplay
void selfDisplay(std::ostream &out) const
DGtal::InexactPredicateLpSeparableMetric::InexactPredicateLpSeparableMetric
InexactPredicateLpSeparableMetric(const double anExponent)
DGtal::PointVector< dim, Integer >::Coordinate
Component Coordinate
Definition
PointVector.h:617
DGtal::PointVector< dim, Integer >::UnsignedComponent
NumberTraits< Component >::UnsignedVersion UnsignedComponent
Definition
PointVector.h:620
DGtal::SpaceND< 3, Integer >::Point
PointVector< dim, Integer > Point
Definition
SpaceND.h:110
DGtal::SpaceND< 3, Integer >::Vector
PointVector< dim, Integer > Vector
Definition
SpaceND.h:113
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::Closest
Closest
Definition
Common.h:129
DGtal::operator<<
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
DGtal::concepts::CEuclideanRing
Aim: Defines the mathematical concept equivalent to a unitary commutative ring with a division operat...
Definition
CEuclideanRing.h:88
DGtal::concepts::CSpace
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.
Definition
CSpace.h:106
dim
#define dim
Definition
testImageContainerByHashTree.cpp:40
lower
Vector lower(const Vector &z, unsigned int k)
Definition
viewDualSurface.cpp:189
upper
Vector upper(const Vector &z, unsigned int k)
Definition
viewDualSurface.cpp:196
src
DGtal
geometry
volumes
distance
InexactPredicateLpSeparableMetric.h
Generated on
for DGtal by
1.18.0