Developer Documentation
RAVL, Recognition And Vision Library
USER HOME PAGE CLASS LIST CONTENTS
Ravl - Core - Arrays - 3D - Array3dC<class DataT>
 

  PUBLIC
Array3dC::Array3dC(void)
Array3dC::Array3dC(SizeT,SizeT,SizeT)
Array3dC::Array3dC(IntT,IntT,IntT,IntT,IntT,IntT)
Array3dC::Array3dC(IndexC,IndexC,IndexC,IndexC,IndexC,IndexC)
Array3dC::Array3dC(const Index3dC &,const Index3dC &)
Array3dC::Array3dC(const IndexRangeC &,const IndexRangeC &,const IndexRangeC &)
Array3dC::Array3dC(const IndexRange3dC &)
Array3dC::Array3dC(const IndexRange3dC &,const BufferC &)
Array3dC::Array3dC(const Array3dC &,const IndexRange3dC &)
Array3dC::Copy(void) const
Array3dC::SliceRow(IndexC)
Array3dC::SliceColumn(IndexC)
Array3dC::Diagonal(void)
Array3dC::Array3d(void) const
Array3dC::Array3d(void)
Array3dC::ShiftIndexes1(IndexC)
Array3dC::ShiftIndexes2(IndexC)
Array3dC::operator +(const Array3dC &) const
Array3dC::operator -(const Array3dC &) const
Array3dC::operator *(const Array3dC &) const
Array3dC::operator /(const Array3dC &) const
Array3dC::operator *(const DataT &) const
Array3dC::operator /(const DataT &) const
Array3dC::operator +(const DataT &) const
Array3dC::operator -(const DataT &) const
Array3dC::operator +=(const Array3dC &)
Array3dC::operator -=(const Array3dC &)
Array3dC::operator *=(const Array3dC &)
Array3dC::operator /=(const Array3dC &)
Array3dC::operator +=(const DataT &)
Array3dC::operator -=(const DataT &)
Array3dC::operator *=(const DataT &)
Array3dC::operator /=(const DataT &)
Array3dC::ConstructAccess(const IndexRangeC &)
RangeBufferAccess3dC::Contains(const Index3dC &) const
RangeBufferAccess3dC::operator [](const Index3dC &)
RangeBufferAccess3dC::operator [](const Index3dC &) const
RangeBufferAccess3dC::operator [](IndexC)
RangeBufferAccess3dC::operator [](IndexC) const
RangeBufferAccess3dC::Range1(void) const
RangeBufferAccess3dC::Range2(void) const
RangeBufferAccess3dC::Range3(void) const
RangeBufferAccess3dC::Frame(void) const
RangeBufferAccess3dC::Fill(const DataT &)
RangeBufferAccess3dC::Size(void) const
RangeBufferAccessC::operator =(DataT *)
RangeBufferAccessC::DataStart(void)
RangeBufferAccessC::DataStart(void) const
RangeBufferAccessC::Size(void) const
RangeBufferAccessC::Range(void) const
RangeBufferAccessC::IMin(void) const
RangeBufferAccessC::IMax(void) const
RangeBufferAccessC::operator [](IndexC) const
RangeBufferAccessC::operator [](IndexC)
RangeBufferAccessC::RAccess(void) const
RangeBufferAccessC::IsEmpty(void) const
RangeBufferAccessC::Contains(IndexC) const
RangeBufferAccessC::IsOverlapping(const RangeBufferAccessC &) const
RangeBufferAccessC::operator +=(SizeT)
RangeBufferAccessC::operator +(SizeT) const
RangeBufferAccessC::ShrinkHigh(SizeT)
RangeBufferAccessC::ShiftIndexes(IndexC)
RangeBufferAccessC::SetSubRange(IndexC,IndexC)
RangeBufferAccessC::Swap(RangeBufferAccessC &)
RangeBufferAccessC::Swap(IndexC,IndexC)
RangeBufferAccessC::Attach(const RangeBufferAccessC &)
RangeBufferAccessC::Attach(const BufferAccessC &,const IndexRangeC &)
RangeBufferAccessC::BufferFrom(IndexC)
RangeBufferAccessC::BufferFrom(IndexC,UIntT)
RangeBufferAccessC::Fill(const DataT &)
RangeBufferAccessC::Reverse(void)
RangeBufferAccessC::operator ==(const RangeBufferAccessC &) const
RangeBufferAccessC::Copy(void) const
BufferAccessC::ReferenceElm(void) const
BufferAccessC::ReferenceVoid(void) const
BufferAccessC::IsValid(void) const
BufferAccessC::operator [](const IndexC) const
BufferAccessC::operator [](const IndexC)
BufferAccessC::operator +=(IndexC)
BufferAccessC::operator -=(IndexC)
BufferAccessC::operator -(IndexC) const
BufferAccessC::operator +(IndexC) const
BufferAccessC::operator ==(const BufferAccessC &) const
BufferAccessC::operator !=(const BufferAccessC &) const

   Array3dC<class DataT>   
 
3 Dimensional array
 
include "Ravl/Array3d.hh"
Created:2/5/1993 
Source file:Ravl/Core/Container/Array/Array3d.hh
User Level:Basic
Library:RavlCore
Example:exArray3d.cc
In Scope:RavlN

Comments:
The class Array3dC is a container of items which can be indexed by 3-dimensional index.

Parent Classes: Variables:
Buffer3dC data;
Raw data stored in array.

Methods:
Array3dC()
Creates an empty 3D array.

Array3dC(SizeT dim1,SizeT dim2,SizeT dim3)
Creates 3D array with the range < <0,dim1-1>, <0,dim2-1>, <0,dim3-1> >

Array3dC(IntT minI,IntT maxI,IntT minJ,IntT maxJ,IntT minK,IntT maxK)
Creates 3D array with the range minRow to maxRow by minCol to maxCol.

Array3dC(IndexC minI,IndexC maxI,IndexC minJ,IndexC maxJ,IndexC minK,IndexC maxK)
Creates 3D array with the range minRow to maxRow by minCol to maxCol.

Array3dC(const Index3dC & min,const Index3dC & max)
Creates 3D array with the range < , , >.

Array3dC(const IndexRangeC & rng1,const IndexRangeC & rng2,const IndexRangeC & rng3)
Creates 3D array with the range

Array3dC(const IndexRange3dC & rect)
Create 3D array with the range covering indexes in 'rect'

Array3dC(const IndexRange3dC & rect,const BufferC<DataT> & data)
Create 3D array with the range covering indexes in 'rect' from data.
NB. It is the users responsability to ensure that 'data' is large enought to contain 'rect'.

Array3dC(const Array3dC<DataT> & arr,const IndexRange3dC & rect)
Create a sub array of 'arr' covering indexes 'rect'.

Array3dC<DataT> Copy() const
Make a copy of the array.

Array1dC<DataT> SliceRow(IndexC i)
Access row as 1d array.
NB. Changes made to the slice will also affect this array!

Slice1dC<DataT> SliceColumn(IndexC i)
Access columb as 1d slice.
NB. Changes made to the slice will also affect this array!

Slice1dC<DataT> Diagonal()
Take a slice along the diagonal of the array.
NB. Changes made to the slice will also affect this array!

const Array3dC<DataT> & Array3d() const
access to the constant object

Array3dC<DataT> & Array3d()
access to the object

void ShiftIndexes1(IndexC offset)
All indexes of Range1() will be changed by 'offset'.
The range will be shifted by -offset.

void ShiftIndexes2(IndexC offset)
All indexes of Range2() will be changed by 'offset'.
The range will be shifted by -offset.

Array3dC<DataT> operator +(const Array3dC<DataT> & arr) const
Sums 2 numerical arrays.
The operator returns the result as a new array.

Array3dC<DataT> operator -(const Array3dC<DataT> & arr) const
Subtracts 2 numerical arrays.
The operator returns the result as a new array.

Array3dC<DataT> operator *(const Array3dC<DataT> & arr) const
Mutliplies 2 numerical arrays.
The operator returns the result as a new array.

Array3dC<DataT> operator /(const Array3dC<DataT> & arr) const
Divides 2 numerical arrays.
The operator returns the result as a new array.

Array3dC<DataT> operator *(const DataT & number) const
Multiplys the array by the 'number'.
The operator returns the result as a new array.

Array3dC<DataT> operator /(const DataT & number) const
Divides all array items by the 'number'.
The operator returns the result as a new array.

Array3dC<DataT> operator +(const DataT & number) const
Adds 'number' to the array.
The operator returns the result as a new array.

Array3dC<DataT> operator -(const DataT & number) const
Subtracts 'number' from all array items.
The operator returns the result as a new array.

const Array3dC<DataT> & operator +=(const Array3dC<DataT> & arr)
Adds the 2nd array to this array.

const Array3dC<DataT> & operator -=(const Array3dC<DataT> & arr)
Subtracts the 2nd array from this array.

const Array3dC<DataT> & operator *=(const Array3dC<DataT> & arr)
Multiplies the 2nd array to this array.

const Array3dC<DataT> & operator /=(const Array3dC<DataT> & arr)
Divides the 2nd array from this array.

const Array3dC<DataT> & operator +=(const DataT & number)
Adds 'number' to all array items.

const Array3dC<DataT> & operator -=(const DataT & number)
Subtracts 'number' from all array items.

const Array3dC<DataT> & operator *=(const DataT & number)
Multiplies the array by the 'number'.

const Array3dC<DataT> & operator /=(const DataT & number)
Divides the array elements by the 'number'.

void ConstructAccess(const IndexRangeC & rng1)
Construct access for buffer.
This assumes a suitable amount of space has been allocated in 'data'

#include "Ravl/RBfAcc3d.hh"
bool Contains(const Index3dC & i) const
Returns true if there is an item of the £D array

DataT & operator [](const Index3dC & i)
access to the item array[(i)]

const DataT & operator [](const Index3dC & i) const
return the item array[(i)]

RangeBufferAccess2dC<DataT> operator [](IndexC i)
access to the item array[(i)]

const RangeBufferAccess2dC<DataT> operator [](IndexC i) const
return the item array[(i)]

const IndexRangeC & Range1() const
Range of first index.

const IndexRangeC & Range2() const
Range of second index.

const IndexRangeC & Range3() const
Range of second index.

IndexRange3dC Frame() const
Return ranges of indexes

void Fill(const DataT & d)
Fill array with value.

UIntT Size() const
Get the total number of elements in the array.

#include "Ravl/RBfAcc.hh"
const RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & operator =(BufferAccessC<BufferAccessC<DataT>> * bp)
Changes the reference element to the element pointed by 'bp'.
Access to the object -------------------- inline const BufferAccessC & Access(void) const; Returns this object.

BufferAccessC<BufferAccessC<DataT>> * DataStart()
Returns the address of the first element of the buffer.

const BufferAccessC<BufferAccessC<DataT>> * DataStart() const
Returns the address of the first element of the buffer.

SizeT Size() const
Returns the number of elements of the array.

const IndexRangeC & Range() const
Returns the usable range of indeces expressed by this object.

IndexC IMin() const
Returns the minimum index of the range of this access.

IndexC IMax() const
Returns the maximum index of the range of this access.

const BufferAccessC<BufferAccessC<DataT>> & operator [](IndexC i) const
Read-only access to the ('i'+1)-th element of the buffer.

BufferAccessC<BufferAccessC<DataT>> & operator [](IndexC i)
Read-write access to the ('i'+1)-th element of the buffer.

const RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & RAccess(void) const
Returns this object. Logical functions -----------------

bool IsEmpty() const
Returns TRUE if the size of the array is zero.

bool Contains(IndexC i) const
Returns TRUE if the array contains an item with the index 'i'.

bool IsOverlapping(const RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & acc) const
Returns TRUE if this access has an item with the same index as an item of the access 'acc'. Modifications of the access ---------------------------

const RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & operator +=(SizeT i)
Changes indeces of the access to be 'i' units higher.

RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> operator +(SizeT i) const
Creates the new access object with the indeces 'i' units higher than those used in this access object.

const IndexRangeC & ShrinkHigh(SizeT k)
Changes the number of elements by subtracting the last 'k' elements.

void ShiftIndexes(IndexC offset)
All indexes of the items will be changed by 'offset'.
The range will be shifted by -offset.

void SetSubRange(IndexC newMin,IndexC newMax)
Constrain the indexs that can be accessed from the array.
The range of indexes of this array will be constrained to cover the index range at most.

const RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & Swap(RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & a)
Exchanges the contents of this buffer with buffer 'a'.

void Swap(IndexC i1,IndexC i2)
Exchanges the contents of elements with indeces 'i1' and 'i2'.

void Attach(const RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & b)
Changes this buffer access to have the same access rights as 'b'.

void Attach(const BufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & b,const IndexRangeC & r)
Changes this buffer access to have the access rights as 'b' limited by range 'r'. so the first element in 'b' is accessed at 'r.Min()'.

RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> BufferFrom(IndexC first)
Get an access for this buffer starting from the 'first' element to the end of the buffer.

RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> BufferFrom(IndexC first,UIntT len)
Get an access for this buffer starting from the 'first' element for 'len' elements.
An error will be generated if the requested buffer isn't contains within this one. Modifications of the buffer contents ------------------------------------

void Fill(const BufferAccessC<BufferAccessC<DataT>> & d)
Fill the buffer with the value 'd'.

void Reverse()
Reverse the order of elements in this array in place.

bool operator ==(const RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & ba) const
Are two accesses the same ?

RangeBufferAccessC<BufferAccessC<BufferAccessC<DataT>>> Copy(void) const
Returns a physical copy of this access pointing to the physical copy of the accessed buffer in the range accessible by this access. The new copy is necessary to attach to reference counted buffer or to delete at the end of the life of this object.

#include "Ravl/BufferAccess.hh"
BufferAccessC<BufferAccessC<DataT>> * ReferenceElm() const
Returns the pointer to the reference element of the attached buffer. The reference element need not to be the valid element of the buffer.

void * ReferenceVoid() const
Returns the pointer to the reference element of the attached buffer. The reference element need not to be the valid element of the buffer. The function is intended to be used in printing.

bool IsValid() const
Returns TRUE if this buffer access is not a default access object.

const BufferAccessC<BufferAccessC<DataT>> & operator [](const IndexC i) const
Read-only access to the ('i'+1)-th element of the buffer.

BufferAccessC<BufferAccessC<DataT>> & operator [](const IndexC i)
Read-write access to the ('i'+1)-th element of the buffer.

const BufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & operator +=(IndexC ind)
Inplace Add index to start position.

const BufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & operator -=(IndexC ind)
Inplace Subtract index from start position.

BufferAccessC<BufferAccessC<BufferAccessC<DataT>>> operator -(IndexC ind) const
Substract value from position, and return it as a new value.

BufferAccessC<BufferAccessC<BufferAccessC<DataT>>> operator +(IndexC ind) const
Substract value from position, and return it as a new value.

bool operator ==(const BufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & ba) const
Are two accesses the same ?

bool operator !=(const BufferAccessC<BufferAccessC<BufferAccessC<DataT>>> & ba) const
Are two accesses the same ?


Maintainer:Radek Marik, Created: 2/5/1993, Documentation by CxxDoc: Tue Aug 13 09:59:30 2002