// Persistence of Vision Ray Tracer Scene Description File // File: Sink Objects.inc // Vers: 3.1 // Desc: Object Descriptions // Date: July 15, 2001 // Auth: Michael Koopman - mkoopman@hotmail.com // URL: http://www.geocities.com/ronfar.geo //****************************************************************** START COUNTER TOP ******************************************************************// #declare CounterTop = union { difference { union { box { <-4, -2, -2.4>, < 4, 0, 2.5> pigment { White } finish { phong 1 } } box { <-4, -2, -2.5>, < 4, -0.1, 2.5> pigment { White } finish { phong 1 } } cylinder { <-4, -0.1, -2.4>, < 4, -0.1, -2.4>, 0.1 pigment { White } finish { phong 1 } } } sphere { 0, 1 scale <2, 1.5, 1.5> pigment { White } finish { phong 1 } } cylinder { <0, -0.1, 0>, <0, 0.5, 0>, 1.1 scale <2, 1, 1.5> pigment { White } finish { phong 1 } } } torus { 1.1, 0.1 scale <2, 1, 1.5> translate y*-0.1 pigment { White } finish { phong 1 } } } //****************************************************************** END COUNTER TOP ******************************************************************// //=====================================================================================================================================================// //=====================================================================================================================================================// //=====================================================================================================================================================// //******************************************************************* START FAUCET ********************************************************************// #declare Faucet = union { //***** BASE OF FAUCET *****// box { <-1, 0, -0.2>, < 1, 0.2, 0.2> pigment { P_Silver3 } finish { phong 1 } } box { <-0.95, 0, -0.25>, < 0.95, 0.2, 0.25> pigment { P_Silver3 } finish { phong 1 } } box { <-0.95, 0, -0.2>, < 0.95, 0.25, 0.2> pigment { P_Silver3 } finish { phong 1 } } sphere { 0, 1 scale 0.05 translate <-0.95, 0.2, -0.2> pigment { P_Silver3 } finish { phong 1 } } sphere { 0, 1 scale 0.05 translate <-0.95, 0.2, 0.2> pigment { P_Silver3 } finish { phong 1 } } sphere { 0, 1 scale 0.05 translate < 0.95, 0.2, -0.2> pigment { P_Silver3 } finish { phong 1 } } sphere { 0, 1 scale 0.05 translate < 0.95, 0.2, 0.2> pigment { P_Silver3 } finish { phong 1 } } cylinder { <-0.95, 0, -0.2>, <-0.95, 0.2, -0.2>, 0.05 pigment { P_Silver3 } finish { phong 1 } } cylinder { < 0.95, 0, -0.2>, < 0.95, 0.2, -0.2>, 0.05 pigment { P_Silver3 } finish { phong 1 } } cylinder { <-0.95, 0, 0.2>, <-0.95, 0.2, 0.2>, 0.05 pigment { P_Silver3 } finish { phong 1 } } cylinder { < 0.95, 0, 0.2>, < 0.95, 0.2, 0.2>, 0.05 pigment { P_Silver3 } finish { phong 1 } } cylinder { <-0.95, 0.2, -0.2>, < 0.95 0.2, -0.2>, 0.05 pigment { P_Silver3 } finish { phong 1 } } cylinder { <-0.95, 0.2, 0.2>, < 0.95 0.2, 0.2>, 0.05 pigment { P_Silver3 } finish { phong 1 } } cylinder { <-0.95, 0.2, -0.2>, <-0.95, 0.2, 0.2>, 0.05 pigment { P_Silver3 } finish { phong 1 } } cylinder { < 0.95, 0.2, -0.2>, < 0.95, 0.2, 0.2>, 0.05 pigment { P_Silver3 } finish { phong 1 } } //***** END BASE OF FAUCET *****// //***** SPOUT *****// difference { union { torus { 1, 0.125 rotate <90, 90, 0> translate <-0.125, 0, -1> pigment { P_Silver3 } finish { phong 1 } } torus { 1, 0.125 rotate <90, 90, 0> translate < 0.125, 0, -1> pigment { P_Silver3 } finish { phong 1 } } difference { cylinder { <-0.125, 0, -1>, < 0.125, 0, -1>, 1.125 pigment { P_Silver3 } finish { phong 1 } } cylinder { <-1, 0, -1>, < 1, 0, -1>, 0.875 pigment { P_Silver3 } finish { phong 1 } } } } box { <-5, -5, -5>, < 5, 0, 5> pigment { P_Silver3 } finish { phong 1 } } box { <-5, -5, -5>, < 5, 5, -1> pigment { P_Silver3 } finish { phong 1 } } } torus { 0.125, 0.125 translate <0, 1, -1> pigment { P_Silver3 } finish { phong 1 } } cylinder { <0, 0.875, -1>, <0, 1.125, -1>, 0.125 pigment { P_Silver3 } finish { phong 1 } } cylinder { <0, 0.825, -1.05>, <0, 1.0, -1.05>, 0.09 pigment { P_Silver3 } finish { phong 1 } } //***** END SPOUT *****// //***** SPIGOTS *****// sphere { 0, 1 scale 0.125 translate <-0.6, 0.25, 0> pigment { P_Silver3 } finish { phong 1 } } cylinder { <0, 0.25, 0>, <0, 0.4, 0>, 0.0625 translate x*-0.6 pigment { P_Silver3 } finish { phong 1 } } cylinder { <-0.125, 0, 0>, < 0.125, 0, 0>, 0.0625 translate <-0.6, 0.45, 0> pigment { P_Silver3 } finish { phong 1 } } sphere { 0, 1 scale 0.0625 translate <-0.475, 0.45, 0> pigment { P_Silver3 } finish { phong 1 } } cylinder { <-0.125, 0, 0>, < 0.125, 0, 0>, 0.0625 translate <-0.85, 0.45, 0> pigment { DMFWood4 scale 5 turbulence 0.1 } finish { phong 0.5 } } sphere { 0, 1 scale 0.0625 translate <-0.975, 0.45, 0> pigment { DMFWood4 scale 5 turbulence 0.1 } finish { phong 0.5 } } sphere { 0, 1 scale 0.125 translate <0.6, 0.25, 0> pigment { P_Silver3 } finish { phong 1 } } cylinder { <0, 0.25, 0>, <0, 0.4, 0>, 0.0625 translate x*0.6 pigment { P_Silver3 } finish { phong 1 } } cylinder { <-0.125, 0, 0>, < 0.125, 0, 0>, 0.0625 translate <0.6, 0.45, 0> pigment { P_Silver3 } finish { phong 1 } } sphere { 0, 1 scale 0.0625 translate <0.475, 0.45, 0> pigment { P_Silver3 } finish { phong 1 } } cylinder { <-0.125, 0, 0>, < 0.125, 0, 0>, 0.0625 translate <0.85, 0.45, 0> pigment { DMFWood4 scale 5 turbulence 0.1 } finish { phong 0.5 } } sphere { 0, 1 scale 0.0625 translate <0.975, 0.45, 0> pigment { DMFWood4 scale 5 turbulence 0.1 } finish { phong 0.5 } } //***** END SPIGOTS *****// } //******************************************************************* END FAUCET ********************************************************************// //=====================================================================================================================================================// //=====================================================================================================================================================// //=====================================================================================================================================================// //*************************************************************** START AC_BACKPLATE *****************************************************************// #declare AC_Backplate = union { /* box { <-0.35, -0.5, -0.05>, < 0.35, 0.5, 0> pigment { Beige } } */ box { <-0.3, -0.45, -0.1>, < 0.3, 0.45, 0> pigment { Beige } } cylinder { <-0.3, 0.45, -0.05>, < 0.3, 0.45, -0.05>, 0.05 pigment { Beige } } cylinder { <-0.3, -0.45, -0.05>, < 0.3, -0.45, -0.05>, 0.05 pigment { Beige } } cylinder { <-0.3, -0.45, -0.05>, <-0.3, 0.45, -0.05>, 0.05 pigment { Beige } } cylinder { < 0.3, -0.45, -0.05>, < 0.3, 0.45, -0.05>, 0.05 pigment { Beige } } sphere { 0, 1 scale 0.05 translate <-0.3, -0.45, -0.05> pigment { Beige } } sphere { 0, 1 scale 0.05 translate <-0.3, 0.45, -0.05> pigment { Beige } } sphere { 0, 1 scale 0.05 translate < 0.3, -0.45, -0.05> pigment { Beige } } sphere { 0, 1 scale 0.05 translate < 0.3, 0.45, -0.05> pigment { Beige } } } //*************************************************************** END AC_BACKPLATE *****************************************************************// //=====================================================================================================================================================// //=====================================================================================================================================================// //=====================================================================================================================================================// //*************************************************************** START AC_OUTLET *****************************************************************// #declare AC_Outlet = union { difference { union { object { AC_Backplate scale <0.9, 1, 1> } object { AC_Backplate scale <0.6, 0.75, 0.25> translate z*-0.09 } } box { <-0.0125, -0.045, -1>, < 0.0125, 0.045, -0.099> translate <-0.05, 0.18, 0> pigment { Black } } box { <-0.0125, -0.045, -1>, < 0.0125, 0.045, -0.099> translate < 0.05, 0.18, 0> pigment { Black } } cylinder { <0, 0, -1>, <0, 0, -0.099>, 0.025 translate <0, 0.08, 0> pigment { Black } } box { <-0.0125, -0.045, -1>, < 0.0125, 0.045, -0.099> translate <-0.05, -0.08, 0> pigment { Black } } box { <-0.0125, -0.045, -1>, < 0.0125, 0.045, -0.099> translate < 0.05, -0.08, 0> pigment { Black } } cylinder { <0, 0, -1>, <0, 0, -0.099>, 0.025 translate <0, -0.18, 0> pigment { Black } } } cylinder { <0, 0, -0.105>, <0, 0, -0.09>, 0.03 translate <0, 0.42, 0> pigment { Silver } } cylinder { <0, 0, -0.105>, <0, 0, -0.09>, 0.03 translate <0, -0.42, 0> pigment { Silver } } } //*************************************************************** END AC_OUTLET *****************************************************************// //=====================================================================================================================================================// //=====================================================================================================================================================// //=====================================================================================================================================================// //*************************************************************** START TILEBASE *****************************************************************// #declare TileBase = union { box { <0.05, 0.05, -0.1>, <0.95, 0.95, 0> } cylinder { <0.05, 0.05, -0.05>, <0.95, 0.05, -0.05>, 0.05 } cylinder { <0.05, 0.95, -0.05>, <0.95, 0.95, -0.05>, 0.05 } cylinder { <0.05, 0.05, -0.05>, <0.05, 0.95, -0.05>, 0.05 } cylinder { <0.95, 0.05, -0.05>, <0.95, 0.95, -0.05>, 0.05 } sphere { 0, 1 scale 0.05 translate <0.05, 0.05, -0.05> } sphere { 0, 1 scale 0.05 translate <0.05, 0.95, -0.05> } sphere { 0, 1 scale 0.05 translate <0.95, 0.05, -0.05> } sphere { 0, 1 scale 0.05 translate <0.95, 0.95, -0.05> } } //*************************************************************** END TILEBASE *****************************************************************// //=====================================================================================================================================================// //=====================================================================================================================================================// //=====================================================================================================================================================// //*************************************************************** START TILE WALLS *****************************************************************// #declare WhiteTile = object { TileBase pigment { White } finish { phong 0.5 reflection 0.01 } } #declare GrayTile = object { TileBase pigment { Gray90 } finish { phong 0.5 reflection 0.01 } } #declare WhiteTileRow = union { #declare WhiteTileX = -9.75; #while (WhiteTileX < 10.25) object { WhiteTile translate x*WhiteTileX } #declare WhiteTileX = (WhiteTileX + 2); #end } #declare GrayTileRow = union { #declare GrayTileX = -8.75; #while (GrayTileX < 11.25) object { GrayTile translate x*GrayTileX } #declare GrayTileX = (GrayTileX + 2); #end } #declare PatchTileRow = union { object { WhiteTileRow } object { GrayTileRow } } #declare PatchTileWall = union { #declare TileWall = -10; #while (TileWall < 10) object { PatchTileRow translate y*TileWall } #declare TileWall = (TileWall + 2); #end #declare TileWall2 = -9; #while (TileWall2 < 10) object { PatchTileRow translate x*1 translate y*TileWall2 } #declare TileWall2 = (TileWall2 + 2); #end } //*************************************************************** END TILE WALLS *****************************************************************// //=====================================================================================================================================================// //=====================================================================================================================================================// //=====================================================================================================================================================// //*************************************************************** START TRASHCAN *****************************************************************// #declare TrashCan = difference { superellipsoid { <0.25, 0.25> scale <0.75, 1.75, 1.5> // translate <-5.5, -3.6, 0> translate <0, 0, 0> pigment { Gray30 } finish { reflection 0.01 phong 1 } } superellipsoid { <0.25, 0.25> scale <0.55, 1.74, 1.3> // translate <-5.5, -3.3, 0> translate <0, 0.3, 0> pigment { Gray30 } finish { reflection 0.01 phong 1 } } } //*************************************************************** END TRASHCAN *****************************************************************// //=====================================================================================================================================================// //=====================================================================================================================================================// //=====================================================================================================================================================// //*************************************************************** START BRUSH *************************************************************// #declare Bristles = union { cylinder { <0, 0, 0>, <0, 4, 0>, 0.05 pigment { Gray20 } } #declare bristlecount=0; #while (bristlecount < 360) cylinder { <0, 0, 0>, <0, 4, 0>, 0.05 rotate z*7.5 rotate y*bristlecount pigment { Gray20 } } #declare bristlecount = (bristlecount + 30); #end } #declare bristlerow = union { #declare bristleztrans = 11; #while (bristleztrans < 26) object { Bristles translate <0, 0, bristleztrans> } #declare bristleztrans = (bristleztrans + 1); #end } #declare FinishedBrush = union { torus { 2, 0.5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } cylinder { <0, -0.5, 0>, <0, 0.5, 0>, 2 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } box { <-2, -0.5, 0>, < 2, 0.5, 5> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } cylinder { <-2, 0, 0>, <-2, 0, 5>, 0.5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } cylinder { <2, 0, 0>, <2, 0, 5>, 0.5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } difference { cylinder { <0, -0.5, 0>, <0, 0.5, 0>, 2 scale <1, 1, 2> translate z*5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } box { <-5, -5, -5>, < 5, 5, 5> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } } difference { torus { 2, 0.5 scale <1, 1, 2> translate z*5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } box { <-5, -5, -5>, < 5, 5, 5> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } } difference { box { <-4, -0.5, 9>, < 4, 0.5, 11> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } cylinder { <-4, -3, 9>, <-4, 3, 9>, 2.5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } cylinder { < 4, -3, 9>, < 4, 3, 9>, 2.5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } } cylinder { <-1.5, 0, 9>, < 1.5, 0, 9>, 0.5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } sphere { 0, 0.5 translate <-1.5, 0, 9> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } sphere { 0, 0.5 translate < 1.5, 0, 9> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } difference { torus { 2.5, 0.5 translate <-4, 0, 9> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } box { <-10, -5, 0>, < 10, 5, 9> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } box { <-10, -5, 0>, <-2.55, 5, 15> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } } difference { torus { 2.56, 0.5 translate < 4, 0, 9> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } box { <-10, -5, 0>, < 10, 5, 9> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } box { < 10, -5, 0>, < 2.56, 5, 15> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } } sphere { 0, 0.5 translate <-2.5, 0, 10.88> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } sphere { 0, 0.5 translate < 2.5, 0, 10.88> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } cylinder { <-2.5, 0, 10.88>, <-2.5, 0, 25.5>, 0.5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } cylinder { < 2.5, 0, 10.88>, < 2.5, 0, 25.5>, 0.5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } box { <-2.5, -0.5, 10.88>, < 2.5, 0.5, 25.5> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } cylinder { <-2.5, 0, 25.5>, < 2.5, 0, 25.5>, 0.5 pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } sphere { 0, 0.5 translate <-2.5, 0, 25> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } sphere { 0, 0.5 translate < 2.5, 0, 25> pigment { DMFWood3 rotate y*1 turbulence 0.1 scale 5 } finish { phong 1 } } #declare bristlextrans = -2.25; #while (bristlextrans < 2.26) object { bristlerow translate x*bristlextrans } #declare bristlextrans = (bristlextrans + 1); #end object { Bristles translate <-1, 0, 10> } object { Bristles translate <0, 0, 10> } object { Bristles translate < 1, 0, 10> } } //*************************************************************** END BRUSH *************************************************************//