/* ***************************************************************************** * Copyright © 1995, Rick Wedgeworth, All rights reserved * ************************************************************************** */ #include "colors.inc" #include "textures.inc" #include "table.inc" #include "bottles.inc" #include "candle.inc" #include "burner.inc" #include "cage.inc" #include "dragon.inc" #include "book.inc" #include "globe.inc" #include "mortar.inc" #include "balance.inc" #include "astrolabe.inc" #include "astrological_map.inc" #include "sextant.inc" #include "paper.inc" #include "mounting_box.inc" #include "beetle.inc" #include "poster.inc" #include "telescope.inc" #include "feather.inc" #include "inkwell.inc" #include "bell.inc" #include "hourglass.inc" #include "test_tubes.inc" #include "compass.inc" #include "barometer.inc" #include "armillary.inc" // Define light sources #declare Full_Light = object { light_source { <30, 120, -300> color red 1.0 green 0.9 blue 0.6 area_light < 40, 0, 0 >, < 0, 60, 0 >, 5, 5 adaptive 1 jitter } } #declare Point_Light = object { light_source { <30, 120, -300> color red 1.0 green 0.9 blue 0.6 } } // Create relationships // Bottles on table #declare Table_Bottles = union { object { Clear_Round_Bottle scale < 2.0, 2.0, 2.0 > translate < 0, 0, 0 > } object { Bottle_Cork scale < 2.0, 2.0, 2.0 > translate < 0, 0, 0 > } object { Red_Powder scale < 2.0, 2.0, 2.0 > translate < 0, 0, 0 > } object { Green_Round_Bottle_2 scale < 2.0, 1.5, 2.0 > translate < -4, 0,-2 > } object { Yellow_Powder scale < 2.0, 1.0, 2.0 > translate < -4, 0,-2 > } object { Green_Round_Bottle_1 scale < 1.5, 1.8, 1.0 > rotate < 0, 10, 0 > translate < 2, 0, 12 > } object { Brown_Octagonal_Bottle scale < 1.7, 1.7, 1.7 > translate < 6, 0,12 > } object { Octagonal_Bottle_Cork scale < 1.7, 1.7, 1.7 > translate < 6, 0,12 > } object { Blue_Round_Bottle_1 scale < 1.9, 1.9, 1.9 > translate <-3, 0, 4 > } object { Bottle_Cork scale < 1.9, 1.9, 1.9 > translate <-3, 0, 4 > } object { Mercury_Liquid scale < 1.9, 1.0, 1.9 > translate <-3, 0, 4 > } object { Blue_Round_Bottle_1 scale < 2.5, 2.5, 2.5 > translate <11, 0,-10 > } object { Bottle_Cork scale < 2.5, 2.5, 2.5 > translate <11, 0,-10 > } object { Blue_Liquid scale < 2.5, 2.0, 2.5 > translate <11, 0,-10 > } } // Bottles on shelf #declare Shelf_Bottles = union { object { Clear_Round_Bottle scale < 2.0, 2.0, 2.0 > translate < 0, 0, 0 > } object { Bottle_Cork scale < 2.0, 2.0, 2.0 > translate < 0, 0, 0 > } object { Yellow_Powder scale < 2.0, 2.0, 2.0 > translate < 0, 0, 0 > } object { Green_Round_Bottle_1 scale < 1.7, 2.1, 1.7 > translate < -1, 0, 4 > } object { Bottle_Cork scale < 1.7, 2.1, 1.7 > translate < -1, 0, 4 > } object { Mercury_Liquid scale < 1.7, 2.1, 1.7 > translate < -1, 0, 4 > } object { Green_Round_Bottle_2 scale < 2.0, 1.5, 2.0 > translate < 2, 0, 2 > } object { Blue_Liquid scale < 2.0, 1.0, 2.0 > translate < 2, 0, 2 > } object { Brown_Octagonal_Bottle scale < 2.0, 2.0, 2.0 > translate < 4, 0, 4 > } object { Octagonal_Bottle_Cork scale < 2.0, 2.0, 2.0 > translate < 4, 0, 4 > } object { Blue_Round_Bottle_1 scale < 1.4, 1.4, 1.4 > translate < 5, 0, 1 > } object { Bottle_Cork scale < 1.4, 1.4, 1.4 > translate < 5, 0, 1 > } object { Green_Round_Bottle_1 scale < 1.7, 2.5, 1.7 > translate < 6, 0, 2 > } object { Bottle_Cork scale < 1.7, 2.5, 1.7 > translate < 6, 0, 2 > } object { Blue_Round_Bottle_1 scale < 1.9, 1.9, 1.9 > translate < 8, 0, 4 > } object { Blue_Round_Bottle_1 scale < 1.5, 1.0, 1.5 > translate < 10, 0, 2 > } object { Bottle_Cork scale < 1.5, 1.0, 1.5 > translate < 10, 0, 2 > } object { Clear_Round_Bottle scale < 1.5, 2.0, 1.5 > translate < 15, 0, 2 > } object { Bottle_Cork scale < 1.5, 2.0, 1.5 > translate < 15, 0, 2 > } object { Red_Powder scale < 1.5, 1.0, 1.5 > translate < 15, 0, 2 > } object { Green_Round_Bottle_1 scale < 1.7, 1.7, 1.7 > translate < 16, 0, 4 > } object { Brown_Round_Bottle_1 scale < 1.9, 1.9, 1.9 > translate < 18, 0, 1 > } object { Bottle_Cork scale < 1.9, 1.9, 1.9 > translate < 18, 0, 1 > } object { Blue_Octagonal_Bottle scale < 2.0, 1.7, 2.0 > translate < 20, 0, 1 > } object { Octagonal_Bottle_Cork scale < 2.0, 1.7, 2.0 > translate < 20, 0, 1 > } } // Cage with dragon #declare Full_Cage = union { object { Dragon scale < 0.8, 0.8, 0.8 > rotate < 0, -45, 0 > translate < 4, 6, -4 > } object { Cage scale < 0.75, 0.75, 0.75 > } } // Mounting box with impaled beetle #declare Full_Mounting_Box = union { object { Mounting_Box } object { Beetle scale < 0.75, 0.75, 0.75 > rotate < 0, 180, 0 > translate < -2.2, 2, -3.8 > } } // Inkwell and quill #declare Quill = union { object { Feather scale < .2, .2, .2 > translate < 0, 0, 0 > } object { Inkwell scale < 1.5, 1, 1.5 > } } ///////////////////////////////////////////////////////////////////////////////////// // Display objects ///////////////////////////////////////////////////////////////////////////////////// // Objects in the foreground //object { Burner rotate < 0, -20, 0 > translate < 15.0, 0.0, 15.0 > } object { Table } object { Candle translate < 15.0, 0.0, 15.0 > } object { Burner_Setup rotate < 0, -20, 0 > translate < 15.0, 0.0, 15.0 > } object { Stir_Rod scale < 2, 2, 2 > translate < 18.0, 0.0, 6.0 > } object { Mortar translate < 22.5, 0.0, 25.0 > } object { Pestle translate < 22.5, 0.0, 25.0 > } object { Map translate < 56.0, 0.05, 35 > } object { Paper rotate < 0, 185, 0 > translate < 1.25, 0.10, 7.5 > } object { Full_Mounting_Box scale < 2, 2, 2 > rotate < 0, 20, 0 > translate < 10, 0, 0 > } object { Table_Bottles scale < 1, 1, 1 > translate < 30, 0, -7 > } object { Quill rotate < 0, -5, 0 > translate < -4, 0, 10 > } object { Compass scale < 2, 2, 2 > translate < 48, 1.2, -8 > } // Objects in the background #declare BG_Z = 200 #declare BG_Y = -20 object { Full_Cage translate < -45, BG_Y+20, BG_Z-20 > } object { Armillary_Sphere rotate < 0, 30, 0 > translate < -40, BG_Y-35, BG_Z-20 > } object { Backwall translate < 0, BG_Y, BG_Z+30 > } object { Bookshelf translate < 0, BG_Y, BG_Z > } object { Balance rotate < 0, 10, 0 > translate < 75.0, BG_Y+42, BG_Z+10 > } object { Weight_Case rotate < 0, -90, 0 > translate < 106, BG_Y+40, BG_Z+8 > } object { Weight scale < 2, 2, 2 > translate <95.0, BG_Y+62, BG_Z+10 > } object { Amethyst rotate < 0, -30, 0 > translate < 55, BG_Y+56, BG_Z+10 > } object { Quartz_Crystal rotate < 0, -20, 0 > translate < 60, BG_Y+40, BG_Z+5 > } object { Meteorological_Gauges rotate < 0, 10, 0 > translate < 47, BG_Y+42, BG_Z+20 > } object { Shelf_Bottles scale < 1.20, 1.20, 1.20 > translate < 108, BG_Y, BG_Z+10 > } object { Bowl translate < 80, BG_Y+16.5, BG_Z+20 > } object { Poster scale < 0.33, 0.33, 0.33 > translate < -35, BG_Y+55, BG_Z+29.9 > } object { Bell translate < 74, BG_Y-29, BG_Z+3 > } object { Telescope rotate < 0, -10, 0 > translate < 78, BG_Y-30, BG_Z+12 > } object { Hourglass translate < 83, BG_Y-29, BG_Z+2 > } object { Test_Tube_Rack scale < 1.5, 1.5, 1.5 > rotate < 0, 10, 0 > translate < 90, BG_Y-29, BG_Z+1 > } object { Astrolabe translate < 43.75, BG_Y-20, BG_Z-2 > } object { Sextant scale < 4, 4, 4 > rotate < 0, 0, 10 > rotate < -30, 0, 0 > translate < 63, BG_Y-21, BG_Z+20 > } // Place books // Books on table object { Book_Red_1 scale < 0.8, 1.0, 1.0 > rotate < 0, 0,-90 > rotate < 0, 45, 0 > translate < 56, 8.8, 20 > } object { Book_Brown_1 scale < 0.5, 0.7, 0.7 > rotate < 0, 0,-90 > rotate < 0, -150, 0 > translate < 93, 14.3, 17 > } // Books on middle shelf object { Book_Red_2 scale < 0.5, 1.0, 1.0 > rotate < 0, 0,-90 > rotate < 0, -10, 0 > translate < 62, BG_Y+5.5, BG_Z+10 > } object { Book_Brown_1 scale < 1.0, 0.9, 0.8 > rotate < 0, 0,-90 > rotate < 0, 20, 0 > translate < 65, BG_Y+16.5, BG_Z+15 > } object { Book_Brown_1 scale < 0.7, 0.8, 0.8 > translate < 50, BG_Y+0, BG_Z+5 > } object { Book_Brown_2 scale < 0.4, 0.7, 0.7 > translate < 45.5, BG_Y+0, BG_Z+8 > } object { Book_Brown_2 scale < 0.4, 0.7, 0.7 > rotate < 0, 0, 5 > translate < 46.0, BG_Y-29, BG_Z+6 > } // Books on top shelf object { Book_Green_1 scale < 0.5, 1.0, 1.0 > rotate < 0, 0, -10 > translate < 123, BG_Y+42, BG_Z+10 > } object { Book_Green_1 scale < 0.5, 1.0, 1.0 > rotate < 0, 0, -10 > translate < 116.5, BG_Y+42, BG_Z+10 > } object { Book_Brown_1 scale < 0.7, 0.8, 0.8 > translate < 106, BG_Y+40, BG_Z+5 > } // Lights object { Full_Light } //object { Point_Light } camera { location < 30, 40, -90 > direction < 0, 0, 2 > up < 0, 1, 0 > right < 640/480, 0, 0 > look_at < 30, 20, 10 > } background { color Brown }