Add serialize methods to lights and rays
[tabakrolletjie.git] / tabakrolletjie / rays.py
index a475d8fb27bb6c680a90555cad7dc2a4f6043954..8b532784a46a80e97f354cb9686b6161fe2bbe8b 100644 (file)
@@ -129,6 +129,20 @@ class RayPolyManager(object):
     def min_radius(self, value):
         self._min_radius = value or 0.0
 
+    def serialize(self):
+        """ Return the required information from the ray_manager """
+        if self._direction is None:
+            direction = None
+            spread = None
+        else:
+            direction = self._direction.angle_degrees
+            spread = math.degrees(self.spread)
+        return {
+            "radius_limits": (self._min_radius, self._max_radius),
+            "direction": direction,
+            "spread": spread,
+        }
+
     def reaches(self, position):
         distance = self.position.get_distance(position)
         return (self._min_radius <= distance <= self._max_radius)