MOAB: Mesh Oriented datABase  (version 5.2.1)
SmartLaplacianSmoother.hpp
Go to the documentation of this file.
00001 #ifndef Mesquite_SmartLaplacianSmoother_hpp
00002 #define Mesquite_SmartLaplacianSmoother_hpp
00003 
00004 #include "Mesquite.hpp"
00005 #include "RelaxationSmoother.hpp"
00006 
00007 #include <vector>
00008 
00009 namespace MBMesquite
00010 {
00011 /*\brief Do laplacian smooth, but don't invert elements.
00012  */
00013 class SmartLaplacianSmoother : public RelaxationSmoother
00014 {
00015   public:
00016     /**
00017      *\param OF ObjectiveFunction used by some termination criteria
00018      */
00019     MESQUITE_EXPORT
00020     SmartLaplacianSmoother( ObjectiveFunction* OF = NULL ) : RelaxationSmoother( OF ) {}
00021 
00022     MESQUITE_EXPORT
00023     ~SmartLaplacianSmoother();
00024 
00025     MESQUITE_EXPORT
00026     virtual std::string get_name() const;
00027 
00028     MESQUITE_EXPORT
00029     static size_t num_inverted( PatchData& pd, MsqError& err );
00030 
00031   protected:
00032     MESQUITE_EXPORT
00033     virtual void optimize_vertex_positions( PatchData& pd, MsqError& err );
00034 
00035   private:
00036     std::vector< size_t > adjVtxList;
00037 };
00038 
00039 }  // namespace MBMesquite
00040 
00041 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines