#ifndef __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__HXX__ #define __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__HXX__ // ------------------------------------------------------------------------- template< typename I, typename O, typename C > cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: SquaredEdgeLengthDecimationFilter( ) : Superclass( ) { } // ------------------------------------------------------------------------- template< typename I, typename O, typename C > cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: ~SquaredEdgeLengthDecimationFilter( ) { } // ------------------------------------------------------------------------- template< typename I, typename O, typename C > typename cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: TScalar cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: MeasureEdge(TOutPrimalEdge *iEdge) { typename O::PointIdentifier id_org = iEdge->GetOrigin(); typename O::PointIdentifier id_dest = iEdge->GetDestination(); typename O::PointType org = this->GetOutput( )->GetPoint(id_org); typename O::PointType dest = this->GetOutput( )->GetPoint(id_dest); return(static_cast< TScalar >( org.SquaredEuclideanDistanceTo(dest) )); } // ------------------------------------------------------------------------- template< typename I, typename O, typename C > typename cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: TOutPoint cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: Relocate(TOutPrimalEdge *iEdge) { typename O::Pointer output = this->GetOutput(); typename O::PointIdentifier id_org = iEdge->GetOrigin(); typename O::PointIdentifier id_dest = iEdge->GetDestination(); typename O::PointType oPt; oPt.SetToMidPoint( output->GetPoint(id_org), output->GetPoint(id_dest) ); return oPt; } #endif // __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__HXX__ // eof - $RCSfile$