From 4557b6aa22d93ecf76db34005363731d549160ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Schmith=C3=BCsen?= Date: Tue, 9 Jul 2019 16:55:55 +0200 Subject: [PATCH] fix spot light parsingg --- tiny_gltf.h | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/tiny_gltf.h b/tiny_gltf.h index f5556c8..e199348 100644 --- a/tiny_gltf.h +++ b/tiny_gltf.h @@ -3699,22 +3699,12 @@ static bool ParsePerspectiveCamera(PerspectiveCamera *camera, std::string *err, static bool ParseSpotLight(SpotLight *light, std::string *err, const json &o) { - double innerConeAngle = 0.0; - if (!ParseNumberProperty(&innerConeAngle, err, o, "innerConeAngle", true, "SpotLight")) { - return false; - } - - double outerConeAngle = 0.0; - if (!ParseNumberProperty(&outerConeAngle, err, o, "outerConeAngle", true, "SpotLight")) { - return false; - } + ParseNumberProperty(&light->innerConeAngle, err, o, "innerConeAngle", false); + ParseNumberProperty(&light->outerConeAngle, err, o, "outerConeAngle", false); ParseExtensionsProperty(&light->extensions, err, o); ParseExtrasProperty(&light->extras, o); - light->innerConeAngle = innerConeAngle; - light->outerConeAngle = outerConeAngle; - // TODO(syoyo): Validate parameter values. return true; @@ -3826,7 +3816,11 @@ static bool ParseCamera(Camera *camera, std::string *err, const json &o) { } static bool ParseLight(Light *light, std::string *err, const json &o) { - if (light->type.compare("spot") == 0) { + if (!ParseStringProperty(&light->type, err, o, "type", true)) { + return false; + } + + if (light->type == "spot") { if (o.find("spot") == o.end()) { if (err) { std::stringstream ss; @@ -3853,7 +3847,6 @@ static bool ParseLight(Light *light, std::string *err, const json &o) { ParseStringProperty(&light->name, err, o, "name", false); ParseNumberArrayProperty(&light->color, err, o, "color", false); - ParseStringProperty(&light->type, err, o, "type", true); ParseNumberProperty(&light->range, err, o, "range", false); ParseNumberProperty(&light->intensity, err, o, "intensity", false); ParseExtensionsProperty(&light->extensions, err, o);