/// function rectangle(pGl, pData) { var lBuffer = pGl.createBuffer(), lColor = pData.color || { x: 1, y: 0, z: 0, w: 1 }; pGl.bindBuffer(pGl.ARRAY_BUFFER, lBuffer); var lBufferedData = [ -pData.width / 2.0, -pData.height / 2.0, lColor.x, lColor.y, lColor.z, lColor.w, -pData.width / 2.0, pData.height / 2.0, lColor.x, lColor.y, lColor.z, lColor.w, pData.width / 2.0, pData.height / 2.0, lColor.x, lColor.y, lColor.z, lColor.w, pData.width / 2.0, pData.height /2.0, lColor.x, lColor.y, lColor.z, lColor.w, pData.width / 2.0, -pData.height / 2.0, lColor.x, lColor.y, lColor.z, lColor.w, -pData.width / 2.0, -pData.height / 2.0, lColor.x, lColor.y, lColor.z, lColor.w ]; pGl.bufferData(pGl.ARRAY_BUFFER, new Float32Array(lBufferedData), pGl.STATIC_DRAW) pGl.bindBuffer(pGl.ARRAY_BUFFER, undefined); pData.getMomentOfInertia = function() { return (1.0 / 12.0) * pData.mass * (pData.height * pData.height + pData.width * pData.width); }; return makeRigidBody2({ vertexCount: 6, buffer: lBuffer, width: pData.width, height: pData.height, model: translateMatrix(mat4(), pData.position ? pData.position.x : 0, pData.position ? pData.position.y : 0, 0), }, pData); }