diff --git a/.cache/clangd/index/add_plane.cpp.AF7DB5D881626025.idx b/.cache/clangd/index/add_plane.cpp.AF7DB5D881626025.idx new file mode 100644 index 0000000..c1d2c76 Binary files /dev/null and b/.cache/clangd/index/add_plane.cpp.AF7DB5D881626025.idx differ diff --git a/.cache/clangd/index/add_plane.hpp.BAE9F373FF851D01.idx b/.cache/clangd/index/add_plane.hpp.BAE9F373FF851D01.idx new file mode 100644 index 0000000..bca903c Binary files /dev/null and b/.cache/clangd/index/add_plane.hpp.BAE9F373FF851D01.idx differ diff --git a/.cache/clangd/index/api.cpp.9142AE90152756EA.idx b/.cache/clangd/index/api.cpp.9142AE90152756EA.idx new file mode 100644 index 0000000..773a4e5 Binary files /dev/null and b/.cache/clangd/index/api.cpp.9142AE90152756EA.idx differ diff --git a/.cache/clangd/index/arrangement_builder.hpp.DAFE303D4DC01EF2.idx b/.cache/clangd/index/arrangement_builder.hpp.DAFE303D4DC01EF2.idx new file mode 100644 index 0000000..98a6396 Binary files /dev/null and b/.cache/clangd/index/arrangement_builder.hpp.DAFE303D4DC01EF2.idx differ diff --git a/.cache/clangd/index/background_mesh.cpp.CE0F31A143126B4A.idx b/.cache/clangd/index/background_mesh.cpp.CE0F31A143126B4A.idx new file mode 100644 index 0000000..c515a16 Binary files /dev/null and b/.cache/clangd/index/background_mesh.cpp.CE0F31A143126B4A.idx differ diff --git a/.cache/clangd/index/background_mesh.hpp.A4744F1933CCC1C7.idx b/.cache/clangd/index/background_mesh.hpp.A4744F1933CCC1C7.idx new file mode 100644 index 0000000..0cecde3 Binary files /dev/null and b/.cache/clangd/index/background_mesh.hpp.A4744F1933CCC1C7.idx differ diff --git a/.cache/clangd/index/background_mesh_manager.cpp.3467EEB7450A862E.idx b/.cache/clangd/index/background_mesh_manager.cpp.3467EEB7450A862E.idx new file mode 100644 index 0000000..69350c3 Binary files /dev/null and b/.cache/clangd/index/background_mesh_manager.cpp.3467EEB7450A862E.idx differ diff --git a/.cache/clangd/index/background_mesh_manager.hpp.C1CAD2312DEFCF08.idx b/.cache/clangd/index/background_mesh_manager.hpp.C1CAD2312DEFCF08.idx new file mode 100644 index 0000000..d28bfe7 Binary files /dev/null and b/.cache/clangd/index/background_mesh_manager.hpp.C1CAD2312DEFCF08.idx differ diff --git a/.cache/clangd/index/blobtree.cpp.F88C5DA7D6D2B2F8.idx b/.cache/clangd/index/blobtree.cpp.F88C5DA7D6D2B2F8.idx new file mode 100644 index 0000000..250eaf7 Binary files /dev/null and b/.cache/clangd/index/blobtree.cpp.F88C5DA7D6D2B2F8.idx differ diff --git a/.cache/clangd/index/blobtree.h.F72CD7C9D3B3E20D.idx b/.cache/clangd/index/blobtree.h.F72CD7C9D3B3E20D.idx new file mode 100644 index 0000000..6615343 Binary files /dev/null and b/.cache/clangd/index/blobtree.h.F72CD7C9D3B3E20D.idx differ diff --git a/.cache/clangd/index/box.cpp.64309A3A0ED136E8.idx b/.cache/clangd/index/box.cpp.64309A3A0ED136E8.idx new file mode 100644 index 0000000..23e1ce1 Binary files /dev/null and b/.cache/clangd/index/box.cpp.64309A3A0ED136E8.idx differ diff --git a/.cache/clangd/index/cone.cpp.020B40708C56E179.idx b/.cache/clangd/index/cone.cpp.020B40708C56E179.idx new file mode 100644 index 0000000..301bd7f Binary files /dev/null and b/.cache/clangd/index/cone.cpp.020B40708C56E179.idx differ diff --git a/.cache/clangd/index/constant.cpp.7A5C892AE203640F.idx b/.cache/clangd/index/constant.cpp.7A5C892AE203640F.idx new file mode 100644 index 0000000..5a87116 Binary files /dev/null and b/.cache/clangd/index/constant.cpp.7A5C892AE203640F.idx differ diff --git a/.cache/clangd/index/construct_helper.hpp.7EC151D7C99E066C.idx b/.cache/clangd/index/construct_helper.hpp.7EC151D7C99E066C.idx new file mode 100644 index 0000000..280fd6f Binary files /dev/null and b/.cache/clangd/index/construct_helper.hpp.7EC151D7C99E066C.idx differ diff --git a/.cache/clangd/index/counting_iterator.hpp.8996439EC9FF59AD.idx b/.cache/clangd/index/counting_iterator.hpp.8996439EC9FF59AD.idx new file mode 100644 index 0000000..8f7ba68 Binary files /dev/null and b/.cache/clangd/index/counting_iterator.hpp.8996439EC9FF59AD.idx differ diff --git a/.cache/clangd/index/countl_zero.hpp.F9987DD4C8668CAA.idx b/.cache/clangd/index/countl_zero.hpp.F9987DD4C8668CAA.idx new file mode 100644 index 0000000..15a79cc Binary files /dev/null and b/.cache/clangd/index/countl_zero.hpp.F9987DD4C8668CAA.idx differ diff --git a/.cache/clangd/index/countr_zero.hpp.D271A23946A42F88.idx b/.cache/clangd/index/countr_zero.hpp.D271A23946A42F88.idx new file mode 100644 index 0000000..0f67c68 Binary files /dev/null and b/.cache/clangd/index/countr_zero.hpp.D271A23946A42F88.idx differ diff --git a/.cache/clangd/index/cylinder.cpp.F8165A182EAF7E01.idx b/.cache/clangd/index/cylinder.cpp.F8165A182EAF7E01.idx new file mode 100644 index 0000000..2892fc3 Binary files /dev/null and b/.cache/clangd/index/cylinder.cpp.F8165A182EAF7E01.idx differ diff --git a/.cache/clangd/index/debug.cpp.97F57FC4C18E7E17.idx b/.cache/clangd/index/debug.cpp.97F57FC4C18E7E17.idx new file mode 100644 index 0000000..80fdd01 Binary files /dev/null and b/.cache/clangd/index/debug.cpp.97F57FC4C18E7E17.idx differ diff --git a/.cache/clangd/index/det2.cpp.C544EC46BE73E107.idx b/.cache/clangd/index/det2.cpp.C544EC46BE73E107.idx new file mode 100644 index 0000000..7ccbb90 Binary files /dev/null and b/.cache/clangd/index/det2.cpp.C544EC46BE73E107.idx differ diff --git a/.cache/clangd/index/det3.cpp.7DDC16D21303DA10.idx b/.cache/clangd/index/det3.cpp.7DDC16D21303DA10.idx new file mode 100644 index 0000000..cb5940a Binary files /dev/null and b/.cache/clangd/index/det3.cpp.7DDC16D21303DA10.idx differ diff --git a/.cache/clangd/index/det4.cpp.88F9D6F1D9500805.idx b/.cache/clangd/index/det4.cpp.88F9D6F1D9500805.idx new file mode 100644 index 0000000..1f832de Binary files /dev/null and b/.cache/clangd/index/det4.cpp.88F9D6F1D9500805.idx differ diff --git a/.cache/clangd/index/det5.cpp.A9485541391559DE.idx b/.cache/clangd/index/det5.cpp.A9485541391559DE.idx new file mode 100644 index 0000000..67fcbb5 Binary files /dev/null and b/.cache/clangd/index/det5.cpp.A9485541391559DE.idx differ diff --git a/.cache/clangd/index/diff_det2.cpp.856111FAEE92BF17.idx b/.cache/clangd/index/diff_det2.cpp.856111FAEE92BF17.idx new file mode 100644 index 0000000..5abdf7f Binary files /dev/null and b/.cache/clangd/index/diff_det2.cpp.856111FAEE92BF17.idx differ diff --git a/.cache/clangd/index/diff_det2_one.cpp.1046BF5C1111E77F.idx b/.cache/clangd/index/diff_det2_one.cpp.1046BF5C1111E77F.idx new file mode 100644 index 0000000..3609e20 Binary files /dev/null and b/.cache/clangd/index/diff_det2_one.cpp.1046BF5C1111E77F.idx differ diff --git a/.cache/clangd/index/diff_det3.cpp.173F918C30252FB8.idx b/.cache/clangd/index/diff_det3.cpp.173F918C30252FB8.idx new file mode 100644 index 0000000..918f52d Binary files /dev/null and b/.cache/clangd/index/diff_det3.cpp.173F918C30252FB8.idx differ diff --git a/.cache/clangd/index/diff_det3_one.cpp.AF9C1CC1AC442B41.idx b/.cache/clangd/index/diff_det3_one.cpp.AF9C1CC1AC442B41.idx new file mode 100644 index 0000000..895889c Binary files /dev/null and b/.cache/clangd/index/diff_det3_one.cpp.AF9C1CC1AC442B41.idx differ diff --git a/.cache/clangd/index/diff_det4.cpp.370B7812300D73B1.idx b/.cache/clangd/index/diff_det4.cpp.370B7812300D73B1.idx new file mode 100644 index 0000000..8cc90a1 Binary files /dev/null and b/.cache/clangd/index/diff_det4.cpp.370B7812300D73B1.idx differ diff --git a/.cache/clangd/index/diff_det4_one.cpp.4193A70A8254D9A7.idx b/.cache/clangd/index/diff_det4_one.cpp.4193A70A8254D9A7.idx new file mode 100644 index 0000000..750f6e1 Binary files /dev/null and b/.cache/clangd/index/diff_det4_one.cpp.4193A70A8254D9A7.idx differ diff --git a/.cache/clangd/index/dynamic_bitset.hpp.93A079740499EA43.idx b/.cache/clangd/index/dynamic_bitset.hpp.93A079740499EA43.idx new file mode 100644 index 0000000..b01bd7d Binary files /dev/null and b/.cache/clangd/index/dynamic_bitset.hpp.93A079740499EA43.idx differ diff --git a/.cache/clangd/index/dynamic_bitset_base.hpp.BF9E3278C936BA4A.idx b/.cache/clangd/index/dynamic_bitset_base.hpp.BF9E3278C936BA4A.idx new file mode 100644 index 0000000..c146066 Binary files /dev/null and b/.cache/clangd/index/dynamic_bitset_base.hpp.BF9E3278C936BA4A.idx differ diff --git a/.cache/clangd/index/eigen_alias.hpp.739FEDEF0E223E06.idx b/.cache/clangd/index/eigen_alias.hpp.739FEDEF0E223E06.idx new file mode 100644 index 0000000..24c7020 Binary files /dev/null and b/.cache/clangd/index/eigen_alias.hpp.739FEDEF0E223E06.idx differ diff --git a/.cache/clangd/index/eigen_alias.hpp.7F1D271FBA2F60D1.idx b/.cache/clangd/index/eigen_alias.hpp.7F1D271FBA2F60D1.idx new file mode 100644 index 0000000..d1f043f Binary files /dev/null and b/.cache/clangd/index/eigen_alias.hpp.7F1D271FBA2F60D1.idx differ diff --git a/.cache/clangd/index/environment.h.404B66CB41322660.idx b/.cache/clangd/index/environment.h.404B66CB41322660.idx new file mode 100644 index 0000000..739c18e Binary files /dev/null and b/.cache/clangd/index/environment.h.404B66CB41322660.idx differ diff --git a/.cache/clangd/index/evaluation_performance_test.cpp.6464E07B763F686D.idx b/.cache/clangd/index/evaluation_performance_test.cpp.6464E07B763F686D.idx new file mode 100644 index 0000000..2f2db85 Binary files /dev/null and b/.cache/clangd/index/evaluation_performance_test.cpp.6464E07B763F686D.idx differ diff --git a/.cache/clangd/index/execution.h.CAA38FCE6EC0CE9D.idx b/.cache/clangd/index/execution.h.CAA38FCE6EC0CE9D.idx new file mode 100644 index 0000000..cbc9665 Binary files /dev/null and b/.cache/clangd/index/execution.h.CAA38FCE6EC0CE9D.idx differ diff --git a/.cache/clangd/index/extract_arrangement.cpp.FF0BD74E7B117DDB.idx b/.cache/clangd/index/extract_arrangement.cpp.FF0BD74E7B117DDB.idx new file mode 100644 index 0000000..33dc69a Binary files /dev/null and b/.cache/clangd/index/extract_arrangement.cpp.FF0BD74E7B117DDB.idx differ diff --git a/.cache/clangd/index/extract_arrangement.hpp.275EF41CC1EBA10B.idx b/.cache/clangd/index/extract_arrangement.hpp.275EF41CC1EBA10B.idx new file mode 100644 index 0000000..4dcb50a Binary files /dev/null and b/.cache/clangd/index/extract_arrangement.hpp.275EF41CC1EBA10B.idx differ diff --git a/.cache/clangd/index/extract_patch.cpp.CEC73C9145AC4B82.idx b/.cache/clangd/index/extract_patch.cpp.CEC73C9145AC4B82.idx new file mode 100644 index 0000000..ec95209 Binary files /dev/null and b/.cache/clangd/index/extract_patch.cpp.CEC73C9145AC4B82.idx differ diff --git a/.cache/clangd/index/extract_patch.hpp.E80CAC27B14C919A.idx b/.cache/clangd/index/extract_patch.hpp.E80CAC27B14C919A.idx new file mode 100644 index 0000000..a6739f0 Binary files /dev/null and b/.cache/clangd/index/extract_patch.hpp.E80CAC27B14C919A.idx differ diff --git a/.cache/clangd/index/extrude_helixline.cpp.0C283B45AFBCBEDE.idx b/.cache/clangd/index/extrude_helixline.cpp.0C283B45AFBCBEDE.idx new file mode 100644 index 0000000..606aa0c Binary files /dev/null and b/.cache/clangd/index/extrude_helixline.cpp.0C283B45AFBCBEDE.idx differ diff --git a/.cache/clangd/index/extrude_polyline.cpp.560A8C728C6DD25B.idx b/.cache/clangd/index/extrude_polyline.cpp.560A8C728C6DD25B.idx new file mode 100644 index 0000000..88b3b28 Binary files /dev/null and b/.cache/clangd/index/extrude_polyline.cpp.560A8C728C6DD25B.idx differ diff --git a/.cache/clangd/index/fwd_types.hpp.C44C1D6696C8DB26.idx b/.cache/clangd/index/fwd_types.hpp.C44C1D6696C8DB26.idx new file mode 100644 index 0000000..74ffa56 Binary files /dev/null and b/.cache/clangd/index/fwd_types.hpp.C44C1D6696C8DB26.idx differ diff --git a/.cache/clangd/index/globals.hpp.7E589992A243ECA6.idx b/.cache/clangd/index/globals.hpp.7E589992A243ECA6.idx new file mode 100644 index 0000000..7fbb5e2 Binary files /dev/null and b/.cache/clangd/index/globals.hpp.7E589992A243ECA6.idx differ diff --git a/.cache/clangd/index/globals.hpp.C61916BBB866758B.idx b/.cache/clangd/index/globals.hpp.C61916BBB866758B.idx new file mode 100644 index 0000000..23fa7db Binary files /dev/null and b/.cache/clangd/index/globals.hpp.C61916BBB866758B.idx differ diff --git a/.cache/clangd/index/glue_algorithm.hpp.1AF0C35E03DF58C6.idx b/.cache/clangd/index/glue_algorithm.hpp.1AF0C35E03DF58C6.idx new file mode 100644 index 0000000..e63cd92 Binary files /dev/null and b/.cache/clangd/index/glue_algorithm.hpp.1AF0C35E03DF58C6.idx differ diff --git a/.cache/clangd/index/hand_optimized_predicates.hpp.9D724CB3DF0B40DE.idx b/.cache/clangd/index/hand_optimized_predicates.hpp.9D724CB3DF0B40DE.idx new file mode 100644 index 0000000..b8cf920 Binary files /dev/null and b/.cache/clangd/index/hand_optimized_predicates.hpp.9D724CB3DF0B40DE.idx differ diff --git a/.cache/clangd/index/hashmap.hpp.D03FA8116F3BC898.idx b/.cache/clangd/index/hashmap.hpp.D03FA8116F3BC898.idx new file mode 100644 index 0000000..51c090e Binary files /dev/null and b/.cache/clangd/index/hashmap.hpp.D03FA8116F3BC898.idx differ diff --git a/.cache/clangd/index/helixline.cpp.9B61014C5DE74081.idx b/.cache/clangd/index/helixline.cpp.9B61014C5DE74081.idx new file mode 100644 index 0000000..6aa568a Binary files /dev/null and b/.cache/clangd/index/helixline.cpp.9B61014C5DE74081.idx differ diff --git a/.cache/clangd/index/ia_cut_0_face.cpp.743DF706F3FA0C8F.idx b/.cache/clangd/index/ia_cut_0_face.cpp.743DF706F3FA0C8F.idx new file mode 100644 index 0000000..acf566d Binary files /dev/null and b/.cache/clangd/index/ia_cut_0_face.cpp.743DF706F3FA0C8F.idx differ diff --git a/.cache/clangd/index/ia_cut_1_face.cpp.DA7E383F6D0A4F0C.idx b/.cache/clangd/index/ia_cut_1_face.cpp.DA7E383F6D0A4F0C.idx new file mode 100644 index 0000000..2ac3f21 Binary files /dev/null and b/.cache/clangd/index/ia_cut_1_face.cpp.DA7E383F6D0A4F0C.idx differ diff --git a/.cache/clangd/index/ia_cut_2_face.cpp.68EA08E64B131A72.idx b/.cache/clangd/index/ia_cut_2_face.cpp.68EA08E64B131A72.idx new file mode 100644 index 0000000..d4e3233 Binary files /dev/null and b/.cache/clangd/index/ia_cut_2_face.cpp.68EA08E64B131A72.idx differ diff --git a/.cache/clangd/index/ia_cut_3_face.cpp.AF17A0A7B5BD2E24.idx b/.cache/clangd/index/ia_cut_3_face.cpp.AF17A0A7B5BD2E24.idx new file mode 100644 index 0000000..e4b0803 Binary files /dev/null and b/.cache/clangd/index/ia_cut_3_face.cpp.AF17A0A7B5BD2E24.idx differ diff --git a/.cache/clangd/index/ia_cut_face.hpp.20906CE2E82DD71E.idx b/.cache/clangd/index/ia_cut_face.hpp.20906CE2E82DD71E.idx new file mode 100644 index 0000000..1edbecb Binary files /dev/null and b/.cache/clangd/index/ia_cut_face.hpp.20906CE2E82DD71E.idx differ diff --git a/.cache/clangd/index/ia_structure.hpp.8255ACC67B3404F3.idx b/.cache/clangd/index/ia_structure.hpp.8255ACC67B3404F3.idx new file mode 100644 index 0000000..a181c8c Binary files /dev/null and b/.cache/clangd/index/ia_structure.hpp.8255ACC67B3404F3.idx differ diff --git a/.cache/clangd/index/implicit_arrangement.cpp.D34AC35DECAE7DB2.idx b/.cache/clangd/index/implicit_arrangement.cpp.D34AC35DECAE7DB2.idx new file mode 100644 index 0000000..a119da9 Binary files /dev/null and b/.cache/clangd/index/implicit_arrangement.cpp.D34AC35DECAE7DB2.idx differ diff --git a/.cache/clangd/index/implicit_arrangement.hpp.3F27945261379B3A.idx b/.cache/clangd/index/implicit_arrangement.hpp.3F27945261379B3A.idx new file mode 100644 index 0000000..61d8205 Binary files /dev/null and b/.cache/clangd/index/implicit_arrangement.hpp.3F27945261379B3A.idx differ diff --git a/.cache/clangd/index/implicit_point.h.F3BA33752A30F758.idx b/.cache/clangd/index/implicit_point.h.F3BA33752A30F758.idx new file mode 100644 index 0000000..b29df37 Binary files /dev/null and b/.cache/clangd/index/implicit_point.h.F3BA33752A30F758.idx differ diff --git a/.cache/clangd/index/implicit_point.hpp.EDC4A4E632DEE178.idx b/.cache/clangd/index/implicit_point.hpp.EDC4A4E632DEE178.idx new file mode 100644 index 0000000..0549626 Binary files /dev/null and b/.cache/clangd/index/implicit_point.hpp.EDC4A4E632DEE178.idx differ diff --git a/.cache/clangd/index/implicit_predicates.hpp.5CD282D4B774F293.idx b/.cache/clangd/index/implicit_predicates.hpp.5CD282D4B774F293.idx new file mode 100644 index 0000000..b32211a Binary files /dev/null and b/.cache/clangd/index/implicit_predicates.hpp.5CD282D4B774F293.idx differ diff --git a/.cache/clangd/index/implicit_surface_network_processor.cpp.2B3003759A3390D0.idx b/.cache/clangd/index/implicit_surface_network_processor.cpp.2B3003759A3390D0.idx new file mode 100644 index 0000000..7cccb8b Binary files /dev/null and b/.cache/clangd/index/implicit_surface_network_processor.cpp.2B3003759A3390D0.idx differ diff --git a/.cache/clangd/index/implicit_surface_network_processor.hpp.5FDCAEA728035363.idx b/.cache/clangd/index/implicit_surface_network_processor.hpp.5FDCAEA728035363.idx new file mode 100644 index 0000000..274083b Binary files /dev/null and b/.cache/clangd/index/implicit_surface_network_processor.hpp.5FDCAEA728035363.idx differ diff --git a/.cache/clangd/index/indirect_predicates.h.3ECD5E7C97DE7BDF.idx b/.cache/clangd/index/indirect_predicates.h.3ECD5E7C97DE7BDF.idx new file mode 100644 index 0000000..49c3427 Binary files /dev/null and b/.cache/clangd/index/indirect_predicates.h.3ECD5E7C97DE7BDF.idx differ diff --git a/.cache/clangd/index/indirect_predicates.hpp.A7B6B5A9D1E38140.idx b/.cache/clangd/index/indirect_predicates.hpp.A7B6B5A9D1E38140.idx new file mode 100644 index 0000000..c89f9aa Binary files /dev/null and b/.cache/clangd/index/indirect_predicates.hpp.A7B6B5A9D1E38140.idx differ diff --git a/.cache/clangd/index/internal_api.hpp.FF954D915ED3B34F.idx b/.cache/clangd/index/internal_api.hpp.FF954D915ED3B34F.idx new file mode 100644 index 0000000..9fd2315 Binary files /dev/null and b/.cache/clangd/index/internal_api.hpp.FF954D915ED3B34F.idx differ diff --git a/.cache/clangd/index/internal_primitive_desc.hpp.0E9B0B07BCC84AD5.idx b/.cache/clangd/index/internal_primitive_desc.hpp.0E9B0B07BCC84AD5.idx new file mode 100644 index 0000000..7476150 Binary files /dev/null and b/.cache/clangd/index/internal_primitive_desc.hpp.0E9B0B07BCC84AD5.idx differ diff --git a/.cache/clangd/index/internal_structs.hpp.530DD346760032DD.idx b/.cache/clangd/index/internal_structs.hpp.530DD346760032DD.idx new file mode 100644 index 0000000..e56df02 Binary files /dev/null and b/.cache/clangd/index/internal_structs.hpp.530DD346760032DD.idx differ diff --git a/.cache/clangd/index/io.cpp.B5DFED7AC886E05C.idx b/.cache/clangd/index/io.cpp.B5DFED7AC886E05C.idx new file mode 100644 index 0000000..5435bd5 Binary files /dev/null and b/.cache/clangd/index/io.cpp.B5DFED7AC886E05C.idx differ diff --git a/.cache/clangd/index/io.h.7FB433E3E58F4409.idx b/.cache/clangd/index/io.h.7FB433E3E58F4409.idx new file mode 100644 index 0000000..d1a1f8d Binary files /dev/null and b/.cache/clangd/index/io.h.7FB433E3E58F4409.idx differ diff --git a/.cache/clangd/index/lut.cpp.103D0DD0BF24B5CA.idx b/.cache/clangd/index/lut.cpp.103D0DD0BF24B5CA.idx new file mode 100644 index 0000000..f33ae1e Binary files /dev/null and b/.cache/clangd/index/lut.cpp.103D0DD0BF24B5CA.idx differ diff --git a/.cache/clangd/index/lut.hpp.02C24C821015E193.idx b/.cache/clangd/index/lut.hpp.02C24C821015E193.idx new file mode 100644 index 0000000..77aebfb Binary files /dev/null and b/.cache/clangd/index/lut.hpp.02C24C821015E193.idx differ diff --git a/.cache/clangd/index/macros.h.46A7DE7012302D45.idx b/.cache/clangd/index/macros.h.46A7DE7012302D45.idx new file mode 100644 index 0000000..dae1751 Binary files /dev/null and b/.cache/clangd/index/macros.h.46A7DE7012302D45.idx differ diff --git a/.cache/clangd/index/main.cpp.0C18B488CB7EF83F.idx b/.cache/clangd/index/main.cpp.0C18B488CB7EF83F.idx new file mode 100644 index 0000000..cb1a278 Binary files /dev/null and b/.cache/clangd/index/main.cpp.0C18B488CB7EF83F.idx differ diff --git a/.cache/clangd/index/main.cpp.B9BE2FCF3CC65A44.idx b/.cache/clangd/index/main.cpp.B9BE2FCF3CC65A44.idx new file mode 100644 index 0000000..3a3ad86 Binary files /dev/null and b/.cache/clangd/index/main.cpp.B9BE2FCF3CC65A44.idx differ diff --git a/.cache/clangd/index/main.cpp.C5EAC9AF6FA57486.idx b/.cache/clangd/index/main.cpp.C5EAC9AF6FA57486.idx new file mode 100644 index 0000000..177f2d0 Binary files /dev/null and b/.cache/clangd/index/main.cpp.C5EAC9AF6FA57486.idx differ diff --git a/.cache/clangd/index/memPool.h.3201C0BF10674747.idx b/.cache/clangd/index/memPool.h.3201C0BF10674747.idx new file mode 100644 index 0000000..bcaff1d Binary files /dev/null and b/.cache/clangd/index/memPool.h.3201C0BF10674747.idx differ diff --git a/.cache/clangd/index/memory_pool.hpp.2D9E805B93838B08.idx b/.cache/clangd/index/memory_pool.hpp.2D9E805B93838B08.idx new file mode 100644 index 0000000..d9e07a9 Binary files /dev/null and b/.cache/clangd/index/memory_pool.hpp.2D9E805B93838B08.idx differ diff --git a/.cache/clangd/index/mesh.cpp.1C8420798291EAD7.idx b/.cache/clangd/index/mesh.cpp.1C8420798291EAD7.idx new file mode 100644 index 0000000..6b46647 Binary files /dev/null and b/.cache/clangd/index/mesh.cpp.1C8420798291EAD7.idx differ diff --git a/.cache/clangd/index/numerics.h.5E054BC62555FAE7.idx b/.cache/clangd/index/numerics.h.5E054BC62555FAE7.idx new file mode 100644 index 0000000..ad5d830 Binary files /dev/null and b/.cache/clangd/index/numerics.h.5E054BC62555FAE7.idx differ diff --git a/.cache/clangd/index/numerics.hpp.9AAB9312D90FC381.idx b/.cache/clangd/index/numerics.hpp.9AAB9312D90FC381.idx new file mode 100644 index 0000000..c9d0e58 Binary files /dev/null and b/.cache/clangd/index/numerics.hpp.9AAB9312D90FC381.idx differ diff --git a/.cache/clangd/index/pair_faces.cpp.292E83A883959121.idx b/.cache/clangd/index/pair_faces.cpp.292E83A883959121.idx new file mode 100644 index 0000000..8a27693 Binary files /dev/null and b/.cache/clangd/index/pair_faces.cpp.292E83A883959121.idx differ diff --git a/.cache/clangd/index/pair_faces.hpp.ED413C39F473F7C9.idx b/.cache/clangd/index/pair_faces.hpp.ED413C39F473F7C9.idx new file mode 100644 index 0000000..06752e7 Binary files /dev/null and b/.cache/clangd/index/pair_faces.hpp.ED413C39F473F7C9.idx differ diff --git a/.cache/clangd/index/patch_connectivity.cpp.20A6A0D9428302AD.idx b/.cache/clangd/index/patch_connectivity.cpp.20A6A0D9428302AD.idx new file mode 100644 index 0000000..eb3699a Binary files /dev/null and b/.cache/clangd/index/patch_connectivity.cpp.20A6A0D9428302AD.idx differ diff --git a/.cache/clangd/index/patch_connectivity.hpp.55DFB3EB994279DF.idx b/.cache/clangd/index/patch_connectivity.hpp.55DFB3EB994279DF.idx new file mode 100644 index 0000000..894014d Binary files /dev/null and b/.cache/clangd/index/patch_connectivity.hpp.55DFB3EB994279DF.idx differ diff --git a/.cache/clangd/index/patch_integrator.cpp.8D46FFBC18E46BAA.idx b/.cache/clangd/index/patch_integrator.cpp.8D46FFBC18E46BAA.idx new file mode 100644 index 0000000..e0f059a Binary files /dev/null and b/.cache/clangd/index/patch_integrator.cpp.8D46FFBC18E46BAA.idx differ diff --git a/.cache/clangd/index/patch_integrator.hpp.B4FB0ECCCB1035F4.idx b/.cache/clangd/index/patch_integrator.hpp.B4FB0ECCCB1035F4.idx new file mode 100644 index 0000000..d8ff267 Binary files /dev/null and b/.cache/clangd/index/patch_integrator.hpp.B4FB0ECCCB1035F4.idx differ diff --git a/.cache/clangd/index/patch_propagator.cpp.DCB65E8235F8D1B1.idx b/.cache/clangd/index/patch_propagator.cpp.DCB65E8235F8D1B1.idx new file mode 100644 index 0000000..dbbf1cf Binary files /dev/null and b/.cache/clangd/index/patch_propagator.cpp.DCB65E8235F8D1B1.idx differ diff --git a/.cache/clangd/index/patch_propagator.hpp.A26A5DD066DEC297.idx b/.cache/clangd/index/patch_propagator.hpp.A26A5DD066DEC297.idx new file mode 100644 index 0000000..284e344 Binary files /dev/null and b/.cache/clangd/index/patch_propagator.hpp.A26A5DD066DEC297.idx differ diff --git a/.cache/clangd/index/plane.cpp.3424DFC1F70A232B.idx b/.cache/clangd/index/plane.cpp.3424DFC1F70A232B.idx new file mode 100644 index 0000000..04141e8 Binary files /dev/null and b/.cache/clangd/index/plane.cpp.3424DFC1F70A232B.idx differ diff --git a/.cache/clangd/index/plane.hpp.52D82AF7E81B8EF5.idx b/.cache/clangd/index/plane.hpp.52D82AF7E81B8EF5.idx new file mode 100644 index 0000000..5c62e05 Binary files /dev/null and b/.cache/clangd/index/plane.hpp.52D82AF7E81B8EF5.idx differ diff --git a/.cache/clangd/index/polyline.cpp.FF3FFF09557EDEBF.idx b/.cache/clangd/index/polyline.cpp.FF3FFF09557EDEBF.idx new file mode 100644 index 0000000..ea6d2ad Binary files /dev/null and b/.cache/clangd/index/polyline.cpp.FF3FFF09557EDEBF.idx differ diff --git a/.cache/clangd/index/popcount.hpp.73B8028A994893F9.idx b/.cache/clangd/index/popcount.hpp.73B8028A994893F9.idx new file mode 100644 index 0000000..a99a817 Binary files /dev/null and b/.cache/clangd/index/popcount.hpp.73B8028A994893F9.idx differ diff --git a/.cache/clangd/index/primitive_descriptor.h.9281DF5DE4EE4447.idx b/.cache/clangd/index/primitive_descriptor.h.9281DF5DE4EE4447.idx new file mode 100644 index 0000000..07af7da Binary files /dev/null and b/.cache/clangd/index/primitive_descriptor.h.9281DF5DE4EE4447.idx differ diff --git a/.cache/clangd/index/primitive_node.cpp.D526A8570F296CA4.idx b/.cache/clangd/index/primitive_node.cpp.D526A8570F296CA4.idx new file mode 100644 index 0000000..7ee70a0 Binary files /dev/null and b/.cache/clangd/index/primitive_node.cpp.D526A8570F296CA4.idx differ diff --git a/.cache/clangd/index/robust_assert.hpp.871352C2E6647442.idx b/.cache/clangd/index/robust_assert.hpp.871352C2E6647442.idx new file mode 100644 index 0000000..1325c2e Binary files /dev/null and b/.cache/clangd/index/robust_assert.hpp.871352C2E6647442.idx differ diff --git a/.cache/clangd/index/scoped_timer.hpp.0889DE71A20D92EA.idx b/.cache/clangd/index/scoped_timer.hpp.0889DE71A20D92EA.idx new file mode 100644 index 0000000..9171cac Binary files /dev/null and b/.cache/clangd/index/scoped_timer.hpp.0889DE71A20D92EA.idx differ diff --git a/.cache/clangd/index/small_vector.hpp.A13E85FDCE09B238.idx b/.cache/clangd/index/small_vector.hpp.A13E85FDCE09B238.idx new file mode 100644 index 0000000..ef2959f Binary files /dev/null and b/.cache/clangd/index/small_vector.hpp.A13E85FDCE09B238.idx differ diff --git a/.cache/clangd/index/small_vector_base.hpp.BC3498B8D9232551.idx b/.cache/clangd/index/small_vector_base.hpp.BC3498B8D9232551.idx new file mode 100644 index 0000000..fa8c068 Binary files /dev/null and b/.cache/clangd/index/small_vector_base.hpp.BC3498B8D9232551.idx differ diff --git a/.cache/clangd/index/sphere.cpp.BFE527032962F1D1.idx b/.cache/clangd/index/sphere.cpp.BFE527032962F1D1.idx new file mode 100644 index 0000000..0d9f3b1 Binary files /dev/null and b/.cache/clangd/index/sphere.cpp.BFE527032962F1D1.idx differ diff --git a/.cache/clangd/index/static_vector.hpp.2B73BD2CEEE06BA9.idx b/.cache/clangd/index/static_vector.hpp.2B73BD2CEEE06BA9.idx new file mode 100644 index 0000000..a5d7dea Binary files /dev/null and b/.cache/clangd/index/static_vector.hpp.2B73BD2CEEE06BA9.idx differ diff --git a/.cache/clangd/index/statistics.cpp.4E3B7D2FA056C719.idx b/.cache/clangd/index/statistics.cpp.4E3B7D2FA056C719.idx new file mode 100644 index 0000000..3df4cae Binary files /dev/null and b/.cache/clangd/index/statistics.cpp.4E3B7D2FA056C719.idx differ diff --git a/.cache/clangd/index/topology_ray_shooting.cpp.C76DCBFA890EBDB8.idx b/.cache/clangd/index/topology_ray_shooting.cpp.C76DCBFA890EBDB8.idx new file mode 100644 index 0000000..43c5470 Binary files /dev/null and b/.cache/clangd/index/topology_ray_shooting.cpp.C76DCBFA890EBDB8.idx differ diff --git a/.cache/clangd/index/topology_ray_shooting.hpp.ACDBFB263BE9741B.idx b/.cache/clangd/index/topology_ray_shooting.hpp.ACDBFB263BE9741B.idx new file mode 100644 index 0000000..ab0e546 Binary files /dev/null and b/.cache/clangd/index/topology_ray_shooting.hpp.ACDBFB263BE9741B.idx differ diff --git a/.cache/clangd/index/union_find_disjoint_set.cpp.A588F312C84ED534.idx b/.cache/clangd/index/union_find_disjoint_set.cpp.A588F312C84ED534.idx new file mode 100644 index 0000000..218ad27 Binary files /dev/null and b/.cache/clangd/index/union_find_disjoint_set.cpp.A588F312C84ED534.idx differ diff --git a/.cache/clangd/index/union_find_disjoint_set.hpp.816FFACDB960A692.idx b/.cache/clangd/index/union_find_disjoint_set.hpp.816FFACDB960A692.idx new file mode 100644 index 0000000..22bf236 Binary files /dev/null and b/.cache/clangd/index/union_find_disjoint_set.hpp.816FFACDB960A692.idx differ diff --git a/primitive_process/interface/internal_primitive_desc.hpp b/primitive_process/interface/internal_primitive_desc.hpp index ae60572..7d1d54b 100644 --- a/primitive_process/interface/internal_primitive_desc.hpp +++ b/primitive_process/interface/internal_primitive_desc.hpp @@ -7,6 +7,8 @@ #include #include +#include + #include "primitive_descriptor.h" // ========================================================================================================================= @@ -200,6 +202,9 @@ struct polyline { // return type: [line_closest_param_t, SDF] [[nodiscard]] std::pair calculate_closest_param( const Eigen::Ref&) const; + + // return type: true for outside + [[nodiscard]] bool pmc(const Eigen::Ref&, const line_closest_param_t&) const; }; struct helixline { diff --git a/primitive_process/src/extrude_helixline.cpp b/primitive_process/src/extrude_helixline.cpp index 98e1527..1094956 100644 --- a/primitive_process/src/extrude_helixline.cpp +++ b/primitive_process/src/extrude_helixline.cpp @@ -65,7 +65,8 @@ static inline process_return_type_t evaluate(const extrude_helixline // TODO: add support for non-parallel (ray vs. profile plane) case // for now just assume that profile plane is parallel to axis - const auto [profile_closest_param, dist] = desc.profile.calculate_closest_param((inv_TBN * local_p).topRows<3>()); + auto [profile_closest_param, dist] = desc.profile.calculate_closest_param((inv_TBN * local_p).topRows<3>()); + dist *= desc.profile.pmc((inv_TBN * local_p).topRows<3>(), profile_closest_param); // transform closest point to world space // the distance should be unchanged during transformation, since no scaling is involved diff --git a/primitive_process/src/extrude_polyline.cpp b/primitive_process/src/extrude_polyline.cpp index 5002fda..d59b2d7 100644 --- a/primitive_process/src/extrude_polyline.cpp +++ b/primitive_process/src/extrude_polyline.cpp @@ -72,7 +72,8 @@ static inline process_return_type_t evaluate(const extrude_polyline // TODO: add support for non-parallel (ray vs. profile plane) case // for now just assume that profile plane is parallel to axis - const auto [profile_closest_param, dist] = desc.profile.calculate_closest_param((inv_TBN * local_p).topRows<3>()); + auto [profile_closest_param, dist] = desc.profile.calculate_closest_param((inv_TBN * local_p).topRows<3>()); + dist *= desc.profile.pmc((inv_TBN * local_p).topRows<3>(), profile_closest_param); // transform closest point to world space // the distance should be unchanged during transformation, since no scaling is involved diff --git a/primitive_process/src/polyline.cpp b/primitive_process/src/polyline.cpp index 4f4389f..0ce3281 100644 --- a/primitive_process/src/polyline.cpp +++ b/primitive_process/src/polyline.cpp @@ -404,4 +404,15 @@ void polyline::build_as_profile(polyline_descriptor_t &&desc, }; } } + +[[nodiscard]] bool polyline::pmc(const Eigen::Ref&p, const line_closest_param_t& closest_param) const { + if (closest_param.is_peak_value) { + return (p - closest_param.point).dot(this->calculate_normal(closest_param.t)) < 0; + } + // the closest point is the vertex of the line + // todo: may not be robust for rare cases + return (p - closest_param.point).dot(this->calculate_normal(closest_param.t)) < 0; +} + + } // namespace internal \ No newline at end of file