#X3D V3.0 utf8
# X3D-to-ClassicVRML XSL translation autogenerated by X3dToVrml97.xslt
# https://www.web3d.org/x3d/content/X3dToVrml97.xslt
# Generated using XSLT processor: Saxonica
PROFILE Immersive
# [X3D] version=3.0
# [X3D] noNamespaceSchemaLocation=https://www.web3d.org/specifications/x3d-3.0.xsd
# [head]
META "title" "Trebuchet.x3d"
META "description" "Working model of a 14th century Trebuchet Catapult."
META "creator" "LT Joe Roth"
META "created" "20 June 2001"
META "modified" "20 October 2019"
META "version" "7.8"
META "identifier" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/Trebuchet.x3d"
META "reference" "http://trebuchet.com"
META "reference" "http://members.home.net/dimona"
META "subject" "trebuchet catapult Monty Python"
META "reference" "Permission granted for use of the VRML chicken I own a copy of Monty Python and the Holy Grail I have requested permission to use for non profit use. No response received. I will use the sound clips under \"Fair Use\" clause of the DMCA"
META "reference" "https://www.web3d.org/WorkingGroups/media/textures/nature/leaves_5.jpg.htm"
META "reference" "http://www.revemonde.net/UniversalMedia/textures/nature/leaves_5.jpg.htm"
META "generator" "X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit"
META "license" "../license.html"
# [Scene] ========== ========== ==========
NavigationInfo { type [ "EXAMINE" "ANY" ] } ### Default X3D NavigationInfo
WorldInfo {
title "Trebuchet.x3d"
}
Background {
backUrl [ "https://www.web3d.org/WorkingGroups/media/textures/panoramas/meadow_2_back.jpg" ]
bottomUrl [ "https://www.web3d.org/WorkingGroups/media/textures/panoramas/meadow_2_bottom.jpg" ]
frontUrl [ "https://www.web3d.org/WorkingGroups/media/textures/panoramas/meadow_2_front.jpg" ]
groundAngle [ 1.309 1.570796 ]
groundColor [ 0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6 ]
leftUrl [ "https://www.web3d.org/WorkingGroups/media/textures/panoramas/meadow_2_left.jpg" ]
rightUrl [ "https://www.web3d.org/WorkingGroups/media/textures/panoramas/meadow_2_right.jpg" ]
skyAngle [ 1.309 1.57079 ]
skyColor [ 0 0.2 0.7 0 0.5 1 1 1 1 ]
topUrl [ "https://www.web3d.org/WorkingGroups/media/textures/panoramas/meadow_2_top.jpg" ]
}
Sound {
maxBack 1000
maxFront 1000
source DEF HolyGrail AudioClip {
description "HolyGrail"
loop TRUE
url [ "holygral.mp3" "http://www.nps.navy.mil/code32/vrml/holygral.mp3" ]
}
}
Shape {
geometry Box {
size 10000 1 10000
}
appearance Appearance {
texture ImageTexture {
url [ "grass.jpg" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/grass.jpg" ]
}
}
}
Transform {
rotation 0 1 0 1.57
scale .5 .5 .5
translation 10.5 6.5 4.5
children [
Shape {
appearance DEF TextAppearance Appearance {
material Material {
diffuseColor 1 0 0
emissiveColor 1 1 0
}
}
geometry Text {
string [ "Click Sling to Select Projectile" ]
fontStyle FontStyle {
}
}
}
]
}
Transform {
rotation 0 1 0 1.57
scale .5 .5 .5
translation 11 5.5 6
children [
DEF Weight Switch {
whichChoice 0
children [
Group {
children [
Shape {
appearance USE TextAppearance
geometry Text {
string [ "Click Here to Change Counter Weight (50 lbs)" ]
}
}
]
}
Group {
children [
Shape {
appearance USE TextAppearance
geometry Text {
string [ "Click Here to Change Counter Weight (500 lbs)" ]
}
}
]
}
Group {
children [
Shape {
appearance USE TextAppearance
geometry Text {
string [ "Click Here to Change Counter Weight (1000 lbs)" ]
}
}
]
}
Group {
children [
Shape {
appearance USE TextAppearance
geometry Text {
string [ "Click Here to Change Counter Weight (10000 lbs)" ]
}
}
]
}
]
}
DEF weightselector TouchSensor {
description "weight selector"
}
Transform {
translation 8 0 0
children [
Shape {
geometry Box {
size 20 1 1
}
appearance Appearance {
material Material {
transparency 1
}
}
}
]
}
]
}
Transform {
rotation 0 1 0 1.57
translation 10 .5 4.5
children [
DEF launch Transform {
translation 0 2 5
children [
Billboard {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1 0 0
}
}
geometry Text {
string [ "LAUNCH" ]
fontStyle FontStyle {
}
}
}
Transform {
translation 2 .3 0
children [
Shape {
geometry Box {
size 5 1 1
}
appearance Appearance {
material Material {
transparency 1
}
}
}
]
}
DEF PigdogMonk Switch {
whichChoice -1
children [
Group {
children [
Sound {
maxBack 1000
maxFront 1000
source DEF PigDogSound AudioClip {
description "PigDogSound"
url [ "pigdog.wav" "http://www.nps.navy.mil/code32/vrml/pigdog.wav" ]
}
}
]
}
Group {
children [
Sound {
maxBack 1000
maxFront 1000
source DEF MonkSound AudioClip {
description "MonkSound"
url [ "monks.wav" "http://www.nps.navy.mil/code32/vrml/monks.wav" ]
}
}
]
}
]
}
]
}
DEF Launch TouchSensor {
description "launch!"
}
]
}
Transform {
children [
DEF projectilename Switch {
whichChoice 0
children [
Group {
children [
Shape {
appearance USE TextAppearance
geometry Text {
string [ "Bowling Ball (10 lbs)" ]
fontStyle FontStyle {
size .5
}
}
}
Sound {
maxBack 1000
maxFront 1000
priority 1
source DEF HolyHandGrenadeSound AudioClip {
description "HolyHandGrenadeSound"
url [ "grenade.wav" "http://www.nps.navy.mil/code32/vrml/grenade.wav" ]
}
}
]
}
Group {
children [
Shape {
appearance USE TextAppearance
geometry Text {
string [ "Cow (1000 lbs)" ]
fontStyle FontStyle {
size .5
}
}
}
Sound {
maxBack 1000
maxFront 1000
source DEF CowSound AudioClip {
description "CowSound"
url [ "lavache.wav" "http://www.nps.navy.mil/code32/vrml/lavache.wav" ]
}
}
]
}
Group {
children [
Shape {
appearance USE TextAppearance
geometry Text {
string [ "Chicken (5 lbs)" ]
fontStyle FontStyle {
size .5
}
}
}
Sound {
maxBack 1000
maxFront 1000
priority 1
source DEF HamsterSound AudioClip {
description "HamsterSound"
url [ "hamster.wav" "http://www.nps.navy.mil/code32/vrml/hamster.wav" ]
}
}
]
}
]
}
]
}
]
}
Transform {
rotation 0 1 0 -1.67
children [
DEF aft Transform {
translation 5 5 15
children [
Transform {
translation -2.5 -4.5 -2
children [
USE launch
]
}
]
}
]
}
Transform {
translation 0 3 0
children [
DEF plank Shape {
geometry Box {
size 25 1 1
}
appearance DEF wood Appearance {
texture DEF woodTexture ImageTexture {
url [ "wood.gif" "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/wood.gif" ]
}
}
}
DEF angledsupport Transform {
rotation 0 0 1 1
translation -5 10 0
children [
USE plank
]
}
DEF angledsupport2 Transform {
rotation 0 0 1 -1
translation 5 10 0
children [
USE plank
]
}
DEF verticalsupport Transform {
rotation 0 0 1 1.57
scale .9 1 1
translation 0 11 0
children [
USE plank
# Main Verticle Support
]
}
DEF horizontalsupport Transform {
scale .4 1 1
translation 0 10 0
children [
USE plank
]
}
Transform {
rotation 0 0 1 1.57
scale .6 1 1
translation 0 5 10
children [
Transform {
rotation 0 1 0 .4
children [
USE plank
]
}
]
}
DEF panel Transform {
translation 0 18.2 -.3
children [
Shape {
geometry Box {
size 5 5 .5
}
appearance USE wood
}
]
}
Transform {
rotation 1 0 0 -1.57
translation 0 0.6 2.5
children [
Transform {
rotation 0 0 1 1.57
children [
Shape {
geometry Extrusion {
beginCap FALSE
crossSection [ 1.0 -.38 .92 -.38 .71 -.71 .38 -.92 0.0 -1.0 -.38 -.92 -.71 -.71 -.92 -.38 -1.0 -.38 -1 -1.1 1 -1.1 1.0 -.38 ]
endCap FALSE
solid FALSE
spine [ 0 6 0 0 -11 0 ]
}
appearance USE wood
}
]
}
]
}
DEF flinger Transform {
center 7 0 0
rotation 0 0 1 .82
scale .9 1 1
translation -7 18 2.5
children [
Transform {
children [
Shape {
geometry Box {
size 35 1 1
}
appearance USE wood
}
Transform {
translation 7 0 0
children [
Shape {
geometry Box {
size 8 2 2
}
appearance USE wood
}
]
}
]
}
Transform {
rotation 1 0 0 1.57
scale .2 .2 .2
translation -15 -1 0
children [
DEF Torus Shape {
appearance Appearance {
material Material {
specularColor 1 1 1
}
}
geometry Extrusion {
beginCap FALSE
convex FALSE
creaseAngle 1.57
crossSection [ .90 0.00 0.81 -0.34 0.63 -0.63 0.34 -0.83 0.00 -.9 -0.34 -0.81 -0.63 -0.63 -0.81 -0.34 -.90 -0.00 -0.81 0.34 -0.63 0.63 -0.34 0.81 0.00 .90 0.38 0.81 0.63 0.63 0.81 0.34 .90 0.00 ]
endCap FALSE
spine [ 2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00 ]
}
}
Transform {
translation 1 0 2
children [
Shape {
appearance DEF rope Appearance {
texture USE woodTexture
}
geometry Sphere {
radius 1.5
}
}
# knott
]
}
]
}
# The Unicorn
Transform {
rotation 0 0 1 1.2
scale .2 .2 .2
translation -18.3 0.3 0
children [
Shape {
geometry Cylinder {
height 10
}
appearance Appearance {
material Material {
specularColor 1 1 1
}
}
}
Transform {
translation 0 -2.5 0
children [
USE Torus
# The Unicorn
Transform {
translation -2 -0 0
children [
Shape {
geometry Sphere {
radius 1.5
}
appearance USE rope
}
# Knott
]
}
]
}
Transform {
rotation 0 0 1 1.2
translation 15 55 -11
children [
Transform {
scale 5 5 5
children [
Shape {
appearance USE rope
geometry Extrusion {
beginCap FALSE
creaseAngle 0.76
crossSection [ .100 0.00 0.092 -0.038 0.071 -0.071 0.038 -0.092 0.00 -.100 -0.038 -0.092 -0.071 -0.071 -0.092 -0.038 -.100 -0.00 -0.092 0.038 -0.071 0.071 -0.038 0.092 0.00 .100 0.038 0.092 0.071 0.071 0.092 0.038 .100 0.00 ]
endCap FALSE
solid FALSE
spine [ -15.2 1.4 2.2 -12 -.8 2.2 ]
}
}
]
}
]
}
]
}
Transform {
rotation 1 0 0 -1.7
translation -17 -4.5 0
children [
Transform {
scale .2 .2 .2
children [
USE Torus
# Knot
Transform {
translation -1 0 1.7
children [
Shape {
geometry Sphere {
radius 1.5
}
appearance USE rope
}
]
}
]
}
]
}
DEF RnS Transform {
children [
DEF ropes Transform {
children [
Transform {
rotation 0 0 1 -.82
translation 7 -26 -2.5
children [
Shape {
appearance USE rope
geometry Extrusion {
beginCap FALSE
creaseAngle 0.76
crossSection [ .100 0.00 0.092 -0.038 0.071 -0.071 0.038 -0.092 0.00 -.100 -0.038 -0.092 -0.071 -0.071 -0.092 -0.038 -.100 -0.00 -0.092 0.038 -0.071 0.071 -0.038 0.092 0.00 .100 0.038 0.092 0.071 0.071 0.092 0.038 .100 0.00 ]
endCap FALSE
solid FALSE
spine [ -33 .9 2.5 -18.5 1.9 2.55 ]
}
}
Shape {
appearance USE rope
geometry Extrusion {
beginCap FALSE
creaseAngle 0.76
crossSection [ .100 0.00 0.092 -0.038 0.071 -0.071 0.038 -0.092 0.00 -.100 -0.038 -0.092 -0.071 -0.071 -0.092 -0.038 -.100 -0.00 -0.092 0.038 -0.071 0.071 -0.038 0.092 0.00 .100 0.038 0.092 0.071 0.071 0.092 0.038 .100 0.00 ]
endCap FALSE
solid FALSE
spine [ -35.7 -.8 2.5 -18.8 -.8 2.55 ]
}
}
]
}
]
}
DEF sling Transform {
rotation 0 0 1 -.82
translation -4 -15.3 0
children [
Transform {
children [
Transform {
rotation 0 1 0 -1.57
scale 1 1.3 1
translation .5 0 -1
children [
Transform {
rotation 0 0 1 1.57
children [
Transform {
scale .3 .3 .3
children [
DEF halfsling Shape {
appearance DEF clear Appearance {
material Material {
transparency .5
}
}
geometry Extrusion {
crossSection [ 0 0 0 5 .5 7 1 8 2 9 3 11 3.5 11.2 4 11 5 9 6 8 6.5 7 6.7 5 6.7 0 0 0 ]
spine [ 0 0 0 .1 0 0 ]
}
}
Transform {
scale .3 .3 .3
translation 0 -3.5 11.5
children [
USE Torus
Transform {
translation 0 0 2
children [
Shape {
appearance USE rope
geometry Sphere {
radius 1.5
}
}
]
}
]
}
]
}
Transform {
scale .3 .3 .3
translation 2 0 0
children [
USE halfsling
Transform {
scale .3 .3 .3
translation 0 -3.5 11.3
children [
USE Torus
Transform {
translation 0 0 2
children [
Shape {
appearance USE rope
geometry Sphere {
radius 1.5
}
}
]
}
]
}
]
}
Transform {
translation 1 -1 0
children [
Shape {
geometry Extrusion {
beginCap FALSE
creaseAngle 0.785
crossSection [ 1.00 0.00 0.92 -0.38 0.71 -0.71 0.38 -0.92 0.00 -1.00 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1.00 -0.00 ]
endCap FALSE
solid FALSE
spine [ 0 -1 0 0 1 0 ]
}
appearance USE clear
}
]
}
]
}
DEF LauncheeChoice TouchSensor {
description "launcher choice"
}
]
}
DEF projectiletransform Transform {
scale .01 .01 .01
children [
DEF projectile Switch {
whichChoice 0
children [
Group {
children [
Transform {
translation 0 .7 0
children [
Shape {
geometry Sphere {
radius .7
}
appearance DEF black Appearance {
material Material {
diffuseColor 0 0 0
specularColor 1 1 1
}
}
}
]
}
]
}
Group {
children [
Transform {
children [
Inline {
url [ "cow.wrl" "http://www.uoguelph.ca/~dchiu/cow.wrl" ]
}
]
}
]
}
Group {
children [
Transform {
rotation 0 1 0 1.57
scale .4 .4 .4
translation 0 .7 0
children [
Inline {
url [ "vrml_ginger.wrl" "http://home.inreach.com/ntamura/vrml/vrml_ginger.wrl" ]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
Transform {
rotation 1 0 0 1.57
translation 0 18 2.5
children [
Shape {
geometry Cylinder {
height 8
radius .4
}
appearance Appearance {
material Material {
diffuseColor 0 0 0
specularColor 1 1 1
}
}
}
# Top Pivot
]
}
DEF verticalweight Transform {
children [
Transform {
translation 4 18 1.8
children [
Shape {
geometry Box {
size 1 10 .5
}
appearance USE wood
}
]
}
Transform {
translation 4 18 3.2
children [
Shape {
geometry Box {
size 1 10 .5
}
appearance USE wood
}
]
}
Transform {
translation 4 14 2.5
children [
# CounterWeight
Shape {
geometry Cylinder {
height 4
radius 1.5
}
appearance Appearance {
material Material {
diffuseColor 0 0 0
specularColor 1 1 1
}
}
}
]
}
Transform {
rotation 1 0 0 1.57
translation 4 22 2.5
children [
Shape {
geometry Cylinder {
height 2.5
radius .3
}
appearance Appearance {
material Material {
diffuseColor 0 0 0
specularColor 1 1 1
}
}
}
]
}
]
}
Transform {
rotation 0 0 1 1.57
scale .2 .2 .2
translation -11.5 -1 2
children [
DEF screw Transform {
rotation 1 0 0 1.57
children [
USE Torus
Transform {
rotation 1 0 0 -1.57
translation 0 0 7
children [
Shape {
geometry Cylinder {
height 10
radius .7
}
appearance Appearance {
material Material {
specularColor 1 1 1
}
}
}
]
}
]
}
Transform {
translation 0 0 7
children [
USE screw
]
}
# Release Pin
DEF Pin Transform {
rotation 1 0 0 -1.57
translation 0 0 -3
children [
USE screw
]
}
]
}
Transform {
translation 0 0 5
children [
USE plank
USE angledsupport
USE angledsupport2
USE verticalsupport
USE horizontalsupport
Transform {
rotation 0 1 0 1.57
scale .6 1 1
translation 0 -11 -2.5
children [
USE horizontalsupport
]
}
Transform {
rotation 0 0 1 -1.57
scale .6 1 1
translation 0 5 -10
children [
Transform {
rotation 0 1 0 .4
children [
USE plank
]
}
]
}
Transform {
translation 0 0 .6
children [
USE panel
]
}
]
}
Transform {
translation 10 -1 2.5
children [
DEF Axle Shape {
geometry Box {
size 1 1 8
}
appearance USE wood
}
Transform {
rotation 1 0 0 1.57
translation 0 0 4.5
children [
DEF wheel Shape {
geometry Cylinder {
radius 2
}
appearance USE wood
}
DEF tracks Shape {
geometry Sphere {
radius 1.5
}
appearance USE black
}
Transform {
translation 0 .55 0
children [
DEF hub Shape {
geometry Sphere {
radius 1.5
}
appearance USE black
}
]
}
]
}
Transform {
rotation 1 0 0 1.57
translation 0 0 -4.5
children [
USE wheel
USE tracks
Transform {
translation 0 -.55 0
children [
USE hub
]
}
]
}
]
}
Transform {
translation -10 -1 2.5
children [
USE Axle
Transform {
rotation 1 0 0 1.57
translation 0 0 4.5
children [
USE wheel
USE tracks
Transform {
translation 0 .55 0
children [
USE hub
]
}
]
}
Transform {
rotation 1 0 0 1.57
translation 0 0 -4.5
children [
USE wheel
USE tracks
Transform {
translation 0 -.55 0
children [
USE hub
]
}
]
}
Transform {
rotation 0 1 0 -.6
translation 0 100 400
children [
Transform {
translation 1 3 0
children [
Viewpoint {
description "Side"
}
]
}
USE launch
Transform {
children [
USE LauncheeChoice
USE projectilename
### Error: No additional/overriding attribute values (whichChoice='-1') allowed with USE node
Transform {
translation 2.5 0 0
children [
Shape {
geometry Box {
size 5 .5 .5
}
appearance Appearance {
material Material {
transparency 1
}
}
}
]
}
]
}
Transform {
scale .5 .5 .5
translation 0 -1 0
children [
USE weightselector
USE Weight
### Error: No additional/overriding attribute values (whichChoice='-1') allowed with USE node
Transform {
translation 8 0 0
children [
Shape {
geometry Box {
size 17 1 .5
}
appearance Appearance {
material Material {
transparency 1
}
}
}
]
}
]
}
]
}
DEF ProjectileTransform Transform {
translation 14.25 1.25 0
children [
USE projectile
### Error: No additional/overriding attribute values (whichChoice='-1') allowed with USE node
Transform {
rotation 0 1 0 1.57
translation 0 1 0
children [
Viewpoint {
description "Projectile Cam"
position 0 0 15
}
]
}
]
}
Transform {
translation 20 2 0
children [
DEF Front Transform {
rotation 0 1 0 1.57
children [
Viewpoint {
description "Fore"
}
]
}
]
}
Transform {
translation -8 4 0
children [
Transform {
rotation 0 1 0 -1.57
children [
Viewpoint {
description "Aft"
}
]
}
]
}
DEF WeightScript Script {
inputOnly SFBool set_boolean
outputOnly SFInt32 whichchoice
outputOnly SFFloat CounterWeight
url [ "ecmascript: // ### X3D Browser.print() not supported by all VRML97 viewers, instead simply using print()
function initialize ()
{
whichchoice =0;
CounterWeight=100;
}
function set_boolean ( boolean_input, eventTime)
{
if ( boolean_input== false ) { return; } // ignore the unclick
whichchoice = whichchoice +1;
if (whichchoice == 0)CounterWeight=50.00;
if (whichchoice == 1)CounterWeight=500.00;
if (whichchoice == 2)CounterWeight=1000.00;
if (whichchoice == 3)CounterWeight=10000.00;
if ( whichchoice ==4 ) { whichchoice = 0; CounterWeight=50; }
Browser.println ('CounterWeight ='+CounterWeight);
}
" ]
}
DEF LauncheeScript Script {
inputOnly SFBool set_boolean
outputOnly SFInt32 whichchoice
outputOnly SFFloat ProjectileWeight
url [ "ecmascript: // ### X3D Browser.print() not supported by all VRML97 viewers, instead simply using print()
function set_boolean (boolean_input, eventTime)
{
if ( boolean_input== false ) { return; } // ignore unclick
whichchoice = whichchoice +1;
if (whichchoice == 0)ProjectileWeight=10.00;
if (whichchoice == 1)ProjectileWeight=1000.00;
if (whichchoice == 2)ProjectileWeight=5;
if ( whichchoice ==3 ) { whichchoice = 0; ProjectileWeight=10.00; }
Browser.println ('Projectile Weight'+ProjectileWeight);
}
" ]
}
DEF PigdogMonkScript Script {
inputOnly SFBool set_boolean
outputOnly SFInt32 whichchoice
url [ "ecmascript:
function set_boolean (boolean_input, eventTime)
{
if ( boolean_input== false ) { return; } // ignore unclick
whichchoice = whichchoice +1;
if ( whichchoice ==2 ) whichchoice = 0;
}
" ]
}
DEF Mover Script {
inputOnly SFFloat set_fraction
inputOnly SFFloat set_MassCounterWeight
inputOnly SFFloat set_MassProjectileWeight
initializeOnly SFFloat MassCounterWeight 1
initializeOnly SFFloat MassProjectileWeight 1
outputOnly SFVec3f transparent
outputOnly SFVec3f value_changed
### Warning: Script 'var' declarations of variables are not persistent in contained ecmascript: code, values are lost after each call. Use definitions instead.
url [ "ecmascript: // ### X3D Browser.print() not supported by all VRML97 viewers, instead simply using print()
function initialize ()
{
MassCounterWeight=100;
MassProjectileWeight=10;
Browser.println ('MassCounterWeight =' + MassCounterWeight);
Browser.println ('MassProjectileWeight =' + MassProjectileWeight);
}
function set_MassProjectileWeight (value, timestamp)
{
MassProjectileWeight = value;
Browser.println ('new MassProjectileWeight =' + MassProjectileWeight);
}
function set_MassCounterWeight (value2, timestamp)
{
MassCounterWeight = value2;
Browser.println ('new MassCounterWeight =' + MassCounterWeight);
}
function set_fraction ( fraction, eventTime )
{
var TrebuchetHeight=45;
var Height =25;
x = (2*(MassCounterWeight/MassProjectileWeight)*Height*fraction)-.5*TrebuchetHeight;
// start at TrebuchetHeight and keep along z axis (z=zero)
y = (MassCounterWeight/MassProjectileWeight)*Height*Math.sin(fraction*3.14);
z = 0;
transparent = new SFVec3f (1,1,1);
if (y <1.5*TrebuchetHeight )if (x