Hey David,
In create Vertex array I see the following.
let vertexBuffer = Cesium.Buffer.createIndexBuffer({
context:context,
typedArray:new Float32Array([3648448.5117112226, 997327.3223067619, 5118713.136337872, 3772781.0332181295, 1022794.284035355, 5022656.431658396]),
usage : Cesium.BufferUsage.DYNAMIC_DRAW,
indexDatatype: Cesium.IndexDatatype.UNSIGNED_INT
});
createIndexBuffer creates a GL_ELEMENT_ARRAY_BUFFER.
This buffer is used to define the winding order of triangles specified in the currently bound Vertex Buffer.
VertexBuffers(GL_ARRAY_BUFFER) are created with a call to Cesium.Buffer.createVertexBuffer().
This is the buffer that is provided as the vertexBuffer property of VertexArrays.
The index buffer just references data in the Vertex Buffer.
In your code you have not created a vertex buffer which is why you get the error : INVALID_OPERATION: vertexAttribPointer: no bound ARRAY_BUFFER
Ideally you would first create a vertex bufffer then an index buffer.
var vertexBuffer = Cesium.Buffer.createVertexBuffer({
context: context,
typedArray: new Float32Array(pointArray),
usage: Cesium.BufferUsage.STATIC_DRAW
});
var indexBuffer = Cesium.Buffer.createIndexBuffer({
context: context,
typedArray: new Uint16Array(indicesArray),
usage: Cesium.BufferUsage.STATIC_DRAW,
indexDatatype: Cesium.IndexDatatype.UNSIGNED_SHORT
});
These buffers would be set as attributes to the VertexArray.