}
public Iterator<T> iterator() {
- for(Vert v : verts.values())
+ for(Vert v : pointset)
if (v.e != null && v.e.t != null)
return new FaceIterator(v);
return new FaceIterator();
public void transform(Matrix m) {
ArrayList<Vert> set = new ArrayList<Vert>();
- set.addAll(verts.values());
+ for (Vert v : pointset)
+ set.add(v);
for(Vert v : set) v.transform(m);
}
- public Vec diagonal() {
- float min_x = Float.MAX_VALUE;
- float min_y = Float.MAX_VALUE;
- float min_z = Float.MAX_VALUE;
- float max_x = Float.MIN_VALUE;
- float max_y = Float.MIN_VALUE;
- float max_z = Float.MIN_VALUE;
- for(Point p : verts.keySet()) {
- if (p.x < min_x) min_x = p.x;
- if (p.y < min_y) min_y = p.y;
- if (p.z < min_z) min_z = p.z;
- if (p.x > max_x) max_x = p.x;
- if (p.y > max_y) max_y = p.y;
- if (p.z > max_z) max_z = p.z;
- }
- return new Vec(max_x - min_x, max_y - min_y, max_z - min_z);
- }
-
- public Point centroid() {
- float min_x = Float.MAX_VALUE;
- float min_y = Float.MAX_VALUE;
- float min_z = Float.MAX_VALUE;
- float max_x = Float.MIN_VALUE;
- float max_y = Float.MIN_VALUE;
- float max_z = Float.MIN_VALUE;
- for(Point p : verts.keySet()) {
- if (p.x < min_x) min_x = p.x;
- if (p.y < min_y) min_y = p.y;
- if (p.z < min_z) min_z = p.z;
- if (p.x > max_x) max_x = p.x;
- if (p.y > max_y) max_y = p.y;
- if (p.z > max_z) max_z = p.z;
- }
- return new Point((float)(max_x + min_x)/2,
- (float)(max_y + min_y)/2,
- (float)(max_z + min_z)/2);
- }
+ public Vec diagonal() { return pointset.diagonal(); }
+ public Point centroid() { return pointset.centroid(); }
public float volume() {
double total = 0;