@Override public void rect (short corner00, short corner10, short corner11, short corner01) { if (primitiveType == GL20.GL_TRIANGLES) { index(corner00, corner10, corner11, corner11, corner01, corner00); } else if (primitiveType == GL20.GL_LINES) { index(corner00, corner10, corner10, corner11, corner11, corner01, corner01, corner00); } else if (primitiveType == GL20.GL_POINTS) { index(corner00, corner10, corner11, corner01); } else throw new GdxRuntimeException("Incorrect primitive type"); }
@Override public void rect (short corner00, short corner10, short corner11, short corner01) { if (primitiveType == GL20.GL_TRIANGLES) { index(corner00, corner10, corner11, corner11, corner01, corner00); } else if (primitiveType == GL20.GL_LINES) { index(corner00, corner10, corner10, corner11, corner11, corner01, corner01, corner00); } else if (primitiveType == GL20.GL_POINTS) { index(corner00, corner10, corner11, corner01); } else throw new GdxRuntimeException("Incorrect primitive type"); }
@Override public void triangle (short index1, short index2, short index3) { if (primitiveType == GL20.GL_TRIANGLES || primitiveType == GL20.GL_POINTS) { index(index1, index2, index3); } else if (primitiveType == GL20.GL_LINES) { index(index1, index2, index2, index3, index3, index1); } else throw new GdxRuntimeException("Incorrect primitive type"); }
@Override public void triangle (short index1, short index2, short index3) { if (primitiveType == GL20.GL_TRIANGLES || primitiveType == GL20.GL_POINTS) { index(index1, index2, index3); } else if (primitiveType == GL20.GL_LINES) { index(index1, index2, index2, index3, index3, index1); } else throw new GdxRuntimeException("Incorrect primitive type"); }
@Override public void line (short index1, short index2) { if (primitiveType != GL20.GL_LINES) throw new GdxRuntimeException("Incorrect primitive type"); index(index1, index2); }
@Override public void line (short index1, short index2) { if (primitiveType != GL20.GL_LINES) throw new GdxRuntimeException("Incorrect primitive type"); index(index1, index2); }
@Override public void addMesh (float[] vertices, short[] indices) { final short offset = (short)(lastIndex + 1); final int numVertices = vertices.length / stride; ensureVertices(numVertices); for (int v = 0; v < vertices.length; v += stride) addVertex(vertices, v); ensureIndices(indices.length); for (int i = 0; i < indices.length; ++i) index((short)(indices[i] + offset)); }
@Override public void addMesh (float[] vertices, short[] indices) { final short offset = (short)(lastIndex + 1); final int numVertices = vertices.length / stride; ensureVertices(numVertices); for (int v = 0; v < vertices.length; v += stride) addVertex(vertices, v); ensureIndices(indices.length); for (int i = 0; i < indices.length; ++i) index((short)(indices[i] + offset)); }
@Override public void addMesh (float[] vertices, short[] indices, int indexOffset, int numIndices) { if (indicesMap == null) indicesMap = new IntIntMap(numIndices); else { indicesMap.clear(); indicesMap.ensureCapacity(numIndices); } ensureIndices(numIndices); final int numVertices = vertices.length / stride; ensureVertices(numVertices < numIndices ? numVertices : numIndices); for (int i = 0; i < numIndices; i++) { final int sidx = indices[indexOffset + i]; int didx = indicesMap.get(sidx, -1); if (didx < 0) { addVertex(vertices, sidx * stride); indicesMap.put(sidx, didx = lastIndex); } index((short)didx); } }
@Override public void addMesh (float[] vertices, short[] indices, int indexOffset, int numIndices) { if (indicesMap == null) indicesMap = new IntIntMap(numIndices); else { indicesMap.clear(); indicesMap.ensureCapacity(numIndices); } ensureIndices(numIndices); final int numVertices = vertices.length / stride; ensureVertices(numVertices < numIndices ? numVertices : numIndices); for (int i = 0; i < numIndices; i++) { final int sidx = indices[indexOffset + i]; int didx = indicesMap.get(sidx, -1); if (didx < 0) { addVertex(vertices, sidx * stride); indicesMap.put(sidx, didx = lastIndex); } index((short)didx); } }
@Override public void rect (short corner00, short corner10, short corner11, short corner01) { if (primitiveType == GL20.GL_TRIANGLES) { index(corner00, corner10, corner11, corner11, corner01, corner00); } else if (primitiveType == GL20.GL_LINES) { index(corner00, corner10, corner10, corner11, corner11, corner01, corner01, corner00); } else if (primitiveType == GL20.GL_POINTS) { index(corner00, corner10, corner11, corner01); } else throw new GdxRuntimeException("Incorrect primitive type"); }
@Override public void triangle (short index1, short index2, short index3) { if (primitiveType == GL20.GL_TRIANGLES || primitiveType == GL20.GL_POINTS) { index(index1, index2, index3); } else if (primitiveType == GL20.GL_LINES) { index(index1, index2, index2, index3, index3, index1); } else throw new GdxRuntimeException("Incorrect primitive type"); }
@Override public void line (short index1, short index2) { if (primitiveType != GL20.GL_LINES) throw new GdxRuntimeException("Incorrect primitive type"); index(index1, index2); }
@Override public void addMesh (float[] vertices, short[] indices) { final short offset = (short)(lastIndex + 1); final int numVertices = vertices.length / stride; ensureVertices(numVertices); for (int v = 0; v < vertices.length; v += stride) addVertex(vertices, v); ensureIndices(indices.length); for (int i = 0; i < indices.length; ++i) index((short)(indices[i] + offset)); }
@Override public void addMesh (float[] vertices, short[] indices, int indexOffset, int numIndices) { if (indicesMap == null) indicesMap = new IntIntMap(numIndices); else { indicesMap.clear(); indicesMap.ensureCapacity(numIndices); } ensureIndices(numIndices); final int numVertices = vertices.length / stride; ensureVertices(numVertices < numIndices ? numVertices : numIndices); for (int i = 0; i < numIndices; i++) { final int sidx = indices[indexOffset + i]; int didx = indicesMap.get(sidx, -1); if (didx < 0) { addVertex(vertices, sidx * stride); indicesMap.put(sidx, didx = lastIndex); } index((short)didx); } }