Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkQuadEdgeMeshTraits.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Insight Segmentation & Registration Toolkit
00004   Module:    $RCSfile: itkQuadEdgeMeshTraits.h,v $
00005   Language:  C++
00006   Date:      $Date: 2008-02-07 15:58:06 $
00007   Version:   $Revision: 1.11 $
00008 
00009   Copyright (c) Insight Software Consortium. All rights reserved.
00010   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00011 
00012      This software is distributed WITHOUT ANY WARRANTY; without even
00013      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00014      PURPOSE.  See the above copyright notices for more information.
00015 
00016 =========================================================================*/
00017 
00018 #ifndef __itkQuadEdgeMeshTraits_h
00019 #define __itkQuadEdgeMeshTraits_h
00020 
00021 #include <set>
00022 #include <itkCellInterface.h>
00023 #include <itkMapContainer.h>
00024 #include "itkQuadEdgeMeshPoint.h"
00025 #include "itkGeometricalQuadEdge.h"
00026 #include "itkQuadEdgeCellTraitsInfo.h"
00027 
00028 namespace itk
00029 {
00044 template< typename TPixel, unsigned int VPointDimension,
00045           typename TPData, typename TDData, 
00046           typename TCoordRep=float, typename TInterpolationWeight=float >
00047 class QuadEdgeMeshTraits
00048 {
00049 public:
00051   typedef QuadEdgeMeshTraits                Self;
00052   typedef TPixel                            PixelType;
00053   typedef TPixel                            CellPixelType;
00054   typedef TCoordRep                         CoordRepType;
00055   typedef TInterpolationWeight              InterpolationWeightType;
00056 
00057   itkStaticConstMacro( PointDimension, unsigned int, VPointDimension );
00058   itkStaticConstMacro( MaxTopologicalDimension, unsigned int,
00059                        VPointDimension );
00060 
00061   typedef unsigned long PointIdentifier;
00062   typedef unsigned long CellIdentifier;
00063   typedef unsigned char CellFeatureIdentifier; // made small in purpose
00064 
00065   typedef std::set< CellIdentifier > UsingCellsContainer;
00066   typedef std::set< CellIdentifier > PointCellLinksContainer;
00067 
00069   typedef TPData PrimalDataType;
00070   typedef TDData DualDataType;
00071   typedef GeometricalQuadEdge< PointIdentifier, CellIdentifier,
00072                         PrimalDataType, DualDataType > QEPrimal;
00073   //typedef QEPrimal QEType;
00074   typedef typename QEPrimal::DualType             QEDual;
00077   typedef typename QEPrimal::OriginRefType     VertexRefType;
00078   typedef typename QEPrimal::DualOriginRefType FaceRefType;
00079 
00082   typedef Point< CoordRepType, VPointDimension >       PointHashType;
00083 
00085   typedef QuadEdgeMeshPoint< 
00086     CoordRepType, VPointDimension, QEPrimal >           PointType;
00087   typedef MapContainer< PointIdentifier, PointType >    PointsContainer;
00088 
00090   typedef QuadEdgeMeshCellTraitsInfo< 
00091     VPointDimension, CoordRepType,
00092     InterpolationWeightType, PointIdentifier,
00093     CellIdentifier,          CellFeatureIdentifier,
00094     PointType,               PointsContainer,
00095     UsingCellsContainer,     QEPrimal >                 CellTraits;
00096   typedef CellInterface< CellPixelType, CellTraits >    CellType;
00097   typedef typename CellType::CellAutoPointer            CellAutoPointer;
00098 
00100   typedef MapContainer< PointIdentifier,
00101                         PointCellLinksContainer >       CellLinksContainer;
00102   typedef MapContainer< CellIdentifier, CellType* >     CellsContainer;
00103   typedef MapContainer< PointIdentifier, PixelType >    PointDataContainer;
00104   typedef MapContainer< CellIdentifier, CellPixelType > CellDataContainer;
00105 
00107   typedef typename PointType::VectorType VectorType;
00108 };
00109 
00110 } 
00111 
00112 #endif 
00113 

Generated at Tue Sep 15 04:29:43 2009 for ITK by doxygen 1.5.8 written by Dimitri van Heesch, © 1997-2000