#ifndef MESH_RELAXER_HPP #define MESH_RELAXER_HPP class IMesh; template <typename ConnectivityType> class Mesh; #include <memory> class MeshRelaxer { private: template <typename ConnectivityType> std::shared_ptr<const Mesh<ConnectivityType>> _relax(const Mesh<ConnectivityType>& source_mesh, const Mesh<ConnectivityType>& destination_mesh, const double& theta) const; public: std::shared_ptr<const IMesh> relax(const std::shared_ptr<const IMesh>& p_source_mesh, const std::shared_ptr<const IMesh>& p_destination_mesh, const double& theta) const; MeshRelaxer() = default; ~MeshRelaxer() = default; }; #endif // MESH_RELAXER_HPP