class V3rtil { public Vector particles; public Vector springs; ParticleSystem physics; public V3rtil( ParticleSystem p, Vector3D firstPoint, Particle followPoint ) { particles = new Vector(); springs = new Vector(); physics = p; Particle firstParticle = p.makeParticle( 1.0f, firstPoint.x(), firstPoint.y(), firstPoint.z() ); particles.add( firstParticle ); physics.makeSpring( followPoint, firstParticle, 0.5f, 1.1f, 5 ); } public void addPoint( Vector3D p ) { Particle thisParticle = physics.makeParticle( 1.0f, p.x(), p.y(), p.z() ); springs.add( physics.makeSpring( ((Particle)particles.lastElement()), thisParticle, 130.5f, 1.11f, ((Particle)particles.lastElement()).position().distanceTo( thisParticle.position() ) ) ); particles.add( thisParticle ); } } void initiate() { tendrils.add( new V3rtil( physics, new Vector3D( 0, 0, 0 ), mouse ) ); for ( int i = 0; i < 40; i++ ) { ((V3rtil)tendrils.lastElement()).addPoint( new Vector3D( sq(i)/2, sq(i)/2, 0 ) ); } }