Poker Game Source

include/chess.txt

pawn { 
	LathedObject  name = "subobject0" size = (.5, .4, .5)
		order = 3
		knots = "{ 0.000000, 0.000000, 0.000000, 1.000000, 2.000000, 3.000000, 4.000000, 5.000000, 6.000000, 7.000000, 8.000000, 9.000000, 10.000000, 11.000000, 12.000000, 13.000000, 14.000000, 15.000000, 16.000000, 17.000000, 18.000000, 19.000000, 20.000000, 21.000000, 22.000000, 22.000000, 22.000000}"
		control_points = "{ (0.076, 0.996), (0.076, 0.996), (0.076, 0.996), (0.158, 0.967), (0.158, 0.967), (0.158, 0.967), (0.074, 0.938), (0.081, 0.874), (0.081, 0.874), (0.081, 0.874), (0.128, 0.439), (0.128, 0.439), (0.128, 0.439), (0.260, 0.328), (0.264, 0.246), (0.212, 0.222), (0.212, 0.222), (0.212, 0.222), (0.279, 0.157), (0.209, 0.120), (0.209, 0.120), (0.209, 0.120), (0.262, 0.078), (0.264, 0.000) }"
		weights = "{ 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000 }";
	Sphere position = (0, .445, 0) size = .055;
}

bishop {
	// Since a bishop is about 75% the size of a king, the size and
	// position have been multiplied by .75 of their original values.
	Sphere
		position = (0, .729375, 0) size = .01875;
	NURBSurface
		position = (0, .4875, 0)
		size = (.75, .225, .75)
		u_order = 3 u_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 1, 0) (.35, .33, 0) (.03, 0, 0) }"
		weights = "{ 1, .27, 1 }"
		lathe = 1; 
	NURBSurface
		position = (0, .45, 0) size = (.135, .0375, .0975)
		u_order = 3 u_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 1, 0) (1, 1, 0) (1, 0, 0) }"
		weights = "{ 1, 1, 1 }"
		lathe = 1;
	NURBSurface
		position = (0, .075, 0) size = (.7875, .375, .75)
		u_order = 8 u_knots = "{ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,1}"
		control_points = "{ (.13, 1, 0) (.04, 1, 0) (.04, .97, 0) (.08, .50, 0) (.04, .10, 0) (.04, .03, 0) (.14, .03, 0) (.14, 0, 0)}"
		weights = "{ 1, 1, 1, .5, 1, 1, 1, 1 }"
		lathe = 1;
	NURBSurface
		position = (0, 0, 0) size = (.75, .075, .75)
		u_order = 3 u_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (.14, 1, 0) (.25, 1, 0) (.25, 0, 0) }"
		weights = "{ 1, 1, 1 }"
		lathe = 1; 
}

king { 
	LathedObject  name = "subobject0" size = (1, .8, 1)
		order = 3
		knots = "{ 0.000000, 0.000000, 0.000000, 1.000000, 2.000000, 3.000000, 4.000000, 5.000000, 6.000000, 7.000000, 8.000000, 9.000000, 10.000000, 11.000000, 12.000000, 13.000000, 14.000000, 15.000000, 16.00000, 17.000000, 18.000000, 19.000000, 19.000000, 19.000000}"
		control_points = "{ (0, 1.000), (0.141, 0.995), (0.069, 0.830), (0.090, 0.820), (0.062, 0.810), (0.066, 0.800), (0.097, 0.800), (0.126, 0.749), (.100, .740), (0.074, 0.515), (0.126, 0.300), (0.126, .300), (0.126, .300), (0.247, 0.250), (0.219, 0.180), (0.219, 0.180), (0.219, 0.180), (0.243, 0.140), (0.219, 0.100), (0.245, 0.060), (0.240, 0.000) }"
		weights = "{ 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }";
	LathedObject  name = "subobject1" position = (0, .79, 0)
		size = (.12, .05, .12) accuracy = (100%, 50%)
		order = 3
		knots = "{ 0.000000, 0.000000, 0.000000, 1.000000, 2.000000, 3.000000, 3.000000, 3.000000}"
		control_points = "{ (0.000, 1.000), (0.250, 1.000), (0.250, 0.501), (0.497, 0.501), (0.500, 0.000) }"
		weights = "{ 1.000, 1.000, 1.000, 1.000, 1.000 }";
	Cube name = "subobject2" position = (-.075, .88, -.01) size = (.15, .04, .02);
	Cube name = "subobject3" position = (-.02, .80, -.01) size = (.04, .175, .02);
}

include/domestic.txt

plain_table_top_corner {
	NURBSurface
		u_order = 3 u_knots = "{ 0, 0, 0, 1, 1, 1 }"
		v_order = 3 v_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (1, 0, 0) (0, 0, 0) (0, 0, 1) (1, 1, 0) (0, 1, 0) (0, 1, 1) (1, 1, 1) (1, 1, 1) (1, 1, 1) }"
		weights = "{ 1, 1, 1, 1, 1, 1, 1, 1, 1 }";
}

plain_table_top_side {
	NURBSurface
		u_order = 3 u_knots = "{ 0, 0, 0, 1, 1, 1 }"
		v_order = 3 v_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 0, 1) (.5, 0, 1) (1, 0, 1) (0, 1, 1) (.5, 1, 1) (1, 1, 1) (0, 1, 0) (.5, 1, 0) (1, 1, 0) }"
		weights = "{ 1, 1, 1, 1, 1, 1, 1, 1, 1 }";
}

plain_table_top {
	Rectangle position = (.02, .02, .32) size = (.96, .30) rotation = (-90, 0, 0);
	plain_table_top_side position = (.02, 0, .32) size = (.96, .02, .02);
	plain_table_top_side position = (.02, 0, .02) size = (.96, .02, .02) rotation = (-90, 0, 0);
	plain_table_top_side position = (.02, 0, .02) size = (.30, .02, .02) rotation = (0, -90, 0);
	plain_table_top_side position = (.98, 0, .32) size = (.30, .02, .02) rotation = (0, 90, 0);
	plain_table_top_corner position = (0, 0, 0) size = (.02, .02, .02);
	plain_table_top_corner position = (1, 0, 0) size = (.02, .02, .02) rotation = (0, -90, 0);
	plain_table_top_corner position = (1, 0, .34) size = (.02, .02, .02) rotation = (0, -180, 0);
	plain_table_top_corner position = (0, 0, .34) size = (.02, .02, .02) rotation = (0, -270, 0);
	Rectangle size = (1, .34) rotation = (90, 0, 0);
}

plain_table_leg {
	NURBSurface
		position = (0, .80, 0) size = (1, .20, 1)
		u_order = 4 u_knots = "{ 0, 0, 0, 0, 1, 1, 1, 1 }"
		control_points = "{ (.10, 1, 0) (.10, .10, 0) (.06, .10, 0) (.06, 0, 0) }"
		weights = "{ 1, 1, 1, 1 }"
		lathe = 1;
	NURBSurface
		position = (0, .725, 0) size = (1, .075, 1)
		u_order = 7 u_knots = "{ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 }"
		control_points = "{ (.06, 1, 0) (.06, .85, 0) (.10, .85, 0) (.10, .50, 0) (.10, .15, 0) (.06, .15, 0) (.06, .0, 0) }"
		weights = "{ 1, 1, 1, 1, 1, 1, 1 }"
		lathe = 1;
	NURBSurface
		position = (0, .65, 0) size = (1, .075, 1)
		u_order = 7 u_knots = "{ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 }"
		control_points = "{ (.06, 1, 0) (.06, .85, 0) (.10, .85, 0) (.10, .50, 0) (.10, .15, 0) (.06, .15, 0) (.06, .0, 0) }"
		weights = "{ 1, 1, 1, 1, 1, 1, 1 }"
		lathe = 1;
	NURBSurface
		position = (0, .10, 0) size = (1, .55, 1)
		u_order = 3 u_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (.06, 1, 0) (.045, .5, 0) (.03, 0, 0) }"
		weights = "{ 1, 1, 1 }"
		lathe = 1;
	NURBSurface
		position = (0, 0, 0) size = (1, .10, 1)
		u_order = 6 u_knots = "{ 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1 }"
		control_points = "{ (.03, 1, 0) (.03, .75, 0) (.07, .75, 0) (.07, .45, 0) (.07, 0, 0) (0, 0, 0) }"
		weights = "{ 1, 2, 1, 1, 1, 1 }"
		lathe = 1;
}

plain_table {
	plain_table_top position = (0, .34, 0);
	plain_table_leg position = (.05, 0, .05) size = (.25, .34, .25);
	plain_table_leg position = (.95, 0, .05) size = (.25, .34, .25);
	plain_table_leg position = (.95, 0, .29) size = (.25, .34, .25);
	plain_table_leg position = (.05, 0, .29) size = (.25, .34, .25);
}

light_bulb {
	LathedObject
		position = (0, 0, 0) color = (255, 255, 255)
		name = "light_bulb_glass" reflectivity = 25%
		order = 7 knots = "{ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 }"
		control_points = "{ (0, 1, 0) (.625, 1, 0) (.625, .70, 0) (.625, .50, 0) (.25, .50, 0) (.25, .40, 0) (.25, .25, 0) }"
		weights = "{ 1, 1, 1, 1, 1, 1, 1 }";
	LathedObject
		position = (0, 0, 0) color = (128, 128, 128) size = (1, .25, 1)
		order = 4 knots = "{ 0, 0, 0, 0, 1, 1, 1, 1 }"
		control_points = "{ (.25, 1, 0) (.25, .25, 0) (.25, 0, 0) (0, 0, 0) }"
		weights = "{ 1, 1, 1, 1 }";
	Light position = (0, .75, 0)
		color = (96, 82, 35)
		associated_object = "light_bulb_glass";
}

demo2.txt

#include "include/chess.txt"
#include "include/domestic.txt"

// ---------------------- Card game objects ------------------------------------
deck_of_cards {
	Rectangle position = (0, .05, 0) size = (.18, .25, .25)
		rotation = (90, 0, 0)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Cube size = (.18, .049, .25) texture = "texture/cards/edge.png"
		texture_size = (.05, .05);
}

discard_pile {
	Rectangle position = (.1, 0, 0) size = (.18, .25, .18)
		rotation = (90, 0, 0)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Rectangle position = (.015, .001, .03) size = (.18, .25, .25)
		rotation = (90, 0, 10)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Rectangle position = (.05, .002, .1) size = (.18, .25, .25)
		rotation = (90, 0, -15)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Rectangle position = (.07, .003, .07) size = (.18, .25, .25)
		rotation = (90, 0, 4)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Rectangle position = (.04, .004, .02) size = (.18, .25, .25)
		rotation = (90, 0, 0)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Rectangle position = (.06, .005, .05) size = (.18, .25, .25)
		rotation = (90, 0, -7)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
}

hand1 {
	Rectangle position = (.1, 0, 0) size = (.18, .25, .25)
		rotation = (-90, 0, 30)
		texture = "texture/cards/AceOfSpades.png"
		texture_size = (.26, .25);
	Rectangle position = (.15, .001, -.02) size = (.18, .25, .25)
		rotation = (-90, 0, 15)
		texture = "texture/cards/KingOfSpades.png"
		texture_size = (.26, .25);
	Rectangle position = (.2, .002, -.04) size = (.18, .25, .25)
		rotation = (-90, 0, 0)
		texture = "texture/cards/QueenOfSpades.png"
		texture_size = (.26, .25);
	Rectangle position = (.25, .003, -.04) size = (.18, .25, .25)
		rotation = (-90, 0, -15)
		texture = "texture/cards/JackOfSpades.png"
		texture_size = (.26, .25);
	Rectangle position = (.3, .004, -.05) size = (.18, .25, .25)
		rotation = (-90, 0, -30)
		texture = "texture/cards/TenOfSpades.png"
		texture_size = (.26, .25);
}

folded_hand {
	Rectangle position = (.1, 0, 0) size = (.18, .25, .25)
		rotation = (90, 0, 80)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Rectangle position = (.11, .001, 0) size = (.18, .25, .25)
		rotation = (90, 0, 77)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Rectangle position = (.12, .002, 0) size = (.18, .25, .25)
		rotation = (90, 0, 75)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Rectangle position = (.14, 0, 0) size = (.18, .25, .25)
		rotation = (90, .003, 74)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
	Rectangle position = (.17, .004, 0) size = (.18, .25, .25)
		rotation = (90, 0, 72)
		texture = "texture/cards/BicycleBack.png"
		texture_size = (.26, .25);
}

hand3 {
	Rectangle position = (.1, 0, 0) size = (.18, .25, .25)
		rotation = (-90, 0, 30)
		texture = "texture/cards/Joker.png"
		texture_size = (.26, .25);
	Rectangle position = (.15, .001, -.02) size = (.18, .25, .25)
		rotation = (-90, 0, 15)
		texture = "texture/cards/AceOfDiamonds.png"
		texture_size = (.26, .25);
	Rectangle position = (.2, .002, -.04) size = (.18, .25, .25)
		rotation = (-90, 0, 0)
		texture = "texture/cards/AceOfClubs.png"
		texture_size = (.26, .25);
	Rectangle position = (.25, .003, -.04) size = (.18, .25, .25)
		rotation = (-90, 0, -15)
		texture = "texture/cards/AceOfHearts.png"
		texture_size = (.26, .25);
	Rectangle position = (.3, .004, -.05) size = (.18, .25, .25)
		rotation = (-90, 0, -30)
		texture = "texture/cards/AceOfSpades.png"
		texture_size = (.26, .25);
}

hand4 {
	Rectangle position = (.1, 0, 0) size = (.18, .25, .25)
		rotation = (-90, 0, 30)
		texture = "texture/cards/TwoOfHearts.png"
		texture_size = (.26, .25);
	Rectangle position = (.15, .001, -.02) size = (.18, .25, .25)
		rotation = (-90, 0, 15)
		texture = "texture/cards/ThreeOfSpades.png"
		texture_size = (.26, .25);
	Rectangle position = (.2, .002, -.04) size = (.18, .25, .25)
		rotation = (-90, 0, 0)
		texture = "texture/cards/FourOfClubs.png"
		texture_size = (.26, .25);
	Rectangle position = (.25, .003, -.04) size = (.18, .25, .25)
		rotation = (-90, 0, -15)
		texture = "texture/cards/FiveOfHearts.png"
		texture_size = (.26, .25);
	Rectangle position = (.3, .004, -.05) size = (.18, .25, .25)
		rotation = (-90, 0, -30)
		texture = "texture/cards/SevenOfDiamonds.png"
		texture_size = (.26, .25);
}

// ------------------------- Room objects -----------------------------------
baseboard {
	NURBSCurve name = "horizontal_line"
		order = 3   knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 0, 0), (.5, 0, 0), (1, 0, 0) }"
		weights = "{ 1, 1, 1 }" NoDraw;
	NURBSCurve name = "edge" NoDraw
		order = 3   knots = "{ 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 8 }"
		control_points =  "{ (0, 1, 0), (.079, 1, 0), (.086, .931, 0), (.038, .905, 0), (.038, .862, 0), (.066, .806, 0), (.138, .763, 0), (.172, .733, 0), (.134, .703, 0), (.141, .022, 0) }"
		weights = "{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }";
	ExtrudedObject extrusion_path = "horizontal_line"
		cross_section = "edge" accuracy = (75%, 1%);
}

wall {
	Rectangle texture = "texture/wallpaper.png";
	// The baseboard size is designed to be .2 units when the wall is
	// scaled to 8 units
	baseboard position = (0, .0125, .1) rotation = (180, 0, 0)
		size = (1, .025, .2);
}

doorknob {
	Sphere position = (0, 0, .1) size = (.1, .1, .05)
		color = (0, 0, 0);
}

door_panel_corner {
	NURBSurface u_order = 3  v_order = 3
		u_knots = "{ 0, 0, 0, 1, 2, 3, 3, 3 }"
		v_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 0, 0), (0, 0, 0), (0, 0, 0), (.5, 0, 0), (1, 0, 0), (0, .5, 0), (.5, .5, .1), (.5, .5, .1), (.5, .5, .1), (1, .5, .1), (0, 1, 0), (.5, 1, .1), (1, 1, 1), (1, 1, 1), (1, 1, 1) }"
		weights = "{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }"
		accuracy = 25%;
}

door_panel_edge {
	NURBSurface u_order = 3  v_order = 3
		u_knots = "{ 0, 0, 0, 1, 1, 1 }"
		v_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 0, 0), (.5, 0, 0), (1, 0, 0), (0, .5, .1), (.5, .5, .1), (1, .5, .1), (0, 1, 1), (.5, 1, 1), (1, 1, 1) }"
		weights = "{ 1, 1, 1, 1, 1, 1, 1, 1, 1 }"
		accuracy = 50%;
}

// The top panelling is about .75' wide and 2.5' tall.  (1" = .083')
door_panel_left_side {
	door_panel_corner name = "lower_left" size = (.083, .083, .04);
	door_panel_edge position = (0, 2.417, 0) size = (2.334, .083, .04)
		rotation = (0, 0, -90);
	Rectangle position = (0, 0, .04)  rotation = (0, 90, 0)
		size = (.04, 2.5, 1);
	door_panel_corner name = "upper_left" size = (.083, .083, .04)
		position = (0, 2.5, 0)  rotation = (0, 0, -90);
}

door_panel_right_side {
	door_panel_corner name = "lower_right" size = (.083, .083, .04)
		position = (.083, 0, 0)  rotation = (0, 0, 90);
	door_panel_edge position = (.083, .083, 0) size = (2.334, .083, .04)
		rotation = (0, 0, 90);
	Rectangle position = (.083, 0, 0)  rotation = (0, -90, 0)
		size = (.04, 2.5, 1);
	door_panel_corner name = "upper_right" size = (.083, .083, .04)
		position = (.083, 2.5, 0)  rotation = (0, 0, 180);
}

tall_door_panel {
	door_panel_left_side position = (0, 0, 0);
	// Top edge
	door_panel_edge position = (.667, 2.5, 0) size = (.584, .083, .04)
		rotation = (0, 0, 180);
	Rectangle position = (0, 2.5, 0)  rotation = (90, 0, 0)
		size = (.75, .04, 1);
	// Bottom edge
	door_panel_edge position = (.083, 0, 0) size = (.584, .083, .04);
	Rectangle position = (0, 0, .04) rotation = (-90, 0, 0)
		size = (.75, .04, 1);
	door_panel_right_side position = (.666, 0, 0);
	// Raised panel
	Rectangle position = (.083, .083, .04) size = (.584, 2.334, 1);
}

fat_door_panel {
	door_panel_left_side position = (0, 0, 0);

	// Top edge
	door_panel_edge position = (1.75, 2.5, 0) size = (1.667, .083, .04)
		rotation = (0, 0, 180);
	Rectangle position = (0, 2.417, 0)  rotation = (90, 0, 0)
		size = (1.834, .04, 1);
	// Bottom edge
	door_panel_edge position = (.083, 0, 0) size = (1.667, .083, .04);
	Rectangle position = (0, 0, .04) rotation = (-90, 0, 0)
		size = (1.834, .04, 1);

	door_panel_right_side position = (1.751, 0, 0);

	// Raised panel
	Rectangle position = (.083, .083, .04) size = (1.667, 2.334, 1);
}

// Doors appear to be about 2.5 feet wide and about 6 feet tall
half_door {
	Rectangle position = (.333, 5.667, .04) size = (1.834, .333, 1);
	Rectangle position = (0, 0, .04) size = (.333, 6, 1);
	tall_door_panel position = (.333, 3.167, 0);
	Rectangle position = (1.083, 3.167, .04) size = (.333, 2.5, 1);
	tall_door_panel position = (1.416, 3.167, 0);
	Rectangle position = (2.166, 0, .04) size = (.333, 6, 1);
	Rectangle position = (.333, 2.834, .04) size = (1.834, .333, 1);
	fat_door_panel position = (.333, .333, 0);
	Rectangle position = (.333, 0, .04)  size = (1.834, .333, 1);
}

door {
	half_door position = (0, 0, .04);
	doorknob position = (2.333, 3, .1);
	Rectangle position = (0, 0, 0) rotation = (90, 0, 0)
		size = (2.5, .08, 1) name = "bottom_edge";
	Rectangle position = (0, 0, 0) rotation = (0, -90, 0)
		size = (.08, 6, 1) name = "left_edge";
	Rectangle position = (2.5, 0, .08) rotation = (0, 90, 0)
		size = (.08, 6, 1) name = "right_edge";
	Rectangle position = (0, 6, .08) rotation = (-90, 0, 0)
		size = (2.5, .08, 1) name = "top_edge";
	half_door position = (2.5, 0, .04) rotation = (0, 180, 0);
	doorknob position = (2.333, 3, 0) rotation = (0, 180, 0);
}

doorway_side {
	NURBSCurve name = "rounded half square" NoDraw
		order = 3
		knots = "{ 0, 0, 0, 1, 2, 3, 4, 4, 4 }"
		control_points = "{ (0, 0, 0), (0, .04, 0), (.04, .04, 0), (.293, .04, 0), (.333, .04, 0), (.333, 0, 0) }"
		weights = "{ 1, .707, 1, 1, .707, 1 }";
	NURBSCurve name = "horizontal_line"
		order = 3   knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 0, 0), (.5, 0, 0), (1, 0, 0) }"
		weights = "{ 1, 1, 1 }" NoDraw;
	ExtrudedObject cross_section = "rounded half square"
		extrusion_path = "horizontal_line" accuracy = 25%;
}

rounded_corner {
	NURBSurface
		u_order = 3	u_knots = "{ 0, 0, 0, 1, 1, 1 }"
		v_order = 3	v_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 0, 0), (0, 0, 1), (1, 0, 1), (0, .5, 0), (0, .5, 1), (1, .5, 1), (0, 1, 0), (0, 1, 0), (1, 1, 0)}"
		weights = "{ 1, .707, 1, 1, .707, 1, 1, 1, 1 }"
		accuracy = 50%;
}

rounded_edge {
	NURBSurface
		u_order = 3	u_knots = "{ 0, 0, 0, 1, 1, 1 }"
		v_order = 3	v_knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 0, 0), (.5, 0, 0), (1, 0, 0), (0, 0, 1), (.5, 0, 1), (1, 0, 1), (0, 1, 1), (.5, 1, 1), (1, 1, 1) }"
		weights = "{ 1, 1, 1, .707, .707, .707, 1, 1, 1 }"
		accuracy = 50%;
}

doorway {	// Doorways are about 4" wide and about .5" thick
	doorway_side position = (.16, 0, .55) size = (6.313, 1, 1)
		rotation = (0, -90, 90);
	doorway_side position = (3.01, 0, .55) size = (6.313, 1, 1)
		rotation = (0, -90, 90);

	rounded_corner position = (-.34, 6.31, .05) size = .04;
	rounded_corner position = (2.802, 6.351, .05) size = .04
		rotation = (0, 0, -90);
	doorway_side position = (-.313, 5.85, .55) size = (3.126, 1, 1)
		rotation = (-90, 0, 0);
}

stair {
	Rectangle size = (1, .5, 1);
	Rectangle position = (0, .5, 0)  rotation = (-90, 0, 0);
	NURBSCurve name = "half-circle" NoDraw
		order = 3	knots = "{ 0, 0, 0, 1, 2, 3, 3, 3 }"
		control_points = "{ (0, 0, 0), (0, .5, 0), (.5, .5, 0), (1, .5, 0), (1, 0, 0) }"
		weights = "{ 1, .707, 1, .707, 1 }";
	NURBSCurve name = "horizontal_line"
		order = 3   knots = "{ 0, 0, 0, 1, 1, 1 }"
		control_points = "{ (0, 0, 0), (.5, 0, 0), (1, 0, 0) }"
		weights = "{ 1, 1, 1 }" NoDraw;
	ExtrudedObject  position = (0, .485, 0.015)  size = (1, .03, .03)
		rotation = (-90, 0, 0)  cross_section = "half-circle"
		extrusion_path = "horizontal_line"  accuracy = (10%, 50%);
}

// Charles Rupert Designs (www.charles-rupert.com/traditional) were used as
// ideas for the wallpaper.  The wallpaper is intended to be about 1920's
// or 1930's vintage, so I used some light and dark pastels and simplified
// the 1950's ivy pattern.

// This is breaking my own rule about keeping everything in a 1x1x1 cube,
// but I feel it is ok because it really is the scene object and is only a
// separate object so that I can move things around conveniently.
kitchen {		// Units are in feet.
	// Walls
	wall size = (15, 8, 1);
	wall position = (0, 0, 10) rotation = (0, 90, 0) size = (10, 8, 1);
	Rectangle position = (15, 6.333, 0) rotation = (0, -90, 0)
		size = (3.167, 2, 1) texture = "texture/wallpaper.png";
	wall position = (15, 0, 3.166) rotation = (0, -90, 0) size = (7.333, 8, 1);
	wall position = (15, 0, 10) rotation = (0, 180, 0) size = (15, 8, 1);
	Rectangle rotation = (90, 0, 0) size = (15, 10, 1)
		color = (160, 160, 160) texture = "texture/plank.jpg";
	Rectangle position = (0, 8, 0) rotation = (90, 0, 0) size = (15, 10, 1);

	door position = (.333, 0, 9.96);
	doorway position = (2.833, 0, 10.04)  rotation = (0, 180, 0);

	doorway position = (15.04, 0, .333)  rotation = (0, -90, 0);
	door position = (15, 0, .333)  rotation = (0, 175, 0);

	// Table scene
	plain_table position = (5, 0, 4) size = 4
		texture = "texture/plank_sm.jpg";
//(bug)	light_bulb position = (7.5, 5, 5) rotation = (180, 0, 0);
	Line position = (7.5, 4.8, 5) size = (7.5, 8.1, 5) color = (0, 0, 0);

	// The cards
	deck_of_cards position = (6.5, 1.45, 4.5);
	discard_pile  position = (7, 1.45, 4.5);
	hand1 position = (6.25, 1.45, 4.25) rotation = (0, 180, 0);
	folded_hand position = (7.95, 1.45, 4.25) rotation = (0, 0, 0);
	hand3 position = (7.75, 1.45, 5.25);
	hand4 position = (5.75, 1.45, 5.25);

	// The "people"
	king position = (8, 0, 6) size = 3 texture = "texture/plank_sm.jpg";
	pawn position = (6, 0, 6) size = 4;
	king position = (6, 0, 3.5) size = 3
		texture = "texture/black_marble_sm.jpg";
	bishop position = (8, 0, 3.5) size = 3.5
		texture = "texture/marble_sm.jpg";
}

stairway {
	// The color of the walls and the stairs needs to be artificially
	// darkened so that it appears to be in shadow...
//	Rectangle size = (3, 8, 1) color = (128, 128, 128)
//		texture = "texture/wallpaper.png";
	wall size = (3, 8, 1) color = (128, 128, 128);
	Rectangle position = (2.5, 0, 0) size = (10, 8, 1) rotation = (0, -90,0)
		color = (128, 128, 128) texture = "texture/wallpaper.png";
	Rectangle size = (3, 10, 1) rotation = (90, 0, 0)
		color = (160, 160, 160) texture = "texture/plank.jpg";
	Rectangle position = (0, 8, 0) size = (3, 10, 1) rotation = (90, 0, 0);
	stair position = (2.57, 0, -.1) color = (160, 160, 160)
		size = (4, 1, 2) rotation = (0, -130, 0)
		texture = "texture/plank.jpg";
	stair position = (3, .5, 2.9)  size = (3, 1, 1) rotation = (0, 180, 0)
		color = (128, 128, 128) texture = "texture/plank.jpg";
	stair position = (3, 1, 3.4)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 1.5, 3.9)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 2, 4.4)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 2.5, 4.9)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 3, 5.4)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 3.5, 5.9)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 4, 6.4)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 4.5, 6.9)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 5, 7.4)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 5.5, 7.9)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 6, 8.4)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 6.5, 8.9)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 7, 9.4)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
	stair position = (3, 7.5, 9.9)  size = (3, 1, 1) rotation = (0, 180, 0)
		texture = "texture/plank.jpg";
}

Scene {
	kitchen rotation = (0, 180, 0);
	stairway position = (-15, 0, 0)  rotation = (0, 180, 0);
	light_bulb position = (-7.5, 5, -5) rotation = (180, 0, 0) size = .5;
}

Home    About    Screenshots    Download    Documentation

Copyright © 2001 Geoffrey Prewett