Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

RealVoxel< T > Class Template Reference

#include <PointCloud/RealVoxel.H>

Inheritance diagram for RealVoxel< T >:

Inheritance graph
[legend]
Collaboration diagram for RealVoxel< T >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class T>
class RealVoxel< T >

Create, store and get real voxels (non-sparse voxel images), Base Class.

Definition at line 55 of file RealVoxel.H.

Public Types

typedef ArrayHandle< T > BASE_IMAGE
typedef T * iterator
 Read/write iterator.
typedef const T * const_iterator
 Read-only iterator.

Public Member Functions

 RealVoxel ()
 Create a new real voxel image which is blank.
 RealVoxel (const T *inarray, const unsigned int size_x, const unsigned int size_y, const unsigned int size_z)
 Copy a new real voxel image of size x,y,z.
 RealVoxel (const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const InitPolicy init=NO_INIT)
 Create a new real voxel image of size x,y,z.
 RealVoxel (const Point< int, 3 > &coord_size, const InitPolicy init=NO_INIT)
 Create a new real voxel image of coord size.
 RealVoxel (const RealVoxel< T > &A)
 Create a new real voxel image from another.
virtual ~RealVoxel ()
void freeMem ()
 Free memory and switch to uninitialized state.
void swap (RealVoxel< T > &other)
 Swap the contents of two images.
void attach (T *array, const unsigned int width, const unsigned int height, const unsigned int depth)
 Use existing memory.
void detach ()
 Detach previously attach()'ed image.
RealVoxel< T > deepcopy () const
 Return a new image object with a deep copy of the underlying data.
void resize (const unsigned int size_x, const unsigned int size_y, const unsigned int size_z, const bool do_clear=false)
 Free mem and realloc new array (array contents are lost).
void resize (const Point< int, 3 > &coord_size, const bool do_clear=false)
 Free mem and realloc new array (array contents are lost).
void clear (const T &val=T())
 clear contents (or set to given value)
virtual bool getVal (const unsigned int x, const unsigned int y, const unsigned int z, T &vox)
 inefficent access to get x,y,z if possible use iterator
bool getVal (const Point< int, 3 > &coord, T &vox)
 inefficent access to get x,y,z if possible use iterator
virtual bool get (BASE_IMAGE &ivox) const
 Return the virtual voxels. Bool will be false if vox is empty.
virtual void setVal (const unsigned int x, const unsigned int y, const unsigned int z, const T &vox)
 store a voxel at x,y,z
void setVal (const Point< int, 3 > &coord, const T &vox)
 store a voxel at x,y,z using a point
virtual void set (const BASE_IMAGE &ivox)
 Sets the virtual voxel.
const T * getArrayPtr () const
 Returns read-only (const) pointer to internal image array.
T * getArrayPtr ()
 Returns read/write (non-const) pointer to internal image array.
bool coordsOk (const unsigned int i, const unsigned int j, const unsigned int k) const
 Test whether point falls inside array boundaries.
bool coordsOk (const Point< int, 3 > &coord) const
 Test whether point falls inside array boundaries.
virtual bool initialized () const
 Check whether image is non-empty (i.e., non-zero height and width).
const_iterator begin () const
 Returns the constant head iterator.
const_iterator end () const
 Returns the constant end iterator.
iterator beginw ()
 Returns the head iterator.
iterator endw ()
 Returns the end iterator.
virtual int size () const
 number of points we now have (same as getSize)
virtual bool getSlice (const Point< int, 3 > &coord, Image< T > &img) const
 Return an Image Slice, set the normal axis' to -1.
virtual bool getColumn (const Point< int, 3 > &coord, std::vector< T > &vec) const
 Return a vector column, set the normal axis to -1.
virtual void setSlice (const Point< int, 3 > &coord, const Image< T > &img)
 Set an Image Slice, set the normal axis' to -1.
virtual void setColumn (const Point< int, 3 > &coord, const std::vector< T > &vec)
 Set a vector column, set the normal axis to -1.
virtual unsigned int getHeight () const
 get our height - Y (itsSizeY)
virtual unsigned int getWidth () const
 get our width - X (itsSizeX)
virtual unsigned int getDepth () const
 get out depth - Z (itsSizeZ)
unsigned int getSize () const
 get total size (number of voxels)
template<class C>
bool isSameSize (const C &other) const
 Check if *this is the same size as the other thing.
bool is1D () const
 Check if the image is 1D, i.e., width == 1 or height == 1.
bool isSquare () const
 Check if the image is square, i.e., width == height == depth.
T & operator[] (const unsigned int index)
 Access voxel image elements through C array index interface.
const T & operator[] (const unsigned int index) const
 Access voxel image elements through C array index interface.
T & operator[] (const Point< int, 3 > &p)
 Access voxel image elements through C array index interface.
const T & operator[] (const Point< int, 3 > &p) const
 Access voxel image elements through C array index interface.
bool operator== (const RealVoxel< T > &ivox) const
 Equality Operator.
virtual RealVoxel< T > & operator= (const RealVoxel< T > &ivox)
 copy operator
template<class T2>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
operator+ (const RealVoxel< T2 > &ivox) const
 RealVoxel + RealVoxel operator.
template<class T2>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
operator- (const RealVoxel< T2 > &ivox) const
 RealVoxel - RealVoxel operator.
template<class T2>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
operator * (const RealVoxel< T2 > &ivox) const
 RealVoxel * RealVoxel operator.
template<class T2>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
operator/ (const RealVoxel< T2 > &ivox) const
 RealVoxel / RealVoxel operator.
template<class T2, class MATH_OP>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
basicOp (const RealVoxel< T2 > &ivox) const
 RealVoxel operator which does the work.
template<class T2>
RealVoxel< T > & operator+= (const RealVoxel< T2 > &ivox)
 RealVoxel += RealVoxel operator.
template<class T2>
RealVoxel< T > & operator-= (const RealVoxel< T2 > &ivox)
 RealVoxel -= RealVoxel operator.
template<class T2>
RealVoxel< T > & operator *= (const RealVoxel< T2 > &ivox)
 RealVoxel *= RealVoxel operator.
template<class T2>
RealVoxel< T > & operator/= (const RealVoxel< T2 > &ivox)
 RealVoxel /= RealVoxel operator.
virtual RealVoxel< T > & operator= (const T &val)
 copy operator
template<class T2>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
operator+ (const T2 &val) const
 RealVoxel + value operator.
template<class T2>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
operator- (const T2 &val) const
 RealVoxel - value operator.
template<class T2>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
operator * (const T2 &val) const
 RealVoxel * value operator.
template<class T2>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
operator/ (const T2 &val) const
 RealVoxel / value operator.
template<class T2, class MATH_OP>
RealVoxel< typename promote_trait<
T, T2 >::TP > 
valueOp (const T2 &val) const
 RealVoxel value operator which does the work.
template<class T2>
RealVoxel< T > & operator+= (const T2 &val)
 RealVoxel += value operator.
template<class T2>
RealVoxel< T > & operator-= (const T2 &val)
 RealVoxel -= value operator.
template<class T2>
RealVoxel< T > & operator *= (const T2 &val)
 RealVoxel *= value operator.
template<class T2>
RealVoxel< T > & operator/= (const T2 &val)
 RealVoxel /= value operator.
template<class T2>
void addImage (const imgvox::axis axis, const Image< T2 > &img)
 Add an image to this voxel image at each slice along an axis.
template<class T2>
void subtractImage (const imgvox::axis axis, const Image< T2 > &img)
 Subract an image from this voxel image at each slice along an axis.
template<class T2>
void subtractImageFrom (const imgvox::axis axis, const Image< T2 > &img)
 Subract an image from this voxel image at each slice along an axis.
template<class T2>
void multiplyImage (const imgvox::axis axis, const Image< T2 > &img)
 Multiply an image by this voxel image at each slice along an axis.
template<class T2>
void divideImage (const imgvox::axis axis, const Image< T2 > &img)
 Divide an image by this voxel image at each slice along an axis.
template<class T2>
void divideImageFrom (const imgvox::axis axis, const Image< T2 > &img)
 Divide an image by this voxel image at each slice along an axis.
template<class T2, class MATH_OP>
void sliceOp (const imgvox::axis axis, const Image< T2 > &img)
Functions for testing/debugging only
bool hasSameData (const RealVoxel< T > &b) const
 For testing/debugging only.
long refCount () const throw ()
 For testing/debugging only.
bool isShared () const throw ()
 For testing/debugging only.

Protected Member Functions

virtual RealVoxel< T > getNew (const RealVoxel< T > &vvox)
 Returns a newish semi-copy (shallow copy) object for = overload.
const ArrayData< T > & impl () const
ArrayData< T > & uniq ()

Protected Attributes

unsigned int itsSizeX
unsigned int itsSizeY
unsigned int itsSizeZ
unsigned int itsSize
BASE_IMAGE itsVox
 Handel to the actual storage container for all the voxels.


Member Typedef Documentation

template<class T>
typedef const T* RealVoxel< T >::const_iterator
 

Read-only iterator.

Definition at line 185 of file RealVoxel.H.

template<class T>
typedef T* RealVoxel< T >::iterator
 

Read/write iterator.

Definition at line 183 of file RealVoxel.H.


Constructor & Destructor Documentation

template<class T>
RealVoxel< T >::RealVoxel  ) 
 

Create a new real voxel image which is blank.

Definition at line 42 of file RealVoxel.C.

template<class T>
RealVoxel< T >::RealVoxel const T *  inarray,
const unsigned int  size_x,
const unsigned int  size_y,
const unsigned int  size_z
 

Copy a new real voxel image of size x,y,z.

Definition at line 52 of file RealVoxel.C.

template<class T>
RealVoxel< T >::RealVoxel const unsigned int  size_x,
const unsigned int  size_y,
const unsigned int  size_z,
const InitPolicy  init = NO_INIT
 

Create a new real voxel image of size x,y,z.

Definition at line 65 of file RealVoxel.C.

template<class T>
RealVoxel< T >::RealVoxel const Point< int, 3 > &  coord_size,
const InitPolicy  init = NO_INIT
 

Create a new real voxel image of coord size.

Definition at line 78 of file RealVoxel.C.

template<class T>
RealVoxel< T >::RealVoxel const RealVoxel< T > &  A  ) 
 

Create a new real voxel image from another.

Definition at line 89 of file RealVoxel.C.


Member Function Documentation

template<class T>
template<class T2>
void RealVoxel< T >::addImage const imgvox::axis  axis,
const Image< T2 > &  img
[inline]
 

Add an image to this voxel image at each slice along an axis.

Definition at line 1038 of file RealVoxel.H.

template<class T>
void RealVoxel< T >::attach T *  array,
const unsigned int  width,
const unsigned int  height,
const unsigned int  depth
[inline]
 

Use existing memory.

This is potentially dangerous and should really be avoided. The only case where this really is useful is to attach an image to an existing memory segment that is shared or into which data is streaming via DMA.

Definition at line 596 of file RealVoxel.H.

References RealVoxel< T >::itsSize, RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, RealVoxel< T >::itsVox, ArrayHandle< T >::swap(), and WRITE_THRU.

template<class T>
template<class T2, class MATH_OP>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::basicOp const RealVoxel< T2 > &  ivox  )  const [inline]
 

RealVoxel operator which does the work.

Definition at line 873 of file RealVoxel.H.

References ASSERT, RealVoxel< T >::begin(), RealVoxel< T >::beginw(), RealVoxel< T >::end(), RealVoxel< T >::isSameSize(), RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, NO_INIT, and lobot::stop().

template<class T>
RealVoxel< T >::const_iterator RealVoxel< T >::begin  )  const [inline]
 

Returns the constant head iterator.

Definition at line 729 of file RealVoxel.H.

References RealVoxel< T >::impl().

Referenced by RealVoxel< T >::basicOp(), RealVoxel< T >::getColumn(), realvox::getMinMax(), RealVoxel< T >::getSlice(), RealVoxel< T >::getVal(), realvox::importOSGPointCloud(), realvox::normalize(), RealVoxel< T >::operator *=(), RealVoxel< T >::operator+=(), RealVoxel< T >::operator-=(), RealVoxel< T >::operator/=(), RealVoxel< T >::operator==(), RealVoxel< T >::operator[](), RealVoxel< T >::sliceOp(), and RealVoxel< T >::valueOp().

template<class T>
RealVoxel< T >::iterator RealVoxel< T >::beginw  )  [inline]
 

Returns the head iterator.

Definition at line 737 of file RealVoxel.H.

References RealVoxel< T >::uniq().

Referenced by RealVoxel< T >::basicOp(), RealVoxel< T >::clear(), realvox::importOSGPointCloud(), realvox::normalize(), RealVoxel< T >::operator *=(), RealVoxel< T >::operator+=(), RealVoxel< T >::operator-=(), RealVoxel< T >::operator/=(), RealVoxel< T >::operator=(), RealVoxel< T >::operator[](), RealVoxel< T >::setColumn(), RealVoxel< T >::setSlice(), RealVoxel< T >::setVal(), RealVoxel< T >::sliceOp(), and RealVoxel< T >::valueOp().

template<class T>
void RealVoxel< T >::clear const T &  val = T()  )  [inline]
 

clear contents (or set to given value)

Definition at line 658 of file RealVoxel.H.

References RealVoxel< T >::beginw(), RealVoxel< T >::endw(), ArrayHandle< T >::isShared(), RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, RealVoxel< T >::itsVox, NO_INIT, and lobot::stop().

Referenced by realvox::convertToReal(), realvox::importOSGPointCloud(), and RealVoxel< T >::resize().

template<class T>
bool RealVoxel< T >::coordsOk const Point< int, 3 > &  coord  )  const [inline]
 

Test whether point falls inside array boundaries.

Definition at line 713 of file RealVoxel.H.

References RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, and Point< T, DIMS >::P.

template<class T>
bool RealVoxel< T >::coordsOk const unsigned int  i,
const unsigned int  j,
const unsigned int  k
const [inline]
 

Test whether point falls inside array boundaries.

Definition at line 702 of file RealVoxel.H.

References RealVoxel< T >::getDepth(), RealVoxel< T >::getHeight(), and RealVoxel< T >::getWidth().

template<class T>
RealVoxel< T > RealVoxel< T >::deepcopy  )  const [inline]
 

Return a new image object with a deep copy of the underlying data.

Definition at line 619 of file RealVoxel.H.

References RealVoxel< T >::getArrayPtr(), RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, and RealVoxel< T >::itsSizeZ.

template<class T>
void RealVoxel< T >::detach  )  [inline]
 

Detach previously attach()'ed image.

The main purpose of detach() is to make sure that this Image object does not continue to point at attach()'ed memory after that memory has been freed. Nevertheless, this function is not strictly necessary to ensure correct memory handling, since the Image destructor will only try to free memory if that memory is owned (i.e., not attach()'ed). All that it does is release any association with a previously attach()'ed memory block, by setting the current image to a new empty (zero-by-zero) ArrayData object. We assume that attached memory will be destroyed later.

Definition at line 610 of file RealVoxel.H.

References RealVoxel< T >::itsSize, RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, RealVoxel< T >::itsVox, and ArrayHandle< T >::swap().

template<class T>
template<class T2>
void RealVoxel< T >::divideImage const imgvox::axis  axis,
const Image< T2 > &  img
[inline]
 

Divide an image by this voxel image at each slice along an axis.

Here we have 2DImage / VoxelImage

Definition at line 1062 of file RealVoxel.H.

template<class T>
template<class T2>
void RealVoxel< T >::divideImageFrom const imgvox::axis  axis,
const Image< T2 > &  img
[inline]
 

Divide an image by this voxel image at each slice along an axis.

Here we have VoxelImage / 2DImage

Definition at line 1068 of file RealVoxel.H.

template<class T>
RealVoxel< T >::const_iterator RealVoxel< T >::end  )  const [inline]
 

Returns the constant end iterator.

Definition at line 733 of file RealVoxel.H.

References RealVoxel< T >::impl().

Referenced by RealVoxel< T >::basicOp(), realvox::exportOSGPointCloud(), realvox::getMinMax(), realvox::normalize(), RealVoxel< T >::operator==(), and RealVoxel< T >::valueOp().

template<class T>
RealVoxel< T >::iterator RealVoxel< T >::endw  )  [inline]
 

Returns the end iterator.

Definition at line 741 of file RealVoxel.H.

References RealVoxel< T >::uniq().

Referenced by RealVoxel< T >::clear(), realvox::importOSGPointCloud(), RealVoxel< T >::operator *=(), RealVoxel< T >::operator+=(), RealVoxel< T >::operator-=(), RealVoxel< T >::operator/=(), and RealVoxel< T >::operator=().

template<class T>
void RealVoxel< T >::freeMem  )  [inline]
 

Free memory and switch to uninitialized state.

Note that it is NOT necessary to call this function to ensure proper cleanup, that will be done in the destructor by default. Rather, freeMem() is offered just as a performance optimization, to allow you to release a potentially large chunk of memory when you are finished using it.

Definition at line 565 of file RealVoxel.H.

References RealVoxel< T >::itsSize, RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, and RealVoxel< T >::swap().

template<class T>
bool RealVoxel< T >::get BASE_IMAGE ivox  )  const [virtual]
 

Return the virtual voxels. Bool will be false if vox is empty.

Definition at line 122 of file RealVoxel.C.

References RealVoxel< T >::itsVox.

template<class T>
T * RealVoxel< T >::getArrayPtr  )  [inline]
 

Returns read/write (non-const) pointer to internal image array.

Definition at line 695 of file RealVoxel.H.

References RealVoxel< T >::uniq().

template<class T>
const T * RealVoxel< T >::getArrayPtr  )  const [inline]
 

Returns read-only (const) pointer to internal image array.

Definition at line 688 of file RealVoxel.H.

References RealVoxel< T >::impl().

Referenced by RealVoxel< T >::deepcopy().

template<class T>
bool RealVoxel< T >::getColumn const Point< int, 3 > &  coord,
std::vector< T > &  vec
const [virtual]
 

Return a vector column, set the normal axis to -1.

This will return a column in a std::vector from the voxel. To use it, set the ortho axis to -1. So if you want to get a column at X = 12 and Y = 18 then set Z to -1 since its the orthogonal plane.

Example: I want to get a column of voxels from offset X = 12 and Y = 18

The returned vector will be the of size Z (depth). Creat a point like Point<int,3>(12,18,-1). Since the Z is -1, the method will know we want the column othogonal to the z plane.

Definition at line 241 of file RealVoxel.C.

References ASSERT, RealVoxel< T >::begin(), i, RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, LFATAL, and Point< T, DIMS >::P.

template<class T>
unsigned int RealVoxel< T >::getDepth  )  const [virtual]
 

get out depth - Z (itsSizeZ)

Implements VoxelImage< T, RealVoxel< T >, ArrayHandle< T > >.

Definition at line 423 of file RealVoxel.C.

References RealVoxel< T >::itsSizeZ.

Referenced by RealVoxel< T >::coordsOk(), and realvox::initIfNeeded().

template<class T>
unsigned int RealVoxel< T >::getHeight  )  const [virtual]
 

get our height - Y (itsSizeY)

Implements VoxelImage< T, RealVoxel< T >, ArrayHandle< T > >.

Definition at line 413 of file RealVoxel.C.

References RealVoxel< T >::itsSizeX.

Referenced by RealVoxel< T >::coordsOk(), realvox::initIfNeeded(), and RealVoxel< T >::operator[]().

template<class T>
RealVoxel< T > RealVoxel< T >::getNew const RealVoxel< T > &  vvox  )  [protected, virtual]
 

Returns a newish semi-copy (shallow copy) object for = overload.

Definition at line 431 of file RealVoxel.C.

template<class T>
unsigned int RealVoxel< T >::getSize  )  const [inline]
 

get total size (number of voxels)

Definition at line 766 of file RealVoxel.H.

References RealVoxel< T >::itsSize.

Referenced by RealVoxel< T >::operator[]().

template<class T>
bool RealVoxel< T >::getSlice const Point< int, 3 > &  coord,
Image< T > &  img
const [virtual]
 

Return an Image Slice, set the normal axis' to -1.

This will return a single INVT image slice of the full voxel image. To use this, set the values in the Point object to -1 for the axis that lay on the image plane.

Example: I want to return an image at a depth of 12. That is, z=12

In this case, the returned image will be of size X (width) by Y (height) make a Point like Point<int,3>(-1,-1,12) and pass it with the method call.

The bool is for compatability with sparse voxel images

Definition at line 159 of file RealVoxel.C.

References ASSERT, RealVoxel< T >::begin(), Image< T >::beginw(), i, RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, LFATAL, p, Point< T, DIMS >::P, Image< T >::resize(), and Y.

template<class T>
bool RealVoxel< T >::getVal const Point< int, 3 > &  coord,
T &  vox
[inline]
 

inefficent access to get x,y,z if possible use iterator

Definition at line 674 of file RealVoxel.H.

References RealVoxel< T >::getVal(), and Point< T, DIMS >::P.

template<class T>
bool RealVoxel< T >::getVal const unsigned int  x,
const unsigned int  y,
const unsigned int  z,
T &  vox
[virtual]
 

inefficent access to get x,y,z if possible use iterator

if the virtual voxel does not exist (nothing is there) then it will return false and vox will be null.

Implements VoxelImage< T, RealVoxel< T >, ArrayHandle< T > >.

Definition at line 104 of file RealVoxel.C.

References RealVoxel< T >::begin(), RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, and RealVoxel< T >::itsSizeZ.

Referenced by RealVoxel< T >::getVal().

template<class T>
unsigned int RealVoxel< T >::getWidth  )  const [virtual]
 

get our width - X (itsSizeX)

Implements VoxelImage< T, RealVoxel< T >, ArrayHandle< T > >.

Definition at line 418 of file RealVoxel.C.

References RealVoxel< T >::itsSizeY.

Referenced by RealVoxel< T >::coordsOk(), realvox::initIfNeeded(), and RealVoxel< T >::operator[]().

template<class T>
bool RealVoxel< T >::hasSameData const RealVoxel< T > &  b  )  const [inline]
 

For testing/debugging only.

See if we are pointing to the same ArrayData<T> as is the other Image<T>.

Definition at line 1163 of file RealVoxel.H.

References ArrayHandle< T >::hasSameData(), and RealVoxel< T >::itsVox.

template<class T>
bool RealVoxel< T >::initialized  )  const [virtual]
 

Check whether image is non-empty (i.e., non-zero height and width).

Implements NImage< T, CLASS_IMAGE, BASE_IMAGE, DIMS >.

Definition at line 146 of file RealVoxel.C.

References RealVoxel< T >::itsSize.

Referenced by realvox::initIfNeeded().

template<class T>
bool RealVoxel< T >::is1D  )  const [inline]
 

Check if the image is 1D, i.e., width == 1 or height == 1.

Definition at line 780 of file RealVoxel.H.

References RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, and RealVoxel< T >::itsSizeZ.

template<class T>
template<class C>
bool RealVoxel< T >::isSameSize const C &  other  )  const [inline]
 

Check if *this is the same size as the other thing.

Definition at line 771 of file RealVoxel.H.

References RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, and RealVoxel< T >::itsSizeZ.

Referenced by RealVoxel< T >::basicOp(), RealVoxel< T >::operator *=(), RealVoxel< T >::operator+=(), RealVoxel< T >::operator-=(), and RealVoxel< T >::operator/=().

template<class T>
bool RealVoxel< T >::isShared  )  const throw () [inline]
 

For testing/debugging only.

Check if the ArrayHandle is shared.

Definition at line 1172 of file RealVoxel.H.

References ArrayHandle< T >::isShared(), and RealVoxel< T >::itsVox.

template<class T>
bool RealVoxel< T >::isSquare  )  const [inline]
 

Check if the image is square, i.e., width == height == depth.

Ok, it's really a cube, but we keep the name from the Image class

Definition at line 785 of file RealVoxel.H.

References RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, and RealVoxel< T >::itsSizeZ.

template<class T>
template<class T2>
void RealVoxel< T >::multiplyImage const imgvox::axis  axis,
const Image< T2 > &  img
[inline]
 

Multiply an image by this voxel image at each slice along an axis.

Definition at line 1056 of file RealVoxel.H.

template<class T>
template<class T2>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::operator * const T2 &  val  )  const [inline]
 

RealVoxel * value operator.

Definition at line 964 of file RealVoxel.H.

template<class T>
template<class T2>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::operator * const RealVoxel< T2 > &  ivox  )  const [inline]
 

RealVoxel * RealVoxel operator.

Definition at line 860 of file RealVoxel.H.

template<class T>
template<class T2>
RealVoxel< T > & RealVoxel< T >::operator *= const T2 &  val  )  [inline]
 

RealVoxel *= value operator.

Definition at line 1013 of file RealVoxel.H.

References RealVoxel< T >::beginw(), RealVoxel< T >::endw(), and lobot::stop().

template<class T>
template<class T2>
RealVoxel< T > & RealVoxel< T >::operator *= const RealVoxel< T2 > &  ivox  )  [inline]
 

RealVoxel *= RealVoxel operator.

Definition at line 916 of file RealVoxel.H.

References ASSERT, RealVoxel< T >::begin(), RealVoxel< T >::beginw(), RealVoxel< T >::endw(), RealVoxel< T >::isSameSize(), and lobot::stop().

template<class T>
template<class T2>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::operator+ const T2 &  val  )  const [inline]
 

RealVoxel + value operator.

Definition at line 952 of file RealVoxel.H.

template<class T>
template<class T2>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::operator+ const RealVoxel< T2 > &  ivox  )  const [inline]
 

RealVoxel + RealVoxel operator.

Definition at line 848 of file RealVoxel.H.

template<class T>
template<class T2>
RealVoxel< T > & RealVoxel< T >::operator+= const T2 &  val  )  [inline]
 

RealVoxel += value operator.

Definition at line 991 of file RealVoxel.H.

References RealVoxel< T >::beginw(), RealVoxel< T >::endw(), and lobot::stop().

template<class T>
template<class T2>
RealVoxel< T > & RealVoxel< T >::operator+= const RealVoxel< T2 > &  ivox  )  [inline]
 

RealVoxel += RealVoxel operator.

Definition at line 890 of file RealVoxel.H.

References ASSERT, RealVoxel< T >::begin(), RealVoxel< T >::beginw(), RealVoxel< T >::endw(), RealVoxel< T >::isSameSize(), and lobot::stop().

template<class T>
template<class T2>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::operator- const T2 &  val  )  const [inline]
 

RealVoxel - value operator.

Definition at line 958 of file RealVoxel.H.

template<class T>
template<class T2>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::operator- const RealVoxel< T2 > &  ivox  )  const [inline]
 

RealVoxel - RealVoxel operator.

Definition at line 854 of file RealVoxel.H.

template<class T>
template<class T2>
RealVoxel< T > & RealVoxel< T >::operator-= const T2 &  val  )  [inline]
 

RealVoxel -= value operator.

Definition at line 1002 of file RealVoxel.H.

References RealVoxel< T >::beginw(), RealVoxel< T >::endw(), and lobot::stop().

template<class T>
template<class T2>
RealVoxel< T > & RealVoxel< T >::operator-= const RealVoxel< T2 > &  ivox  )  [inline]
 

RealVoxel -= RealVoxel operator.

Definition at line 903 of file RealVoxel.H.

References ASSERT, RealVoxel< T >::begin(), RealVoxel< T >::beginw(), RealVoxel< T >::endw(), RealVoxel< T >::isSameSize(), and lobot::stop().

template<class T>
template<class T2>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::operator/ const T2 &  val  )  const [inline]
 

RealVoxel / value operator.

Definition at line 970 of file RealVoxel.H.

template<class T>
template<class T2>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::operator/ const RealVoxel< T2 > &  ivox  )  const [inline]
 

RealVoxel / RealVoxel operator.

Definition at line 866 of file RealVoxel.H.

template<class T>
template<class T2>
RealVoxel< T > & RealVoxel< T >::operator/= const T2 &  val  )  [inline]
 

RealVoxel /= value operator.

Definition at line 1024 of file RealVoxel.H.

References RealVoxel< T >::beginw(), RealVoxel< T >::endw(), and lobot::stop().

template<class T>
template<class T2>
RealVoxel< T > & RealVoxel< T >::operator/= const RealVoxel< T2 > &  ivox  )  [inline]
 

RealVoxel /= RealVoxel operator.

Definition at line 929 of file RealVoxel.H.

References ASSERT, RealVoxel< T >::begin(), RealVoxel< T >::beginw(), RealVoxel< T >::endw(), RealVoxel< T >::isSameSize(), and lobot::stop().

template<class T>
RealVoxel< T > & RealVoxel< T >::operator= const T &  val  )  [inline, virtual]
 

copy operator

Definition at line 941 of file RealVoxel.H.

References RealVoxel< T >::beginw(), RealVoxel< T >::endw(), and lobot::stop().

template<class T>
RealVoxel< T > & RealVoxel< T >::operator= const RealVoxel< T > &  ivox  )  [virtual]
 

copy operator

Definition at line 838 of file RealVoxel.H.

References RealVoxel< T >::swap().

template<class T>
bool RealVoxel< T >::operator== const RealVoxel< T > &  ivox  )  const [inline]
 

Equality Operator.

Definition at line 829 of file RealVoxel.H.

References RealVoxel< T >::begin(), and RealVoxel< T >::end().

template<class T>
const T & RealVoxel< T >::operator[] const Point< int, 3 > &  p  )  const [inline]
 

Access voxel image elements through C array index interface.

Definition at line 819 of file RealVoxel.H.

References ASSERT, RealVoxel< T >::begin(), RealVoxel< T >::getHeight(), RealVoxel< T >::getWidth(), and Point< T, DIMS >::P.

template<class T>
T & RealVoxel< T >::operator[] const Point< int, 3 > &  p  )  [inline]
 

Access voxel image elements through C array index interface.

Definition at line 809 of file RealVoxel.H.

References ASSERT, RealVoxel< T >::beginw(), RealVoxel< T >::getHeight(), RealVoxel< T >::getWidth(), and Point< T, DIMS >::P.

template<class T>
const T & RealVoxel< T >::operator[] const unsigned int  index  )  const [inline]
 

Access voxel image elements through C array index interface.

To get an element at x,y,z use the following computation:

x + y * width + z * width * height

Example: get a voxel at position (x,y,z) = (13,23,56) in RealVoxel image ivox...

T voxel = ivox[13 + 23 * ivox.getWidth() + 56 * ivox.getWidth() * ivox.getHeight()];

Definition at line 801 of file RealVoxel.H.

References ASSERT, RealVoxel< T >::begin(), and RealVoxel< T >::getSize().

template<class T>
T & RealVoxel< T >::operator[] const unsigned int  index  )  [inline]
 

Access voxel image elements through C array index interface.

To get an element at x,y,z use the following computation:

x + y * width + z * width * height

Example: get a voxel at position (x,y,z) = (13,23,56) in RealVoxel image ivox...

T voxel = ivox[13 + 23 * ivox.getWidth() + 56 * ivox.getWidth() * ivox.getHeight()];

Definition at line 793 of file RealVoxel.H.

References ASSERT, RealVoxel< T >::beginw(), and RealVoxel< T >::getSize().

template<class T>
long RealVoxel< T >::refCount  )  const throw () [inline]
 

For testing/debugging only.

Returns the current reference count.

Definition at line 1168 of file RealVoxel.H.

References RealVoxel< T >::itsVox, and ArrayHandle< T >::refCount().

template<class T>
void RealVoxel< T >::resize const Point< int, 3 > &  coord_size,
const bool  do_clear = false
[inline]
 

Free mem and realloc new array (array contents are lost).

Definition at line 650 of file RealVoxel.H.

References Point< T, DIMS >::P, and RealVoxel< T >::resize().

template<class T>
void RealVoxel< T >::resize const unsigned int  size_x,
const unsigned int  size_y,
const unsigned int  size_z,
const bool  do_clear = false
[inline]
 

Free mem and realloc new array (array contents are lost).

Definition at line 626 of file RealVoxel.H.

References RealVoxel< T >::clear(), RealVoxel< T >::itsSize, RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, RealVoxel< T >::itsVox, and ArrayHandle< T >::swap().

Referenced by realvox::convertToReal(), realvox::importOSGPointCloud(), realvox::initIfNeeded(), and RealVoxel< T >::resize().

template<class T>
void RealVoxel< T >::set const BASE_IMAGE ivox  )  [virtual]
 

Sets the virtual voxel.

Definition at line 141 of file RealVoxel.C.

References RealVoxel< T >::itsVox.

template<class T>
void RealVoxel< T >::setColumn const Point< int, 3 > &  coord,
const std::vector< T > &  vec
[virtual]
 

Set a vector column, set the normal axis to -1.

This will set a column with a std::vector of voxels. To use it, set the ortho axis to -1. So if you want to set a column at X = 12 and Y = 18 then set Z to -1 since its the orthogonal plane. The vector must be the same size as the axis requested. So if the image size Z (depth) is 256, then the vector needs to be that size in order to set along the z axis.

Example: I want to set a column of voxels from offset X = 12 and Y = 18

The the vector must be the of size Z (depth). Creat a point like Point<int,3>(12,18,-1). Since the Z is -1, the method will know we want the column othogonal to the z plane.

Definition at line 365 of file RealVoxel.C.

References ASSERT, RealVoxel< T >::beginw(), i, RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, LFATAL, and Point< T, DIMS >::P.

template<class T>
void RealVoxel< T >::setSlice const Point< int, 3 > &  coord,
const Image< T > &  img
[virtual]
 

Set an Image Slice, set the normal axis' to -1.

This will set a single voxel slice to the value of an INVT image To use this, set the values in the Point object to -1 for the axis that lay on the image plane. The image must be the same size dimensions parallel to the image slice. So if setting a slice at Z=12, then the X (width) and Y (height) must be the same size as the voxel image.

Example: I want to set a slice at a row of 22. That is, y=22

In this case, the image must be of size X (width) by Z (depth) make a Point like Point<int,3>(-1,22,-1) and pass it with the method call.

Definition at line 306 of file RealVoxel.C.

References ASSERT, Image< T >::begin(), RealVoxel< T >::beginw(), Image< T >::getHeight(), Image< T >::getWidth(), i, RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, LFATAL, p, Point< T, DIMS >::P, and Y.

template<class T>
void RealVoxel< T >::setVal const Point< int, 3 > &  coord,
const T &  vox
[inline]
 

store a voxel at x,y,z using a point

Definition at line 681 of file RealVoxel.H.

References Point< T, DIMS >::P, and RealVoxel< T >::setVal().

template<class T>
void RealVoxel< T >::setVal const unsigned int  x,
const unsigned int  y,
const unsigned int  z,
const T &  vox
[virtual]
 

store a voxel at x,y,z

Implements VoxelImage< T, RealVoxel< T >, ArrayHandle< T > >.

Definition at line 127 of file RealVoxel.C.

References RealVoxel< T >::beginw(), RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, and LFATAL.

Referenced by RealVoxel< T >::setVal().

template<class T>
int RealVoxel< T >::size  )  const [virtual]
 

number of points we now have (same as getSize)

Implements NImage< T, CLASS_IMAGE, BASE_IMAGE, DIMS >.

Definition at line 151 of file RealVoxel.C.

References RealVoxel< T >::itsSize.

template<class T>
template<class T2>
void RealVoxel< T >::subtractImage const imgvox::axis  axis,
const Image< T2 > &  img
[inline]
 

Subract an image from this voxel image at each slice along an axis.

Here we have 2DImage - VoxelImage

Definition at line 1044 of file RealVoxel.H.

template<class T>
template<class T2>
void RealVoxel< T >::subtractImageFrom const imgvox::axis  axis,
const Image< T2 > &  img
[inline]
 

Subract an image from this voxel image at each slice along an axis.

Here we have VoxelImage - 2DImage

Definition at line 1050 of file RealVoxel.H.

template<class T>
void RealVoxel< T >::swap RealVoxel< T > &  other  )  [inline]
 

Swap the contents of two images.

Definition at line 574 of file RealVoxel.H.

References RealVoxel< T >::itsSize, RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, RealVoxel< T >::itsVox, s, ArrayHandle< T >::swap(), x, y, and z.

Referenced by RealVoxel< T >::freeMem(), and RealVoxel< T >::operator=().

template<class T>
template<class T2, class MATH_OP>
RealVoxel< typename promote_trait< T, T2 >::TP > RealVoxel< T >::valueOp const T2 &  val  )  const [inline]
 

RealVoxel value operator which does the work.

Definition at line 976 of file RealVoxel.H.

References RealVoxel< T >::begin(), RealVoxel< T >::beginw(), RealVoxel< T >::end(), RealVoxel< T >::itsSizeX, RealVoxel< T >::itsSizeY, RealVoxel< T >::itsSizeZ, NO_INIT, and lobot::stop().


Member Data Documentation

template<class T>
BASE_IMAGE RealVoxel< T >::itsVox [protected]
 

Handel to the actual storage container for all the voxels.

Definition at line 487 of file RealVoxel.H.

Referenced by RealVoxel< T >::attach(), RealVoxel< T >::clear(), RealVoxel< T >::detach(), RealVoxel< T >::get(), RealVoxel< T >::hasSameData(), RealVoxel< T >::impl(), RealVoxel< T >::isShared(), RealVoxel< T >::refCount(), RealVoxel< T >::resize(), RealVoxel< T >::set(), RealVoxel< T >::swap(), and RealVoxel< T >::uniq().


The documentation for this class was generated from the following files:
Generated on Sat Nov 7 13:35:52 2009 for iLab Neuromorphic Vision Toolkit by  doxygen 1.4.4