You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
|
2 days ago
|
#pragma once
|
||
|
|
|
||
|
|
#include <timer/scoped_timer.hpp>
|
||
|
|
|
||
|
|
#include <network_process.hpp>
|
||
|
|
//#include <integrator.hpp>
|
||
|
|
|
||
|
|
EXTERN_C class implicit_network_solver
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
implicit_network_solver(const baked_blobtree_t* tree, s_settings settings) noexcept : m_blobtree(tree), m_settings(settings)
|
||
|
|
{
|
||
|
|
if (m_settings.scene_aabb_margin <= 0) { m_settings.scene_aabb_margin = 1e-5; }
|
||
|
|
if (m_settings.resolution <= 0) { m_settings.resolution = 1; }
|
||
|
|
if (m_settings.integrand_density <= 0) { m_settings.integrand_density = 1; }
|
||
|
|
}
|
||
|
|
|
||
|
|
void generate_polymesh();
|
||
|
|
//integrator integrate_surface();
|
||
|
|
|
||
|
|
void clear()
|
||
|
|
{
|
||
|
|
m_output_vertices = {};
|
||
|
|
m_output_polygon_faces = {};
|
||
|
|
m_output_vertex_counts_of_face = {};
|
||
|
|
m_chain_graph = {};
|
||
|
|
}
|
||
|
|
|
||
|
|
labelled_timers_manager m_timers{};
|
||
|
|
|
||
|
|
stl_vector_mp<Eigen::Vector3d> m_output_vertices{};
|
||
|
|
stl_vector_mp<uint32_t> m_output_polygon_faces{};
|
||
|
|
stl_vector_mp<uint32_t> m_output_vertex_counts_of_face{};
|
||
|
|
|
||
|
|
protected:
|
||
|
|
const baked_blobtree_t* m_blobtree{nullptr};
|
||
|
|
s_settings m_settings{};
|
||
|
|
|
||
|
|
icurve_relation_graph_t m_chain_graph{};
|
||
|
|
};
|