Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::Size< VDimension > Class Template Reference
[Image Representation Objects]

Represent the size (bounds) of a n-dimensional image. More...

#include <itkSize.h>

Inheritance diagram for itk::Size:

Inheritance graph
[legend]
List of all members.

Public Types

typedef Size Self
typedef Size< VDimension > SizeType
typedef unsigned long SizeValueType

Public Methods

SizeValueTypeoperator[] (unsigned int dim)
SizeValueType operator[] (unsigned int dim) const
const SizeValueTypeGetSize () const
void SetSize (const SizeValueType val[VDimension])
void SetElement (unsigned long element, SizeValueType val)
SizeValueType GetElement (unsigned long element) const
void Fill (SizeValueType value)
const Self operator+ (const Self &vec)
const Selfoperator+= (const Self &vec)
const Self operator- (const Self &vec)
const Selfoperator-= (const Self &vec)
const Self operator * (const Self &vec)
const Selfoperator *= (const Self &vec)
bool operator== (const Self &vec) const
bool operator!= (const Self &vec) const

Static Public Methods

unsigned int GetSizeDimension (void)

Public Attributes

SizeValueType m_Size [VDimension]

Detailed Description

template<unsigned int VDimension = 2>
class itk::Size< VDimension >

Represent the size (bounds) of a n-dimensional image.

Size is a templated class to represent multi-dimensional array bounds Size is templated over the dimension. itk assumes the first element of Size is the fastest moving index.

For efficiency sake, Size does not define a default constructor, a copy constructor, or an operator=. We rely on the compiler to provide efficient bitwise copies.

Size is an "aggregate" class. Its data is public (m_Size) allowing for fast and convienent instantiations/assignments.

The following syntax for assigning a size is allowed/suggested: Size<3> size = {256, 256, 20};

See also:
Index

Definition at line 46 of file itkSize.h.


Member Typedef Documentation

template<unsigned int VDimension = 2>
typedef Size itk::Size< VDimension >::Self
 

Standard class typedefs.

Definition at line 49 of file itkSize.h.

template<unsigned int VDimension = 2>
typedef Size<VDimension> itk::Size< VDimension >::SizeType
 

Compatible Size and value typedef

Definition at line 52 of file itkSize.h.

template<unsigned int VDimension = 2>
typedef unsigned long itk::Size< VDimension >::SizeValueType
 

Definition at line 53 of file itkSize.h.

Referenced by itk::Size< VSpaceDimension >::operator!=(), and itk::Size< VSpaceDimension >::operator[]().


Member Function Documentation

template<unsigned int VDimension = 2>
void itk::Size< VDimension >::Fill SizeValueType    value [inline]
 

Set one value for the index in all dimensions. Useful for initializing an offset to zero.

Definition at line 184 of file itkSize.h.

template<unsigned int VDimension = 2>
SizeValueType itk::Size< VDimension >::GetElement unsigned long    element const [inline]
 

Get an element of the Size. gets the value of one of the elements in the size This method is mainly intended to facilitate the access to elements from Tcl and Python where C++ notation is not very convenient.

Warning:
No bound checking is performed
See also:
GetSize() , SetElement()

Definition at line 179 of file itkSize.h.

template<unsigned int VDimension = 2>
const SizeValueType* itk::Size< VDimension >::GetSize   const [inline]
 

Get the size. This provides a read only reference to the size.

See also:
SetSize

Definition at line 156 of file itkSize.h.

template<unsigned int VDimension = 2>
unsigned int itk::Size< VDimension >::GetSizeDimension void    [inline, static]
 

Get the dimension of the size object.

Definition at line 56 of file itkSize.h.

template<unsigned int VDimension = 2>
const Self itk::Size< VDimension >::operator * const Self   vec [inline]
 

Multiply two sizes (elementwise product).

Definition at line 102 of file itkSize.h.

template<unsigned int VDimension = 2>
const Self& itk::Size< VDimension >::operator *= const Self   vec [inline]
 

Multiply two sizes (elementwise product).

Definition at line 113 of file itkSize.h.

template<unsigned int VDimension = 2>
bool itk::Size< VDimension >::operator!= const Self   vec const [inline]
 

Compare two sizes.

Definition at line 134 of file itkSize.h.

template<unsigned int VDimension = 2>
const Self itk::Size< VDimension >::operator+ const Self   vec [inline]
 

Add two sizes.

Definition at line 60 of file itkSize.h.

template<unsigned int VDimension = 2>
const Self& itk::Size< VDimension >::operator+= const Self   vec [inline]
 

Increment size by a size.

Definition at line 71 of file itkSize.h.

template<unsigned int VDimension = 2>
const Self itk::Size< VDimension >::operator- const Self   vec [inline]
 

Subtract two sizes.

Definition at line 81 of file itkSize.h.

template<unsigned int VDimension = 2>
const Self& itk::Size< VDimension >::operator-= const Self   vec [inline]
 

Decrement size by a size.

Definition at line 92 of file itkSize.h.

template<unsigned int VDimension = 2>
bool itk::Size< VDimension >::operator== const Self   vec const [inline]
 

Compare two sizes.

Definition at line 123 of file itkSize.h.

template<unsigned int VDimension = 2>
SizeValueType itk::Size< VDimension >::operator[] unsigned int    dim const [inline]
 

Access an element of the size. Elements are numbered 0, ..., VDimension-1. This version can only be an rvalue. No bounds checking is performed.

Definition at line 151 of file itkSize.h.

template<unsigned int VDimension = 2>
SizeValueType& itk::Size< VDimension >::operator[] unsigned int    dim [inline]
 

Access an element of the size. Elements are numbered 0, ..., VDimension-1. No bounds checking is performed.

Definition at line 145 of file itkSize.h.

template<unsigned int VDimension = 2>
void itk::Size< VDimension >::SetElement unsigned long    element,
SizeValueType    val
[inline]
 

Set an element of the Size. sets the value of one of the elements in the Size This method is mainly intended to facilitate the access to elements from Tcl and Python where C++ notation is not very convenient.

Warning:
No bound checking is performed.
See also:
SetSize() , GetElement()

Definition at line 170 of file itkSize.h.

template<unsigned int VDimension = 2>
void itk::Size< VDimension >::SetSize const SizeValueType    val[VDimension] [inline]
 

Set the size. Try to prototype this function so that val has to point to a block of memory that is the appropriate size.

See also:
GetSize

Definition at line 161 of file itkSize.h.


Member Data Documentation

template<unsigned int VDimension = 2>
SizeValueType itk::Size< VDimension >::m_Size[VDimension]
 

Size is an "aggregate" class. Its data is public (m_Size) allowing for fast and convenient instantiations/assignments.

The following syntax for assigning a size is allowed/suggested:

Size<3> size = {{256, 256, 20}};

The doubled braces {{ and }} are required to prevent `gcc -Wall' (and perhaps other compilers) from complaining about a partly bracketed initializer.

Definition at line 197 of file itkSize.h.

Referenced by itk::Size< VSpaceDimension >::operator *(), itk::Size< VSpaceDimension >::operator!=(), itk::Size< VSpaceDimension >::operator+(), itk::Size< VSpaceDimension >::operator+=(), itk::Size< VSpaceDimension >::operator-(), itk::Size< VSpaceDimension >::operator-=(), and itk::Size< VSpaceDimension >::operator[]().


The documentation for this class was generated from the following file:
Generated at Fri May 21 01:40:08 2004 for ITK by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2000