[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Surface.java, 1.196, 1.197
Status: Pre-Alpha
Brought to you by:
henryml
From: rimestad <rim...@us...> - 2007-10-23 07:20:45
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv18151/src/net/sourceforge/bprocessor/model Modified Files: Surface.java Log Message: smooth normals Index: Surface.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Surface.java,v retrieving revision 1.196 retrieving revision 1.197 diff -C2 -d -r1.196 -r1.197 *** Surface.java 16 Oct 2007 13:31:29 -0000 1.196 --- Surface.java 23 Oct 2007 07:20:48 -0000 1.197 *************** *** 55,58 **** --- 55,59 ---- private Material backMaterial; + private List<Vertex> normals; /** LEFT means counterclockwise */ *************** *** 656,660 **** for (int i = 0; i < n; i++) { ! vmap[i] = v[i].copy().add(normal); } --- 657,661 ---- for (int i = 0; i < n; i++) { ! vmap[i] = v[i].add(normal); } *************** *** 939,943 **** Vertex normal = normal(); Plane p = new Plane(normal.getX(), normal.getY(), normal.getZ(), this.getFirstVertex()); ! boolean makeNewTop = true; List<Vertex> vertices = getVertices(); --- 940,944 ---- Vertex normal = normal(); Plane p = new Plane(normal.getX(), normal.getY(), normal.getZ(), this.getFirstVertex()); ! boolean makeNewTop = false; List<Vertex> vertices = getVertices(); *************** *** 994,1000 **** v2dir.put(v[i], new Direction(vmap[i], tempNormal, min, max)); } } else { // We just have to move the existing point - makeNewTop = false; Collection<Edge> connected = v[i].getEdges(); connected.removeAll(this.getEdges()); --- 995,1001 ---- v2dir.put(v[i], new Direction(vmap[i], tempNormal, min, max)); } + makeNewTop = true; } else { // We just have to move the existing point Collection<Edge> connected = v[i].getEdges(); connected.removeAll(this.getEdges()); *************** *** 1043,1047 **** topmap[i] = (Edge)e2e.get(e[i]); } else { ! if (vmap[i] == v[i] || vmap[(i + 1) % n] == v[(i + 1) % n]) { topmap[i] = e[i]; } else { --- 1044,1048 ---- topmap[i] = (Edge)e2e.get(e[i]); } else { ! if (vmap[i] == v[i] && vmap[(i + 1) % n] == v[(i + 1) % n]) { topmap[i] = e[i]; } else { *************** *** 1051,1055 **** } } ! List<Edge> lst = new LinkedList<Edge>(); for (int i = 0; i < n; i++) { --- 1052,1056 ---- } } ! List<Edge> lst = new LinkedList<Edge>(); for (int i = 0; i < n; i++) { *************** *** 1105,1109 **** } } ! this.setEdges(lst); for (int i = 0; i < n; i++) { --- 1106,1110 ---- } } ! //this.setEdges(lst); for (int i = 0; i < n; i++) { *************** *** 1111,1129 **** facemap[i] = (Surface)e2s.get(e[i]); } else { ! if (sidemap[i] == null || sidemap[(i + 1) % n] == null) { ! // We should not make a new surface } else { ! Edge b = e[i]; ! Edge r = sidemap[i]; ! Edge l = sidemap[(i + 1) % n]; ! Edge t = topmap[i]; ! List<Edge> newEdges = new LinkedList<Edge>(); ! newEdges.add(r); ! newEdges.add(t); ! newEdges.add(l); ! newEdges.add(b); ! facemap[i] = new Surface(newEdges); ! e2s.put(b, facemap[i]); ! extrusion.add(facemap[i]); } } --- 1112,1157 ---- facemap[i] = (Surface)e2s.get(e[i]); } else { ! if (sidemap[i] != null) { ! if (sidemap[(i + 1) % n] != null) { ! //New quadratic surface ! Edge b = e[i]; ! Edge r = sidemap[i]; ! Edge l = sidemap[(i + 1) % n]; ! Edge t = topmap[i]; ! List<Edge> newEdges = new LinkedList<Edge>(); ! newEdges.add(r); ! newEdges.add(t); ! newEdges.add(l); ! newEdges.add(b); ! facemap[i] = new Surface(newEdges); ! e2s.put(b, facemap[i]); ! extrusion.add(facemap[i]); ! } else { ! //new triangular surface with the prev edge. ! Edge b = e[i]; ! Edge r = sidemap[i]; ! Edge t = topmap[i]; ! List<Edge> newEdges = new LinkedList<Edge>(); ! newEdges.add(b); ! newEdges.add(r); ! newEdges.add(t); ! facemap[i] = new Surface(newEdges); ! e2s.put(b, facemap[i]); ! extrusion.add(facemap[i]); ! } } else { ! if (sidemap[(i + 1) % n] != null) { ! // new triangular surface with the next edge ! Edge b = e[i]; ! Edge l = sidemap[(i + 1) % n]; ! Edge t = topmap[i]; ! List<Edge> newEdges = new LinkedList<Edge>(); ! newEdges.add(t); ! newEdges.add(l); ! newEdges.add(b); ! facemap[i] = new Surface(newEdges); ! e2s.put(b, facemap[i]); ! extrusion.add(facemap[i]); ! } } } *************** *** 2094,2096 **** --- 2122,2138 ---- return true; } + + /** + * @return the normals + */ + public List<Vertex> getNormals() { + return normals; + } + + /** + * @param normals the normals to set + */ + public void setNormals(List<Vertex> normals) { + this.normals = normals; + } } |