private static Geometry createTesselatedBox2(int nsplit, float size) { Geometry geometry = new Geometry(); Vec3Array vertices = new Vec3Array(); Vec3Array colors = new Vec3Array(); geometry.setVertexArray(vertices); geometry.setColorArray(colors, Array.Binding.BIND_PER_VERTEX); float step = size / nsplit; float s = 0.5f / 4.0f; for (int i = 0; i < nsplit; i++) { float x = -1.0f + i * step; //std.cout << x << std.endl; vertices.push_back(new Vec3f(x, s, s)); vertices.push_back(new Vec3f(x, -s, s)); vertices.push_back(new Vec3f(x, -s, -s)); vertices.push_back(new Vec3f(x, s, -s)); Vec3f c = new Vec3f(0.0f, 0.0f, 0.0f); c[i % 3] = 1.0f; colors.push_back(c); colors.push_back(c); colors.push_back(c); colors.push_back(c); } UIntArray array = new UIntArray(); for (uint i = 0; i < nsplit - 1; i++) { uint base1 = i * 4; array.push_back(base1); array.push_back(base1 + 1); array.push_back(base1 + 4); array.push_back(base1 + 1); array.push_back(base1 + 5); array.push_back(base1 + 4); array.push_back(base1 + 3); array.push_back(base1); array.push_back(base1 + 4); array.push_back(base1 + 7); array.push_back(base1 + 3); array.push_back(base1 + 4); array.push_back(base1 + 5); array.push_back(base1 + 1); array.push_back(base1 + 2); array.push_back(base1 + 2); array.push_back(base1 + 6); array.push_back(base1 + 5); array.push_back(base1 + 2); array.push_back(base1 + 3); array.push_back(base1 + 7); array.push_back(base1 + 6); array.push_back(base1 + 2); array.push_back(base1 + 7); } geometry.addPrimitiveSet(new DrawElementsUInt((uint)PrimitiveSet.Mode.TRIANGLES, array.size(), array.frontPtr())); geometry.getOrCreateStateSet().setMode(GL.GL_LIGHTING, (uint)false.ToStateAttributeValue()); geometry.setUseDisplayList(false); return(geometry); }