Public Types | Protected Member Functions | Related Functions

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.

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 >
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.

Definition at line 115 of file gpoint.hh.


Member Typedef Documentation

template<typename E>
typedef Gpoint<void> mln::Gpoint< E >::category

Reimplemented from mln::Site< E >.

Definition at line 117 of file gpoint.hh.

template<typename E>
typedef E mln::Object< E >::exact_t [inherited]

Definition at line 173 of file object.hh.


Constructor & Destructor Documentation

template<typename E >
mln::Gpoint< E >::Gpoint (  )  [inline, protected]

Definition at line 299 of file gpoint.hh.


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

Definition at line 385 of file gpoint.hh.

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.

Definition at line 428 of file gpoint.hh.

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

Definition at line 374 of file gpoint.hh.

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.

Definition at line 436 of file gpoint.hh.

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.

Definition at line 417 of file gpoint.hh.

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.

Definition at line 365 of file gpoint.hh.