tgmCyl.addChild(cylMoveR);
tgmCyl.addChild(cylMoveL);
//A Switch for the green and the red sphere.
Switch colourSwitch = new Switch();
colourSwitch.setCapability(Switch.ALLOW_SWITCH_WRITE);
//An Appearance for the green sphere.
Color3f ambientColourGSphere = new Color3f(0.0f,0.8f,0.0f);
Color3f emissiveColourGSphere = new Color3f(0.0f,0.0f,0.0f);
Color3f diffuseColourGSphere = new Color3f(0.0f,0.8f,0.0f);
Color3f specularColourGSphere = new Color3f(0.0f,0.8f,0.0f);
float shininessGSphere = 1.0f;
Appearance greenSphereApp = new Appearance();
greenSphereApp.setMaterial(new Material(ambientColourGSphere,
emissiveColourGSphere,
diffuseColourGSphere,
specularColourGSphere,
shininessGSphere));
//Generate the green sphere.
float radius = 0.1f;
Sphere greenSphere = new Sphere(radius,greenSphereApp);
//The same for the red sphere.
Color3f ambientColourRSphere = new Color3f(0.6f,0.0f,0.0f);
Color3f emissiveColourRSphere = new Color3f(0.0f,0.0f,0.0f);
Color3f diffuseColourRSphere = new Color3f(0.6f,0.0f,0.0f);
Color3f specularColourRSphere = new Color3f(0.8f,0.0f,0.0f);
float shininessRSphere = 20.0f;
Appearance redSphereApp = new Appearance();
redSphereApp.setMaterial(new Material(ambientColourRSphere,emissiveColourRSphere,
diffuseColourRSphere,specularColourRSphere,shininessRSphere));
Sphere redSphere = new Sphere(radius,redSphereApp);
//Add the two spheres to the Switch.
colourSwitch.addChild(greenSphere);
colourSwitch.addChild(redSphere);
//The CollisionBounds for the two spheres.
colourSwitch.setCollisionBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),radius));
//Enable the test for collision.
colourSwitch.setCollidable(true);
//The green sphere should be visible in the beginning.
colourSwitch.setWhichChild(0);
//A transformation group for the Switch (the spheres).
Transform3D tfSphere = new Transform3D();
tfSphere.setTranslation(new Vector3f(0.7f,0.0f,0.0f));
TransformGroup tgSphere = new TransformGroup(tfSphere);