Loading...
Searching...
No Matches
Point< T > Class Template Reference
Data Structures » Auxiliary Data Structures » Geometric Data Structures

## Detailed Description

template<typename T>
class lemon::dim2::Point< T >

A simple two dimensional vector (plain vector) implementation with the usual vector operations.

`#include <lemon/dim2.h>`

## Public Member Functions

| Point ()
| Default constructor.
| Point (T a, T b)
| Construct an instance from coordinates.
int | size () const
| Returns the dimension of the vector (i.e. returns 2).
T & | operator[] (int idx)
| Subscripting operator.
const T & | operator[] (int idx) const
| Const subscripting operator.
template<class TT>
| Point (const Point< TT > &p)
| Conversion constructor.
T | normSquare () const
| Give back the square of the norm of the vector.
Point< T > & | operator+= (const Point< T > &u)
| Increment the left hand side by `u`.
Point< T > & | operator-= (const Point< T > &u)
| Decrement the left hand side by `u`.
Point< T > & | operator*= (const T &u)
| Multiply the left hand side with a scalar.
Point< T > & | operator/= (const T &u)
| Divide the left hand side by a scalar.
T | operator* (const Point< T > &u) const
| Return the scalar product of two vectors.
Point< T > | operator+ (const Point< T > &u) const
| Return the sum of two vectors.
Point< T > | operator- () const
| Return the negative of the vector.
Point< T > | operator- (const Point< T > &u) const
| Return the difference of two vectors.
Point< T > | operator* (const T &u) const
| Return a vector multiplied by a scalar.
Point< T > | operator/ (const T &u) const
| Return a vector divided by a scalar.
bool | operator== (const Point< T > &u) const
| Test equality.
bool | operator!= (Point u) const
| Test inequality.

## Public Attributes

T | x
| First coordinate.
T | y
| Second coordinate.

## Related Symbols

(Note that these are not member symbols.)
template<typename T>
Point< T > | makePoint (const T &x, const T &y)
| Return a Point.
template<typename T>
Point< T > | operator* (const T &u, const Point< T > &x)
| Return a vector multiplied by a scalar.
template<typename T>
std::istream & | operator>> (std::istream &is, Point< T > &z)
| Read a plain vector from a stream.
template<typename T>
std::ostream & | operator<< (std::ostream &os, const Point< T > &z)
| Write a plain vector to a stream.
template<typename T>
Point< T > | rot90 (const Point< T > &z)
| Rotate by 90 degrees.
template<typename T>
Point< T > | rot180 (const Point< T > &z)
| Rotate by 180 degrees.
template<typename T>
Point< T > | rot270 (const Point< T > &z)
| Rotate by 270 degrees.

## Member Function Documentation

## size()

template<typename T>

int size | ( |  | ) | const

inline

The dimension of the vector. This function always returns 2.

## operator[]() [1/2]

template<typename T>

T & operator[] | ( | int | idx | ) |

inline

`p`[0] is `p.x` and `p`[1] is `p.y`

## operator[]() [2/2]

template<typename T>

const T & operator[] | ( | int | idx | ) | const

inline

`p`[0] is `p.x` and `p`[1] is `p.y`