diff options
Diffstat (limited to 'io_scene_gltf2/io/com/gltf2_io_lights_punctual.py')
-rw-r--r-- | io_scene_gltf2/io/com/gltf2_io_lights_punctual.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/io_scene_gltf2/io/com/gltf2_io_lights_punctual.py b/io_scene_gltf2/io/com/gltf2_io_lights_punctual.py new file mode 100644 index 00000000..3dc8704c --- /dev/null +++ b/io_scene_gltf2/io/com/gltf2_io_lights_punctual.py @@ -0,0 +1,76 @@ +# Copyright 2018 The glTF-Blender-IO authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from io_scene_gltf2.io.com.gltf2_io import * + + +class LightSpot: + """light/spot""" + def __init__(self, inner_cone_angle, outer_cone_angle): + self.inner_cone_angle = inner_cone_angle + self.outer_cone_angle = outer_cone_angle + + @staticmethod + def from_dict(obj): + assert isinstance(obj, dict) + inner_cone_angle = from_union([from_float, from_none], obj.get("innerConeAngle")) + outer_cone_angle = from_union([from_float, from_none], obj.get("outerConeAngle")) + return LightSpot(inner_cone_angle, outer_cone_angle) + + def to_dict(self): + result = {} + result["innerConeAngle"] = from_union([from_float, from_none], self.inner_cone_angle) + result["outerConeAngle"] = from_union([from_float, from_none], self.outer_cone_angle) + return result + + +class Light: + """defines a set of lights for use with glTF 2.0. Lights define light sources within a scene""" + def __init__(self, color, intensity, spot, type, range, name, extensions, extras): + self.color = color + self.intensity = intensity + self.spot = spot + self.type = type + self.range = range + self.name = name + self.extensions = extensions + self.extras = extras + + @staticmethod + def from_dict(obj): + assert isinstance(obj, dict) + color = from_union([lambda x: from_list(from_float, x), from_none], obj.get("color")) + intensity = from_union([from_float, from_none], obj.get("intensity")) + spot = LightSpot.from_dict(obj.get("spot")) + type = from_str(obj.get("type")) + range = from_union([from_float, from_none], obj.get("range")) + name = from_union([from_str, from_none], obj.get("name")) + extensions = from_union([lambda x: from_dict(lambda x: from_dict(lambda x: x, x), x), from_none], + obj.get("extensions")) + extras = obj.get("extras") + return Light(color, intensity, spot, type, range, name, extensions, extras) + + def to_dict(self): + result = {} + result["color"] = from_union([lambda x: from_list(to_float, x), from_none], self.color) + result["intensity"] = from_union([from_float, from_none], self.intensity) + result["spot"] = from_union([lambda x: to_class(LightSpot, x), from_none], self.spot) + result["type"] = from_str(self.type) + result["range"] = from_union([from_float, from_none], self.range) + result["name"] = from_union([from_str, from_none], self.name) + result["extensions"] = from_union([lambda x: from_dict(lambda x: from_dict(lambda x: x, x), x), from_none], + self.extensions) + result["extras"] = self.extras + return result + |