ITK  4.0.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Attributes
itk::CellInterface< TPixelType, TCellTraits > Class Template Reference

An abstract interface for cells. More...

#include <itkCellInterface.h>

List of all members.

Classes

class  MultiVisitor
 A visitor that can visit different cell types in a mesh. CellInterfaceVisitor instances can be registered for each type of cell that needs to be visited. More...

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
< InterpolationWeightType
ShapeFunctionsArrayType
typedef
CellTraits::UsingCellsContainer 
UsingCellsContainer
typedef
UsingCellsContainer::iterator 
UsingCellsContainerIterator
typedef PointType::VectorType VectorType

Public Member Functions

virtual void Accept (CellIdentifier 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)
virtual void MakeCopy (CellAutoPointer &) const =0
virtual PointIdIterator PointIdsBegin (void)=0
virtual PointIdConstIterator PointIdsBegin (void) const =0
virtual PointIdIterator PointIdsEnd (void)=0
virtual PointIdConstIterator PointIdsEnd (void) const =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 ()
CoordRepTypeGetBoundingBox (CoordRepType[PointDimension *2])

Static Public Attributes

static const unsigned int PointDimension = CellTraits::PointDimension
typedef itk::Array
< PointIdentifier
PointIdentifierContainerType
PointIdentifierContainerType GetPointIdsContainer () const
void SetPointIdsContainer (const PointIdentifierContainerType &)
UsingCellsContainer m_UsingCells
 CellInterface (const Self &)
void operator= (const Self &)

Detailed Description

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

An abstract interface for cells.

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

Template Parameters:
TPixelTypeThe type stored with an entity (cell, point, or boundary).
TCellTraitsType information for cell.

Definition at line 104 of file itkCellInterface.h.


Member Typedef Documentation

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

Definition at line 140 of file itkCellInterface.h.

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

Definition at line 141 of file itkCellInterface.h.

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

Definition at line 143 of file itkCellInterface.h.

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

A useful rename.

Definition at line 146 of file itkCellInterface.h.

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

Definition at line 124 of file itkCellInterface.h.

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

Definition at line 123 of file itkCellInterface.h.

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

Definition at line 142 of file itkCellInterface.h.

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

Save the CellTraits template parameter.

Definition at line 115 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 139 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 118 of file itkCellInterface.h.

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

Definition at line 119 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 155 of file itkCellInterface.h.

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

Save the PixelType template parameter.

Definition at line 112 of file itkCellInterface.h.

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

Definition at line 122 of file itkCellInterface.h.

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

Definition at line 120 of file itkCellInterface.h.

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

Get/Set the point id list used by the cell

Definition at line 297 of file itkCellInterface.h.

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

Definition at line 121 of file itkCellInterface.h.

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

Definition at line 126 of file itkCellInterface.h.

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

Definition at line 125 of file itkCellInterface.h.

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

Definition at line 156 of file itkCellInterface.h.

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

Definition at line 127 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 136 of file itkCellInterface.h.

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

NOTE: it should normally be defined in the traits.

Definition at line 130 of file itkCellInterface.h.


Member Enumeration Documentation

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

Cell Visitor interfaces

Enumerator:
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 149 of file itkCellInterface.h.


Constructor & Destructor Documentation

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

Definition at line 436 of file itkCellInterface.h.

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

Definition at line 437 of file itkCellInterface.h.

template<typename TPixelType , typename TCellTraits >
itk::CellInterface< TPixelType, TCellTraits >::CellInterface ( const Self &  ) [private]

Cell internal utility routines. Get the geometric position of a point. Store the set of cells using this boundary.


Member Function Documentation

template<typename TPixelType , typename TCellTraits >
virtual void itk::CellInterface< TPixelType, TCellTraits >::Accept ( CellIdentifier  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 325 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 336 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 >::GetBoundingBox ( CoordRepType  [PointDimension *2]) [inline]

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: "CoordRep* bounds = cell->GetBoundingBox(new CoordRep[6]);".

Definition at line 366 of file itkCellInterface.h.

References NULL.

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 370 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 306 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 >
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 >
PointIdentifierContainerType itk::CellInterface< TPixelType, TCellTraits >::GetPointIdsContainer ( ) const

Get/Set the point id list used by the cell

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 384 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 355 of file itkCellInterface.h.

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

Interface to the boundary form of the cell to set/get UsingCells. See the boundary wrapper source for more information. 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 >
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 >
void itk::CellInterface< TPixelType, TCellTraits >::operator= ( const Self &  ) [private]

Cell internal utility routines. Get the geometric position of a point. Store the set of cells using this boundary.

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 >::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 >::PointIdsEnd ( void  ) [pure virtual]

Get an end 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 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 >
void itk::CellInterface< TPixelType, TCellTraits >::SetPointIdsContainer ( const PointIdentifierContainerType )

Get/Set the point id list used 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]

Cell internal utility routines. Get the geometric position of a point. Store the set of cells using this boundary.

Definition at line 446 of file itkCellInterface.h.

template<typename TPixelType , typename TCellTraits >
const unsigned int itk::CellInterface< TPixelType, TCellTraits >::PointDimension = CellTraits::PointDimension [static]

Save the dimension from the template parameters.

Definition at line 133 of file itkCellInterface.h.


The documentation for this class was generated from the following file: