Public Member Functions | Public Attributes | Related Functions

Point< T > Class Template Reference


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>

List of all members.

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

x
 First coordinate.
y
 Second coordinate.

Related Functions

(Note that these are not member functions.)
template<typename T >
Point< T > makePoint (const T &x, const T &y)
template<typename T >
Point< T > operator* (const T &u, const Point< T > &x)
template<typename T >
std::istream & operator>> (std::istream &is, Point< T > &z)
template<typename T >
std::ostream & operator<< (std::ostream &os, const Point< T > &z)
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

int size ( ) const [inline]

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

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

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

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

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

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines