diff options
Diffstat (limited to 'light_field_tools/__init__.py')
-rw-r--r-- | light_field_tools/__init__.py | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/light_field_tools/__init__.py b/light_field_tools/__init__.py new file mode 100644 index 00000000..862c399b --- /dev/null +++ b/light_field_tools/__init__.py @@ -0,0 +1,119 @@ +# ##### BEGIN GPL LICENSE BLOCK ##### +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ##### END GPL LICENSE BLOCK ##### + + +bl_info = { + 'name': 'Light Field Tools', + 'author': 'Aurel Wildfellner', + 'description': 'Tools to create a light field camera and projector', + 'version': (0, 2, 1), + 'blender': (2, 5, 7), + 'api': 36103, + 'location': 'View3D > Tool Shelf > Light Field Tools', + 'url': 'http://www.jku.at/cg/', + "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/Render/Light_Field_Tools", + "tracker_url": "http://projects.blender.org/tracker/index.php?func=detail&aid=25719", + 'category': 'Render' +} + + +if "bpy" in locals(): + import imp + imp.reload(light_field_tools) +else: + from . import light_field_tools + + +import bpy +from bpy.props import * + + +# global properties for the script, mainly for UI +class LightFieldPropertyGroup(bpy.types.PropertyGroup): + angle = FloatProperty( + name="Angle", + # 40 degrees + default=0.69813170079, + min=0, + # 172 degrees + max=3.001966313430247, + precision=2, + subtype = 'ANGLE', + description="Field of view of camera and angle of beam for spotlights") + row_length = IntProperty( + name="Row Length", + default=1, + min=1, + description="The number of cameras/lights in one row") + create_handler = BoolProperty( + name="Handler", + default=True, + description="Creates an empty object, to which the cameras and spotlights are parented to") + do_camera = BoolProperty( + name="Create Camera", + default=True, + description="A light field camera is created") + animate_camera = BoolProperty( + name="Animate Camera", + default=True, + description="Animates a single camera, so not multiple cameras get created") + do_projection = BoolProperty( + name="Create Projector", + default=False, + description="A light field projector is created") + texture_path = StringProperty( + name="Texture Path", + description="From this path textures for the spotlights will be loaded", + subtype='DIR_PATH') + light_intensity = FloatProperty( + name="Light Intensity", + default=2, + min=0, + precision=3, + description="Total intensity of all lamps") + # blending of the spotlights + spot_blend = FloatProperty( + name="Blend", + default=0, + min=0, + max=1, + precision=3, + description="Blending of the spotlights") + # spacing in pixels on the focal plane + spacing = IntProperty( + name="Spacing", + default=10, + min=0, + description="The spacing in pixels between two cameras on the focal plane") + + + +def register(): + # register properties + bpy.utils.register_class(LightFieldPropertyGroup) + bpy.types.Scene.lightfield = bpy.props.PointerProperty(type=LightFieldPropertyGroup) + bpy.utils.register_module(__name__) + + +def unregister(): + bpy.utils.unregister_module(__name__) + + +if __name__ == "__main__": + register() + |