mln::Gpoint< E > Struct Template Reference

Base class for implementation of point classes. More...

#include <gpoint.hh>

Inheritance diagram for mln::Gpoint< E >:

Inheritance graph

List of all members.

Related Functions

(Note that these are not member functions.)

template<typename P , typename D >
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 >
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.


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 >
P operator/ ( const Gpoint< P > &  p,
const value::scalar_< D > &  dp 
) [related]

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.

References mln::debug::format().

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.


Generated on Tue Jul 14 16:32:21 2009 for Milena (Olena) by  doxygen 1.5.9