Esempio n. 1
0
// 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);
  }
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
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();
}