public class Tendril{ // Initial path private Vector3D[] path; // Vectors between path nodes public Vector3D[] regVecs; // Cage polygons Polygon3D[] polys; private float xzAng, yzAng, xyAng; private float tempX, tempY, tempZ; private Vector3D worldOrigin = new Vector3D(0.0f,0.0f,0.0f); // Number of points on cage polygons private int polyDetail; // Tendril thickness private float polyRadius; private float polyCounter = 0.0; public Tendril(Vector3D[] path, int polyDetail, float polyRadius){ this.path = path; this.polyDetail = polyDetail; this.polyRadius = polyRadius; init(); } private void update(Vector3D[] path){ this.path = path; init(); } private void init(){ float bulgeAng = 0; regVecs = new Vector3D[path.length-1]; polys = new Polygon3D[path.length-1]; // generate vectors between each point on path for (int i=1; i