#ifdef GL_ES
precision highp float;
#endif
varying vec4 vTransformedNormal;
varying vec4 vPosition;

uniform vec4 uDiffuseColor;
uniform vec3 uAmbientColor;

uniform vec3 uPointLightingLocation;
uniform vec3 uPointLightingDiffuseColor;

void main(void) {
    vec3 lightDirection = normalize(uPointLightingLocation - vPosition.xyz);
    vec3 normal = normalize(vTransformedNormal.xyz);

    float diffuseLightWeighting = max(dot(normal, lightDirection), 0.0);
    vec3 lightWeighting = uAmbientColor + uPointLightingDiffuseColor * diffuseLightWeighting;

    gl_FragColor = vec4(uDiffuseColor.rgb * lightWeighting, uDiffuseColor.a);
}
