00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkDefaultDynamicMeshTraits_h
00018 #define __itkDefaultDynamicMeshTraits_h
00019
00020 #include "itkCellInterface.h"
00021 #include "itkMapContainer.h"
00022 #include "itkPoint.h"
00023 #include <set>
00024
00025 namespace itk
00026 {
00027
00057 template <
00058 typename TPixelType,
00059 unsigned int VPointDimension = 3,
00060 unsigned int VMaxTopologicalDimension = VPointDimension,
00061 typename TCoordRep = float,
00062 typename TInterpolationWeight = float,
00063 typename TCellPixelType = TPixelType
00064 >
00065 class DefaultDynamicMeshTraits
00066 {
00067 public:
00069 typedef DefaultDynamicMeshTraits Self;
00070
00072 typedef TPixelType PixelType;
00073 typedef TCellPixelType CellPixelType;
00074 typedef TCoordRep CoordRepType;
00075 typedef TInterpolationWeight InterpolationWeightType;
00076
00078 itkStaticConstMacro(PointDimension, unsigned int, VPointDimension);
00079 itkStaticConstMacro(MaxTopologicalDimension, unsigned int,
00080 VMaxTopologicalDimension);
00081
00084 typedef unsigned long PointIdentifier;
00085
00088 typedef unsigned long CellIdentifier;
00089
00092 typedef unsigned long BoundaryIdentifier;
00093
00097 typedef unsigned long CellFeatureIdentifier;
00098
00101 typedef Point< CoordRepType, VPointDimension > PointType;
00102
00105 typedef MapContainer< PointIdentifier , PointType > PointsContainer;
00106
00109 typedef std::set< CellIdentifier > UsingCellsContainer;
00110
00113 typedef itkMakeCellTraitsMacro CellTraits;
00114
00117 typedef CellInterface< CellPixelType , CellTraits > CellType;
00118 typedef typename CellType::CellAutoPointer CellAutoPointer;
00119
00122 typedef MapContainer< CellIdentifier , CellType * >
00123 CellsContainer;
00124
00127 typedef std::set< CellIdentifier >
00128 PointCellLinksContainer;
00129
00132 typedef MapContainer< PointIdentifier , PointCellLinksContainer >
00133 CellLinksContainer;
00134
00137 typedef MapContainer< PointIdentifier , PixelType >
00138 PointDataContainer;
00139
00142 typedef MapContainer< CellIdentifier , CellPixelType >
00143 CellDataContainer;
00144
00147 typedef MapContainer< BoundaryIdentifier , CellType * >
00148 BoundariesContainer;
00149
00152 typedef MapContainer< BoundaryIdentifier , CellPixelType >
00153 BoundaryDataContainer;
00154 };
00155
00156 }
00157
00158 #endif