Re: [AD] Triangulator broken

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


On 2011-03-13, at 1:13 AM, Trent Gamblin wrote:
> I ran into this bug in the polygon triangulator. Due to the way it's written,
> I think it may be a difficult fix, but maybe Michal would be able to do it more
> easily... Here's the situation.
[snip]

Here's a test program with some data that I used. You'll need to set POLY_DEBUG
in triangulator.c to 1 for this to work. The problem hole is the last one in
the data here (splits are marked with -1, -1). If you remove that it triangulates
correctly.

Trent
outline0 = {
	2,
	1087, 1510,
	1476, 1511,
	1475, 1407,
	1409, 1408,
	1410, 1341,
	1474, 1340,
	1474, 770,
	1404, 770,
	1404, 738,
	1472, 740,
	1472, 513,
	1408, 513,
	1408, 481,
	1472, 481,
	1472, 209,
	1308, 209,
	1307, 193,
	896, 193,
	896, 423,
	1217, 423,
	1217, 472,
	1281, 473,
	1280, 511,
	896, 511,
	896, 447,
	832, 447,
	832, 255,
	704, 255,
	704, 447,
	641, 447,
	641, 511,
	577, 511,
	577, 479,
	626, 479,
	627, 390,
	639, 391,
	639, 192,
	65, 195,
	65, 384,
	388, 383,
	387, 479,
	448, 480,
	448, 511,
	63, 510,
	64, 726,
	257, 726,
	258, 771,
	64, 770,
	63, 1307,
	319, 1307,
	319, 1343,
	140, 1343,
	141, 1390,
	194, 1391,
	193, 1407,
	128, 1407,
	129, 1343,
	64, 1344,
	64, 1509,
	512, 1509,
	512, 1342,
	448, 1342,
	448, 1310,
	512, 1310,
	512, 766,
	384, 766,
	384, 734,
	704, 734,
	704, 766,
	832, 766,
	832, 734,
	1281, 733,
	1281, 765,
	1089, 765,
	1089, 925,
	1153, 925,
	1153, 957,
	1089, 957,
	1090, 1033,
	1154, 1034,
	1155, 1088,
	1087, 1089,
	1087, 1249,
	1347, 1248,
	1346, 1279,
	1088, 1280,
	-1, -1,
	470, 1450,
	470, 1425,
	493, 1425,
	493, 1450,
	-1, -1,
	396, 1173,
	382, 1114,
	436, 1102,
	452, 1160,
	-1, -1,
	140, 1174,
	126, 1117,
	181, 1102,
	196, 1161,
	-1, -1,
	266, 1045,
	254, 987,
	310, 973,
	325, 1029,
	-1, -1,
	139, 917,
	126, 860,
	180, 845,
	196, 904,
	-1, -1,
	397, 918,
	378, 859,
	436, 845,
	452, 901,
	-1, -1,
	130, 316,
	129, 264,
	194, 264,
	195, 317,
	-1, -1,
	126, 253,
	127, 202,
	195, 200,
	194, 250,
	-1, -1,
	257, 253,
	257, 201,
	321, 201,
	320, 250,
	-1, -1,
	257, 315,
	257, 263,
	322, 263,
	323, 317,
	-1, -1,
	385, 318,
	384, 265,
	448, 264,
	448, 316,
	-1, -1,
	385, 251,
	384, 201,
	449, 200,
	448, 254,
	-1, -1,
	513, 252,
	513, 199,
	576, 200,
	576, 250,
	-1, -1,
	513, 317,
	512, 262,
	577, 264,
	578, 316,
	-1, -1,
	1342, 220,
	1367, 220,
	1367, 246,
	1342, 246,
	-1, -1,
	964, 374,
	964, 328,
	1026, 328,
	1027, 380,
	-1, -1,
	962, 311,
	961, 263,
	1027, 264,
	1026, 316,
	-1, -1,
	966, 249,
	966, 199,
	1026, 199,
	1026, 250,
	-1, -1,
	1087, 251,
	1086, 200,
	1152, 199,
	1151, 251,
	-1, -1,
	1087, 315,
	1087, 262,
	1154, 263,
	1153, 318,
	-1, -1,
	1087, 380,
	1088, 328,
	1153, 328,
	1154, 379,
	-1, -1,
	1215, 379,
	1215, 326,
	1282, 327,
	1281, 379,
	-1, -1,
	1217, 316,
	1217, 262,
	1283, 262,
	1282, 314,
	-1, -1,
	1151, 1146,
	1153, 1095,
	1216, 1095,
	1216, 1144,
	-1, -1,
	1280, 960,
	1280, 928,
	1344, 928,
	1344, 960,
	-1, -1,
	1216, 254,
	1216, 201,
	1281, 200,
	1281, 252,
	-1, -1,
}

Attachment: draw_poly.cpp
Description: Binary data



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/