1 #ifndef __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__H__
2 #define __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__H__
4 #include <cpm/Algorithms/QuadEdge/EdgeDecimationFilter.h>
14 template< typename I, typename O, typename C >
15 class SquaredEdgeLengthDecimationFilter
16 : public EdgeDecimationFilter< I, O, C >
19 typedef SquaredEdgeLengthDecimationFilter Self;
20 typedef EdgeDecimationFilter< I, O, C > Superclass;
21 typedef itk::SmartPointer< Self > Pointer;
22 typedef itk::SmartPointer< const Self > ConstPointer;
25 typedef O TOutputMesh;
28 typedef typename Superclass::TOutPoint TOutPoint;
29 typedef typename Superclass::TOutPrimalEdge TOutPrimalEdge;
30 typedef typename Superclass::TScalar TScalar;
35 SquaredEdgeLengthDecimationFilter, EdgeDecimationFilter
39 SquaredEdgeLengthDecimationFilter( );
40 virtual ~SquaredEdgeLengthDecimationFilter( );
42 // keep the start of this documentation text on very first comment line,
43 // it prevents a Doxygen bug
44 /** Compute the measure value for iEdge.
47 * \return measure value, here the squared edge length
49 inline TScalar MeasureEdge(TOutPrimalEdge *iEdge);
51 // keep the start of this documentation text on very first comment line,
52 // it prevents a Doxygen bug
53 /** Calculate the position of the remaining vertex from collapsing iEdge.
56 * \return the optimal point location
58 TOutPoint Relocate(TOutPrimalEdge *iEdge);
61 // Purposely not implemented
62 SquaredEdgeLengthDecimationFilter( const Self& );
63 void operator=( const Self& );
72 #include <cpm/Algorithms/QuadEdge/SquaredEdgeLengthDecimationFilter.hxx>
74 #endif // __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__H__