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
30 lines
1.4 KiB
#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);
|