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

itkQuadEdgeMeshPoint.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Insight Segmentation & Registration Toolkit
00004   Module:    $RCSfile: itkQuadEdgeMeshPoint.h,v $
00005   Language:  C++
00006   Date:      $Date: 2008-07-19 14:49:01 $
00007   Version:   $Revision: 1.9 $
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 #ifndef __itkQuadEdgeMeshPoint_h
00018 #define __itkQuadEdgeMeshPoint_h
00019 
00020 #include "itkPoint.h"
00021 #include "itkConceptChecking.h"
00022 
00023 namespace itk
00024 {
00031 template< class TCoordRep, unsigned int VPointDimension, typename TQuadEdge >
00032 class QuadEdgeMeshPoint : public Point< TCoordRep, VPointDimension >
00033 {
00034 public:
00035 
00037   typedef QuadEdgeMeshPoint                         Self;
00038   typedef Point< TCoordRep, VPointDimension >       Superclass;
00039 
00041   itkStaticConstMacro( PointDimension, unsigned int,
00042                        VPointDimension );
00043 
00044   typedef typename Superclass::ValueType     ValueType;
00045   typedef typename Superclass::CoordRepType  CoordRepType;
00046   typedef typename Superclass::RealType      RealType;
00047   typedef typename Superclass::BaseArray     BaseArray;
00048   typedef typename Superclass::Iterator      Iterator;
00049   typedef typename Superclass::ConstIterator ConstIterator;
00050   typedef typename Superclass::VectorType    VectorType;
00051 
00052   typedef ValueType ValueArrayType[ itkGetStaticConstMacro( PointDimension ) ];
00053 
00054 #ifdef ITK_USE_CONCEPT_CHECKING
00055 
00056   itkConceptMacro(DimensionShouldBe3,
00057                   (Concept::SameDimension<itkGetStaticConstMacro(PointDimension),3>));
00058 
00060 #endif
00061 
00062 public:
00063   QuadEdgeMeshPoint();
00064   virtual ~QuadEdgeMeshPoint() {};
00065   QuadEdgeMeshPoint( const Self & r );
00066   QuadEdgeMeshPoint( const Superclass & r );
00067   QuadEdgeMeshPoint( const ValueType r[VPointDimension] ):Superclass( r )
00068     {
00069     this->Initialize();
00070     } 
00071   Self & operator=( const Self & r );
00072   Self & operator=( const Superclass & r );
00073   Self & operator=( const ValueType r[VPointDimension] );
00074   
00075  
00077   void SetEdge( TQuadEdge * inputEdge );
00078 
00080   TQuadEdge * GetEdge();
00081   TQuadEdge * GetEdge() const;
00083 
00085   bool IsInternal() const;
00086 
00088   int GetValence() const;
00089 
00090 protected:
00091   void Initialize();
00092 
00093 protected:
00094   TQuadEdge * m_Edge; 
00095 };
00096 
00097 } // end namespace itk
00098 
00099 #ifndef ITK_MANUAL_INSTANTIATION
00100 #include "itkQuadEdgeMeshPoint.txx"
00101 #endif
00102 
00103 #endif 
00104 

Generated at Wed Nov 5 23:44:17 2008 for ITK by doxygen 1.5.1 written by Dimitri van Heesch, © 1997-2000