- private void glNormal(GL gl) {
- Vec norm = norm();
- gl.glNormal3f(norm.x, norm.y, norm.z);
- }
-
- public void recomputeFundamentalQuadricIfNeighborChanged() {
- Vertex oldv = nearest_in_other_mesh;
- Vertex newv = score_against.nearest(p);
- if (oldv==newv) return;
- recomputeFundamentalQuadric();
- if (oldv!=null) oldv.recomputeFundamentalQuadricIfNeighborChanged();
- //if (newv!=null) newv.recomputeFundamentalQuadricIfNeighborChanged();
- }
- public void recomputeFundamentalQuadric() {
- unApplyQuadricToNeighbor();
- if (quadricStale || fundamentalQuadric==null) {
- Matrix m = Matrix.ZERO;
- int count = 0;
- for(E e = this.e; e!=null; e=e.pair.next==this.e?null:e.pair.next) {
- T t = e.t;
- m = m.plus(t.norm().fundamentalQuadric(t.centroid()));
- count++;
- }
- quadricStale = false;
- fundamentalQuadric = m.times(1/(float)count);
- }
- applyQuadricToNeighbor();
+ public void reinsert() {
+ vertices.remove(this);
+ vertices.add(this);
+ for(E e = this.e; e!=null; e=e.pair.next==this.e?null:e.pair.next) e.t.reinsert();