ITK  4.3.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | Private Member Functions | List of all members
itk::CellInterface< TPixelType, TCellTraits > Class Template Referenceabstract

#include <itkCellInterface.h>

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.

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)=0
 
virtual void SetPointIds (PointIdConstIterator first, PointIdConstIterator last)=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
 

Protected Attributes

UsingCellsContainer m_UsingCells
 

Private Member Functions

 CellInterface (const Self &)
 
void operator= (const Self &)
 
typedef itk::Array
< PointIdentifier
PointIdentifierContainerType
 
PointIdentifierContainerType GetPointIdsContainer () const
 
void SetPointIdsContainer (const PointIdentifierContainerType &)
 

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 298 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 438 of file itkCellInterface.h.

template<typename TPixelType , typename TCellTraits >
virtual itk::CellInterface< TPixelType, TCellTraits >::~CellInterface ( )
inlinevirtual

Definition at line 439 of file itkCellInterface.h.

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

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  
)
inlinevirtual

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
inlinevirtual

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  
)
inlinevirtual

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 >
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  
)
inlinevirtual

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  [] 
)
inlinevirtual

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 >
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
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)
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 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 >
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 447 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: