DGtal 1.3.0
Loading...
Searching...
No Matches
SpaceND.h
1
17#pragma once
18
33#if defined(SpaceND_RECURSES)
34#error Recursive header files inclusion detected in SpaceND.h
35#else // defined(SpaceND_RECURSES)
37#define SpaceND_RECURSES
38
39#if !defined SpaceND_h
41#define SpaceND_h
42
44// Inclusions
45#include <iostream>
46#include "DGtal/base/Common.h"
47#include "DGtal/kernel/CInteger.h"
48#include "DGtal/kernel/PointVector.h"
50
51namespace DGtal
52{
53
55 // class SpaceND
93 template < Dimension dim,
94 typename TInteger = DGtal::int32_t >
95 class SpaceND
96 {
97 //Integer must be a model of the concept CInteger.
99
100 public:
102 typedef TInteger Integer;
105
107 typedef size_t Size;
108
111
114
118
122
126 typedef Space Self;
127
130
132 static const Dimension dimension=dim;
133
135 template <Dimension codimension>
137 {
138 typedef SpaceND < dim - codimension, Integer > Type;
139 };
140
142 template <Dimension subdimension>
143 struct Subspace
144 {
146 };
147
148
149 // ----------------------- Standard services ------------------------------
150 public:
151
152 // ----------------------- Interface --------------------------------------
153 public:
154
159 static void selfDisplay( std::ostream & out )
160 {
161 out << "[SpaceND dim=" << dimension << " size of Integers=" << sizeof( Integer ) << " ]";
162 }
163
164 private:
171 SpaceND & operator=( const SpaceND & other );
172
173 private:
179
184
185
186 // ------------------------- Internals ------------------------------------
187 private:
188
189 }; // end of class SpaceND
190
191 // ///static constants to store the dimension.
192 // template < Dimension dim,
193 // typename TInteger >
194 // const Dimension SpaceND<dim, TInteger>::dimension = dim;
195
196
197} // namespace DGtal
198
199
200// //
202
203#endif // !defined SpaceND_h
204
205#undef SpaceND_RECURSES
206#endif // else defined(SpaceND_RECURSES)
Aim: Implements basic operations that will be used in Point and Vector classes.
Definition: PointVector.h:593
Space Self
Defined for convenience (same as Space).
Definition: SpaceND.h:126
TInteger Integer
Arithmetic ring induced by (+,-,*) and Integer numbers.
Definition: SpaceND.h:102
PointVector< dim, Integer > Point
Points in DGtal::SpaceND.
Definition: SpaceND.h:110
NumberTraits< Integer >::UnsignedVersion UnsignedInteger
Unsigned version of the Integers.
Definition: SpaceND.h:104
size_t Size
Type used to represent sizes in the digital space.
Definition: SpaceND.h:107
PointVector< dim, double > RealPoint
Definition: SpaceND.h:117
SpaceND & operator=(const SpaceND &other)
SpaceND< dim, Integer > Space
Type to denote the space itself.
Definition: SpaceND.h:124
static const Dimension dimension
static constants to store the dimension.
Definition: SpaceND.h:132
PointVector< dim, double > RealVector
Definition: SpaceND.h:121
PointVector< dim, Integer > Vector
Vectors in DGtal::SpaceND.
Definition: SpaceND.h:113
DGtal::Dimension Dimension
Copy of the type used for the dimension.
Definition: SpaceND.h:129
static void selfDisplay(std::ostream &out)
Definition: SpaceND.h:159
BOOST_CONCEPT_ASSERT((concepts::CInteger< TInteger >))
DGtal is the top-level namespace which contains all DGtal functions and types.
DGtal::uint32_t Dimension
Definition: Common.h:137
boost::int32_t int32_t
signed 32-bit integer.
Definition: BasicTypes.h:72
std::decay< T >::type UnsignedVersion
Alias to the unsigned version of the number type.
Definition: NumberTraits.h:90
Define the type of a sub co-Space.
Definition: SpaceND.h:137
SpaceND< dim - codimension, Integer > Type
Definition: SpaceND.h:138
Define the type of a subspace.
Definition: SpaceND.h:144
SpaceND< subdimension, Integer > Type
Definition: SpaceND.h:145
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...
Definition: CInteger.h:88