@ -9,7 +9,7 @@ ISNP_API void compute_patch_order(const iso_edge_t
const stl_vector_mp < tetrahedron_vertex_indices_t > & tets ,
const stl_vector_mp < iso_vertex_t > & iso_verts ,
const stl_vector_mp < polygon_face_t > & iso_faces ,
const stl_vector_mp < std : : shared_ptr < arrangement_t > > & cut_results ,
const stl_vector_mp < std : : optional < arrangement_t > > & cut_results ,
const stl_vector_mp < uint32_t > & func_in_tet ,
const stl_vector_mp < uint32_t > & start_index_of_tet ,
const flat_hash_map_mp < uint32_t , stl_vector_mp < uint32_t > > & incident_tets ,
@ -31,7 +31,7 @@ ISNP_API void compute_patch_order(const iso_edge_t
if ( containing_tets . size ( ) = = 1 ) {
// std::cout << ">>>>>>>> iso-edge in tet" << std::endl;
auto tet_id = * containing_tets . begin ( ) ;
pair_patches_in_one_tet ( * cut_results [ tet_id ] . get ( ) , iso_faces , iso_edge , patch_of_face_mapping , half_patch_adj_list ) ;
pair_patches_in_one_tet ( cut_results [ tet_id ] . value ( ) , iso_faces , iso_edge , patch_of_face_mapping , half_patch_adj_list ) ;
} else {
const auto v1 = iso_edge . v1 ;
const auto v2 = iso_edge . v2 ;
@ -201,16 +201,16 @@ ISNP_API void pair_patches_in_one_tet(const arrangement_t &te
// ===============================================================================================
ISNP_API void pair_patches_in_tets ( const iso_edge_t & iso_edge ,
const stl_vector_mp < uint32_t > & containing_simplex ,
const stl_vector_mp < uint32_t > & containing_tetIds ,
const stl_vector_mp < tetrahedron_vertex_indices_t > & tets ,
const stl_vector_mp < polygon_face_t > & iso_faces ,
const stl_vector_mp < std : : shared_ptr < arrangement_t > > & cut_results ,
const stl_vector_mp < uint32_t > & func_in_tet ,
const stl_vector_mp < uint32_t > & start_index_of_tet ,
const stl_vector_mp < uint32_t > & patch_of_face_mapping ,
stl_vector_mp < stl_vector_mp < uint32_t > > & half_patch_adj_list )
ISNP_API void pair_patches_in_tets ( const iso_edge_t & iso_edge ,
const stl_vector_mp < uint32_t > & containing_simplex ,
const stl_vector_mp < uint32_t > & containing_tetIds ,
const stl_vector_mp < tetrahedron_vertex_indices_t > & tets ,
const stl_vector_mp < polygon_face_t > & iso_faces ,
const stl_vector_mp < std : : optional < arrangement_t > > & cut_results ,
const stl_vector_mp < uint32_t > & func_in_tet ,
const stl_vector_mp < uint32_t > & start_index_of_tet ,
const stl_vector_mp < uint32_t > & patch_of_face_mapping ,
stl_vector_mp < stl_vector_mp < uint32_t > > & half_patch_adj_list )
{
//// pre-processing
// collect all iso-faces incident to the iso-edge
@ -321,7 +321,7 @@ ISNP_API void pair_patches_in_tets(const iso_edge_t
}
} else {
// non-empty tet i
const auto & arrangement = * cut_results [ i ] . get ( ) ;
const auto & arrangement = cut_results [ i ] . value ( ) ;
const auto & vertices = arrangement . vertices ;
const auto & faces = arrangement . faces ;
auto start_index = start_index_of_tet [ i ] ;
@ -442,7 +442,7 @@ ISNP_API void pair_patches_in_tets(const iso_edge_t
// the orientation of an iso-face is defined by the smallest-index implicit function passing the iso-face
auto get_half_iso_face = [ & ] ( face_header_t tet_face , int8_t orient , uint32_t & iso_face_id , int8_t & iso_orient ) {
iso_face_id = iso_face_Id_of_face [ tet_face ] ;
const auto & cell_complex = * cut_results [ tet_face . volume_index ] . get ( ) ;
const auto & cell_complex = cut_results [ tet_face . volume_index ] . value ( ) ;
const auto & faces = cell_complex . faces ;
auto supp_pId = faces [ tet_face . local_face_index ] . supporting_plane ;
if ( supp_pId > 3 ) { // plane 0,1,2,3 are tet boundary planes
@ -486,7 +486,7 @@ ISNP_API void pair_patches_in_tets(const iso_edge_t
}
} else {
// non-empty tet
const auto & cell_complex = * cut_results [ tet_id ] . get ( ) ;
const auto & cell_complex = cut_results [ tet_id ] . value ( ) ;
uint32_t cell_id =
( orient = = 1 ? cell_complex . faces [ tet_face_id ] . positive_cell : cell_complex . faces [ tet_face_id ] . negative_cell ) ;
if ( cell_id ! = invalid_index ) {