Example usage for javax.media.j3d GeometryArray COORDINATES

List of usage examples for javax.media.j3d GeometryArray COORDINATES

Introduction

In this page you can find the example usage for javax.media.j3d GeometryArray COORDINATES.

Prototype

int COORDINATES

To view the source code for javax.media.j3d GeometryArray COORDINATES.

Click Source Link

Document

Specifies that this GeometryArray contains an array of coordinates.

Usage

From source file:FarbWurfelAsQuads.java

/**
 * Erstellung des ColorCube//w w  w.  j  a  v  a2  s  .c o  m
 * 
 * @return
 */
private QuadArray makeCube() {
    QuadArray plane = new QuadArray(24, GeometryArray.COORDINATES | GeometryArray.COLOR_3);
    // Punkte und Farben
    Point3f pa = new Point3f(-1.0f, 1.0f, -1.0f);
    Point3f pb = new Point3f(-1.0f, -1.0f, -1.0f);
    Point3f pc = new Point3f(1.0f, -1.0f, -1.0f);
    Point3f pd = new Point3f(1.0f, 1.0f, -1.0f);
    Point3f pe = new Point3f(-1.0f, 1.0f, 1.0f);
    Point3f pf = new Point3f(-1.0f, -1.0f, 1.0f);
    Point3f pg = new Point3f(1.0f, -1.0f, 1.0f);
    Point3f ph = new Point3f(1.0f, 1.0f, 1.0f);
    // Coloreigenschaften
    Color3f red = new Color3f(1.0f, 0.0f, 0.0f);
    Color3f blue = new Color3f(0.0f, 0.0f, 1.0f);
    Color3f green = new Color3f(0.0f, 1.0f, 0.0f);
    Color3f cyan = new Color3f(0.0f, 1.0f, 1.0f);
    Color3f yellow = new Color3f(1.0f, 1.0f, 0.0f);
    Color3f magenta = new Color3f(1.0f, 0.0f, 1.0f);

    // 1. Seite
    plane.setCoordinate(0, pa);
    plane.setColor(0, red);
    plane.setCoordinate(1, pb);
    plane.setColor(1, red);
    plane.setCoordinate(2, pc);
    plane.setColor(2, red);
    plane.setCoordinate(3, pd);
    plane.setColor(3, red);
    // 2. Seite
    plane.setCoordinate(4, pe);
    plane.setColor(4, blue);
    plane.setCoordinate(5, pf);
    plane.setColor(5, blue);
    plane.setCoordinate(6, pg);
    plane.setColor(6, blue);
    plane.setCoordinate(7, ph);
    plane.setColor(7, blue);
    // 3. Seite
    plane.setCoordinate(8, pe);
    plane.setColor(8, green);
    plane.setCoordinate(9, pf);
    plane.setColor(9, green);
    plane.setCoordinate(10, pb);
    plane.setColor(10, green);
    plane.setCoordinate(11, pa);
    plane.setColor(11, green);
    // 4. Seite
    plane.setCoordinate(12, pd);
    plane.setColor(12, cyan);
    plane.setCoordinate(13, pc);
    plane.setColor(13, cyan);
    plane.setCoordinate(14, pg);
    plane.setColor(14, cyan);
    plane.setCoordinate(15, ph);
    plane.setColor(15, cyan);
    // 5. Seite
    plane.setCoordinate(16, pe);
    plane.setColor(16, yellow);
    plane.setCoordinate(17, pa);
    plane.setColor(17, yellow);
    plane.setCoordinate(18, pd);
    plane.setColor(18, yellow);
    plane.setCoordinate(19, ph);
    plane.setColor(19, yellow);
    // 6. Seite
    plane.setCoordinate(20, pf);
    plane.setColor(20, magenta);
    plane.setCoordinate(21, pb);
    plane.setColor(21, magenta);
    plane.setCoordinate(22, pc);
    plane.setColor(22, magenta);
    plane.setCoordinate(23, pg);
    plane.setColor(23, magenta);
    // ubergib den Wurfel
    return plane;
}

From source file:KeyNavigatorApp.java

Shape3D createPyramid() {
    IndexedTriangleArray pyGeom = new IndexedTriangleArray(5, GeometryArray.COORDINATES | GeometryArray.COLOR_3,
            12);//from w w  w. ja v a  2  s  .c o  m

    pyGeom.setCoordinate(0, new Point3f(0.0f, 0.7f, 0.0f));
    pyGeom.setCoordinate(1, new Point3f(-0.4f, 0.0f, -0.4f));
    pyGeom.setCoordinate(2, new Point3f(-0.4f, 0.0f, 0.4f));
    pyGeom.setCoordinate(3, new Point3f(0.4f, 0.0f, 0.4f));
    pyGeom.setCoordinate(4, new Point3f(0.4f, 0.0f, -0.4f));

    pyGeom.setCoordinateIndex(0, 0);
    pyGeom.setCoordinateIndex(1, 1);
    pyGeom.setCoordinateIndex(2, 2);
    pyGeom.setCoordinateIndex(3, 0);
    pyGeom.setCoordinateIndex(4, 2);
    pyGeom.setCoordinateIndex(5, 3);
    pyGeom.setCoordinateIndex(6, 0);
    pyGeom.setCoordinateIndex(7, 3);
    pyGeom.setCoordinateIndex(8, 4);
    pyGeom.setCoordinateIndex(9, 0);
    pyGeom.setCoordinateIndex(10, 4);
    pyGeom.setCoordinateIndex(11, 1);

    Color3f c = new Color3f(0.6f, 0.5f, 0.55f);
    pyGeom.setColor(0, c);
    pyGeom.setColor(1, c);
    pyGeom.setColor(2, c);
    pyGeom.setColor(3, c);
    pyGeom.setColor(4, c);

    Shape3D pyramid = new Shape3D(pyGeom);
    return pyramid;
}

From source file:KeyNavigatorApp.java

Shape3D createLand() {
    LineArray landGeom = new LineArray(44, GeometryArray.COORDINATES | GeometryArray.COLOR_3);
    float l = -50.0f;
    for (int c = 0; c < 44; c += 4) {

        landGeom.setCoordinate(c + 0, new Point3f(-50.0f, 0.0f, l));
        landGeom.setCoordinate(c + 1, new Point3f(50.0f, 0.0f, l));
        landGeom.setCoordinate(c + 2, new Point3f(l, 0.0f, -50.0f));
        landGeom.setCoordinate(c + 3, new Point3f(l, 0.0f, 50.0f));
        l += 10.0f;//w w  w  . j  a v  a 2 s.  c  o m
    }

    Color3f c = new Color3f(0.1f, 0.8f, 0.1f);
    for (int i = 0; i < 44; i++)
        landGeom.setColor(i, c);

    return new Shape3D(landGeom);
}

From source file:LightScopeApp.java

Shape3D createLampShape() {
    Shape3D lamp = new Shape3D();
    int stripCounts[] = { 10, 10 };
    TriangleStripArray lampGeom = new TriangleStripArray(20, GeometryArray.COORDINATES | GeometryArray.NORMALS,
            stripCounts);/* w ww  .  ja  v a  2 s.  com*/
    lampGeom.setCoordinate(0, new Point3f(-0.01f, 0.9f, 0.01f));
    lampGeom.setCoordinate(1, new Point3f(-0.01f, 0.0f, 0.01f));
    lampGeom.setCoordinate(2, new Point3f(0.01f, 0.9f, 0.01f));
    lampGeom.setCoordinate(3, new Point3f(0.01f, 0.0f, 0.01f));
    lampGeom.setCoordinate(4, new Point3f(0.01f, 0.9f, -0.01f));
    lampGeom.setCoordinate(5, new Point3f(0.01f, 0.0f, -0.01f));
    lampGeom.setCoordinate(6, new Point3f(-0.01f, 0.9f, -0.01f));
    lampGeom.setCoordinate(7, new Point3f(-0.01f, 0.0f, -0.01f));
    lampGeom.setCoordinate(8, new Point3f(-0.01f, 0.9f, 0.01f));
    lampGeom.setCoordinate(9, new Point3f(-0.01f, 0.0f, 0.01f));
    lampGeom.setCoordinate(10, new Point3f(-0.1f, 0.9f, 0.1f));
    lampGeom.setCoordinate(11, new Point3f(-0.2f, 0.5f, 0.2f));
    lampGeom.setCoordinate(12, new Point3f(0.1f, 0.9f, 0.1f));
    lampGeom.setCoordinate(13, new Point3f(0.2f, 0.5f, 0.2f));
    lampGeom.setCoordinate(14, new Point3f(0.1f, 0.9f, -0.1f));
    lampGeom.setCoordinate(15, new Point3f(0.2f, 0.5f, -0.2f));
    lampGeom.setCoordinate(16, new Point3f(-0.1f, 0.9f, -0.1f));
    lampGeom.setCoordinate(17, new Point3f(-0.2f, 0.5f, -0.2f));
    lampGeom.setCoordinate(18, new Point3f(-0.1f, 0.9f, 0.1f));
    lampGeom.setCoordinate(19, new Point3f(-0.2f, 0.5f, 0.2f));

    Vector3f norm = new Vector3f(-0.7f, 0.0f, 0.7f);
    lampGeom.setNormal(0, norm);
    lampGeom.setNormal(1, norm);
    norm.set(0.7f, 0.0f, 0.7f);
    lampGeom.setNormal(2, norm);
    lampGeom.setNormal(3, norm);
    norm.set(0.7f, 0.0f, -0.7f);
    lampGeom.setNormal(4, norm);
    lampGeom.setNormal(5, norm);
    norm.set(-0.7f, 0.0f, -0.7f);
    lampGeom.setNormal(6, norm);
    lampGeom.setNormal(7, norm);
    norm.set(-0.7f, 0.0f, 0.7f);
    lampGeom.setNormal(8, norm);
    lampGeom.setNormal(9, norm);
    norm.set(-0.7f, 0.0f, 0.7f);
    lampGeom.setNormal(10, norm);
    lampGeom.setNormal(11, norm);
    norm.set(0.7f, 0.0f, 0.7f);
    lampGeom.setNormal(12, norm);
    lampGeom.setNormal(13, norm);
    norm.set(0.7f, 0.0f, -0.7f);
    lampGeom.setNormal(14, norm);
    lampGeom.setNormal(15, norm);
    norm.set(-0.7f, 0.0f, -0.7f);
    lampGeom.setNormal(16, norm);
    lampGeom.setNormal(17, norm);
    norm.set(-0.7f, 0.0f, 0.7f);
    lampGeom.setNormal(18, norm);
    lampGeom.setNormal(19, norm);

    lamp.setGeometry(lampGeom);
    return lamp;
}

From source file:BoundsTest.java

protected Group createPoints() {
    Group group = new Group();

    final int kNumPoints = 200;
    final double kRadius = 10.0;
    Point3d points[] = new Point3d[kNumPoints];

    for (int n = 0; n < kNumPoints; n++) {
        double randX = (java.lang.Math.random() * kRadius) - kRadius / 2;
        double randY = (java.lang.Math.random() * kRadius) - kRadius / 2;
        double randZ = (java.lang.Math.random() * kRadius) - kRadius / 2;

        points[n] = new Point3d(randX, randY, randZ);
    }/* w  w  w  .j  a va2 s . c om*/

    PointArray pointArray = new PointArray(points.length, GeometryArray.COLOR_4 | GeometryArray.COORDINATES);
    pointArray.setCoordinates(0, points);
    Shape3D shapePoints = new Shape3D(pointArray, new Appearance());

    group.addChild(shapePoints);
    return group;
}

From source file:AxisClassDemoApp.java

private Geometry createGeometry() {
    // create line for X axis
    IndexedLineArray axisLines = new IndexedLineArray(18, GeometryArray.COORDINATES, 30);

    axisLines.setCoordinate(0, new Point3f(-1.0f, 0.0f, 0.0f));
    axisLines.setCoordinate(1, new Point3f(1.0f, 0.0f, 0.0f));
    axisLines.setCoordinate(2, new Point3f(0.9f, 0.1f, 0.1f));
    axisLines.setCoordinate(3, new Point3f(0.9f, -0.1f, 0.1f));
    axisLines.setCoordinate(4, new Point3f(0.9f, 0.1f, -0.1f));
    axisLines.setCoordinate(5, new Point3f(0.9f, -0.1f, -0.1f));
    axisLines.setCoordinate(6, new Point3f(0.0f, -1.0f, 0.0f));
    axisLines.setCoordinate(7, new Point3f(0.0f, 1.0f, 0.0f));
    axisLines.setCoordinate(8, new Point3f(0.1f, 0.9f, 0.1f));
    axisLines.setCoordinate(9, new Point3f(-0.1f, 0.9f, 0.1f));
    axisLines.setCoordinate(10, new Point3f(0.1f, 0.9f, -0.1f));
    axisLines.setCoordinate(11, new Point3f(-0.1f, 0.9f, -0.1f));
    axisLines.setCoordinate(12, new Point3f(0.0f, 0.0f, -1.0f));
    axisLines.setCoordinate(13, new Point3f(0.0f, 0.0f, 1.0f));
    axisLines.setCoordinate(14, new Point3f(0.1f, 0.1f, 0.9f));
    axisLines.setCoordinate(15, new Point3f(-0.1f, 0.1f, 0.9f));
    axisLines.setCoordinate(16, new Point3f(0.1f, -0.1f, 0.9f));
    axisLines.setCoordinate(17, new Point3f(-0.1f, -0.1f, 0.9f));

    axisLines.setCoordinateIndex(0, 0);/*from  w w  w.  j  ava2  s  . c o m*/
    axisLines.setCoordinateIndex(1, 1);
    axisLines.setCoordinateIndex(2, 2);
    axisLines.setCoordinateIndex(3, 1);
    axisLines.setCoordinateIndex(4, 3);
    axisLines.setCoordinateIndex(5, 1);
    axisLines.setCoordinateIndex(6, 4);
    axisLines.setCoordinateIndex(7, 1);
    axisLines.setCoordinateIndex(8, 5);
    axisLines.setCoordinateIndex(9, 1);
    axisLines.setCoordinateIndex(10, 6);
    axisLines.setCoordinateIndex(11, 7);
    axisLines.setCoordinateIndex(12, 8);
    axisLines.setCoordinateIndex(13, 7);
    axisLines.setCoordinateIndex(14, 9);
    axisLines.setCoordinateIndex(15, 7);
    axisLines.setCoordinateIndex(16, 10);
    axisLines.setCoordinateIndex(17, 7);
    axisLines.setCoordinateIndex(18, 11);
    axisLines.setCoordinateIndex(19, 7);
    axisLines.setCoordinateIndex(20, 12);
    axisLines.setCoordinateIndex(21, 13);
    axisLines.setCoordinateIndex(22, 14);
    axisLines.setCoordinateIndex(23, 13);
    axisLines.setCoordinateIndex(24, 15);
    axisLines.setCoordinateIndex(25, 13);
    axisLines.setCoordinateIndex(26, 16);
    axisLines.setCoordinateIndex(27, 13);
    axisLines.setCoordinateIndex(28, 17);
    axisLines.setCoordinateIndex(29, 13);

    return axisLines;

}

From source file:PointTest.java

private BranchGroup createPoints(final int nPointSize, final int nNumPoints, boolean bAliased) {
    BranchGroup bg = new BranchGroup();

    String szText = new String();
    szText += (nNumPoints + "X, Size:" + nPointSize + ", aliased: " + bAliased);

    Font3D f3d = new Font3D(new Font("SansSerif", Font.PLAIN, 1), new FontExtrusion());
    Text3D label3D = new Text3D(f3d, szText, new Point3f(-5, 0, 0));
    Shape3D sh = new Shape3D(label3D);

    bg.addChild(sh);/*from   w  w w .ja  v  a2s  . c om*/

    PointArray pointArray = new PointArray(nNumPoints * nNumPoints,
            GeometryArray.COORDINATES | GeometryArray.COLOR_3);

    // create the PointArray that we will be rendering
    int nPoint = 0;
    final double factor = 1.0 / nNumPoints;

    for (int n = 0; n < nNumPoints; n++) {
        for (int i = 0; i < nNumPoints; i++) {
            Point3f point = new Point3f(n - nNumPoints / 2, i - nNumPoints / 2, 0.0f);
            pointArray.setCoordinate(nPoint, point);
            pointArray.setColor(nPoint++, new Color3f(0.5f, (float) (n * factor), (float) (i * factor)));
        }
    }

    // create the material for the points
    Appearance pointApp = new Appearance();

    // enlarge the points
    pointApp.setPointAttributes(new PointAttributes(nPointSize, bAliased));

    Shape3D pointShape = new Shape3D(pointArray, pointApp);

    bg.addChild(pointShape);
    return bg;
}

From source file:AppearanceTest.java

protected BranchGroup createSceneBranchGroup() {
    BranchGroup objRoot = super.createSceneBranchGroup();

    TransformGroup zoomTg = new TransformGroup();
    zoomTg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    zoomTg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);

    // attach a navigation behavior to the position of the viewer
    KeyNavigatorBehavior key = new KeyNavigatorBehavior(zoomTg);
    key.setSchedulingBounds(createApplicationBounds());
    key.setEnable(true);//from w  w  w  .ja v a2s.  c om
    objRoot.addChild(key);

    // create a TransformGroup to flip the hand onto its end and enlarge it.
    TransformGroup objTrans1 = new TransformGroup();
    Transform3D tr = new Transform3D();
    objTrans1.getTransform(tr);
    tr.setEuler(new Vector3d(0.5 * Math.PI, 0.6, 0));
    objTrans1.setTransform(tr);

    // Set up the global lights
    Color3f lColor1 = new Color3f(0.7f, 0.7f, 0.7f);
    Vector3f lDir1 = new Vector3f(-1.0f, -1.0f, -1.0f);
    Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f);

    AmbientLight aLgt = new AmbientLight(alColor);
    aLgt.setInfluencingBounds(getApplicationBounds());
    DirectionalLight lgt1 = new DirectionalLight(lColor1, lDir1);
    lgt1.setInfluencingBounds(getApplicationBounds());

    objRoot.addChild(aLgt);
    objRoot.addChild(lgt1);

    int nScale = 50;

    Box box = new Box(nScale, nScale, nScale, Primitive.GENERATE_NORMALS | Primitive.GENERATE_TEXTURE_COORDS,
            m_Appearance);

    Shape3D frontFace = box.getShape(Box.LEFT);

    // create a new left face so we can
    // assign per-vertex colors

    GeometryArray geometry = new QuadArray(4, GeometryArray.COORDINATES | GeometryArray.NORMALS
            | GeometryArray.COLOR_4 | GeometryArray.TEXTURE_COORDINATE_2);

    nScale = 40;

    final float[] verts = {
            // left face
            -1.0f * nScale, -1.0f * nScale, 1.0f * nScale, -1.0f * nScale, 1.0f * nScale, 1.0f * nScale,
            -1.0f * nScale, 1.0f * nScale, -1.0f * nScale, -1.0f * nScale, -1.0f * nScale, -1.0f * nScale };

    final float[] colors = {
            // left face
            1, 0, 0, 0, 0, 1, 0, 0.2f, 0, 0, 1, 0.8f, 0, 0, 0, 1, };

    float[] tcoords = {
            // left
            1, 0, 1, 1, 0, 1, 0, 0 };

    Vector3f normalVector = new Vector3f(-1.0f, 0.0f, 0.0f);

    geometry.setColors(0, colors, 0, 4);

    for (int n = 0; n < 4; n++)
        geometry.setNormal(n, normalVector);

    geometry.setTextureCoordinates(0, tcoords, 0, 4);

    geometry.setCoordinates(0, verts);

    frontFace.setGeometry(geometry);

    // connect the scenegraph
    objTrans1.addChild(box);
    zoomTg.addChild(objTrans1);
    objRoot.addChild(zoomTg);

    return objRoot;
}

From source file:IntersectTest.java

RandomColorTetrahedron() {
    super(12, GeometryArray.COORDINATES | GeometryArray.COLOR_3);

    Point3f verts[] = new Point3f[4];
    Color3f colors[] = new Color3f[4];

    verts[0] = new Point3f(0.5f, 0.5f, 0.5f);
    verts[1] = new Point3f(0.5f, -0.5f, -0.5f);
    verts[2] = new Point3f(-0.5f, -0.5f, 0.5f);
    verts[3] = new Point3f(-0.5f, 0.5f, -0.5f);

    colors[0] = new Color3f(1.0f, 0.0f, 0.0f);
    colors[1] = new Color3f(0.0f, 1.0f, 0.0f);
    colors[2] = new Color3f(0.0f, 0.0f, 1.0f);

    Point3f pnts[] = new Point3f[12];
    Color3f clrs[] = new Color3f[12];

    pnts[0] = verts[2];//w w w.  j  a  v a 2 s. co m
    clrs[0] = colors[(int) (Math.random() * 3.0)];
    pnts[1] = verts[1];
    clrs[1] = colors[(int) (Math.random() * 3.0)];
    pnts[2] = verts[0];
    clrs[2] = colors[(int) (Math.random() * 3.0)];

    pnts[3] = verts[3];
    clrs[3] = colors[(int) (Math.random() * 3.0)];
    pnts[4] = verts[2];
    clrs[4] = colors[(int) (Math.random() * 3.0)];
    pnts[5] = verts[0];
    clrs[5] = colors[(int) (Math.random() * 3.0)];

    pnts[6] = verts[1];
    clrs[6] = colors[(int) (Math.random() * 3.0)];
    pnts[7] = verts[2];
    clrs[7] = colors[(int) (Math.random() * 3.0)];
    pnts[8] = verts[3];
    clrs[8] = colors[(int) (Math.random() * 3.0)];

    pnts[9] = verts[1];
    clrs[9] = colors[(int) (Math.random() * 3.0)];
    pnts[10] = verts[3];
    clrs[10] = colors[(int) (Math.random() * 3.0)];
    pnts[11] = verts[0];
    clrs[11] = colors[(int) (Math.random() * 3.0)];

    setCoordinates(0, pnts);
    setColors(0, clrs);
}

From source file:IntersectTest.java

RandomColorCube() {
    super(24, GeometryArray.COORDINATES | GeometryArray.COLOR_3);

    Point3f verts[] = new Point3f[8];
    Color3f colors[] = new Color3f[3];

    verts[0] = new Point3f(0.5f, 0.5f, 0.5f);
    verts[1] = new Point3f(-0.5f, 0.5f, 0.5f);
    verts[2] = new Point3f(-0.5f, -0.5f, 0.5f);
    verts[3] = new Point3f(0.5f, -0.5f, 0.5f);
    verts[4] = new Point3f(0.5f, 0.5f, -0.5f);
    verts[5] = new Point3f(-0.5f, 0.5f, -0.5f);
    verts[6] = new Point3f(-0.5f, -0.5f, -0.5f);
    verts[7] = new Point3f(0.5f, -0.5f, -0.5f);

    colors[0] = new Color3f(1.0f, 0.0f, 0.0f);
    colors[1] = new Color3f(0.0f, 1.0f, 0.0f);
    colors[2] = new Color3f(0.0f, 0.0f, 1.0f);

    Point3f pnts[] = new Point3f[24];
    Color3f clrs[] = new Color3f[24];

    pnts[0] = verts[0];/*from   w  w  w . j  a v  a 2  s. c  o m*/
    clrs[0] = colors[(int) (Math.random() * 3.0)];
    pnts[1] = verts[3];
    clrs[1] = colors[(int) (Math.random() * 3.0)];
    pnts[2] = verts[7];
    clrs[2] = colors[(int) (Math.random() * 3.0)];
    pnts[3] = verts[4];
    clrs[3] = colors[(int) (Math.random() * 3.0)];

    pnts[4] = verts[1];
    clrs[4] = colors[(int) (Math.random() * 3.0)];
    pnts[5] = verts[5];
    clrs[5] = colors[(int) (Math.random() * 3.0)];
    pnts[6] = verts[6];
    clrs[6] = colors[(int) (Math.random() * 3.0)];
    pnts[7] = verts[2];
    clrs[7] = colors[(int) (Math.random() * 3.0)];

    pnts[8] = verts[0];
    clrs[8] = colors[(int) (Math.random() * 3.0)];
    pnts[9] = verts[4];
    clrs[9] = colors[(int) (Math.random() * 3.0)];
    pnts[10] = verts[5];
    clrs[10] = colors[(int) (Math.random() * 3.0)];
    pnts[11] = verts[1];
    clrs[11] = colors[(int) (Math.random() * 3.0)];

    pnts[12] = verts[3];
    clrs[12] = colors[(int) (Math.random() * 3.0)];
    pnts[13] = verts[2];
    clrs[13] = colors[(int) (Math.random() * 3.0)];
    pnts[14] = verts[6];
    clrs[14] = colors[(int) (Math.random() * 3.0)];
    pnts[15] = verts[7];
    clrs[15] = colors[(int) (Math.random() * 3.0)];

    pnts[16] = verts[0];
    clrs[16] = colors[(int) (Math.random() * 3.0)];
    pnts[17] = verts[1];
    clrs[17] = colors[(int) (Math.random() * 3.0)];
    pnts[18] = verts[2];
    clrs[18] = colors[(int) (Math.random() * 3.0)];
    pnts[19] = verts[3];
    clrs[19] = colors[(int) (Math.random() * 3.0)];

    pnts[20] = verts[7];
    clrs[20] = colors[(int) (Math.random() * 3.0)];
    pnts[21] = verts[6];
    clrs[21] = colors[(int) (Math.random() * 3.0)];
    pnts[22] = verts[5];
    clrs[22] = colors[(int) (Math.random() * 3.0)];
    pnts[23] = verts[4];
    clrs[23] = colors[(int) (Math.random() * 3.0)];

    setCoordinates(0, pnts);
    setColors(0, clrs);
}