Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16256/src/net/sourceforge/bprocessor/gl/tool
Modified Files:
SpaceTool.java
Log Message:
OffsetConstraint implemented
Index: SpaceTool.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/SpaceTool.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** SpaceTool.java 11 Jan 2006 13:50:10 -0000 1.4
--- SpaceTool.java 11 Jan 2006 14:42:38 -0000 1.5
***************
*** 15,18 ****
--- 15,19 ----
import java.util.HashSet;
import java.util.Iterator;
+ import java.util.List;
import java.util.Set;
***************
*** 26,32 ****
--- 27,35 ----
import net.sourceforge.bprocessor.model.Constraint;
import net.sourceforge.bprocessor.model.Constraints;
+ import net.sourceforge.bprocessor.model.CoordinateSystem;
import net.sourceforge.bprocessor.model.Project;
import net.sourceforge.bprocessor.model.Space;
import net.sourceforge.bprocessor.model.Surface;
+ import net.sourceforge.bprocessor.model.Vertex;
/**
***************
*** 101,104 ****
--- 104,110 ----
*/
public class OffsetConstraint extends Constraint {
+ /** The offset */
+ private double offset;
+
/**
* Constructor for OffsetConstraint
***************
*** 108,112 ****
public OffsetConstraint(Surface master, Surface slave) {
super(master, slave);
! log.info("initialize offset " + master + " -> " + slave);
}
--- 114,158 ----
public OffsetConstraint(Surface master, Surface slave) {
super(master, slave);
! updateOffset();
! }
!
! /**
! * Update offset
! */
! protected void updateOffset() {
! Surface master = (Surface) getMaster();
! Surface slave = (Surface) getSlave();
! CoordinateSystem system = master.coordinateSystem();
! Vertex origin = system.origin();
! Vertex n = system.getN();
! n.scale(1 / n.length());
! Vertex v = slave.getFirstVertex();
! Vertex u = v.minus(origin);
! double distance = n.dot(u);
! this.offset = distance;
! }
!
! /**
! * Maintain offset
! */
! protected void maintainOffset() {
! Surface master = (Surface) getMaster();
! Surface slave = (Surface) getSlave();
! CoordinateSystem system = master.coordinateSystem();
! Vertex origin = system.origin();
! Vertex n = system.getN();
! n.scale(1 / n.length());
! List vertices = slave.getVertices();
! vertices.remove(0);
! Iterator iter = vertices.iterator();
! while (iter.hasNext()) {
! Vertex current = (Vertex) iter.next();
! Vertex p = system.translate(current);
! p.setZ(offset);
! p = system.unTranslate(p);
! current.setX(p.getX());
! current.setY(p.getY());
! current.setZ(p.getZ());
! }
}
***************
*** 116,120 ****
*/
public void update(Object entity) {
! log.info("maintain offset " + entity);
}
}
--- 162,170 ----
*/
public void update(Object entity) {
! if (entity == getSlave()) {
! updateOffset();
! } else {
! maintainOffset();
! }
}
}
|