// Copyright 2011 Riccardo Monica

#version 120
#extension GL_EXT_geometry_shader4: enable

varying out float gmatshininess;
varying out vec3 gmatspecular;
varying out vec3 geyeposition;
varying out vec3 gnormal;

varying in float vmatshininess[3];
varying in vec3 vmatspecular[3];
varying in vec3 veyeposition[3];

vec3 ComputeNormal(in vec3 v1,in vec3 v2,in vec3 v3);

void main()
  {
  gnormal = ComputeNormal(veyeposition[0],veyeposition[1],veyeposition[2]);
  
  for (int i = 0; i < 3; i++)
    {
    gl_FrontColor = gl_FrontColorIn[i];
    gl_BackColor = gl_BackColorIn[i];
    gl_Position = gl_PositionIn[i];
	
	gmatshininess = vmatshininess[i];
	gmatspecular = vmatspecular[i];
	geyeposition = veyeposition[i];
	
    EmitVertex();
    }
    
  EndPrimitive();
  }
