calculateLights method

void calculateLights(
  1. List<Light> lights
)

Implementation

void calculateLights(List<Light> lights) {
  _ambientLight.setRGB(0, 0, 0);
  _directionalLights.setRGB(0, 0, 0);
  _pointLights.setRGB(0, 0, 0);

  for (int l = 0; l < lights.length; l++) {
    Light light = lights[l];
    Color lightColor = light.color ?? Color();

    if (light is AmbientLight) {
      _ambientLight.r += lightColor.r;
      _ambientLight.g += lightColor.g;
      _ambientLight.b += lightColor.b;
    } else if (light is DirectionalLight) {
      _directionalLights.r += lightColor.r;
      _directionalLights.g += lightColor.g;
      _directionalLights.b += lightColor.b;
    } else if (light is PointLight) {
      _pointLights.r += lightColor.r;
      _pointLights.g += lightColor.g;
      _pointLights.b += lightColor.b;
    }
  }
}