17 #ifndef __itkCellInterface_h
18 #define __itkCellInterface_h
31 #define itkCellVisitMacro(TopologyId) \
32 static int GetTopologyId() {return TopologyId;}\
33 virtual void Accept(unsigned long cellid, typename CellInterface<PixelType,\
34 CellTraits>::MultiVisitor* mv)\
36 typename CellInterfaceVisitor<PixelType, CellTraits>::Pointer v = \
37 mv->GetVisitor(TopologyId);\
40 v->VisitFromCell(cellid, this);\
49 #define itkCellCommonTypedefs( celltype ) \
50 typedef celltype Self; \
51 typedef AutoPointer<const Self> ConstSelfAutoPointer; \
52 typedef AutoPointer<Self> SelfAutoPointer; \
53 typedef Self * RawPointer; \
54 typedef const Self * ConstRawPointer
61 #define itkCellInheritedTypedefs( superclassArg ) \
62 typedef superclassArg Superclass; \
63 typedef typename Superclass::PixelType PixelType; \
64 typedef typename Superclass::CellType CellType; \
65 typedef typename Superclass::CellAutoPointer CellAutoPointer; \
66 typedef typename Superclass::CellConstAutoPointer CellConstAutoPointer; \
67 typedef typename Superclass::CellRawPointer CellRawPointer; \
68 typedef typename Superclass::CellConstRawPointer CellConstRawPointer; \
69 typedef typename Superclass::CellTraits CellTraits; \
70 typedef typename Superclass::CoordRepType CoordRepType; \
71 typedef typename Superclass::InterpolationWeightType \
72 InterpolationWeightType; \
73 typedef typename Superclass::PointIdentifier PointIdentifier; \
74 typedef typename Superclass::PointIdIterator PointIdIterator; \
75 typedef typename Superclass::PointIdConstIterator PointIdConstIterator; \
76 typedef typename Superclass::CellIdentifier CellIdentifier; \
77 typedef typename Superclass::CellFeatureIdentifier CellFeatureIdentifier; \
78 typedef typename Superclass::CellFeatureIdentifier CellFeatureCount; \
79 typedef typename Superclass::PointType PointType; \
80 typedef typename Superclass::VectorType VectorType; \
81 typedef typename Superclass::PointsContainer PointsContainer; \
82 typedef typename Superclass::UsingCellsContainer UsingCellsContainer; \
83 typedef typename Superclass::CellGeometry CellGeometry; \
84 typedef typename Superclass::ParametricCoordArrayType \
85 ParametricCoordArrayType; \
86 typedef typename Superclass::ShapeFunctionsArrayType \
87 ShapeFunctionsArrayType; \
88 itkStaticConstMacro(PointDimension, unsigned int, Superclass::PointDimension)
204 typename std::map<int, ITK_TYPENAME VisitorType::Pointer>::iterator
208 return (*pos).second;
414 #if !defined(CABLE_CONFIGURATION)
464 template <
int VPointDimension,
typename TCoordRep,
465 typename TInterpolationWeight,
typename TPointIdentifier,
466 typename TCellIdentifier,
typename TCellFeatureIdentifier,
467 typename TPoint,
typename TPointsContainer,
468 typename TUsingCellsContainer>
485 #define itkMakeCellTraitsMacro \
486 CellTraitsInfo<itkGetStaticConstMacro(PointDimension), CoordRepType, \
487 InterpolationWeightType, \
488 PointIdentifier, CellIdentifier, CellFeatureIdentifier, \
489 PointType, PointsContainer, UsingCellsContainer>
493 #if !defined(CABLE_CONFIGURATION)
494 # ifndef ITK_MANUAL_INSTANTIATION