+ this.CH = Cube.EDGE_HEIGHT;
+ this.CW = Cube.EDGE_WIDTH;
+ this.diag = sqrt(CW*CW + CW*CW);
+
+
+ArrayList<PVector> centerlistrelative = new ArrayList<PVector>();
+for (int i = 0; i < model.cubes.size(); i++){
+ Cube a = model.cubes.get(i);
+ cubeorigin.add(new PVector(a.x, a.y, a.z));
+ centerlist.add(centerofcube(i));
+
+}
+
+}
+//there is definitely a better way of doing this!
+PVector centerofcube(int i) {
+Cube c = model.cubes.get(i);
+
+println(" cube #: " + i + " c.x " + c.x + " c.y " + c.y + " c.z " + c.z );
+PVector cubeangle = new PVector(c.rx, c.ry, c.rz);
+//println("raw x" + cubeangle.x + "raw y" + cubeangle.y + "raw z" + cubeangle.z);
+PVector cubecenter = new PVector(c.x + CW/2, c.y + CH/2, c.z + CW/2);
+println("cubecenter unrotated: " + cubecenter.x + " " +cubecenter.y + " " +cubecenter.z );
+PVector centerrot = new PVector(cos(c.rx)*CW/2 - sin(c.rx)*CW/2, 0, cos(c.rz)*CW/2 + sin(c.rz)*CW/2);
+ // nCos*(y-o.y) - nSin*(z-o.z) + o.y
+cubecenter = PVector.add(cubecenter, centerrot);
+println( " cubecenter.x " + cubecenter.x + " cubecenter.y " + cubecenter.y + " cubecenter.z " + cubecenter.z + " ");
+