(gl, params, opts)
| 14235 | |
| 14236 | |
| 14237 | function createVectorMesh(gl, params, opts) { |
| 14238 | var shaders = opts.shaders |
| 14239 | |
| 14240 | if (arguments.length === 1) { |
| 14241 | params = gl |
| 14242 | gl = params.gl |
| 14243 | } |
| 14244 | |
| 14245 | |
| 14246 | var triShader = createMeshShader(gl, shaders) |
| 14247 | var pickShader = createPickShader(gl, shaders) |
| 14248 | var meshTexture = createTexture(gl, |
| 14249 | ndarray(new Uint8Array([255,255,255,255]), [1,1,4])) |
| 14250 | meshTexture.generateMipmap() |
| 14251 | meshTexture.minFilter = gl.LINEAR_MIPMAP_LINEAR |
| 14252 | meshTexture.magFilter = gl.LINEAR |
| 14253 | |
| 14254 | var trianglePositions = createBuffer(gl) |
| 14255 | var triangleVectors = createBuffer(gl) |
| 14256 | var triangleColors = createBuffer(gl) |
| 14257 | var triangleUVs = createBuffer(gl) |
| 14258 | var triangleIds = createBuffer(gl) |
| 14259 | var triangleVAO = createVAO(gl, [ |
| 14260 | { buffer: trianglePositions, |
| 14261 | type: gl.FLOAT, |
| 14262 | size: 4 |
| 14263 | }, |
| 14264 | { buffer: triangleIds, |
| 14265 | type: gl.UNSIGNED_BYTE, |
| 14266 | size: 4, |
| 14267 | normalized: true |
| 14268 | }, |
| 14269 | { buffer: triangleColors, |
| 14270 | type: gl.FLOAT, |
| 14271 | size: 4 |
| 14272 | }, |
| 14273 | { buffer: triangleUVs, |
| 14274 | type: gl.FLOAT, |
| 14275 | size: 2 |
| 14276 | }, |
| 14277 | { buffer: triangleVectors, |
| 14278 | type: gl.FLOAT, |
| 14279 | size: 4 |
| 14280 | } |
| 14281 | ]) |
| 14282 | |
| 14283 | var mesh = new VectorMesh(gl |
| 14284 | , meshTexture |
| 14285 | , triShader |
| 14286 | , pickShader |
| 14287 | , trianglePositions |
| 14288 | , triangleVectors |
| 14289 | , triangleIds |
| 14290 | , triangleColors |
| 14291 | , triangleUVs |
| 14292 | , triangleVAO |
| 14293 | , opts.traceType || 'cone' |
| 14294 | ) |
nothing calls this directly
no test coverage detected
searching dependent graphs…