00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkQuadEdgeMeshEulerOperatorSplitVertexFunction_h
00018 #define __itkQuadEdgeMeshEulerOperatorSplitVertexFunction_h
00019
00020 #include "itkQuadEdgeMeshFunctionBase.h"
00021
00022 namespace itk
00023 {
00034 template < class TMesh, class TQEType >
00035 class ITK_EXPORT QuadEdgeMeshEulerOperatorSplitVertexFunction :
00036 public QuadEdgeMeshFunctionBase< TMesh, TQEType* >
00037 {
00038 public:
00039
00041 typedef QuadEdgeMeshEulerOperatorSplitVertexFunction Self;
00042 typedef QuadEdgeMeshFunctionBase< TMesh, TQEType* > Superclass;
00043 typedef SmartPointer< Self > Pointer;
00044 typedef SmartPointer< const Self > ConstPointer;
00045
00046 itkNewMacro( Self );
00048 itkTypeMacro( QuadEdgeMeshEulerOperatorSplitVertexFunction, QuadEdgeMeshFunctionBase );
00049
00051 typedef TQEType QEType;
00052
00053 typedef typename Superclass::MeshType MeshType;
00054 typedef typename Superclass::OutputType OutputType;
00055 typedef typename MeshType::VertexRefType VertexRefType;
00056 typedef typename MeshType::EdgeCellType EdgeCellType;
00057 typedef typename MeshType::PointIdentifier PointIdentifier;
00058
00060 virtual OutputType Evaluate( QEType* e, QEType* f );
00061 PointIdentifier GetNewPointID( )
00062 {
00063 return( this->m_NewPoint );
00064 }
00066
00067 protected:
00068 QuadEdgeMeshEulerOperatorSplitVertexFunction()
00069 {
00070 m_NewPoint = (PointIdentifier)0;
00071 }
00072 ~QuadEdgeMeshEulerOperatorSplitVertexFunction(){};
00073
00074 private:
00075 QuadEdgeMeshEulerOperatorSplitVertexFunction(const Self& );
00076 void operator=(const Self& );
00077
00078 PointIdentifier m_NewPoint;
00079
00080 };
00081
00082 }
00083
00084 #include "itkQuadEdgeMeshEulerOperatorSplitVertexFunction.txx"
00085
00086 #endif
00087
00088
00089