Base class for implementation of point classes.
More...
#include <gpoint.hh>
List of all members.
Public Types |
typedef Gpoint< void > | category |
typedef E | exact_t |
Protected Member Functions |
| Gpoint () |
Related Functions |
(Note that these are not member functions.)
|
template<typename P , typename D > |
P | operator+ (const Gpoint< P > &p, const Gdpoint< D > &dp) |
| Add a delta-point rhs to a grid point lhs .
|
template<typename P , typename D > |
P & | operator+= (Gpoint< P > &p, const Gdpoint< D > &dp) |
| Shift a point by a delta-point dp .
|
template<typename L , typename R > |
L::delta | operator- (const Gpoint< L > &lhs, const Gpoint< R > &rhs) |
| Difference between a couple of grid point lhs and rhs .
|
template<typename P , typename D > |
P & | operator-= (Gpoint< P > &p, const Gdpoint< D > &dp) |
| Shift a point by the negate of a delta-point dp .
|
template<typename P , typename D > |
P | operator/ (const Gpoint< P > &p, const value::scalar_< D > &dp) |
| Divise a point by a scalar s .
|
template<typename P > |
std::ostream & | operator<< (std::ostream &ostr, const Gpoint< P > &p) |
| Print a grid point p into the output stream ostr .
|
template<typename L , typename R > |
bool | operator== (const Gpoint< L > &lhs, const Gpoint< R > &rhs) |
| Equality comparison between a couple of grid point lhs and rhs .
|
Detailed Description
template<typename E>
struct mln::Gpoint< E >
Base class for implementation of point classes.
A point is an element of a space.
For instance, mln::point2d is the type of elements defined on the discrete square grid of the 2D plane.
Member Typedef Documentation
Constructor & Destructor Documentation
Friends And Related Function Documentation
template<typename P , typename D >
P operator+ |
( |
const Gpoint< P > & |
p, |
|
|
const Gdpoint< D > & |
dp | |
|
) |
| | [related] |
Add a delta-point rhs
to a grid point lhs
.
- Parameters:
-
[in] | p | A grid point. |
[in] | dp | A delta-point. |
The type of dp
has to compatible with the type of p
.
- Returns:
- A point (temporary object).
- See also:
- mln::Gdpoint
template<typename P , typename D >
P & operator+= |
( |
Gpoint< P > & |
p, |
|
|
const Gdpoint< D > & |
dp | |
|
) |
| | [related] |
Shift a point by
a delta-point dp
.
- Parameters:
-
[in,out] | p | The targeted point. |
[in] | dp | A delta-point. |
- Returns:
- A reference to the point
p
once translated by dp
.
- Precondition:
- The type of
dp
has to be compatible with the type of p
.
template<typename L , typename R >
L::delta operator- |
( |
const Gpoint< L > & |
lhs, |
|
|
const Gpoint< R > & |
rhs | |
|
) |
| | [related] |
Difference between a couple of grid point lhs
and rhs
.
- Parameters:
-
[in] | lhs | A first grid point. |
[in] | rhs | A second grid point. |
- Warning:
- There is no type promotion in Milena so the client has to make sure that both points are defined with the same type of coordinates.
- Precondition:
- Both
lhs
and rhs
have to be defined on the same topology and with the same type of coordinates; otherwise this test does not compile.
- Postcondition:
- The result,
dp
, is such as lhs
== rhs
+ dp
.
- Returns:
- A delta point (temporary object).
- See also:
- mln::Gdpoint
template<typename P , typename D >
P & operator-= |
( |
Gpoint< P > & |
p, |
|
|
const Gdpoint< D > & |
dp | |
|
) |
| | [related] |
Shift a point by
the negate of a delta-point dp
.
- Parameters:
-
[in,out] | p | The targeted point. |
[in] | dp | A delta-point. |
- Returns:
- A reference to the point
p
once translated by - dp
.
- Precondition:
- The type of
dp
has to be compatible with the type of p
.
template<typename P , typename D >
Divise a point by
a scalar s
.
- Parameters:
-
[in,out] | p | The targeted point. |
[in] | dp | A scalar. |
- Returns:
- A reference to the point
p
once divised by s
.
template<typename P >
std::ostream & operator<< |
( |
std::ostream & |
ostr, |
|
|
const Gpoint< P > & |
p | |
|
) |
| | [related] |
Print a grid point p
into the output stream ostr
.
- Parameters:
-
[in,out] | ostr | An output stream. |
[in] | p | A grid point. |
- Returns:
- The modified output stream
ostr
.
template<typename L , typename R >
bool operator== |
( |
const Gpoint< L > & |
lhs, |
|
|
const Gpoint< R > & |
rhs | |
|
) |
| | [related] |
Equality comparison between a couple of grid point lhs
and rhs
.
- Parameters:
-
[in] | lhs | A first grid point. |
[in] | rhs | A second grid point. |
- Precondition:
- Both
lhs
and rhs
have to be defined on the same topology; otherwise this test does not compile.
- Returns:
- True if both grid points have the same coordinates, otherwise false.