# Coordinate Class Reference

The Coordinate class is the basic class representing a 2D location by its x and y components. More...

List of all members.

## Public Member Functions

Coordinate (double x, double y)
Constructor.
Coordinate (const Coordinate &p)
Copy Constructor.
bool valid () const
Return whether this is a valid Coordinate.
double distance (const Coordinate &p) const
Distance to another Coordinate.
double length () const
Length.
double squareLength () const
Square length.
const Coordinate operator- () const
Inverse.
const Coordinate orthogonal () const
Orthogonal.
const Coordinate round () const
Round.
const Coordinate normalize (double length=1) const
Normalize.
Coordinateoperator+= (const Coordinate &c)
Coordinateoperator-= (const Coordinate &c)
Subtract.
Coordinateoperator *= (double r)
Scale.
Coordinateoperator *= (int r)
Scale.
Coordinateoperator/= (double r)
Scale.

## Static Public Member Functions

static Coordinate invalidCoord ()
Create an invalid Coordinate.

double x
X Component.
double y
Y Component.

## Friends

const Coordinate operator+ (const Coordinate &a, const Coordinate &b)
const Coordinate operator- (const Coordinate &a, const Coordinate &b)
Subtract.
const Coordinate operator * (const Coordinate &a, double r)
Scale.
const Coordinate operator/ (const Coordinate &a, double r)
Scale.
double operator * (const Coordinate &a, const Coordinate &b)
Scalar Product.
bool operator== (const Coordinate &, const Coordinate &)
Equal.
bool operator!= (const Coordinate &, const Coordinate &)
Not Equal.

## Detailed Description

The Coordinate class is the basic class representing a 2D location by its x and y components.

It has all relevant arithmetic operators properly defined, and should be straightforward to use..

## Constructor & Destructor Documentation

 Coordinate::Coordinate ( double x, double y )
 Constructor. Construct a new Coordinate, with a given x and y value.

 Coordinate::Coordinate ( const Coordinate & p )
 Copy Constructor. Construct a new Coordinate, and give it the same value as p.

## Member Function Documentation

 static Coordinate Coordinate::invalidCoord ( ) ` [static]`
 Create an invalid Coordinate. This is a special value of a Coordinate that signals that something went wrong.. See also:Coordinate::valid

 double Coordinate::length ( ) const
 Length. Returns the length or norm of this coordinate. I.e. return the distance from this Coordinate to the origin. See also:squareLength

 const Coordinate Coordinate::normalize ( double length = `1` ) const
 Normalize. This sets the length to length, while keeping the x/y ratio untouched...

 Coordinate& Coordinate::operator *= ( int r )
 Scale. Scales this Coordinate by a factor r

 Coordinate& Coordinate::operator *= ( double r )
 Scale. Scales this Coordinate by a factor r

 Coordinate& Coordinate::operator+= ( const Coordinate & c )

 const Coordinate Coordinate::operator- ( ) const
 Inverse. Returns the inverse of this Coordinate.

 Coordinate& Coordinate::operator-= ( const Coordinate & c )
 Subtract. Subtract c from this Coordinate

 Coordinate& Coordinate::operator/= ( double r )
 Scale. Scales this Coordinate by a factor 1/r

 const Coordinate Coordinate::orthogonal ( ) const
 Orthogonal. Returns a vector which is orthogonal on this vector. This relation always holds: ``` Coordinate a = ...; assert( a*a.orthogonal() ) == 0; ```

 const Coordinate Coordinate::round ( ) const
 Round. Returns this coordinate, rounded to the nearest integral values.

 double Coordinate::squareLength ( ) const
 Square length. Equivalent to the square of length, but a bit more efficient because no square root has to be calculated. See also:length

 bool Coordinate::valid ( ) const

## Friends And Related Function Documentation

 double operator * ( const Coordinate & a, const Coordinate & b ) ` [friend]`
 Scalar Product. Returns the scalar product of a and b.

 const Coordinate operator * ( const Coordinate & a, double r ) ` [friend]`
 Scale. Returns this a, scaled by a factor of r.

 bool operator!= ( const Coordinate & , const Coordinate & ) ` [friend]`
 Not Equal. Tests two Coordinates for inequality.

 const Coordinate operator+ ( const Coordinate & a, const Coordinate & b ) ` [friend]`
 Add. Returns the sum of a and b.

 const Coordinate operator- ( const Coordinate & a, const Coordinate & b ) ` [friend]`
 Subtract. Returns the difference between a and b.

 const Coordinate operator/ ( const Coordinate & a, double r ) ` [friend]`
 Scale. Returns a, scaled by a factor of 1/r.

 bool operator== ( const Coordinate & , const Coordinate & ) ` [friend]`
 Equal. Tests two Coordinates for equality.

## Member Data Documentation

 double Coordinate::x
 X Component. The X Component of this Coordinate.

 double Coordinate::y
 Y Component. The Y Component of this Coordinate.

This file is part of the documentation for kdelibs 0.10.5.