#VRML V2.0 utf8 # # #

# Towers of Hanoi Example

DEF CAM1 Viewpoint {
	position 0  1  15
	description "Camera 1"
}

DEF CAM2 Viewpoint {
	position 0  1  20
	description "Camera 2"
}

DEF CAM3 Viewpoint {
	position 0  1  25
	description "Camera 3"
}


NavigationInfo {
	type "EXAMINE"
}


Background {
	skyColor [
		0.0  0.2  0.7
		0.0  0.5  1.0
		1.0  1.0  1.0
	]
	skyAngle [ 1.309, 1.571 ]

	groundColor [
		0.1  0.10  0.0
		0.4  0.25  0.2
		0.6  0.60  0.6
	]
	groundAngle [ 1.309, 1.571 ]
}


PROTO BoxTransform [
	exposedField SFRotation rotation 0  0  0  0.0
	exposedField SFVec3f translation 0  0  0
	exposedField SFColor diffuseColor 1.0  1.0  1.0
	exposedField SFVec3f size 2.0  2.0  2.0
]
{
	Transform {
		rotation IS rotation
		translation IS translation
		children [
			Shape {
				appearance Appearance {
					material Material {
						diffuseColor IS diffuseColor
					}
				}
				geometry Box {
					size IS size
				}
			}
		]
	}
}

PROTO ConeTransform [
	exposedField SFRotation rotation 0  0  0  0.0
	exposedField SFVec3f translation 0  0  0
	exposedField SFColor diffuseColor 1.0  1.0  1.0
	exposedField SFFloat radius 0.2
	exposedField SFFloat height 2.0
]
{
	Transform {
		rotation IS rotation
		translation IS translation
		children [
			Shape {
				appearance Appearance {
					material Material {
						diffuseColor IS diffuseColor
					}
				}
				geometry Cone {
					bottomRadius IS radius
					height IS height
				}
			}
		]
	}
}

PROTO CylinderTransform [
	exposedField SFRotation rotation 0  0  0  0.0
	exposedField SFVec3f translation 0  0  0
	field SFColor diffuseColor 1 1 1
	field SFFloat radius 0.5
	field SFFloat height 2.0
]
{
	Transform {
		rotation IS rotation
		translation IS translation
		children [
			Shape {
				appearance Appearance {
					material Material {
						diffuseColor IS diffuseColor
					}
				}
				geometry Cylinder {
					radius IS radius
					height IS height
				}
			}
		]
	}
}

PROTO TextTransform [
	exposedField SFRotation rotation 0  0  0  0.0
	exposedField SFVec3f translation 0  0  0
	exposedField MFString text [ "undefined", "text" ]
]
{
	Transform {
		rotation IS rotation
		translation IS translation
		scale 0.5  0.5  0
		children [
			Shape {
				appearance Appearance {
					material Material {
						diffuseColor 1.0  1.0  1.0
					}
				}
				geometry Text {
					string IS text
					fontStyle FontStyle {
						family "SERIF"
						style "BOLD"
						justify "MIDDLE"
					}
				}
			}
		]
	}
}

PROTO BoardTransform [
	exposedField MFString text [ "Please", "wait", "...." ]
	exposedField SFRotation rotation 0 0 0 0.0
	exposedField SFVec3f translation 0 0 0
]
{
Transform {
	rotation IS rotation
	translation IS translation
	children [
		Billboard {
		axisOfRotation 0 1 0
		children [
			BoxTransform {
				diffuseColor 0.8 0.8 0.0
				translation 0.0 0.0 -0.2
				size 4 3 0.1
			}
			TextTransform {
				text IS text
			}
		]
		}
	]
}
}



Transform {
	rotation 0 0 0  0.0
	translation 0.0  0.0  0.0
	children [
		# define message billboard:
		DEF bboard BoardTransform {
			translation -8.0  2.0 -4.0
		}
		DEF box BoxTransform {
			size 10  0.05  4.0
			diffuseColor 0.8  0.8  0.0
		}
		DEF peg1 ConeTransform {
			height 2.4
			radius 0.4
			translation -4.0  1.2  0.0
			diffuseColor 0.8  0.2  0.2
		}
		DEF peg2 ConeTransform {
			height 2.4
			radius 0.4
			translation  0.0  1.2  0.0
			diffuseColor 0.8  0.8  0.8
		}
		DEF peg3 ConeTransform {
			height 2.4
			radius 0.4
			translation  4.0  1.2  0.0
			diffuseColor 0.2  0.2  0.8
		}
		DEF disk1 CylinderTransform {
			height 0.2
			radius 0.4
			translation -4.0  1.6  0.0
			diffuseColor 0.8  0.2  0.2
		}
		DEF disk2 CylinderTransform {
			height 0.2
			radius 0.6
			translation -4.0  1.2  0.0
			diffuseColor 0.8  0.8  0.8
		}
		DEF disk3 CylinderTransform {
			height 0.2
			radius 0.8
			translation -4.0  0.8  0.0
			diffuseColor 0.2  0.2  0.8
		}
		DEF disk4 CylinderTransform {
			height 0.2
			radius 1.0
			translation -4.0  0.4  0.0
			diffuseColor 0.8  0.8  0.8
		}
	]
}


#
# #