DGtal
0.9.3
src
DGtal
kernel
domains
Linearizer.h
1
17
#pragma once
18
29
#if defined(Linearizer_RECURSES)
30
#error Recursive header files inclusion detected in Linearizer.h
31
#else // defined(Linearizer_RECURSES)
32
33
#define Linearizer_RECURSES
34
35
#if !defined Linearizer_h
36
37
#define Linearizer_h
38
40
// Inclusions
41
#include <DGtal/kernel/domains/HyperRectDomain.h>
// Only for specialization purpose.
43
44
namespace
DGtal
45
{
46
48
54
struct
RowMajorStorage
{};
55
61
struct
ColMajorStorage
{};
62
64
74
template
<
75
typename
TDomain,
76
typename
TStorageOrder =
ColMajorStorage
77
>
78
struct
Linearizer
;
79
103
template
<
104
typename
TSpace,
105
typename
TStorageOrder
106
>
107
struct
Linearizer
<
HyperRectDomain
<TSpace>, TStorageOrder >
108
{
109
// Usefull typedefs
110
typedef
HyperRectDomain<TSpace>
Domain
;
111
typedef
typename
TSpace::Point
Point
;
112
typedef
Point
Extent
;
113
typedef
typename
TSpace::Size
Size
;
114
122
static
inline
123
Size getIndex( Point
aPoint
, Point
const
& aLowerBound, Extent
const
& anExtent );
124
133
static
inline
134
Size getIndex( Point
aPoint
, Extent
const
& anExtent );
135
142
static
inline
143
Size getIndex( Point
aPoint
, Domain
const
& aDomain );
144
152
static
inline
153
Point getPoint( Size anIndex, Point
const
& aLowerBound, Extent
const
& anExtent );
154
163
static
inline
164
Point getPoint( Size anIndex, Extent
const
& anExtent );
165
172
static
inline
173
Point getPoint( Size anIndex, Domain
const
& aDomain );
174
175
};
// end of class Linearizer
176
177
}
// namespace DGtal
178
179
181
// Includes inline functions.
182
#include "DGtal/kernel/domains/Linearizer.ih"
183
184
// //
186
187
#endif // !defined Linearizer_h
188
189
#undef Linearizer_RECURSES
190
#endif // else defined(Linearizer_RECURSES)
191
aPoint
const Point aPoint(3, 4)
DGtal::RowMajorStorage
Tag (empty structure) specifying a row-major storage order.
Definition:
Linearizer.h:54
DGtal::HyperRectDomain
Aim: Parallelepidec region of a digital space, model of a 'CDomain'.
Definition:
HyperRectDomain.h:92
DGtal::Linearizer< HyperRectDomain< TSpace >, TStorageOrder >::Domain
HyperRectDomain< TSpace > Domain
The domain type.
Definition:
Linearizer.h:110
DGtal::Linearizer< HyperRectDomain< TSpace >, TStorageOrder >::Extent
Point Extent
The domain's extent type.
Definition:
Linearizer.h:112
DGtal::Linearizer
Aim: Linearization and de-linearization interface for domains.
Definition:
Linearizer.h:78
DGtal::ColMajorStorage
Tag (empty structure) specifying a col-major storage order.
Definition:
Linearizer.h:61
DGtal::Linearizer< HyperRectDomain< TSpace >, TStorageOrder >::Size
TSpace::Size Size
The space's size type.
Definition:
Linearizer.h:113
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition:
ClosedIntegerHalfPlane.h:48
Point
MyPointD Point
Definition:
testClone2.cpp:383
DGtal::Linearizer< HyperRectDomain< TSpace >, TStorageOrder >::Point
TSpace::Point Point
The point type.
Definition:
Linearizer.h:111
Generated on Sun Feb 12 2017 10:24:57 for DGtal by
1.8.13