package nl.tudelft.simulation.examples.dsol.animation3d; import java.util.Enumeration; import javax.media.j3d.Appearance; import javax.media.j3d.Material; import javax.media.j3d.Node; import javax.media.j3d.TransformGroup; import javax.vecmath.Color3f; import nl.tudelft.simulation.dsol.animation.Locatable; import nl.tudelft.simulation.dsol.animation.D3.Renderable3D; import nl.tudelft.simulation.dsol.simulators.SimulatorInterface; /** * BallAnimation3D, animation of a ball in 3D
* (c) copyright 2003 Delft University of Technology , the Netherlands.
* See for project information www.simulation.tudelft.nl
* License of use: General Public License (GPL) , no warranty
* @version 1.0 10.05.2004
* @author Roy Chin */ public class BallAnimation3D extends Renderable3D { /** * constructs a new BallAnimation3D. * @param source the source * @param simulator the simulator */ public BallAnimation3D(final Locatable source, final SimulatorInterface.TimeDouble simulator) { super(source, simulator); } /** * provides the model for the animationObject * @param locationGroup */ public void provideModel(final TransformGroup locationGroup) { this.setScale(0.1d); // ---------------- // The shape itself Appearance app = new Appearance(); // Create colors for the material Color3f ambientColor = new Color3f(1.0f, 0.0f, 0.0f); Color3f diffuseColor = new Color3f(1.0f, 0.0f, 0.0f); Color3f specularColor = new Color3f(1.0f, 1.0f, 1.0f); Color3f emissiveColor = new Color3f(0.0f, 0.0f, 0.0f); // Define shininess float shininess = 10.0f; // Set material app.setMaterial(new Material(ambientColor, emissiveColor, diffuseColor, specularColor, shininess)); // Create a ball Node model = new Sphere(5f * (float) this.scale, app); // Node model = new ColorCube(0.4); // --------------- // Put it together locationGroup.addChild(model); } /** * updates the animation of this object * @param children the children to update */ protected void update(Enumeration children) { // Do nothing } }