|
| auto | meshlib::op_equal_mr_edge_tri (a:&meshlib::EdgeTri, b:&meshlib::EdgeTri) -> bool |
| auto | meshlib::op_not_equal_mr_edge_tri (a:&meshlib::EdgeTri, b:&meshlib::EdgeTri) -> bool |
| auto | meshlib::find_colliding_edge_tris_precise (a:&meshlib::MeshPart, b:&meshlib::MeshPart, conv:&meshlib::ConvertToIntVector, rigidB2A:Option<&meshlib::AffineXf3f >, anyIntersection:Option< bool >) -> meshlib::Owned< meshlib::Vector_MR_VarEdgeTri > |
| | finds all pairs of colliding edges from one mesh and triangle from another mesh
|
| void | meshlib::update_colliding_edge_tris_precise (res:&mut meshlib::Vector_MR_VarEdgeTri, a:&meshlib::Mesh, aFirstNewVert:meshlib::VertId, b:&meshlib::Mesh, bFirstNewVert:meshlib::VertId, conv:&meshlib::ConvertToIntVector, rigidB2A:Option<&meshlib::AffineXf3f >) |
| | updates the result of findCollidingEdgeTrisPrecise( a, b, conv, rigidB2A ) after some faces or edges of the meshes were split (e.g. in subdivideLoneContours) with no other changes in the meshes: removes all intersections with the triangles around new vertices (the split triangles and their new parts) and with their edges, and finds them again, which is much faster than new search if few faces were split, but slower if many were split: so if more than 1/32 of all vertices are new, the function makes new search instead; the AABB trees of the meshes must be updated after the splits (e.g. by Mesh::updateCachesAfterSplits) or invalidated
|
| auto | meshlib::find_self_colliding_edge_tris_precise (mp:&meshlib::MeshPart, conv:&meshlib::ConvertToIntVector, anyIntersection:Option< bool >, rigidB2A:Option<&meshlib::AffineXf3f >, aVertSizes:Option< core::ffi::c_int >) -> meshlib::Owned< meshlib::std_vector_MR_EdgeTri > |
| | finds all pairs of colliding edges and triangle within one mesh
|
| auto | meshlib::find_colliding_edge_tris_precise_edges_a (a:&meshlib::Mesh, edgesA:&meshlib::std_vector_MR_EdgeId, b:&meshlib::Mesh, facesB:&meshlib::std_vector_MR_FaceId, conv:&meshlib::ConvertToIntVector, rigidB2A:Option<&meshlib::AffineXf3f >) -> meshlib::Owned< meshlib::std_vector_MR_EdgeTri > |
| auto | meshlib::find_colliding_edge_tris_precise_faces_a (a:&meshlib::Mesh, facesA:&meshlib::std_vector_MR_FaceId, b:&meshlib::Mesh, edgesB:&meshlib::std_vector_MR_EdgeId, conv:&meshlib::ConvertToIntVector, rigidB2A:Option<&meshlib::AffineXf3f >) -> meshlib::Owned< meshlib::std_vector_MR_EdgeTri > |
| auto | meshlib::get_vector_converters_one_part (a:&meshlib::MeshPart) -> meshlib::Owned< meshlib::CoordinateConverters > |
| | creates simple converters from Vector3f to Vector3i and back in mesh part area range
|
| auto | meshlib::get_vector_converters (a:&meshlib::MeshPart, b:&meshlib::MeshPart, rigidB2A:Option<&meshlib::AffineXf3f >) -> meshlib::Owned< meshlib::CoordinateConverters > |
| | creates simple converters from Vector3f to Vector3i and back in mesh parts area range
|