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.

30 lines
1.4 KiB

3 days ago
#pragma once
#include <blobtree.hpp>
#include <fwd_types.hpp>
struct parametric_subchain_property_t {
stl_vector_mp<Eigen::Vector2d> vertices{};
Eigen::AlignedBox2d aabb{};
};
struct parametric_chain_property_t {
stl_vector_mp<parametric_subchain_property_t> subchains;
bool double_sided{};
bool patch_on_pos_side{};
};
using pcurve_relation_graph_t =
relation_graph<uint32_t, empty_properties_t<3>, edge_properties_t<void, void, parametric_chain_property_t>>;
void map_chain_to_parametric_plane(const baked_blobtree_t& tree,
const stl_vector_mp<Eigen::Vector3d>& vertices,
const icurve_relation_graph_t& icurve_relation_graph,
pcurve_relation_graph_t& pcurve_relation_graph);
void identify_parametric_chain_valid_side(const baked_blobtree_t& tree,
const stl_vector_mp<Eigen::Vector3d>& vertices,
const icurve_relation_graph_t& icurve_relation_graph,
pcurve_relation_graph_t& pcurve_relation_graph);
void simplify_parametric_chain(pcurve_relation_graph_t& pcurve_relation_graph);