DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
SeparableMetricAdapter.h
1
16
17
#pragma once
18
30
31
#if defined(SeparableMetricAdapter_RECURSES)
32
#error Recursive header files inclusion detected in SeparableMetricAdapter.h
33
#else
// defined(SeparableMetricAdapter_RECURSES)
35
#define SeparableMetricAdapter_RECURSES
36
37
#if !defined SeparableMetricAdapter_h
39
#define SeparableMetricAdapter_h
40
42
// Inclusions
43
#include <iostream>
44
#include <cmath>
45
#include "DGtal/base/Common.h"
46
#include "DGtal/geometry/volumes/distance/CMetricSpace.h"
47
#include "DGtal/base/ConstAlias.h"
49
50
namespace
DGtal
51
{
52
54
// template class SeparableMetricAdapter
78
template
<
typename
TMetric>
79
class
SeparableMetricAdapter
80
{
81
// ----------------------- Standard services ------------------------------
82
public
:
83
84
86
typedef
TMetric
Metric
;
87
BOOST_CONCEPT_ASSERT
((
concepts::CMetricSpace<TMetric>
));
88
90
typedef
typename
Metric::Point
Point
;
92
typedef
typename
Point::Coordinate
Abscissa
;
94
typedef
typename
Metric::Value
Value
;
96
typedef
typename
Metric::RawValue
RawValue
;
98
typedef
typename
Metric::Vector
Vector
;
100
typedef
typename
Metric::Space
Space
;
101
108
SeparableMetricAdapter
(
ConstAlias<Metric>
aMetric):
myMetric
(&aMetric)
109
{}
110
114
~SeparableMetricAdapter
() {};
115
120
SeparableMetricAdapter
(
const
SeparableMetricAdapter
&other ) :
myMetric
(other.
myMetric
) {}
121
127
SeparableMetricAdapter
&
operator=
(
const
SeparableMetricAdapter
& other )
128
{
129
myMetric
= other.
myMetric
;
130
return
*
this
;
131
}
132
133
// ----------------------- Interface --------------------------------------
134
public
:
135
136
// ----------------------- CMetric --------------------------------------
145
Value
operator()
(
const
Point
& aP,
const
Point
&aQ)
const
146
{
147
return
myMetric
->operator()(aP,aQ);
148
}
149
158
RawValue
rawDistance
(
const
Point
& aP,
const
Point
&aQ)
const
159
{
160
return
myMetric
->rawDistance(aP,aQ);
161
}
162
173
Closest
closest
(
const
Point
&origin,
174
const
Point
&first,
175
const
Point
&second)
const
176
{
177
return
myMetric
->closest(origin,first,second);
178
}
179
180
// ----------------------- CSeparableMetric --------------------------------------
201
bool
hiddenBy
(
const
Point
&u,
202
const
Point
&v,
203
const
Point
&w,
204
const
Point
&startingPoint,
205
const
Point
&endPoint,
206
const
typename
Point::UnsignedComponent
dim
)
const
;
207
208
213
void
selfDisplay
( std::ostream & out )
const
;
214
219
bool
isValid
()
const
220
{
221
return
myMetric
->isValid();
222
}
223
224
239
Abscissa
binarySearchHidden
(
const
Point
&u,
240
const
Point
&v,
241
const
typename
Point::UnsignedComponent
dim
,
242
const
Point
&
lower
,
243
const
Point
&
upper
)
const
;
244
245
// ------------------------- Private methods ------------------------------
246
private
:
247
248
// ------------------------- Private members ------------------------------
249
private
:
250
const
Metric
*
myMetric
;
251
252
};
// end of class SeparableMetricAdapter
253
254
255
262
template
<
typename
TM>
263
std::ostream&
264
operator<<
( std::ostream & out,
const
SeparableMetricAdapter<TM>
&
object
);
265
266
}
// namespace DGtal
267
268
270
// Includes inline functions.
271
#include "DGtal/geometry/volumes/distance/SeparableMetricAdapter.ih"
272
273
// //
275
276
#endif
// !defined SeparableMetricAdapter_h
277
278
#undef SeparableMetricAdapter_RECURSES
279
#endif
// else defined(SeparableMetricAdapter_RECURSES)
DGtal::ConstAlias
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Definition
ConstAlias.h:187
DGtal::SeparableMetricAdapter
Aim: Adapts any model of CMetric to construct a separable metric (model of CSeparableMetric).
Definition
SeparableMetricAdapter.h:80
DGtal::SeparableMetricAdapter::RawValue
Metric::RawValue RawValue
Type for raw values.
Definition
SeparableMetricAdapter.h:96
DGtal::SeparableMetricAdapter::rawDistance
RawValue rawDistance(const Point &aP, const Point &aQ) const
Definition
SeparableMetricAdapter.h:158
DGtal::SeparableMetricAdapter::myMetric
const Metric * myMetric
Definition
SeparableMetricAdapter.h:250
DGtal::SeparableMetricAdapter::Abscissa
Point::Coordinate Abscissa
Type for point abscissa.
Definition
SeparableMetricAdapter.h:92
DGtal::SeparableMetricAdapter::isValid
bool isValid() const
Definition
SeparableMetricAdapter.h:219
DGtal::SeparableMetricAdapter::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CMetricSpace< TMetric >))
DGtal::SeparableMetricAdapter::operator=
SeparableMetricAdapter & operator=(const SeparableMetricAdapter &other)
Definition
SeparableMetricAdapter.h:127
DGtal::SeparableMetricAdapter::selfDisplay
void selfDisplay(std::ostream &out) const
DGtal::SeparableMetricAdapter::Space
Metric::Space Space
Type for Space.
Definition
SeparableMetricAdapter.h:100
DGtal::SeparableMetricAdapter::Value
Metric::Value Value
Type for values.
Definition
SeparableMetricAdapter.h:94
DGtal::SeparableMetricAdapter::Point
Metric::Point Point
Type for points.
Definition
SeparableMetricAdapter.h:90
DGtal::SeparableMetricAdapter::Vector
Metric::Vector Vector
Type for vectors.
Definition
SeparableMetricAdapter.h:98
DGtal::SeparableMetricAdapter::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::SeparableMetricAdapter::closest
Closest closest(const Point &origin, const Point &first, const Point &second) const
Definition
SeparableMetricAdapter.h:173
DGtal::SeparableMetricAdapter::~SeparableMetricAdapter
~SeparableMetricAdapter()
Definition
SeparableMetricAdapter.h:114
DGtal::SeparableMetricAdapter::Metric
TMetric Metric
Copy the space type.
Definition
SeparableMetricAdapter.h:86
DGtal::SeparableMetricAdapter::operator()
Value operator()(const Point &aP, const Point &aQ) const
Definition
SeparableMetricAdapter.h:145
DGtal::SeparableMetricAdapter::binarySearchHidden
Abscissa binarySearchHidden(const Point &u, const Point &v, const typename Point::UnsignedComponent dim, const Point &lower, const Point &upper) const
DGtal::SeparableMetricAdapter::SeparableMetricAdapter
SeparableMetricAdapter(ConstAlias< Metric > aMetric)
Definition
SeparableMetricAdapter.h:108
DGtal::SeparableMetricAdapter::SeparableMetricAdapter
SeparableMetricAdapter(const SeparableMetricAdapter &other)
Definition
SeparableMetricAdapter.h:120
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::CMetricSpace
Aim: defines the concept of metric spaces.
Definition
CMetricSpace.h:125
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
SeparableMetricAdapter.h
Generated on
for DGtal by
1.18.0