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 WireRender {
    
    public static PathList makePathList(Shape3D shape) {
        if (shape == null)
            return null;
        
        XPoint3D[] points = shape.getPoints();
        
        int[][] edges = shape.getEdges();
        
        if ((points == null) || (edges == null))
            return null;
        
        int n = edges.length;
        
        PathList list = new PathList();
        
        for (int i = 0; i < n; i++) {
            int[] edge = edges[i];
            
            if(edge == null)
                continue;
            
            int a = edge[0];
            int b = edge[1];
            
            XPoint3D p = points[a];
            XPoint3D q = points[b];
            
            if ((p == null) || (q == null))
                continue;
            
            list.move(p.x, p.y);
            list.line(q.x, q.y);
        }
        return list;
    }
}

