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

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
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 ()
CoordRepTypeGetBoundingBox (CoordRepType[PointDimension *2])

Static Public Member Functions

static int GetNextUserCellId ()

Protected Attributes

UsingCellsContainer m_UsingCells

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...

Member Typedef Documentation

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

Definition at line 151 of file itkCellInterface.h.

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

Definition at line 152 of file itkCellInterface.h.

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

Definition at line 154 of file itkCellInterface.h.

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

A useful rename.

Definition at line 157 of file itkCellInterface.h.

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

Definition at line 135 of file itkCellInterface.h.

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

Definition at line 134 of file itkCellInterface.h.

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

Definition at line 153 of file itkCellInterface.h.

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

Save the CellTraits template parameter.

Definition at line 126 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 150 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 129 of file itkCellInterface.h.

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

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

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

Save the PixelType template parameter.

Definition at line 123 of file itkCellInterface.h.

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

Definition at line 133 of file itkCellInterface.h.

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

Definition at line 131 of file itkCellInterface.h.

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

Definition at line 132 of file itkCellInterface.h.

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

Definition at line 137 of file itkCellInterface.h.

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

Definition at line 136 of file itkCellInterface.h.

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

Definition at line 167 of file itkCellInterface.h.

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

Definition at line 138 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 147 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 141 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 160 of file itkCellInterface.h.


Constructor & Destructor Documentation

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

Definition at line 435 of file itkCellInterface.h.

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

Definition at line 436 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 326 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 337 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 367 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 371 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 307 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 385 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 356 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>
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>
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]

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

Definition at line 444 of file itkCellInterface.h.


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

Generated at Thu May 28 13:05:38 2009 for ITK by doxygen 1.5.5 written by Dimitri van Heesch, © 1997-2000