summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2011-07-26 09:53:35 -0600
committerTavian Barnes <tavianator@gmail.com>2011-07-26 09:53:35 -0600
commit71be020a5bad61b4899a70c4c0f44a2c747e3657 (patch)
tree6e2251fcc19ba6bb0e66c18b2c903f9bbec2197f
parent6940ad0441911964573b8c39e816eea6daac897e (diff)
downloaddimension-71be020a5bad61b4899a70c4c0f44a2c747e3657.tar.xz
Reduce duplication between demo.py and demo.dmnsn.
-rw-r--r--libdimension-python/tests/Makefile.am3
-rwxr-xr-xlibdimension-python/tests/demo.py134
2 files changed, 7 insertions, 130 deletions
diff --git a/libdimension-python/tests/Makefile.am b/libdimension-python/tests/Makefile.am
index 29411ab..ce12ed7 100644
--- a/libdimension-python/tests/Makefile.am
+++ b/libdimension-python/tests/Makefile.am
@@ -22,7 +22,8 @@ TESTS = geometry.py \
canvas.py \
demo.py
TEST_EXTENSIONS = .py
-TESTS_ENVIRONMENT = PYTHONPATH=$(top_builddir)/libdimension-python/.libs
+TESTS_ENVIRONMENT = PYTHONPATH=$(top_builddir)/libdimension-python/.libs \
+ top_srcdir=$(top_srcdir)
.py:
cp $(srcdir)/$@ .
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,