package electrosphere.renderer.light; import org.joml.Vector3f; /** * Data about a point light */ public class PointLight { Vector3f position; float constant; float linear; float quadratic; Vector3f ambient; Vector3f diffuse; Vector3f specular; public void setPosition(Vector3f position) { this.position = position; } public void setConstant(float constant) { this.constant = constant; } public void setLinear(float linear) { this.linear = linear; } public void setQuadratic(float quadratic) { this.quadratic = quadratic; } public void setAmbient(Vector3f ambient) { this.ambient = ambient; } public void setDiffuse(Vector3f diffuse) { this.diffuse = diffuse; } public void setSpecular(Vector3f specular) { this.specular = specular; } public Vector3f getPosition() { return position; } public float getConstant() { return constant; } public float getLinear() { return linear; } public float getQuadratic() { return quadratic; } public Vector3f getAmbient() { return ambient; } public Vector3f getDiffuse() { return diffuse; } public Vector3f getSpecular() { return specular; } public PointLight(Vector3f position){ this.position = position; constant = 1.0f; linear = 0.01f; quadratic = 0.01f; ambient = new Vector3f(0.05f, 0.05f, 0.05f); diffuse = new Vector3f(0.8f, 0.8f, 0.8f); specular = new Vector3f(1.0f, 1.0f, 1.0f); this.position.normalize(); ambient.normalize(); diffuse.normalize(); specular.normalize(); } public PointLight(Vector3f position, Vector3f color){ this.position = position; constant = 1.0f; linear = 0.01f; quadratic = 0.01f; ambient = new Vector3f(color.x * 0.05f, color.y * 0.05f, color.z * 0.05f); diffuse = new Vector3f(color.x * 0.8f, color.y * 0.8f, color.z * 0.8f); specular = new Vector3f(color.x, color.y, color.z); this.position.normalize(); ambient.normalize(); diffuse.normalize(); specular.normalize(); } }