18 #ifndef __itkCellInterface_h
19 #define __itkCellInterface_h
30 #define itkCellVisitMacro(TopologyId) \
31 static int GetTopologyId() \
35 virtual void Accept(CellIdentifier cellid, typename CellInterface< PixelType, \
36 CellTraits >::MultiVisitor * mv) \
38 typename CellInterfaceVisitor< PixelType, CellTraits >::Pointer v = \
39 mv->GetVisitor(TopologyId); \
42 v->VisitFromCell(cellid, this); \
48 #define itkCellCommonTypedefs(celltype) \
49 typedef celltype Self; \
50 typedef AutoPointer< const Self > ConstSelfAutoPointer; \
51 typedef AutoPointer< Self > SelfAutoPointer; \
52 typedef Self * RawPointer; \
53 typedef const Self *ConstRawPointer
57 #define itkCellInheritedTypedefs(superclassArg) \
58 typedef superclassArg Superclass; \
59 typedef typename Superclass::PixelType PixelType; \
60 typedef typename Superclass::CellType CellType; \
61 typedef typename Superclass::CellAutoPointer CellAutoPointer; \
62 typedef typename Superclass::CellConstAutoPointer CellConstAutoPointer; \
63 typedef typename Superclass::CellRawPointer CellRawPointer; \
64 typedef typename Superclass::CellConstRawPointer CellConstRawPointer; \
65 typedef typename Superclass::CellTraits CellTraits; \
66 typedef typename Superclass::CoordRepType CoordRepType; \
67 typedef typename Superclass::InterpolationWeightType \
68 InterpolationWeightType; \
69 typedef typename Superclass::PointIdentifier PointIdentifier; \
70 typedef typename Superclass::PointIdIterator PointIdIterator; \
71 typedef typename Superclass::PointIdConstIterator PointIdConstIterator; \
72 typedef typename Superclass::CellIdentifier CellIdentifier; \
73 typedef typename Superclass::CellFeatureIdentifier CellFeatureIdentifier; \
74 typedef typename Superclass::CellFeatureIdentifier CellFeatureCount; \
75 typedef typename Superclass::PointType PointType; \
76 typedef typename Superclass::VectorType VectorType; \
77 typedef typename Superclass::PointsContainer PointsContainer; \
78 typedef typename Superclass::UsingCellsContainer UsingCellsContainer; \
79 typedef typename Superclass::CellGeometry CellGeometry; \
80 typedef typename Superclass::ParametricCoordArrayType \
81 ParametricCoordArrayType; \
82 typedef typename Superclass::ShapeFunctionsArrayType \
83 ShapeFunctionsArrayType; \
84 itkStaticConstMacro(PointDimension, unsigned int, Superclass::PointDimension)
189 typedef typename std::map< int, VisitorPointer >::value_type
200 typename std::map< int, typename VisitorType::Pointer >::iterator
204 return ( *pos ).second;
420 #if !defined( CABLE_CONFIGURATION )
471 template<
int VPointDimension,
typename TCoordRep,
472 typename TInterpolationWeight,
typename TPointIdentifier,
473 typename TCellIdentifier,
typename TCellFeatureIdentifier,
474 typename TPoint,
typename TPointsContainer,
475 typename TUsingCellsContainer >
493 #define itkMakeCellTraitsMacro \
494 CellTraitsInfo < itkGetStaticConstMacro(PointDimension), CoordRepType, \
495 InterpolationWeightType, \
496 PointIdentifier, CellIdentifier, CellFeatureIdentifier, \
497 PointType, PointsContainer, UsingCellsContainer >
500 #if !defined( CABLE_CONFIGURATION )
501 #ifndef ITK_MANUAL_INSTANTIATION
502 #include "itkCellInterface.hxx"