00001 #ifndef CEIGENSMOOTHER_H
00002 #define CEIGENSMOOTHER_H
00003
00004 #include <smoothers/CSmoother.h>
00005 #include <features/CVertexInfoMV.h>
00006
00007
00013 class CEigensmoother : public CSmoother
00014 {
00015 protected :
00016
00018 bool bInvert, bNormalize;
00019
00021 double dFactor;
00022
00024 double dExponent;
00025
00027 int iIterations;
00028
00029 public :
00030
00032 CEigensmoother( double factor = 0.2, bool normalize = true, bool invert = true, int iterations = 1, double exponent = 1.5 );
00033
00035 virtual ~CEigensmoother();
00036
00038 virtual bool smooth( CSmoothingMesh * mesh );
00039
00041 bool smoothVertex( CSmoothingMesh * mesh,
00042 vctl::MCVertex * actual_vertex,
00043 vctl::MCPoint3D & smoothed_point );
00044
00045 };
00046
00047 #endif // CEIGENSMOOTHER_H