/************************************************************************
 *
 *      Testsurf.ray
 *
 *	This is the test scene used to give an idea of what a surface
 *	will look like.  This scene was used in the cataloging of
 *	all the Rayshade Standard Surfaces (RSS).
 *
 *	Please do not edit this file, or any of the other files in
 *	this package!  Make additions to these in your own separate
 *	file.  If you think you have something that should be added
 *	permanently, please send it to Larry Coffin and/or David
 *	DeBry (email addresses listed below).  If we include it in
 *	the next release, we'll put your name in the contributor's
 *	list.
 *
 *      Contributors (in alphabetical order):
 *          Larry Coffin <lcoffin@clciris.chem.umr.edu>
 *          David DeBry <ddebry@dsd.es.com>
 */

/* Include the Rayshade Standard (RS) package */

#include "defs.rh"

/************************************************************************
 *
 * WARNING!  If you try to render this scene with Rayshade, and get an
 * 	error on the line that #include's <defs.rh>, the most likely
 *	mistake that you have made is that you MUST put the following
 *	into your Rayshade command line:
 *
 *	-P -I(path to the Rayshade Standard Header Files)
 *
 *	For instance, if you had all the .rh files in 	
 *	/usr/people/ddebry/src/include, then you would do this:
 *
 *	-P -I/usr/people/ddebry/src/include
 *
 */

/************************************************************************
 * Define a view -- alpha for a quick test
 */

RSFtv_alpha()
eyep		0 -30 .8
lookp		0 0 .1

/************************************************************************
 * Increase maxdepth so we can see transparencies and reflections 
 */

maxdepth	5

/************************************************************************
 * define TEST_SURF here as needed 
 */

#ifndef TEST_SURF
#define TEST_SURF RSSnavyglass
#endif


/************************************************************************
 * Create objects that will test the surface
 */

name test_objects
list
	sphere TEST_SURF()	1	1.5 0 0
	sphere TEST_SURF()	1	-1.5 0 0
	cylinder TEST_SURF()	.2  	-1.5 0 1.4	1.5 0 1.4
	poly TEST_SURF()	-2.5 0 -1.2
			2.5 0 -1.2
			2.5 -.0035 -1.9
			-2.5 -.0035 -1.9
end

/************************************************************************
 * Create objects to shadows on the test objects
 */

name shadow_objects
list
	cylinder RSStest_black()	.2	2 -2 2.3	2 -2 3.6
end

/************************************************************************
 * Create a checkered ground for reflection and transparency checks
 */

name floor
list
	plane RSStest_white()	0 0 -7.501	0 0 1
	        texture marble
	        texture checker RSStest_burgundy()
			RSMscale(6.0)
end

/************************************************************************
 * Create objects that will be reflected if reflections are used
 */

name reflectance_objects
list
	cylinder RSStest_blue()	 4	-15 -35 -7.6	-15 -35 7.6
	cylinder RSStest_green() 4	15 -35 -7.6	15 -35 7.6
	cylinder RSStest_red()	 4	0 -35 -7.6	0 -35 7.6
end

/************************************************************************
 * Create objects that will show up if test objects are transparent
 */

name base_test_cyln
list
        cylinder RSStest_white() .1  -5 3 0  5 3 0
end

name transparency_objects
list
        object base_test_cyln
                translate 0 0 -2
        object base_test_cyln
                translate 0 0 -1.5
        object base_test_cyln
                translate 0 0 -1
        object base_test_cyln
                translate 0 0 -.5
        object base_test_cyln
                translate 0 0 0
        object base_test_cyln
                translate 0 0 .5
        object base_test_cyln
                translate 0 0 1
        object base_test_cyln
                translate 0 0 1.5
        object base_test_cyln
                translate 0 0 2
end

/************************************************************************
 * Apply all objects 
 */

object	floor

object	test_objects

object	shadow_objects

object	reflectance_objects

object	transparency_objects
	rotate	0 1 0	45.0


