From 82cdea57b0650db4e4e8aec24a813ca758991b54 Mon Sep 17 00:00:00 2001 From: Firemark Date: Mon, 27 Mar 2017 23:56:45 +0200 Subject: [PATCH 1/4] add keyed arguments to vapory objects --- vapory/vapory.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/vapory/vapory.py b/vapory/vapory.py index 99f99eb..aa36b3d 100644 --- a/vapory/vapory.py +++ b/vapory/vapory.py @@ -1,5 +1,6 @@ import webbrowser # <= to open the POVRay help from copy import deepcopy +from itertools import chain import re from .io import render_povstring @@ -50,9 +51,8 @@ def set_camera(self, new_camera): return new def add_objects(self, objs): - new = self.copy() - new.objects += objs + new.objects += objs return new def render(self, outfile=None, height=None, width=None, @@ -88,8 +88,11 @@ def render(self, outfile=None, height=None, width=None, class POVRayElement: - def __init__(self, *args): - self.args = list(args) + def __init__(self, *args, **kwargs): + args = list(args) + # flat key arguments - Obj(value='x') -> Obj('value', 'x') + args += list(chain.from_iterable(kwargs.items())) + self.args = args def copy(self): return deepcopy(self) From f8da385a3075a546e5303a2bd1fb90354d58a3f6 Mon Sep 17 00:00:00 2001 From: Firemark Date: Tue, 28 Mar 2017 00:09:14 +0200 Subject: [PATCH 2/4] add alpha to render and additional args --- vapory/io.py | 7 ++++++- vapory/vapory.py | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/vapory/io.py b/vapory/io.py index 62f6c27..f86c0ee 100644 --- a/vapory/io.py +++ b/vapory/io.py @@ -54,7 +54,8 @@ def ppm_to_numpy(filename=None, buffer=None, byteorder='>'): def render_povstring(string, outfile=None, height=None, width=None, quality=None, antialiasing=None, remove_temp=True, - show_window=False, tempfile=None, includedirs=None): + show_window=False, tempfile=None, includedirs=None, + alpha=None, additional_args=None): """ Renders the provided scene description with POV-Ray. @@ -108,6 +109,10 @@ def render_povstring(string, outfile=None, height=None, width=None, cmd.append('+L%s'%dir) cmd.append("Output_File_Type=%s"%format_type) cmd.append("+O%s"%outfile) + if alpha: + cmd.append("Output_Alpha=on") + + cmd += additional_args or [] process = subprocess.Popen(cmd, stderr=subprocess.PIPE, stdin=subprocess.PIPE, stdout=subprocess.PIPE) diff --git a/vapory/vapory.py b/vapory/vapory.py index aa36b3d..27f5aa8 100644 --- a/vapory/vapory.py +++ b/vapory/vapory.py @@ -58,7 +58,7 @@ def add_objects(self, objs): def render(self, outfile=None, height=None, width=None, quality=None, antialiasing=None, remove_temp=True, auto_camera_angle=True, show_window=False, tempfile=None, - includedirs=None): + includedirs=None, alpha=None, additional_args=None): """ Renders the scene to a PNG, a numpy array, or the IPython Notebook. @@ -84,7 +84,9 @@ def render(self, outfile=None, height=None, width=None, return render_povstring(str(self), outfile, height, width, quality, antialiasing, remove_temp, show_window, - tempfile, includedirs) + tempfile, includedirs, + alpha=alpha, + additional_args=additional_args) class POVRayElement: From f33ef79f48c3e3eac3711624d9ff058d09b4169e Mon Sep 17 00:00:00 2001 From: Firemark Date: Tue, 28 Mar 2017 00:22:05 +0200 Subject: [PATCH 3/4] change version and add os environ to detect povray program --- vapory/config.py | 4 +++- vapory/version.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/vapory/config.py b/vapory/config.py index 4a45def..ff720ce 100644 --- a/vapory/config.py +++ b/vapory/config.py @@ -1,6 +1,8 @@ import os -POVRAY_BINARY = ("povray.exe" if os.name=='nt' else "povray") +POVRAY_BINARY = os.environ.get('POVRAY_BINARY') or ( + "povray.exe" if os.name == 'nt' else "povray" +) GLOBAL_SCENE_SETTINGS = { "charset" : "ascii", diff --git a/vapory/version.py b/vapory/version.py index faa7b74..ff4ba4c 100644 --- a/vapory/version.py +++ b/vapory/version.py @@ -1 +1 @@ -__version__ = "0.1.01" +__version__ = "0.1.02" From 6a72f1704ea59d5eea6d70bee7de62beacf0d523 Mon Sep 17 00:00:00 2001 From: Firemark Date: Sun, 23 Apr 2017 19:27:23 +0200 Subject: [PATCH 4/4] add defaults --- vapory/vapory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vapory/vapory.py b/vapory/vapory.py index 27f5aa8..6f60955 100644 --- a/vapory/vapory.py +++ b/vapory/vapory.py @@ -38,7 +38,7 @@ def __str__(self): global_settings = ["global_settings{\n%s\n}"%("\n".join( [str(e) for e in self.global_settings]))] return '\n'.join([str(e) - for l in [included, declares, self.objects, [self.camera], + for l in [included, declares, defaults, self.objects, [self.camera], self.atmospheric, global_settings] for e in l])