Page 1 of 1

Reproducible crash

Posted: Mon Apr 06, 2015 4:52 pm
by rokus
Hi,

when i open the attached rube-file and try to delete the points marked red, RUBE crashes (version 1.7.2, Linux Mint, 64bit).

Regards!

Re: Reproducible crash

Posted: Tue Apr 07, 2015 1:25 pm
by iforce2d
Thanks for the report. Unfortunately this crash seems be an issue with the poly2tri library which is not yet resolved. I'm hoping to add support for another polygon decomposition lib in future which does not have this issue, but in the meantime we'll need to work around it.

I notice that you have a lot of colinear vertices, and also some coincident vertices, both of which play havoc with Box2D and are meaningless when creating a physics body. My recommendation would be simply to delete them. However, since deleting them a few at a time can trigger the crash, we need to get rid of them all at once before letting the polygon decomposition run. You can use this script to select all colinear vertices:

Code: Select all

vertex[] vs = sf()[0].getVertices();
for (uint i = 2; i < vs.length; i++) {
	vertex v0 = vs[i-2];
	vertex v1 = vs[i-1];
	vertex v2 = vs[i];
	vec2 d0 = v1.pos - v0.pos;
	vec2 d1 = v2.pos - v1.pos;
	d0.normalize();
	d1.normalize();
	if ( d0.dot(d1) > 0.999 )
		v1.select();
}
To use this, open your scene, paste that into the script panel, select the fixture and run the script. You should then see all the offending vertices selected, and you can delete them in one go. After that you should be able to delete the points marked in red without triggering the crash.

It looks like you may have been drawing this shape to use for some kind of artistic layout rather than for physics, because some vertices are in exactly the same place. This will cause problems for polygon decomposition, so you might want to use 'loop' shapes instead for that type of thing.

Re: Reproducible crash

Posted: Thu Apr 09, 2015 7:08 pm
by rokus
Thank you for your answer. I imported the vertices with a script, thank you for your script to select the problematic vertices all at once.