// Copyright 2011 Riccardo Monica

#version 120

attribute float matshininess;
attribute vec3 matspecular;

varying float vmatshininess;
varying vec3 vmatspecular;

varying vec3 veyeposition;
varying vec3 vnormal;

void main()
  {
  vnormal = gl_NormalMatrix * gl_Normal;
  
  vec4 rp = gl_ModelViewMatrix * gl_Vertex;                              
  veyeposition = rp.xyz / rp.w;    // get cartesian coordinates
  
  gl_FrontColor = gl_Color;
  gl_BackColor = vec4(0.0,0.0,0.0,1.0);
  gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
  
  vmatspecular = matspecular;
  vmatshininess = matshininess;
  }
