From 751a2d391bfcba238abd0ba9037f7f1cf12896c3 Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Sat, 6 Feb 2010 11:17:09 +0000 Subject: [PATCH] Draw an arrow on points --- src/Points.cpp | 27 +++++++++++++++++++++++++++ src/Train.cpp | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/Points.cpp b/src/Points.cpp index 3f93d93..7f33fdd 100644 --- a/src/Points.cpp +++ b/src/Points.cpp @@ -46,6 +46,7 @@ public: private: void transform(const track::TravelToken& aToken, double aDelta) const; void ensureValidDirection(track::Direction aDirection) const; + void renderArrow() const; Point displacedEndpoint() const; Point straightEndpoint() const; @@ -76,6 +77,28 @@ Points::Points(track::Direction aDirection, bool reflect) } +void Points::renderArrow() const +{ + glPushMatrix(); + glPushAttrib(GL_ENABLE_BIT); + + glTranslatef(0.0f, 0.1f, 0.0f); + + //glDisable(GL_CULL_FACE); + + glEnable(GL_BLEND); + glColor4f(0.0f, 0.1f, 0.8f, 0.6f); + glBegin(GL_QUADS); + glVertex3f(-0.5f, 0.0f, 0.1f); + glVertex3f(0.5f, 0.0f, 0.1f); + glVertex3f(0.5f, 0.0f, -0.1f); + glVertex3f(-0.5f, 0.0f, -0.1f); + glEnd(); + + glPopAttrib(); + glPopMatrix(); +} + void Points::render() const { static IMeshPtr railMesh = makeBezierRailMesh(myCurve); @@ -123,13 +146,17 @@ void Points::render() const } // Draw the straight sleepers + glPushMatrix(); glTranslatef(-0.4f, 0.0f, 0.0f); for (int i = 0; i < 12; i++) { renderSleeper(); glTranslatef(0.25f, 0.0f, 0.0f); } + glPopMatrix(); + renderArrow(); + glPopMatrix(); } diff --git a/src/Train.cpp b/src/Train.cpp index 845a627..2078e68 100644 --- a/src/Train.cpp +++ b/src/Train.cpp @@ -338,7 +338,7 @@ void Train::update(int aDelta) velocityVector = partPosition(engine()) - oldPos; - dumpFollowQueue(); + //dumpFollowQueue(); } // Called when the train enters a new segment -- 2.39.2