import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.*;
import java.util.Enumeration;
import java.awt.*;
import java.lang.Float;
import java.lang.reflect.Array;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.*;

public class MatrixQuadArray extends Object
        {
        QuadArray quadArray;
        public int rows, cols, numPointsIn, numPointsSurf;
        Point3d[] inGrid, quadPoints;
        Color3f[] inColors, quadColors;

        public MatrixQuadArray()
                {
                };

        public void setColorsIn(Color3f[] c)
                {
                inColors = c;
                };

        public Point3d[]  generateMatrix(Point3d[] in, int x, int y)
                {
                inGrid = in;
                int ptCount = (x-1)*(y-1)*4;
                quadPoints  = new Point3d[ptCount];
                quadColors = new Color3f[ptCount];
                int ptCnt = 0;
                for(int qRow = 0; qRow<y-1; qRow++)
                        {
                        for(int qCol = 0; qCol<x-1; qCol++)
                                {
                                quadPoints[ptCnt] = inGrid[qCol+qRow*x];
                                quadColors[ptCnt]=inColors[qCol+qRow*x];
                                ptCnt++;
                                quadPoints[ptCnt] = inGrid[qCol + 1 +qRow*x];
                                quadColors[ptCnt]=inColors[qCol + 1 +qRow*x];
                                ptCnt++;
                                quadPoints[ptCnt] = inGrid[qCol + 1 +(qRow+1)*x];
                                quadColors[ptCnt]=inColors[qCol + 1 +(qRow+1)*x];
                                ptCnt++;
                                quadPoints[ptCnt] = inGrid[qCol+(qRow+1)*x];
                                quadColors[ptCnt]=inColors[qCol+(qRow+1)*x];
                                ptCnt++;
                                };
                        };
                return quadPoints;
                };

        public Color3f[] getColorArray()
                {
                return quadColors;
                };
        }
