diff options
Diffstat (limited to 'libdimension-python/tests/demo.py')
-rwxr-xr-x | libdimension-python/tests/demo.py | 134 |
1 files changed, 5 insertions, 129 deletions
diff --git a/libdimension-python/tests/demo.py b/libdimension-python/tests/demo.py index e4e1e14..307aafc 100755 --- a/libdimension-python/tests/demo.py +++ b/libdimension-python/tests/demo.py @@ -19,6 +19,8 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # ######################################################################### +import os +import os.path from math import * from dimension import * @@ -37,135 +39,9 @@ except OSError as e: else: raise -# Camera -camera = PerspectiveCamera(location = (0, 0.25, -4), - look_at = 0) -camera.transform(rotate(53*Y)) - -# Lights -lights = [ - PointLight(location = (-15, 20, 10), color = White), -] - -# Objects - -hollow_cube = Difference( - [ - Box( - (-1, -1, -1), (1, 1, 1), - - texture = Texture( - pigment = Color(0, 0, 1, trans = 0.75, filter = 1/3), - finish = Reflection(0.5), - ), - interior = Interior( - ior = 1.1, - ), - ) - .transform(rotate(45*X)), - - Sphere( - center = 0, radius = 1.25, - texture = Texture( - pigment = Green, - finish = Phong(strength = 0.2, size = 40), - ), - ) - ], -) - -arrow = Union( - [ - Cylinder(bottom = -1.25*Y, top = 1.25*Y, radius = 0.1), - Cone( - bottom = 1.25*Y, bottom_radius = 0.1, - top = 1.5*Y, top_radius = 0, - open = True - ), - ], - pigment = ColorMap( - Gradient(Y), - { - 0/6: Red, - 1/6: Orange, - 2/6: Yellow, - 3/6: Green, - 4/6: Blue, - 5/6: Magenta, - 6/6: Red, - }, - ) - .transform(scale(1, 2.75, 1)) - .transform(translate(-1.25*Y)), -) - -torii = Union( - [ - Torus(major_radius = 0.15, minor_radius = 0.05) - .transform(translate(-Y)), - - Torus(major_radius = 0.15, minor_radius = 0.05), - - Torus(major_radius = 0.15, minor_radius = 0.05) - .transform(translate(Y)), - ], - texture = Texture( - pigment = Blue, - finish = Ambient(1), - ), -) - -spike = Union([arrow, torii]).transform(rotate(-45*X)) - -strip_textures = [ - Texture(pigment = Red), - Texture(pigment = Orange), - Texture(pigment = Yellow), -] -strip_triangles = [] - -a = 0 -b = Vector(0, sqrt(3)/2, 0.5) -c = Z -for i in range(128): - strip_triangles.append(Triangle(a, b, c, texture = strip_textures[i%3])) - a = b - b = c - c = a + Z - -strip = Union(strip_triangles).transform(translate(5, -2, -4)) - -ground = Plane( - normal = Y, distance = -2, - - pigment = PigmentMap( - Checker(), - [ - White, - ColorMap(Checker(), [Black, White]).transform(scale(1/3)) - ], - ), -) - -objects = [ - hollow_cube, - spike, - strip, - ground, -] - -# Sky sphere -sky_sphere = SkySphere( - [ - ColorMap( - pattern = Gradient(Y), - map = { - 0: Orange, - 0.35: Color(0, 0.1, 0.2, trans = 0.1, filter = 0.0), - }, - ), - ] -) +path = os.path.join(os.environ["top_srcdir"], "dimension/tests/demo.dmnsn") +with open(path) as fh: + exec(compile(fh.read(), path, "exec")) # Scene scene = Scene(canvas = canvas, |