Temporary repository used to save branch code
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.
 
 
 
 
 
 

47 lines
2.5 KiB

#pragma once
#include <blobtree.hpp>
#include <fwd_types.hpp>
#include <container/wrapper/relation_graph.hpp>
#include "settings.h"
// struct parametric_chain_t {
// stl_vector_mp<Eigen::Vector2d> vertices{};
// // the other subface index (except the subface of the parametric plane) of the chain
// uint32_t other_subface_index{};
// // neighboring patch group (at most 2) indices of the chain
// std::array<uint32_t, 2> group_patch_indices{};
// };
// struct parametric_plane_t {
// stl_vector_mp<parametric_chain_t> chains{};
// // vertices at the start of the cycle (i.e. always align at U = 0 by now)
// stl_vector_mp<double> vertices_at_cycle_start{};
// // verices at the end of the cycle (e.g. for cycle = 2\pi, these points align at U = 2\pi)
// stl_vector_mp<double> vertices_at_cycle_end{};
// };
// struct parametric_plane_t {
// // /// plane associated properties
// // Eigen::AlignedBox2d uv_bounds{};
// /// chain associated properties
// stl_vector_mp<stl_vector_mp<Eigen::Vector2d>> chain_vertices{};
// // // iff start/end vertex, then this is signular or not; else this is polar or not
// // stl_vector_mp<dynamic_bitset_mp<>> vertex_special_flags{};
// // // format: total length is N - 1, and i identifies whether edge [i, i+1) is near parallel or not
// // stl_vector_mp<dynamic_bitset_mp<>> edge_near_parallel_flags{};
// // the other subface index (except the subface of the parametric plane) of the chain
// stl_vector_mp<uint32_t> chain_other_subface_indices{};
// // neighboring patch group (at most 2) indices of the chain
// stl_vector_mp<std::array<uint32_t, 2>> chain_group_indices{};
// // /// chain group (by neighboring patch) associated properties
// // stl_vector_mp<stl_vector_mp<uint16_t>> chain_group_indices{};
// };
ISNP_API void build_implicit_network_by_blobtree(const s_settings& settings,
const baked_blobtree_t& tree,
stl_vector_mp<Eigen::Vector3d>& output_vertices,
stl_vector_mp<uint32_t>& output_polygon_faces,
stl_vector_mp<uint32_t>& output_vertex_counts_of_face,
icurve_relation_graph_t& output_icurve_relation_graph);