User Documentation
Centre for Vision, Speech & Signal Processing
DEVELOP IN NAMESPACE AMMA TREE ROOT AMMA SEARCH AMMA HOME
 

  PUBLIC
PLine2dC::PLine2dC(void)
PLine2dC::PLine2dC(const Vector2dC &,RealT)
PLine2dC::PLine2dC(const Point2dC &,const Point2dC &)
PLine2dC::PLine2dC(const Point2dC &,const Vector2dC &)
PLine2dC::PLine2dC(const Line2dPVC &)
PLine2dC::PLine2dC(const Line2dPPC &)
PLine2dC::PLine2dC(PCoordT,PCoordT,PCoordT)
PLine2dC::PLine2dC(const PPointLine2dC &,const PPointLine2dC &)
PLine2dC::PLine2dC(const PPointLine2dC &)
PLine2dC::PLine2dC(const PLine2dC &)
PLine2dC::operator=(const PLine2dC &)
PLine2dC::Normal(void) const
PLine2dC::PLine2d(void) const
PLine2dC::PLine2d(void)
PLine2dC::IsIdeal(void) const
PLine2dC::operator*=(const RealT)
PLine2dC::operator/=(const RealT)
PLine2dC::operator*(const RealT) const
PLine2dC::operator/(const RealT) const
PLine2dC::Intersection(const PLine2dC &) const
PLine2dC::operator*(RealT,const PLine2dC &)
PLine2dC::operator/(RealT,const PLine2dC &)
PLine2dC::operator>>(istream &,PLine2dC &)
PPointLine2dC::operator=(const PPointLine2dC &)
PPointLine2dC::operator[](IndexT) const
PPointLine2dC::operator[](IndexT)
PPointLine2dC::operator()(IndexT) const
PPointLine2dC::Scale(void) const
PPointLine2dC::P1(void) const
PPointLine2dC::P2(void) const
PPointLine2dC::P3(void) const
PPointLine2dC::P1(void)
PPointLine2dC::P2(void)
PPointLine2dC::P3(void)
PPointLine2dC::X(void) const
PPointLine2dC::Y(void) const
PPointLine2dC::PPointLine2d(void) const
PPointLine2dC::PPointLine2d(void)
PPointLine2dC::operator==(const PPointLine2dC &) const
PPointLine2dC::operator!=(const PPointLine2dC &) const
PPointLine2dC::IsIdealPoint(void) const
PPointLine2dC::IsIdealLine(void) const
PPointLine2dC::IsValid(void) const
PPointLine2dC::Set(const PPointLine2dC &)
PPointLine2dC::Set(const PCoordT,const PCoordT,const PCoordT)
PPointLine2dC::MaxIndex(void) const
PPointLine2dC::MinIndex(void) const
PPointLine2dC::AbsMaxIndex(void) const
PPointLine2dC::AbsMinIndex(void) const
PPointLine2dC::Sum(void) const
PPointLine2dC::SumAbs(void) const
PPointLine2dC::operator+=(const PPointLine2dC &)
PPointLine2dC::operator-=(const PPointLine2dC &)
PPointLine2dC::operator*=(const RealT)
PPointLine2dC::operator/=(const RealT)
PPointLine2dC::operator+(const PPointLine2dC &) const
PPointLine2dC::operator*(const RealT) const
PPointLine2dC::operator/(const RealT) const
PPointLine2dC::operator&(const PPointLine2dC &) const
PPointLine2dC::PPointLine2d(const PPointLine2dC &) const
PLine2dC
 
Plane in 3D projective space
 
include "amma/PLine2d.hh"
User Level:Default
Library:Mpg2
Example:exMat2d.cc
Section:Geometry.Projective.2-D
In Scope:std

Comments:
The class represents a line in 2 dimensional projective space. A line contains 3 real numbers which serve as its projective coordinates.

Parent Classes: Typedefs:
typedef PPointLine2dC::PCoordT PCoordT;
A projective coordinate.

typedef PPointLine2dC::CCoordT CCoordT;
An cartesian coordinate.

Methods:
PLine2dC()
Constructs the line whose coordinates are zeros, eg. non-existing projective line.

PLine2dC(const Vector2dC & n,RealT d)
Constructs the projective line equivalent to the Euiclidian line determined by the equation n.X()*x + n.Y()*y + d = 0.

PLine2dC(const Point2dC & p1,const Point2dC & p2)
Constructs the projective line passing through two Euclidian points p1, p2.

PLine2dC(const Point2dC & p,const Vector2dC & v)
Constructs the projective line passing through the Euclidian point 'p' and the Euclidian line direction vector 'v'.

PLine2dC(const Line2dPVC & l)
Constructs the projective line from the Euclidian line 'l'.

PLine2dC(const Line2dPPC & l)
Constructs the projective line from the Euclidian line 'l'.

PLine2dC(PCoordT p1,PCoordT p2,PCoordT p3)
Constructs the line (p1, p2, p3).

PLine2dC(const PPointLine2dC & p0,const PPointLine2dC & p1)
Constructs the line passing through two projective points 'p0' and 'p1'.

PLine2dC(const PPointLine2dC & p)
Constructs the line from the point/line object 'p'.

PLine2dC(const PLine2dC & p)
Copy constructor.

const PLine2dC & operator=(const PLine2dC & p)
Assigment of point. Access to the object. ---------------------

Vector2dC Normal() const
Returns the normal of a corresponding Euclidian line. If this projective line is ideal the function returns the zero vector.

const PLine2dC & PLine2d() const
Access to this constant object.

PLine2dC & PLine2d()
Access to the point. Logical conditions. -------------------

BooleanT IsIdeal() const
Returns TRUE iff this line is an ideal projective line. The line is an ideal projective line if the absolute value of the ratio Scale()/SumAbs() is smaller or equal to the threshold 'Point3dC::relZero'. Arithmetical operations. ------------------------

const PLine2dC & operator*=(const RealT alpha)
Multiplies all coordinates by 'alpha'.

const PLine2dC & operator/=(const RealT alpha)
Divides all coordinates by 'alpha'.

PLine2dC operator*(const RealT alpha) const
Returns the line which coordinates are multiplied by 'alpha'.

PLine2dC operator/(const RealT alpha) const
Returns the line which coordinates are divided by 'alpha'. Geometrical constructions. --------------------------

PPoint2dC Intersection(const PLine2dC & l) const
Returns the projective point that is the intersection of both lines.

PLine2dC operator*(RealT lambda,const PLine2dC & p)

PLine2dC operator/(RealT lambda,const PLine2dC & p)

istream & operator>>(istream & inS,PLine2dC & point)

#include "amma/PPtLi2d.hh"
const PPointLine2dC & operator=(const PPointLine2dC & p)
Assigment of a point/line 'p'. Access to the object items. ---------------------------

const PCoordT & operator[](IndexT i) const
Returns the value of the i-th coordinate.

PCoordT & operator[](IndexT i)
Access the value of the i-th coordinate.

CCoordT operator()(IndexT i) const
Returns the value of the i-th Cartesian coordinate. The function does not check if the point/line is ideal or not or the range of the index 'i'.

PCoordT Scale() const
Returns the value of the last projective coordinate P3().

const PCoordT & P1() const
Returns the value of the 1st coordinate.

const PCoordT & P2() const
Returns the value of the 2nd coordinate.

const PCoordT & P3() const
Returns the value of the 3rd coordinate.

PCoordT & P1()
Returns the value of the 1st coordinate.

PCoordT & P2()
Returns the value of the 2nd coordinate.

PCoordT & P3()
Returns the value of the 3rd coordinate.

CCoordT X() const
Returns the value of the 1. Cartesian coordinate. The function does not check if the point/line is ideal or not.

CCoordT Y() const
Returns the value of the 2. Cartesian coordinate. The function does not check if the point/line is ideal or not.

const PPointLine2dC & PPointLine2d() const
Access to this constant object.

PPointLine2dC & PPointLine2d()
Access to the point/line. Logical conditions. -------------------

BooleanT operator==(const PPointLine2dC & p) const
Returns TRUE iff 2 points/lines are the same projective point/line. Two projective points/lines are equal iff their 3D Cartesian representants are equal.

BooleanT operator!=(const PPointLine2dC & p) const
Returns TRUE iff 2 points/lines are different projective points/lines. Two projective points/lines are different iff they are not equal in the sense of the operator '=='.

BooleanT IsIdealPoint() const
Returns TRUE iff this point/line represents an ideal projective point. The point is an ideal projective point if the absolute value of the ratio Scale()/SumAbs() is smaller or equal to the threshold 'Point3dC::relZero'.

BooleanT IsIdealLine() const
Returns TRUE iff this point/line represents an ideal projective plane. The plane is an ideal projective plane if the absolute value of the ratio (Abs(P1)+Abs(P2())/Scale() is smaller or equal to the threshold 'Point3dC::relZero'.

BooleanT IsValid() const
Returns TRUE if the sum of absolute values of the projective coordinates is bigger than the threshold 'Point3dC::zeroDistance'. Setting of the coordinates. ---------------------------

void Set(const PPointLine2dC & p)
Sets coordinates according to the values of the point/line 'p'.

void Set(const PCoordT p1,const PCoordT p2,const PCoordT p3)
Sets the 1-st coordinate to be 'p1', the 2nd one to be 'p2', and the 3rd one to be 'p3'. Information about extrems. --------------------------

IndexT MaxIndex() const
Returns the index of the maximum coordinate.

IndexT MinIndex() const
Returns the index of the minimum coordinate.

IndexT AbsMaxIndex() const
Returns the index of the maximum coordinate in absolute value.

IndexT AbsMinIndex() const
Returns the index of the minimum coordinate in absolute value.

PCoordT Sum() const
Returns the sum of coordinates.

PCoordT SumAbs() const
Returns the sum of absolute value of coordinates. Arithmetical operations. ------------------------

const PPointLine2dC & operator+=(const PPointLine2dC & p)
Adds the values of the coordinates of the 'p' to this point/line.

const PPointLine2dC & operator-=(const PPointLine2dC & p)
Subtracts the values of the coordinates of the 'p' from this point/line.

const PPointLine2dC & operator*=(const RealT alpha)
Multiplies all coordinates by 'alpha'.

const PPointLine2dC & operator/=(const RealT alpha)
Divides all coordinates by 'alpha'.

PPointLine2dC operator+(const PPointLine2dC & p) const
Returns the point/line which is the sum of this point and the 'p'.

PPointLine2dC operator*(const RealT alpha) const
Returns the point/line which coordinates are multiplied by 'alpha'.

PPointLine2dC operator/(const RealT alpha) const
Returns the point/line which coordinates are divided by 'alpha'. Geometrical operations. -----------------------

RealT operator&(const PPointLine2dC & p) const
Returns the sum P1()*p.P1() + P2()*p.P2() + P3()*p.P3(). In 3 dimensional Euclidian vector space the result is equivalent to dot product of 2 vectors.

PPointLine2dC PPointLine2d(const PPointLine2dC & p) const
Returns the projective line/point determined by this point/line and the point/line 'p'.


Programmer:Radek Marik, Documentation by CxxDoc: Tue Mar 20 10:48:08 2001