Removal of "found" Assertion in SoTransformerDragger::dragStart()
Original report by Anonymous.
When working with multiple SoSelections, Manips and Draggers it can be quite frustrating when everything crashes because of this failed assertion. In my opinion an warning & continue approach would be much more appropriate. Thank you
#!shell
SoTransformerDragger.cpp:1187: void SoTransformerDragger::dragStart(): Assertion `found' failed.
Aborted
Original comment by Bastiaan Veelo (Bitbucket: veelo, GitHub: veelo).
Strictly speaking, a failing assertion is not the same as a crash. On the contrary, removing an assertion can result in a crash if the following code relies on assumptions that the assertion was meant to verify. That may not be the case here, but it is tricky territory. Have you tried removing the assertion? What happens then? And what value is there in continuing with a warning? Would things work as intended at all? (Compiling your project in release mode will probably skip the assertion, so you can see what happens that way.)
Note that working with multiple SoSelections is not recommended per the documentation. Are you sure that what you are trying to accomplish is only possible with multiple nodes? If yes, have you taken all necessary precautions that come with that?
If all that applies, we would probably need a test scene and instructions for how to reproduce the assertion failure to make sure that things won't break if we change the assertion into a warning, before we can commit such a change.
Thanks, Bastiaan.