######################################################################### # Copyright (C) 2010-2011 Tavian Barnes # # # # This file is part of The Dimension Test Suite. # # # # The Dimension Test Suite 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 3 of the # # License, or (at your option) any later version. # # # # The Dimension Test Suite 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, see . # ######################################################################### # Camera camera = PerspectiveCamera(location = (0, 0.25, -4), look_at = 0) camera.rotate(53*Y) # Background background = PigmentMap( pattern = Gradient(Y), map = { 0: Orange, 0.35: Color(0, 0.1, 0.2, trans = 0.1, filter = 0.0), }, ) # 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(min = 0, max = 0.5), ), interior = Interior( ior = 1.1, ), ) .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 = PigmentMap( Gradient(Y), { 0/6: Red, 1/6: Orange, 2/6: Yellow, 3/6: Green, 4/6: Blue, 5/6: Magenta, 6/6: Red, }, ) .scale(1, 2.75, 1) .translate(-1.25*Y), ) torii = Union( [ Torus(major_radius = 0.15, minor_radius = 0.05).translate(-Y), Torus(major_radius = 0.15, minor_radius = 0.05), Torus(major_radius = 0.15, minor_radius = 0.05).translate(Y), ], texture = Texture( pigment = Blue, finish = Ambient(1), ), ) spike = Union([arrow, torii]).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).translate(5, -2, -4) ground = Plane( normal = Y, distance = -2, pigment = PigmentMap( Checker(), [ White, PigmentMap(Checker(), [Black, White]).scale(1/3) ], ), ) objects = [ hollow_cube, spike, strip, ground, ]