From 88f499c95bad12ed2d04e1e67ca2c94b7dff8b64 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 17 Jan 2014 18:41:26 +0100 Subject: Debug normalized curve lengths Draw a cone showing every 5% of the track. --- src/RaceTrack.java | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/RaceTrack.java b/src/RaceTrack.java index 0362f9a..5d531f4 100644 --- a/src/RaceTrack.java +++ b/src/RaceTrack.java @@ -191,6 +191,25 @@ class RaceTrack extends BetterBase { "Multiple of three control points required"; } drawTrack(); + + // debugging purposes: show track center and control points + if (debugBezierTracks && selectedControlPoints != null) { + drawCenterLineTrack(selectedControlPoints); + + // show a marker every 5% of the track + double steps = 20; + gl.glPointSize(8); + for (int i = 0; i < steps; i++) { + // alternate colors + setColor(i % 2 == 0 ? Color.MAGENTA : Color.PINK); + Vector p = getPoint(i / steps); + // draw a marker + gl.glPushMatrix(); + gl.glTranslated(p.x(), p.y(), p.z()); + glut.glutSolidCone(0.4, 1.5, 8, 16); + gl.glPopMatrix(); + } + } } /** @@ -408,11 +427,6 @@ class RaceTrack extends BetterBase { point_B = point_D; point_G = point_H; } - - // debugging purposes: show track center and control points - if (debugBezierTracks && selectedControlPoints != null) { - drawCenterLineTrack(selectedControlPoints); - } } /** @@ -428,10 +442,11 @@ class RaceTrack extends BetterBase { // number of "u" units per segment double segment_size = 1.0 / number_of_segments; + gl.glPushMatrix(); // put lines and dots above track - gl.glTranslated(0, 0, 1); + gl.glTranslated(0, 0, 0.5); - gl.glLineWidth(5); + gl.glLineWidth(2); gl.glBegin(GL_LINE_STRIP); for (double i = 0; i <= SEGMENTS; ++i) { double u = i / SEGMENTS; @@ -460,7 +475,7 @@ class RaceTrack extends BetterBase { gl.glEnd(); // restore position - gl.glTranslated(0, 0, -1); + gl.glPopMatrix(); } /** -- cgit v1.2.1