Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv13192/src/net/sourceforge/bprocessor/model
Modified Files:
Camera.java Command.java
Log Message:
Improvement to bounding-sphere
Index: Camera.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Camera.java,v
retrieving revision 1.56
retrieving revision 1.57
diff -C2 -d -r1.56 -r1.57
*** Camera.java 7 Jan 2008 15:24:01 -0000 1.56
--- Camera.java 8 Jan 2008 10:49:19 -0000 1.57
***************
*** 483,503 ****
*/
public void zoomOn(Collection<? extends Geometric> c, double aspect, double d) {
! Set<Vertex> allVertices = new HashSet<Vertex>();
! for (Geometric g : c) {
! if (g instanceof Container) {
! Container s = (Container)g;
! if (s.getEnvelope().isEmpty()) {
! allVertices.addAll(s.collectInterior());
! } else {
! allVertices.addAll(Geometry.collect(s.getEnvelope()));
! }
! } else {
! allVertices.addAll(g.collect());
! }
! }
! if (!allVertices.isEmpty()) {
! Command.BoundingSphere sphere = new Command.BoundingSphere(allVertices);
double radius = sphere.radius();
Vertex modelCenter = sphere.center();
--- 483,491 ----
*/
public void zoomOn(Collection<? extends Geometric> c, double aspect, double d) {
! Set<Vertex> all = Geometry.collect(c);
! if (!all.isEmpty()) {
! Command.BoundingSphere sphere = new Command.BoundingSphere(all);
double radius = sphere.radius();
Vertex modelCenter = sphere.center();
Index: Command.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Command.java,v
retrieving revision 1.60
retrieving revision 1.61
diff -C2 -d -r1.60 -r1.61
*** Command.java 17 Dec 2007 13:09:16 -0000 1.60
--- Command.java 8 Jan 2008 10:49:19 -0000 1.61
***************
*** 2138,2141 ****
--- 2138,2144 ----
center = v1.add(v2).scale(0.5);
+ center.x = (xmin.x + xmax.x) / 2;
+ center.y = (ymin.y + ymax.y) / 2;
+ center.z = (zmin.z + zmax.z) / 2;
radius = dia / 2;
|