sofa icon indicating copy to clipboard operation
sofa copied to clipboard

[Topology] SegFault removing element using mouse manager

Open epernod opened this issue 2 years ago • 0 comments

Description

Performing mouse picking and removing element using mouse interactor make runSofa crash. Same problem as the one identified in issue #3202

Steps to reproduce Very easy using scene examples/TriangleSurfaceCutting.scn

  1. use pick handler (shift + mouse left)
  2. remove element using shift + mouse right
  3. crash as soon as one vertex is removed, see movie

https://user-images.githubusercontent.com/21199245/194725514-40441983-5fdb-43f1-9bd2-054bdd9aaa5b.mp4

Environment

Context

  • System: any, windows or linux
  • Version of SOFA: master

Logs

Sofa.Component.Topology.Container.Dynamic.dll!sofa::component::topology::container::dynamic::PointSetTopologyContainer::setPointTopologyToDirty() Line 177	C++
 	Sofa.Component.Topology.Container.Dynamic.dll!sofa::component::topology::container::dynamic::PointSetTopologyModifier::removePointsWarning(sofa::type::vector<unsigned int,sofa::type::CPUMemoryManager<unsigned int>> & indices, const bool removeDOF) Line 378	C++
 	Sofa.Component.Topology.Container.Dynamic.dll!sofa::component::topology::container::dynamic::TriangleSetTopologyModifier::removeTrianglesProcess(const sofa::type::vector<unsigned int,sofa::type::CPUMemoryManager<unsigned int>> & indices, const bool removeIsolatedEdges, const bool removeIsolatedPoints) Line 471	C++
 	Sofa.Component.Topology.Container.Dynamic.dll!sofa::component::topology::container::dynamic::TriangleSetTopologyModifier::removeTriangles(const sofa::type::vector<unsigned int,sofa::type::CPUMemoryManager<unsigned int>> & triangleIds, const bool removeIsolatedEdges, const bool removeIsolatedPoints) Line 332	C++
 	Sofa.GUI.Component.dll!sofa::gui::component::performer::TopologicalChangeManager::removeItemsFromTriangleModel(sofa::component::collision::geometry::TriangleCollisionModel<sofa::defaulttype::StdVectorTypes<sofa::type::Vec<3,double>,sofa::type::Vec<3,double>,double>> * model, const sofa::type::vector<unsigned int,sofa::type::CPUMemoryManager<unsigned int>> & indices) Line 161	C++
 	Sofa.GUI.Component.dll!sofa::gui::component::performer::TopologicalChangeManager::removeItemsFromCollisionModel(sofa::core::CollisionModel * model, const sofa::type::vector<unsigned int,sofa::type::CPUMemoryManager<unsigned int>> & indices) Line 422	C++
 	Sofa.GUI.Component.dll!sofa::gui::component::performer::TopologicalChangeManager::removeItemsFromCollisionModel(sofa::core::CollisionModel * model, const unsigned int & indices) Line 414	C++
 	Sofa.GUI.Component.dll!sofa::gui::component::performer::RemovePrimitivePerformer<sofa::defaulttype::StdVectorTypes<sofa::type::Vec<3,double>,sofa::type::Vec<3,double>,double>>::execute() Line 83	C++
 	Sofa.GUI.Component.dll!sofa::gui::component::performer::BaseMouseInteractor::updatePosition(double __formal) Line 86	C++

epernod avatar Oct 08 '22 19:10 epernod