Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/model
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9175
Modified Files:
ClippingPlane.java
Log Message:
clippingplane keeps it size if drawn past areas where it cuts nothing
Index: ClippingPlane.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/model/ClippingPlane.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** ClippingPlane.java 19 Dec 2005 07:51:30 -0000 1.6
--- ClippingPlane.java 11 Feb 2006 18:14:15 -0000 1.7
***************
*** 121,160 ****
public void findCorners() {
Collection c = findIntersections();
! Iterator it = c.iterator();
! double minX = Integer.MAX_VALUE;
! double minY = Integer.MAX_VALUE;
! double maxX = Integer.MIN_VALUE;
! double maxY = Integer.MIN_VALUE;
! while (it.hasNext()) {
! Vertex v = (Vertex)it.next();
! v = system.translate(v);
! if (v.getX() < minX) {
! minX = v.getX();
! }
! if (v.getX() > maxX) {
! maxX = v.getX();
! }
! if (v.getY() < minY) {
! minY = v.getY();
! }
! if (v.getY() > maxY) {
! maxY = v.getY();
! }
}
- Vertex v1 = new Vertex(minX - 1, minY - 1, 0.0);
- Vertex v2 = new Vertex(minX - 1, maxY + 1, 0.0);
- Vertex v3 = new Vertex(maxX + 1, maxY + 1, 0.0);
- Vertex v4 = new Vertex(maxX + 1, minY - 1, 0.0);
- v1 = system.unTranslate(v1);
- v2 = system.unTranslate(v2);
- v3 = system.unTranslate(v3);
- v4 = system.unTranslate(v4);
- corners = new ArrayList();
- corners.add(v1);
- corners.add(v2);
- corners.add(v3);
- corners.add(v4);
}
!
/**
* Getter for corners
--- 121,178 ----
public void findCorners() {
Collection c = findIntersections();
! if (c.isEmpty()) {
! if (!corners.isEmpty()) {
! Vertex v1 = system.translate((Vertex)corners.get(0));
! v1.setZ(0);
! Vertex v2 = system.translate((Vertex)corners.get(1));
! v2.setZ(0);
! Vertex v3 = system.translate((Vertex)corners.get(2));
! v3.setZ(0);
! Vertex v4 = system.translate((Vertex)corners.get(3));
! v4.setZ(0);
! corners = new ArrayList();
! corners.add(system.unTranslate(v1));
! corners.add(system.unTranslate(v2));
! corners.add(system.unTranslate(v3));
! corners.add(system.unTranslate(v4));
! }
! } else {
! Iterator it = c.iterator();
! double minX = Integer.MAX_VALUE;
! double minY = Integer.MAX_VALUE;
! double maxX = Integer.MIN_VALUE;
! double maxY = Integer.MIN_VALUE;
! while (it.hasNext()) {
! Vertex v = (Vertex)it.next();
! v = system.translate(v);
! if (v.getX() < minX) {
! minX = v.getX();
! }
! if (v.getX() > maxX) {
! maxX = v.getX();
! }
! if (v.getY() < minY) {
! minY = v.getY();
! }
! if (v.getY() > maxY) {
! maxY = v.getY();
! }
! }
! Vertex v1 = new Vertex(minX - 1, minY - 1, 0.0);
! Vertex v2 = new Vertex(minX - 1, maxY + 1, 0.0);
! Vertex v3 = new Vertex(maxX + 1, maxY + 1, 0.0);
! Vertex v4 = new Vertex(maxX + 1, minY - 1, 0.0);
! v1 = system.unTranslate(v1);
! v2 = system.unTranslate(v2);
! v3 = system.unTranslate(v3);
! v4 = system.unTranslate(v4);
! corners = new ArrayList();
! corners.add(v1);
! corners.add(v2);
! corners.add(v3);
! corners.add(v4);
}
}
!
/**
* Getter for corners
|