/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package automenta.spacenet.run.old.physics; import automenta.spacenet.space.geom.ConvexHull; import automenta.spacenet.run.ArdorSpacetime; import automenta.spacenet.space.Repeat; import automenta.spacenet.space.geom.ProcessBox; import automenta.spacenet.var.physical.Color; import automenta.spacenet.var.Maths; import com.ardor3d.scenegraph.Spatial; import java.util.LinkedList; import java.util.List; import javax.vecmath.Vector3f; /** * generate and display a dynamically animated convex hull */ public class DemoAnimatedConvexHullBlob extends ProcessBox { final static int numPoints = 128; @Override protected void start() { final List<Vector3f> points = new LinkedList(); for (int i = 0; i < numPoints; i++) { double x = Maths.random(-0.5, 0.5); double y = Maths.random(-0.2, 0.2); double z = Maths.random(-0.2, 0.2); points.add(new Vector3f((float) x, (float) y, (float) z)); } final ConvexHull hull = add(new ConvexHull(points)); hull.color(Color.White); add(new Repeat(0.05) { @Override protected void update(double t, double dt, Spatial s) { double d = 0.01; for (Vector3f v : points) { v.x += Maths.random(-d, d); v.y += Maths.random(-d, d); v.z += Maths.random(-d, d); } //change points hull.setPoints(points); } }); } public static void main(String[] args) { ArdorSpacetime.newWindow(new DemoAnimatedConvexHullBlob()); } }