From e09d638bc588de644e12d2b2957765b516bdd960 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Fri, 31 May 2013 16:31:58 +0200 Subject: [PATCH] Triangle: slightly improve point-in-hole heuristic --- jni/triangle/TriangleJni.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jni/triangle/TriangleJni.c b/jni/triangle/TriangleJni.c index 7d550874..f73d049b 100644 --- a/jni/triangle/TriangleJni.c +++ b/jni/triangle/TriangleJni.c @@ -181,8 +181,8 @@ jint Java_org_oscim_renderer_sublayers_ExtrusionLayer_triangulate(JNIEnv *env, j float ux = -vy / a; float uy = vx / a; - float centerx = cx + vx / 2 - ux; - float centery = cy + vy / 2 - uy; + float centerx = cx + vx / 2.0 - (ux * 0.1); + float centery = cy + vy / 2.0 - (uy * 0.1); *hole++ = centerx; *hole++ = centery; @@ -253,6 +253,7 @@ jint Java_org_oscim_renderer_sublayers_ExtrusionLayer_triangulate(JNIEnv *env, j triangulate(&opt, &in, &out, (TriangleIO *) NULL); if (in.numberofpoints < out.numberofpoints) { + // TODO rerun with 'nonodewritten = 0' printf( "polygon input is bad! points in:%d out%d\n", in.numberofpoints, out.numberofpoints); out.numberoftriangles = 0; }