projects
/
anneal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed vertex normals
[anneal.git]
/
src
/
Geom.java
diff --git
a/src/Geom.java
b/src/Geom.java
index
558332d
..
3a5f4a6
100644
(file)
--- a/
src/Geom.java
+++ b/
src/Geom.java
@@
-179,17
+179,13
@@
public class Geom implements Iterable<Geom.T> {
public String toString() { return ""+name; }
//{ return "("+x+","+y+","+z+")"; }
public V norm() {
public String toString() { return ""+name; }
//{ return "("+x+","+y+","+z+")"; }
public V norm() {
- /*
- if (t==null) throw new Error("attempt to get vertex normal for point which does not belong to any triangles");
- T ti = t;
V norm = new V(0, 0, 0);
V norm = new V(0, 0, 0);
+ E e = this.e;
do {
do {
- norm = norm.plus(ti.norm().times((float)ti.angle(this)));
- ti = ti.nextT(this);
- } while(ti != t);
+ norm = norm.plus(e.t.norm().times((float)e.prev.angle()));
+ e = e.pair.next;
+ } while(e != this.e);
return norm.norm();
return norm.norm();
- */
- throw new Error();
}
}
}
}
@@
-239,6
+235,13
@@
public class Geom implements Iterable<Geom.T> {
return t;
}
return t;
}
+ /** angle between this half-edge and the next */
+ public double angle() {
+ V v1 = next.p2.minus(p2);
+ V v2 = this.p1.minus(p2);
+ return Math.acos(v1.norm().dot(v2.norm()));
+ }
+
public void makeAdjacent(E e) {
if (this.next == e) return;
if (p2 != e.p1) throw new Error("cannot make adjacent -- no shared vertex");
public void makeAdjacent(E e) {
if (this.next == e) return;
if (p2 != e.p1) throw new Error("cannot make adjacent -- no shared vertex");
@@
-415,14
+418,8
@@
public class Geom implements Iterable<Geom.T> {
else if (p == e3.shared(e1)) return e1;
else throw new Error("triangle " + this + " does not own point " + p);
}
else if (p == e3.shared(e1)) return e1;
else throw new Error("triangle " + this + " does not own point " + p);
}
-
- // returns the angle at point p
- public double angle(P p) {
- V v1 = nextE(p).other(p).minus(p);
- V v2 = prevE(p).other(p).minus(p);
- return Math.acos(v1.norm().dot(v2.norm()));
- }
*/
*/
+
}
}