00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkQuadEdgeMeshEulerOperatorJoinVertexFunction_h
00018 #define __itkQuadEdgeMeshEulerOperatorJoinVertexFunction_h
00019
00020 #include "itkQuadEdgeMeshFunctionBase.h"
00021
00022 namespace itk
00023 {
00024
00025
00052 template < class TMesh, class TQEType >
00053 class ITK_EXPORT QuadEdgeMeshEulerOperatorJoinVertexFunction :
00054 public QuadEdgeMeshFunctionBase< TMesh, TQEType* >
00055 {
00056 public:
00057
00059 typedef QuadEdgeMeshEulerOperatorJoinVertexFunction Self;
00060 typedef SmartPointer< Self > Pointer;
00061 typedef SmartPointer< const Self > ConstPointer;
00062 typedef QuadEdgeMeshFunctionBase< TMesh, TQEType* > Superclass;
00063
00064 itkNewMacro( Self );
00066 itkTypeMacro( QuadEdgeMeshEulerOperatorJoinVertexFunction, QuadEdgeMeshFunctionBase );
00067
00069 typedef TQEType QEType;
00070
00071 typedef typename Superclass::MeshType MeshType;
00072 typedef typename Superclass::OutputType OutputType;
00073
00074 typedef typename MeshType::PointIdentifier PointIdentifier;
00075 typedef typename MeshType::FaceRefType FaceRefType;
00076
00078 virtual OutputType Evaluate( QEType* h );
00079
00080 PointIdentifier GetOldPointID( )
00081 {
00082 return( this->m_OldPointID );
00083 }
00084
00085 protected:
00086 QuadEdgeMeshEulerOperatorJoinVertexFunction()
00087 {
00088 m_OldPointID = (PointIdentifier)0;
00089 }
00090 ~QuadEdgeMeshEulerOperatorJoinVertexFunction(){};
00091
00092 private:
00093 QuadEdgeMeshEulerOperatorJoinVertexFunction(const Self& );
00094 void operator=(const Self& );
00095
00096 PointIdentifier m_OldPointID;
00097
00098 bool CommonVertexNeighboor( QEType* e );
00099
00100 };
00101
00102 }
00103
00104 #include "itkQuadEdgeMeshEulerOperatorJoinVertexFunction.txx"
00105
00106 #endif
00107
00108
00109