/* @(#)Shape3D.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 class Shape3D {
    
    private XPoint3D[] point = null;
    
    private int[][] edge = null;  // two points per edge
    
    private int[][] face = null;  // any number of points
    
    
    public void setPoints(XPoint3D[] point) {
        this.point = point;
    }
    
    
    public void setEdges(int[][] edge) {
        this.edge = edge;
    }
    
    
    public void setFaces(int[][] face) {
        this.face = face;
    }
    
    
    public XPoint3D[] getPoints() { return point; }
    
    
    public int[][] getEdges() { return edge; }
    
    
    public int[][] getFaces() { return face; }
    
    
    public Shape3D copy() {
        Shape3D newshape = new Shape3D();
        
        newshape.setPoints(XPoint3D.copy(point));
        newshape.setEdges(copy(edge));
        newshape.setFaces(copy(face));
        
        return newshape;
    }
    
    
    public static int[][] copy(int[][] input) {
        if (input == null)
            return null;
        
        int n = input.length;
        
        int[][] output = new int[n][];
        
        for (int i = 0; i < n; i++)
            output[i] = copy(input[i]);
        
        return output;
    }
    
    
    public static int[] copy(int[] input) {
        if (input == null)
            return null;
        
        int n = input.length;
        
        int[] output = new int[n];
        
        for (int i = 0; i < n; i++)
            output[i] = input[i];
       
        return output;
    }
    
}

