00001 #ifndef CHCSMOOTHER_H
00002 #define CHCSMOOTHER_H
00003
00004 #include <smoothers/CSmoother.h>
00005
00006
00011 class CHCSmoother : public CSmoother
00012 {
00013 protected :
00014
00016 double dFactor1;
00017
00019 double dFactor2;
00020
00022 int iIterations;
00023
00025 int iLayers;
00026
00027 public :
00028
00030 CHCSmoother( double factor1, double factor2, int iterations, int layers = 1 );
00031
00033 virtual ~CHCSmoother() {}
00034
00036 virtual bool smooth( CSmoothingMesh * mesh );
00037
00039 bool smoothVertexStep1( vctl::MCVertex * actual_vertex,
00040 vctl::MCPoint3D & smoothed_point,
00041 vctl::MCPoint3D & start_point,
00042 const double & smooth_factor );
00043
00045 bool smoothVertexStep2( vctl::MCVertex * actual_vertex,
00046 vctl::MCPoint3D & smoothed_point,
00047 vctl::MCPoint3D & start_point,
00048 const double & smooth_factor );
00049 };
00050
00051
00052 #endif // CHCSMOOTHER_H