int RawModel::AddLight()

in src/raw/RawModel.cpp [197:227]


int RawModel::AddLight(
    const char* name,
    const RawLightType lightType,
    const Vec3f color,
    const float intensity,
    const float innerConeAngle,
    const float outerConeAngle) {
  for (size_t i = 0; i < lights.size(); i++) {
    if (lights[i].name != name || lights[i].type != lightType) {
      continue;
    }
    // only care about cone angles for spot
    if (lights[i].type == RAW_LIGHT_TYPE_SPOT) {
      if (lights[i].innerConeAngle != innerConeAngle ||
          lights[i].outerConeAngle != outerConeAngle) {
        continue;
      }
    }
    return (int)i;
  }
  RawLight light{
      name,
      lightType,
      color,
      intensity,
      innerConeAngle,
      outerConeAngle,
  };
  lights.push_back(light);
  return (int)lights.size() - 1;
}