From ef2dc900fe785e0b976ddee3fed4335f3edc76aa Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Fri, 5 Mar 2010 21:01:17 +0000 Subject: [PATCH] Draw sleepers on sloped track --- src/SlopeTrack.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/SlopeTrack.cpp b/src/SlopeTrack.cpp index 5e7751c..0a3d762 100644 --- a/src/SlopeTrack.cpp +++ b/src/SlopeTrack.cpp @@ -114,7 +114,27 @@ void SlopeTrack::render() const glRotatef(-90.0f, 0.0f, 1.0f, 0.0f); renderRailMesh(railMesh); - + + // Draw the sleepers + glTranslatef(-0.5f, 0.0f, 0.0f); + + for (float t = 0.1f; t < 1.0f; t += 0.25f) { + const Vector curveValue = curve(t); + + const Vector deriv = curve.deriv(t); + const float angle = + radToDeg(atanf(deriv.y / deriv.x)); + + glPushMatrix(); + + glTranslatef(curveValue.x, curveValue.y, 0.0f); + glRotatef(angle, 0.0f, 0.0f, 1.0f); + + renderSleeper(); + + glPopMatrix(); + } + glPopMatrix(); } -- 2.39.2