-
Benoît LÉ authored
In TLSGeomInterfaceSignedVectorDistanceFunction, the link-on-front-based modes merging uses an xAttachedDataManagerAOMD (called mode_cut_edge in the code) to store, for each iso-zero node of the Fast Marching mesh, the parent edge (or node) of the computing mesh. This xAttachedDataManagerAOMD is created at the begining of the FM mesh creation, when the iso-zero nodes are copied into the FM mesh. Then the FM mesh is created, and after that the modes are merged. The problem is that during the FM mesh creation, some nodes are merged, which may in some cases delete some mEntity*, which are keys in mode_cut_edge. Before the commit on xMesh::del, it was not a problem, probably because in the previous version, the pointer to mEntity was not deleted after calling xMesh::del. However after this commit the computation abort in mode_cut_edge destructor (probably because we try to call a delete on an mEntity which does not exists anymore). This has been fixed by properly deleting data from mode_cut_edge before deleting the associated key. Also, minor fix when dealing with warped nodes.
4ba05f8e