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

itk::CellInterface< TPixelType, TCellTraits > Class Template Reference
[Mesh Representation Objects]

#include <itkCellInterface.h>

List of all members.


Detailed Description

template<typename TPixelType, typename TCellTraits>
class itk::CellInterface< TPixelType, TCellTraits >

Define an abstract interface for cells. Actual cell types derive from this class.

Template parameters for Cell:

TPixelType = The type stored with an entity (cell, point, or boundary).

TCellTraits = Type information for cell.

Definition at line 114 of file itkCellInterface.h.

Public Types

typedef SelfAutoPointer CellAutoPointer
typedef ConstSelfAutoPointer CellConstAutoPointer
typedef ConstRawPointer CellConstRawPointer
typedef CellFeatureIdentifier CellFeatureCount
typedef CellTraits::CellFeatureIdentifier CellFeatureIdentifier
enum  CellGeometry {
  VERTEX_CELL = 0,
  LINE_CELL,
  TRIANGLE_CELL,
  QUADRILATERAL_CELL,
  POLYGON_CELL,
  TETRAHEDRON_CELL,
  HEXAHEDRON_CELL,
  QUADRATIC_EDGE_CELL,
  QUADRATIC_TRIANGLE_CELL,
  LAST_ITK_CELL,
  MAX_ITK_CELLS = 255
}
typedef CellTraits::CellIdentifier CellIdentifier
typedef RawPointer CellRawPointer
typedef TCellTraits CellTraits
typedef CellInterface CellType
typedef CellTraits::CoordRepType CoordRepType
typedef CellTraits::InterpolationWeightType InterpolationWeightType
typedef Array< CoordRepTypeParametricCoordArrayType
typedef TPixelType PixelType
typedef CellTraits::PointIdConstIterator PointIdConstIterator
typedef CellTraits::PointIdentifier PointIdentifier
typedef CellTraits::PointIdIterator PointIdIterator
typedef CellTraits::PointsContainer PointsContainer
typedef CellTraits::PointType PointType
typedef Array< InterpolationWeightTypeShapeFunctionsArrayType
typedef CellTraits::UsingCellsContainer UsingCellsContainer
typedef UsingCellsContainer::iterator UsingCellsContainerIterator

Public Member Functions

virtual void Accept (unsigned long cellId, MultiVisitor *)=0
virtual void AddUsingCell (CellIdentifier cellId)
 CellInterface ()
virtual bool EvaluatePosition (CoordRepType *, PointsContainer *, CoordRepType *, CoordRepType[], double *, InterpolationWeightType *)
virtual void EvaluateShapeFunctions (const ParametricCoordArrayType &, ShapeFunctionsArrayType &) const
virtual bool GetBoundaryFeature (int dimension, CellFeatureIdentifier, CellAutoPointer &)=0
CoordRepType GetBoundingBoxDiagonalLength2 (void)
virtual bool GetClosestBoundary (CoordRepType[], bool *, CellAutoPointer &)
virtual unsigned int GetDimension (void) const =0
virtual unsigned int GetInterpolationOrder (void) const
virtual const char * GetNameOfClass () const
virtual CellFeatureCount GetNumberOfBoundaryFeatures (int dimension) const =0
virtual unsigned int GetNumberOfPoints (void) const =0
virtual unsigned int GetNumberOfUsingCells (void)
virtual PointIdConstIterator GetPointIds (void) const
virtual CellGeometry GetType (void) const =0
virtual bool IntersectBoundingBoxWithLine (CoordRepType[PointDimension *2], CoordRepType[PointDimension], CoordRepType[PointDimension], CoordRepType[PointDimension], CoordRepType *)
virtual bool IntersectWithLine (CoordRepType[PointDimension], CoordRepType[PointDimension], CoordRepType, CoordRepType[PointDimension], CoordRepType *, CoordRepType[])
virtual bool IsExplicitBoundary (void)
virtual bool IsUsingCell (CellIdentifier cellId)
 itkCellCommonTypedefs (CellInterface)
 itkStaticConstMacro (PointDimension, unsigned int, CellTraits::PointDimension)
virtual void MakeCopy (CellAutoPointer &) const =0
Compute cell bounding box
and store in the user provided
array *Array is 
ordered (xmin, xmax, ymin, ymax,....).A pointer to the *array is returned for convenience.This allows code like
virtual PointIdConstIterator PointIdsBegin (void) const =0
virtual PointIdIterator PointIdsBegin (void)=0
virtual PointIdConstIterator PointIdsEnd (void) const =0
virtual PointIdIterator PointIdsEnd (void)=0
virtual void RemoveUsingCell (CellIdentifier cellId)
virtual void SetPointId (int localId, PointIdentifier)=0
virtual void SetPointIds (PointIdConstIterator first, PointIdConstIterator last)=0
virtual void SetPointIds (PointIdConstIterator first)=0
virtual UsingCellsContainerIterator UsingCellsBegin (void)
virtual UsingCellsContainerIterator UsingCellsEnd (void)
virtual ~CellInterface ()

Static Public Member Functions

static int GetNextUserCellId ()

Protected Attributes

UsingCellsContainer m_UsingCells

Classes

class  MultiVisitor


Member Typedef Documentation

template<typename TPixelType, typename TCellTraits>
typedef SelfAutoPointer itk::CellInterface< TPixelType, TCellTraits >::CellAutoPointer
 

Definition at line 147 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef ConstSelfAutoPointer itk::CellInterface< TPixelType, TCellTraits >::CellConstAutoPointer
 

Definition at line 148 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef ConstRawPointer itk::CellInterface< TPixelType, TCellTraits >::CellConstRawPointer
 

Definition at line 150 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellFeatureIdentifier itk::CellInterface< TPixelType, TCellTraits >::CellFeatureCount
 

A useful rename.

Definition at line 153 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::CellFeatureIdentifier itk::CellInterface< TPixelType, TCellTraits >::CellFeatureIdentifier
 

Definition at line 134 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::CellIdentifier itk::CellInterface< TPixelType, TCellTraits >::CellIdentifier
 

Definition at line 133 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef RawPointer itk::CellInterface< TPixelType, TCellTraits >::CellRawPointer
 

Definition at line 149 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef TCellTraits itk::CellInterface< TPixelType, TCellTraits >::CellTraits
 

Save the CellTraits template parameter.

Definition at line 125 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellInterface itk::CellInterface< TPixelType, TCellTraits >::CellType
 

Give this and all derived classes quick access to the base cell type.

Definition at line 146 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::CoordRepType itk::CellInterface< TPixelType, TCellTraits >::CoordRepType
 

Save type information for this cell.

Definition at line 128 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::InterpolationWeightType itk::CellInterface< TPixelType, TCellTraits >::InterpolationWeightType
 

Definition at line 129 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef Array<CoordRepType> itk::CellInterface< TPixelType, TCellTraits >::ParametricCoordArrayType
 

Types needed to contour the cells

Definition at line 162 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef TPixelType itk::CellInterface< TPixelType, TCellTraits >::PixelType
 

Save the PixelType template parameter.

Definition at line 122 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::PointIdConstIterator itk::CellInterface< TPixelType, TCellTraits >::PointIdConstIterator
 

Definition at line 132 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::PointIdentifier itk::CellInterface< TPixelType, TCellTraits >::PointIdentifier
 

Definition at line 130 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::PointIdIterator itk::CellInterface< TPixelType, TCellTraits >::PointIdIterator
 

Definition at line 131 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::PointsContainer itk::CellInterface< TPixelType, TCellTraits >::PointsContainer
 

Definition at line 136 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::PointType itk::CellInterface< TPixelType, TCellTraits >::PointType
 

Definition at line 135 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef Array<InterpolationWeightType> itk::CellInterface< TPixelType, TCellTraits >::ShapeFunctionsArrayType
 

Definition at line 163 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef CellTraits::UsingCellsContainer itk::CellInterface< TPixelType, TCellTraits >::UsingCellsContainer
 

Definition at line 137 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
typedef UsingCellsContainer::iterator itk::CellInterface< TPixelType, TCellTraits >::UsingCellsContainerIterator
 

An iterator through the UsingCellsContainer.

Definition at line 143 of file itkCellInterface.h.


Member Enumeration Documentation

template<typename TPixelType, typename TCellTraits>
enum itk::CellInterface::CellGeometry
 

Cell Visitor interfaces

Enumeration values:
VERTEX_CELL 
LINE_CELL 
TRIANGLE_CELL 
QUADRILATERAL_CELL 
POLYGON_CELL 
TETRAHEDRON_CELL 
HEXAHEDRON_CELL 
QUADRATIC_EDGE_CELL 
QUADRATIC_TRIANGLE_CELL 
LAST_ITK_CELL 
MAX_ITK_CELLS 

Definition at line 156 of file itkCellInterface.h.


Constructor & Destructor Documentation

template<typename TPixelType, typename TCellTraits>
itk::CellInterface< TPixelType, TCellTraits >::CellInterface  )  [inline]
 

Definition at line 431 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
virtual itk::CellInterface< TPixelType, TCellTraits >::~CellInterface  )  [inline, virtual]
 

Definition at line 432 of file itkCellInterface.h.


Member Function Documentation

template<typename TPixelType, typename TCellTraits>
virtual void itk::CellInterface< TPixelType, TCellTraits >::Accept unsigned long  cellId,
MultiVisitor
[pure virtual]
 

This must be implemented by all sub-classes of CellInterface

template<typename TPixelType, typename TCellTraits>
virtual void itk::CellInterface< TPixelType, TCellTraits >::AddUsingCell CellIdentifier  cellId  )  [virtual]
 

Register the fact that this cell is a part of the boundary of the cell cellId, by adding cellId to the UsingCellsContainer.

template<typename TPixelType, typename TCellTraits>
virtual bool itk::CellInterface< TPixelType, TCellTraits >::EvaluatePosition CoordRepType ,
PointsContainer ,
CoordRepType ,
CoordRepType  [],
double *  ,
InterpolationWeightType
[inline, virtual]
 

Given the geometric coordinates of a point (coord[PointDimension]), return whether it is inside the cell. Also perform the following calculations, if the corresponding result pointers are not NULL:

  • Find the closest point in or on the cell to the given point (Returns through pointer to array: closestPoint[PointDimension]).

  • Get the cell's parametric coordinates for the given point (Returns through pointer to array: pCoords[CellDimension]).

  • Get the square of the distance between the point and the cell (this is the distance from the point to the closest point, returned through "dist2" pointer).

  • Get the interpolation weights for the cell (Returns through pointer to array: weights[NumberOfPoints]).

Definition at line 322 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
virtual void itk::CellInterface< TPixelType, TCellTraits >::EvaluateShapeFunctions const ParametricCoordArrayType ,
ShapeFunctionsArrayType
const [inline, virtual]
 

Given the parametric coordinates of a point in the cell determine the value of its Shape Functions returned through an itkArray<InterpolationWeightType>).

Definition at line 333 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
virtual bool itk::CellInterface< TPixelType, TCellTraits >::GetBoundaryFeature int  dimension,
CellFeatureIdentifier  ,
CellAutoPointer
[pure virtual]
 

Get the boundary feature corresponding to the given dimension and Id.

template<typename TPixelType, typename TCellTraits>
CoordRepType itk::CellInterface< TPixelType, TCellTraits >::GetBoundingBoxDiagonalLength2 void   )  [inline]
 

Compute the square of the diagonal length of the bounding box.

Definition at line 367 of file itkCellInterface.h.

References NULL.

template<typename TPixelType, typename TCellTraits>
virtual bool itk::CellInterface< TPixelType, TCellTraits >::GetClosestBoundary CoordRepType  [],
bool *  ,
CellAutoPointer
[inline, virtual]
 

Given the parametric coordinates of a point in the cell (pCoords[CellDimension]), get the closest cell boundary feature of topological dimension CellDimension-1. If the "inside" pointer is not NULL, the flag is set to indicate whether the point is inside the cell.

Definition at line 303 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
virtual unsigned int itk::CellInterface< TPixelType, TCellTraits >::GetDimension void   )  const [pure virtual]
 

Get the topological dimension of this cell.

template<typename TPixelType, typename TCellTraits>
virtual unsigned int itk::CellInterface< TPixelType, TCellTraits >::GetInterpolationOrder void   )  const [virtual]
 

Get the interpolation order of the cell. Usually linear.

template<typename TPixelType, typename TCellTraits>
virtual const char* itk::CellInterface< TPixelType, TCellTraits >::GetNameOfClass  )  const [virtual]
 

Standard part of every itk Object.

template<typename TPixelType, typename TCellTraits>
static int itk::CellInterface< TPixelType, TCellTraits >::GetNextUserCellId  )  [static]
 

template<typename TPixelType, typename TCellTraits>
virtual CellFeatureCount itk::CellInterface< TPixelType, TCellTraits >::GetNumberOfBoundaryFeatures int  dimension  )  const [pure virtual]
 

Get the number of boundary features of a given dimension on this cell.

template<typename TPixelType, typename TCellTraits>
virtual unsigned int itk::CellInterface< TPixelType, TCellTraits >::GetNumberOfPoints void   )  const [pure virtual]
 

Get the number of points required to define the cell.

template<typename TPixelType, typename TCellTraits>
virtual unsigned int itk::CellInterface< TPixelType, TCellTraits >::GetNumberOfUsingCells void   )  [virtual]
 

Get the number of cells in the UsingCellsContainer.

template<typename TPixelType, typename TCellTraits>
virtual PointIdConstIterator itk::CellInterface< TPixelType, TCellTraits >::GetPointIds void   )  const [virtual]
 

Get the point id list used by the cell in a form suitable to pass to SetPointIds(first) on another cell. This is equivalent to PointIdsBegin() const.

template<typename TPixelType, typename TCellTraits>
virtual CellGeometry itk::CellInterface< TPixelType, TCellTraits >::GetType void   )  const [pure virtual]
 

Return the type of the cell (one of the CellGeometry enums listed above).

template<typename TPixelType, typename TCellTraits>
virtual bool itk::CellInterface< TPixelType, TCellTraits >::IntersectBoundingBoxWithLine CoordRepType  [PointDimension *2],
CoordRepType  [PointDimension],
CoordRepType  [PointDimension],
CoordRepType  [PointDimension],
CoordRepType
[inline, virtual]
 

Intersect the given bounding box (bounds[PointDimension*2]) with a line given by an origin (origin[PointDimension]) and direction (direction[PointDimension]). Get the following results if the corresponding pointers are not NULL:

  • The intersection point's geometric coordinates (returned through pointer to array: coords[PointDimension]).

  • The line's parametric coordinate of the intersection point (returned through "t" pointer).

Returns whether an intersection exists.

Definition at line 381 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
virtual bool itk::CellInterface< TPixelType, TCellTraits >::IntersectWithLine CoordRepType  [PointDimension],
CoordRepType  [PointDimension],
CoordRepType  ,
CoordRepType  [PointDimension],
CoordRepType ,
CoordRepType  []
[inline, virtual]
 

Intersect the cell with a line given by an origin (origin[PointDimension]) and direction (direction[PointDimension]). The intersection point found will be within the given tolerance of the real intersection. Get the following results if the corresponding pointers are not NULL:

  • The intersection point's geometric coordinates (returned through pointer to array: coords[PointDimension]).

  • The line's parametric coordinate of the intersection point (returned through "t" pointer).

  • The cell's parametric coordinates of the intersection point (returned through pointer to array: pCoords[CellDimension]).

Returns whether an intersection exists within the given tolerance.

Definition at line 352 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
virtual bool itk::CellInterface< TPixelType, TCellTraits >::IsExplicitBoundary void   )  [virtual]
 

Returns true if the cell has been explicitly assigned as a boundary, false otherwise.

template<typename TPixelType, typename TCellTraits>
virtual bool itk::CellInterface< TPixelType, TCellTraits >::IsUsingCell CellIdentifier  cellId  )  [virtual]
 

Test if a cell is in the UsingCellsContainer. A result of true indicates that this cell is part of the boundary of the cell cellId, assuming that boundary information has been recorded.

template<typename TPixelType, typename TCellTraits>
itk::CellInterface< TPixelType, TCellTraits >::itkCellCommonTypedefs CellInterface< TPixelType, TCellTraits >   ) 
 

Standard class typedefs.

template<typename TPixelType, typename TCellTraits>
itk::CellInterface< TPixelType, TCellTraits >::itkStaticConstMacro PointDimension  ,
unsigned  int,
CellTraits::PointDimension 
 

Save the dimension from the template parameters.

template<typename TPixelType, typename TCellTraits>
virtual void itk::CellInterface< TPixelType, TCellTraits >::MakeCopy CellAutoPointer  )  const [pure virtual]
 

Create a new copy of this cell. This is provided so that a copy can be made without knowing the cell type.

template<typename TPixelType, typename TCellTraits>
Compute cell bounding box and store in the user provided array* Array is itk::CellInterface< TPixelType, TCellTraits >::ordered xmin  ,
xmax  ,
ymin  ,
ymax  ,
.... 
[inline]
 

Definition at line 360 of file itkCellInterface.h.

template<typename TPixelType, typename TCellTraits>
virtual PointIdConstIterator itk::CellInterface< TPixelType, TCellTraits >::PointIdsBegin void   )  const [pure virtual]
 

Get a const begin iterator to the list of point identifiers used by the cell.

template<typename TPixelType, typename TCellTraits>
virtual PointIdIterator itk::CellInterface< TPixelType, TCellTraits >::PointIdsBegin void   )  [pure virtual]
 

Get a begin iterator to the list of point identifiers used by the cell.

template<typename TPixelType, typename TCellTraits>
virtual PointIdConstIterator itk::CellInterface< TPixelType, TCellTraits >::PointIdsEnd void   )  const [pure virtual]
 

Get a const end iterator to the list of point identifiers used by the cell.

template<typename TPixelType, typename TCellTraits>
virtual PointIdIterator itk::CellInterface< TPixelType, TCellTraits >::PointIdsEnd void   )  [pure virtual]
 

Get an end iterator to the list of point identifiers used by the cell.

template<typename TPixelType, typename TCellTraits>
virtual void itk::CellInterface< TPixelType, TCellTraits >::RemoveUsingCell CellIdentifier  cellId  )  [virtual]
 

Remove a cell from the UsingCellsContainer.

template<typename TPixelType, typename TCellTraits>
virtual void itk::CellInterface< TPixelType, TCellTraits >::SetPointId int  localId,
PointIdentifier 
[pure virtual]
 

Set the point identifier for a given spot in the point list for the cell.

template<typename TPixelType, typename TCellTraits>
virtual void itk::CellInterface< TPixelType, TCellTraits >::SetPointIds PointIdConstIterator  first,
PointIdConstIterator  last
[pure virtual]
 

Set the point id list used by the cell. It is assumed that the range of iterators [first, last) contains the correct number of points needed to define the cell. The position *last is NOT referenced, so it can safely be one beyond the end of an array or other container.

template<typename TPixelType, typename TCellTraits>
virtual void itk::CellInterface< TPixelType, TCellTraits >::SetPointIds PointIdConstIterator  first  )  [pure virtual]
 

Set the point id list used by the cell. It is assumed that the given iterator can be incremented and safely de-referenced enough times to get all the point ids needed by the cell.

template<typename TPixelType, typename TCellTraits>
virtual UsingCellsContainerIterator itk::CellInterface< TPixelType, TCellTraits >::UsingCellsBegin void   )  [virtual]
 

Get a begin iterator for the UsingCellsContainer.

template<typename TPixelType, typename TCellTraits>
virtual UsingCellsContainerIterator itk::CellInterface< TPixelType, TCellTraits >::UsingCellsEnd void   )  [virtual]
 

Get an end iterator for the UsingCellsContainer.


Member Data Documentation

template<typename TPixelType, typename TCellTraits>
UsingCellsContainer itk::CellInterface< TPixelType, TCellTraits >::m_UsingCells [protected]
 

Store the set of cells using this boundary.

Definition at line 440 of file itkCellInterface.h.


The documentation for this class was generated from the following file:
Generated at Sun Jul 9 19:10:49 2006 for ITK by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2000