diff --git a/src/ipc/smooth_contact/primitives/edge2.cpp b/src/ipc/smooth_contact/primitives/edge2.cpp index fd3870e02..60e8f52e4 100644 --- a/src/ipc/smooth_contact/primitives/edge2.cpp +++ b/src/ipc/smooth_contact/primitives/edge2.cpp @@ -13,11 +13,16 @@ Edge2::Edge2( { m_vertex_ids = { { mesh.edges()(id, 0), mesh.edges()(id, 1) } }; - m_is_active = (mesh.is_orient_vertex(m_vertex_ids[0]) - && mesh.is_orient_vertex(m_vertex_ids[1])) - || Math::cross2( - d, vertices.row(m_vertex_ids[1]) - vertices.row(m_vertex_ids[0])) + if (mesh.is_orient_vertex(m_vertex_ids[0]) + && mesh.is_orient_vertex(m_vertex_ids[1])) { + m_is_active = + Math::cross2( + d, + vertices.row(m_vertex_ids[1]) - vertices.row(m_vertex_ids[0])) > 0; + } else { + m_is_active = true; + } } int Edge2::n_vertices() const { return N_EDGE_NEIGHBORS_2D; }