#pragma once #include #include /* global singleton */ extern setting_descriptor g_settings; class ImplicitSurfaceIntegrator : public ImplicitSurfaceNetworkProcessor { public: // ImplicitSurfaceIntegrator(const tetrahedron_mesh_t& background_mesh, // const Eigen::Ref& sdf_scalar_field) // : background_mesh(background_mesh) // { // this->sdf_scalar_field(sdf_scalar_field); // } void update_background_mesh(const Eigen::Ref& aabb_min, const Eigen::Ref& aabb_max) noexcept; void update_scene(const char* file) noexcept; void clear() noexcept; void compute(labelled_timers_manager& timers_manager) noexcept; private: stl_vector_mp m_per_face_surf_int{}; stl_vector_mp m_per_face_vol_int{}; }; /* global singleton */ extern ImplicitSurfaceIntegrator g_integrator;