/* @(#)Transform3D.java 6 February 2008 */ import edu.neu.ccs.*; import edu.neu.ccs.gui.*; import edu.neu.ccs.codec.*; import edu.neu.ccs.console.*; import edu.neu.ccs.filter.*; import edu.neu.ccs.jpf.*; import edu.neu.ccs.parser.*; import edu.neu.ccs.pedagogy.*; import edu.neu.ccs.quick.*; import edu.neu.ccs.util.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.font.*; import java.awt.image.*; import javax.swing.*; import javax.swing.border.*; import java.io.*; import java.util.*; import java.math.*; import java.beans.*; import java.lang.reflect.*; import java.net.URL; import java.util.regex.*; import java.text.ParseException; public interface Transform3D { XPoint3D transform(XPoint3D p); public static class Factory { public static Shape3D transform(Transform3D t, Shape3D shape) { Shape3D result = new Shape3D(); if ((t == null) || (shape == null)) return result; XPoint3D[] point = shape.getPoints(); int[][] edge = shape.getEdges(); int[][] face = shape.getFaces(); if (point != null) { int n = point.length; XPoint3D[] newpoint = new XPoint3D[n]; for (int i = 0; i < n; i++) newpoint[i] = t.transform(point[i]); result.setPoints(newpoint); } result.setEdges(edge); result.setFaces(face); return result; } } }