// draw headlights at night void Car::drawAfter(DrawingState* s) { int tod = s->timeOfDay; bool daytime; if (tod >=6 && tod <= 19) daytime = true; else daytime = false; if (!daytime) { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_DST_ALPHA); // Beam One glPushMatrix(); glTranslatef(-w*.7f,h+m/2,2); glRotated(90,1,0,0); drawBeam(); glPopMatrix(); // Beam 2 glPushMatrix(); glTranslatef(w*.7f,h+m/2,2); glRotated(90,1,0,0); drawBeam(); glPopMatrix(); glFrontFace(GL_CW); glClearColor(1,1,1,1); glDisable(GL_BLEND); } }
void SplineEdge::draw() const{ int edges_count = spline_point.size() - 1; glBegin(GL_QUAD_STRIP); for(int i=0;i<edges_count;i++) { drawBeam(spline_point[i], spline_colour[i], spline_point[i+1], spline_colour[i+1], 2.5, i==0); } glEnd(); }
void SplineEdge::drawShadow() const{ int edges_count = spline_point.size() - 1; vec2f offset(2.0, 2.0); glBegin(GL_QUAD_STRIP); for(int i=0;i<edges_count;i++) { drawBeam(spline_point[i] + offset, vec4f(0.0, 0.0, 0.0, gGourceShadowStrength), spline_point[i+1] + offset, vec4f(0.0, 0.0, 0.0, gGourceShadowStrength), 2.5, i==0); } glEnd(); }
void KamehamehaRenderer::draw() { m_kkhStatus->currentIntensity = getCurrentIntensity(); if (!m_active) { return; } float t = m_ticker.tick(); m_rctx->modelViewMatrix.PushMatrix(); { float length = getCurrentLength(); float radius = getCurrentRadius(); GLFrame f; f.SetOrigin(XV3toM3D(m_origin + m_forward * length)); f.SetForwardVector(XV3toM3D(-m_forward)); m_rctx->modelViewMatrix.MultMatrix(f); float planeColor[] = { 0.95f, 1.0f, 1.0f, 1.5f }; glUseProgram(s_shaderID); glUniformMatrix4fv(glGetUniformLocation(s_shaderID, "mvMatrix"), 1, GL_FALSE, m_rctx->transform.GetModelViewMatrix()); glUniformMatrix4fv(glGetUniformLocation(s_shaderID, "pMatrix"), 1, GL_FALSE, m_rctx->transform.GetProjectionMatrix()); glUniform4fv(glGetUniformLocation(s_shaderID, "vColor"), 1, planeColor); drawBeam(radius, length); //glutSolidSphere(radius, 64, 64); } m_rctx->modelViewMatrix.PopMatrix(); if (t > m_lifeTime) { m_active = false; } drawIntensityText(); }