+ //strokeWeight(2);
+ int count=0;
+
+ ///magic:
+
+ pgl = beginPGL();
+
+
+ sh.bind();
+
+ vertLoc = pgl.getAttribLocation(sh.glProgram, "vertex");
+ colorLoc = pgl.getAttribLocation(sh.glProgram, "color");
+
+ pgl.bindBuffer(PGL.ARRAY_BUFFER, vboName.get(0));
+ pgl.enableVertexAttribArray(vertLoc);
+ pgl.enableVertexAttribArray(colorLoc);
+
+ pgl.vertexAttribPointer(vertLoc, 3, PGL.FLOAT, false, 7 * SIZEOF_FLOAT, 0);
+ pgl.vertexAttribPointer(colorLoc, 4, PGL.FLOAT, false, 7 * SIZEOF_FLOAT, 3 * SIZEOF_FLOAT);
+ javax.media.opengl.GL2 gl2 = (javax.media.opengl.GL2) ((PJOGL)pgl).gl;
+ gl2.glPointSize(2f);
+ pgl.drawArrays(PGL.POINTS, 0, nvert);
+
+ pgl.disableVertexAttribArray(vertLoc);
+ pgl.disableVertexAttribArray(colorLoc);
+ pgl.bindBuffer(PGL.ARRAY_BUFFER, 0);
+
+ sh.unbind();
+ endPGL();
+ createGeometry(simulationColors);
+ pgl.bindBuffer(PGL.ARRAY_BUFFER, vboName.get(0));
+ pgl.bufferData(PGL.ARRAY_BUFFER, nvert * 7 * SIZEOF_FLOAT, vertData, PGL.STATIC_DRAW);
+ }
+
+ void createGeometry(color[] simulationColors) {