User Documentation
RAVL, Recognition And Vision Library
DEVELOP HOME PAGE CLASS LIST CONTENTS
Ravl - Core - Indexing - Index2dC
 

  PUBLIC
Index2dC::Index2dC(void)
Index2dC::Index2dC(const FIndexC<2> &)
Index2dC::Index2dC(const TFVectorC &)
Index2dC::Index2dC(const TFVectorC &)
Index2dC::Index2dC(SizeT)
Index2dC::Index2dC(IndexC,IndexC)
Index2dC::Set(IndexC,IndexC)
Index2dC::Step(const NeighbourOrderT &)
Index2dC::Swapped(void) const
Index2dC::Abs(void)
Index2dC::Row(void) const
Index2dC::Col(void) const
Index2dC::Row(void)
Index2dC::Col(void)
Index2dC::IsInside(const IndexRange2dC &) const
Index2dC::IsMoreUpperLeft(const Index2dC &) const
Index2dC::operator <(const Index2dC &) const
Index2dC::Right(void)
Index2dC::Left(void)
Index2dC::Up(void)
Index2dC::Down(void)
Index2dC::RightN(void) const
Index2dC::LeftN(void) const
Index2dC::UpN(void) const
Index2dC::DownN(void) const
Index2dC::LowerLeftN(void) const
Index2dC::LowerRightN(void) const
Index2dC::UpperLeftN(void) const
Index2dC::UpperRightN(void) const
Index2dC::Neighbour(NeighbourOrderT) const
Index2dC::IsRelNeighbour8(void) const
Index2dC::IsNeighbour8(const Index2dC &) const
Index2dC::NeighbourOrder(void) const
Index2dC::NeighbourOrder(const Index2dC &) const
Index2dC::SumSqr(void) const
Index2dC::Distance(const Index2dC &,GridMetricT) const
Index2dC::Area2(const Index2dC &,const Index2dC &) const
FIndexC::Hash(void) const
FIndexC::operator *=(IntT)
FIndexC::operator *=(RealT)
FIndexC::operator /=(IntT)
FIndexC::operator /=(RealT)
FIndexC::operator *(IntT) const
FIndexC::operator *(RealT) const
FIndexC::operator /(IntT) const
FIndexC::operator /(RealT) const
TFVectorC::Size(void) const
TFVectorC::Contains(UIntT) const
TFVectorC::operator [](UIntT)
TFVectorC::operator [](UIntT) const
TFVectorC::operator ==(const TFVectorC &) const
TFVectorC::operator !=(const TFVectorC &) const
TFVectorC::Fill(const DataT &)
TFVectorC::Abs(void) const
TFVectorC::operator +=(const TFVectorC &)
TFVectorC::operator -=(const TFVectorC &)
TFVectorC::operator *=(const TFVectorC &)
TFVectorC::operator /=(const TFVectorC &)
TFVectorC::operator +(const TFVectorC &) const
TFVectorC::operator -(const TFVectorC &) const
TFVectorC::operator *(const TFVectorC &) const
TFVectorC::operator /(const TFVectorC &) const
TFVectorC::operator -(void) const
TFVectorC::operator *=(const DataT &)
TFVectorC::operator /=(const DataT &)
TFVectorC::operator *(const DataT &) const
TFVectorC::operator /(const DataT &) const
TFVectorC::Dot(const TFVectorC &) const
TFVectorC::OuterProduct(const TFVectorC &,TFMatrixC &) const
TFVectorC::OuterProduct(TFMatrixC &) const
TFVectorC::Limit(const DataT &,const DataT &)
TFVectorC::MaxValueDistance(const TFVectorC &) const
TFVectorC::CityBlockDistance(const TFVectorC &) const
TFVectorC::SqrEuclidDistance(const TFVectorC &) const
TFVectorC::Sum(void) const
TFVectorC::SumSqr(void) const
TFVectorC::T(void) const
TFVectorC::operator >>(istream &,TFVectorC &)
TFVectorC::operator <<(ostream &,const TFVectorC &)
TFVectorC::operator >>(BinIStreamC &,TFVectorC &)
TFVectorC::operator <<(BinOStreamC &,const TFVectorC &)

   Index2dC   
 
2 Dimensional index
 
include "Ravl/Index2d.hh"
Created:20/10/1995 
User Level:Basic
Library:RavlCore
In Scope:RavlN

Comments:
The class Index2dC is a pair of IndexC values. It is usually used as a two-dimensional index of two dimensional objects like arrays and images.

Parent Classes: Derived Classes: Methods:
Index2dC()
Creates index <0, 0>.

Index2dC(const FIndexC<2> & oth)
Creates index from its base class.

Index2dC(const TFVectorC<IndexC,2> & oth)
Creates index from its base class.

Index2dC(const TFVectorC<RealT,2> & oth)
Creates index from a real point.

explicit Index2dC(SizeT dim)
Creates an index
This is for compatibilty with N-D indexes, which need to be told there dimentionality.

Index2dC(IndexC row,IndexC column)
Creates index .

Object modification

void Set(IndexC r,IndexC c)
Sets this index to be .

const Index2dC & Step(const NeighbourOrderT & dir)
Translates index in direction 'dir'.

Index2dC Swapped() const
Returns the 2-dimensional index with swapped value I() and J().

Index2dC & Abs()
Changes both indexes to their absolute values.

Access to the member items

const IndexC & Row() const
Constant access to the row index

const IndexC & Col() const
Constant access to the column index

IndexC & Row()
Access to the row index

IndexC & Col()
Access to the column index

Logical conditions

bool IsInside(const IndexRange2dC & range) const
Returns true, if this index is in the 'range'.

bool IsMoreUpperLeft(const Index2dC & i) const
Returns true, if Row() < i.Row() or (Row() == i.Row() and Col() < i.Col()).

bool operator <(const Index2dC & i) const
A nick name for the member function IsMoreUpperLeft(i).

Operations on the neighbourhood

Index2dC & Right()
Shifts the index to the right.

Index2dC & Left()
Shifts the index to the left.

Index2dC & Up()
Shifts the index to the up.

Index2dC & Down()
Shifts the index to the down.

Index2dC RightN() const
Returns the index of the right neighbour.

Index2dC LeftN() const
Returns the index of the left neighbour.

Index2dC UpN() const
Returns the index of the upper neighbour.

Index2dC DownN() const
Returns the index of the down neighbour.

Index2dC LowerLeftN() const
Returns the coordinates of the downleft neighbouring pixel

Index2dC LowerRightN() const
Returns the coordinates of the downright neighbouring pixel

Index2dC UpperLeftN() const
Returns the coordinates of the upperleft neighbouring pixel

Index2dC UpperRightN() const
Returns the coordinates of the upperright neighbouring pixel

Index2dC Neighbour(NeighbourOrderT dir) const
Returns the index of the neighbour in the direction 'dir'.

bool IsRelNeighbour8() const
Is '*this' a relative index from 8-neighbourhood?

bool IsNeighbour8(const Index2dC & pxl) const
Is the 'pxl' a neighbouring index of '*this'?

IndexC NeighbourOrder() const
Returns the order of the relative index.

IndexC NeighbourOrder(const Index2dC & ind) const
Returns the order of the neighbouring index 'ind'.

Distance calculations

UIntT SumSqr() const
Returns the sum of coordinate squares.

UIntT Distance(const Index2dC & i,GridMetricT m) const
Returns the distance of two indexes in the specified metric 'm'.

Special member functions

IntT Area2(const Index2dC & second,const Index2dC & third) const
Returns twice the signed area of the triangle determined by this, the second, and the third points. Positive if 'this', 'second', 'third' are oriented counter-clockwise, and negative if clockwise.

Ref.: - O'Rourke,J.: Computatinal geometry in C; Cambridge University Press, 1994, pp. 19-20


#include "Ravl/FIndex.hh"
UIntT Hash(void) const
Generates a randomised hash value for this index.

Arithmetic operations

const FIndexC<2> & operator *=(IntT alpha)
Multiplies this index by number 'alpha'.

const FIndexC<2> & operator *=(RealT alpha)
Multiplies this index by real number 'alpha'.

const FIndexC<2> & operator /=(IntT alpha)
Divides this index by number 'alpha'.

const FIndexC<2> & operator /=(RealT alpha)
Divides this index by real number 'alpha'.

FIndexC<2> operator *(IntT alpha) const
Multiplies this index by number 'alpha'.

FIndexC<2> operator *(RealT alpha) const
Multiplies this index by real number 'alpha'.

FIndexC<2> operator /(IntT alpha) const
Divides this index by number 'alpha'.

FIndexC<2> operator /(RealT alpha) const
Divides this index by real number 'alpha'.

#include "Ravl/TFVector.hh"
UIntT Size() const
Get size of array
Used by some templates.

bool Contains(UIntT i) const
Test if array contains index i

IndexC & operator [](UIntT ind)
Access item.

const IndexC & operator [](UIntT ind) const
Access item.

bool operator ==(const TFVectorC<IndexC,2> & ind) const
is equal

bool operator !=(const TFVectorC<IndexC,2> & ind) const
is not equal

void Fill(const IndexC & dat)
Fill array with value 'dat'.

TFVectorC<IndexC,2> Abs() const
Get an vector with Abs(x) run on all it values.

const TFVectorC<IndexC,2> & operator +=(const TFVectorC<IndexC,2> & ind)
Add an array to this one, inplace.

const TFVectorC<IndexC,2> & operator -=(const TFVectorC<IndexC,2> & ind)
Returns this index multiplied by index 'ind' item by item.

const TFVectorC<IndexC,2> & operator *=(const TFVectorC<IndexC,2> & ind)
Multiplies this index by index 'ind' item by item.

const TFVectorC<IndexC,2> & operator /=(const TFVectorC<IndexC,2> & ind)
Divides this index by index 'ind' item by item.

TFVectorC<IndexC,2> operator +(const TFVectorC<IndexC,2> & ind) const
Adds this index and 'ind'.

TFVectorC<IndexC,2> operator -(const TFVectorC<IndexC,2> & ind) const
Subtracts index 'ind' from this index.

TFVectorC<IndexC,2> operator *(const TFVectorC<IndexC,2> & ind) const
Returns this object multiplied by index 'ind' item by item.

TFVectorC<IndexC,2> operator /(const TFVectorC<IndexC,2> & ind) const
Returns this object devided by index 'ind' item by item.

TFVectorC<IndexC,2> operator -() const
Returns opposite elements (unary minus operator).

const TFVectorC<IndexC,2> & operator *=(const IndexC & alpha)
Multiplies this index by number 'alpha'.

const TFVectorC<IndexC,2> & operator /=(const IndexC & alpha)
Divides this index by number 'alpha'.

TFVectorC<IndexC,2> operator *(const IndexC & alpha) const
Returns this object mutliplied by alpha.

TFVectorC<IndexC,2> operator /(const IndexC & alpha) const
Returns this object devided by alpha.

IndexC Dot(const TFVectorC<IndexC,2> & oth) const
Calculate the dot product of this and 'oth' vector.

TFMatrixC<IndexC,2,2> & OuterProduct(const TFVectorC<IndexC,2> & av,TFMatrixC<IndexC,2,2> & result) const
Calculate the outer product of this vector with av.
The output is assigned to 'result'. A reference to 'result' is returned.

The implementation is in "Ravl/FMatrix.hh", it must be included to use this function.


TFMatrixC<IndexC,2,2> & OuterProduct(TFMatrixC<IndexC,2,2> & result) const
Calculate the outer product of this vector with itsself.
The output is assigned to 'result'. A reference to 'result' is returned.

The implementation is in "Ravl/FMatrix.hh", it must be included to use this function.


bool Limit(const IndexC & min,const IndexC & max)
Limit all values in this vector to between min and max.
Returns true if all values in the vector are between the limits. Distance calculations ---------------------

IndexC MaxValueDistance(const TFVectorC<IndexC,2> & i) const
Returns the distance of two indexes in maximum value metric.

IndexC CityBlockDistance(const TFVectorC<IndexC,2> & i) const
Returns the distance of two indexes in absolute value metric.

IndexC SqrEuclidDistance(const TFVectorC<IndexC,2> & i) const
Returns the distance of two indexes in square Euclid metric.

IndexC Sum() const
Calculate the sum of all the vector elements.

IndexC SumSqr() const
Calculate the sum of the squares of all the vector elements.

const TFMatrixC<IndexC,1,2> & T() const
Transpose vector.
The implementation for this can be found in "Ravl/TFMatrix.hh"

istream & operator >>(istream & in,TFVectorC<IndexC,2> & dat)

ostream & operator <<(ostream & in,const TFVectorC<IndexC,2> & dat)

BinIStreamC & operator >>(BinIStreamC & in,TFVectorC<IndexC,2> & dat)

BinOStreamC & operator <<(BinOStreamC & in,const TFVectorC<IndexC,2> & dat)


Maintainer:Radek Marik, Created: 20/10/1995, Documentation by CxxDoc: Tue Aug 13 09:59:02 2002