Branch data Line data Source code
1 : : #ifndef Mesquite_SmartLaplacianSmoother_hpp
2 : : #define Mesquite_SmartLaplacianSmoother_hpp
3 : :
4 : : #include "Mesquite.hpp"
5 : : #include "RelaxationSmoother.hpp"
6 : :
7 : : #include <vector>
8 : :
9 : : namespace MBMesquite
10 : : {
11 : : /*\brief Do laplacian smooth, but don't invert elements.
12 : : */
13 : : class SmartLaplacianSmoother : public RelaxationSmoother
14 : : {
15 : : public:
16 : : /**
17 : : *\param OF ObjectiveFunction used by some termination criteria
18 : : */
19 : : MESQUITE_EXPORT
20 [ + - ]: 1 : SmartLaplacianSmoother( ObjectiveFunction* OF = NULL ) : RelaxationSmoother( OF ) {}
21 : :
22 : : MESQUITE_EXPORT
23 : : ~SmartLaplacianSmoother();
24 : :
25 : : MESQUITE_EXPORT
26 : : virtual std::string get_name() const;
27 : :
28 : : MESQUITE_EXPORT
29 : : static size_t num_inverted( PatchData& pd, MsqError& err );
30 : :
31 : : protected:
32 : : MESQUITE_EXPORT
33 : : virtual void optimize_vertex_positions( PatchData& pd, MsqError& err );
34 : :
35 : : private:
36 : : std::vector< size_t > adjVtxList;
37 : : };
38 : :
39 : : } // namespace MBMesquite
40 : :
41 : : #endif
|