Download node_modules/three/src/renderers/webgl/WebGLObjects.js from SimWorld-AI/industrial-harbor-viewer: direct link, hf CLI and curl.
- Browser
- Download file 1.58 kB
-
https://huggingface.co/spaces/SimWorld-AI/industrial-harbor-viewer/resolve/main/node_modules/three/src/renderers/webgl/WebGLObjects.js
- Command line
-
hf download hf://spaces/SimWorld-AI/industrial-harbor-viewer/node_modules/three/src/renderers/webgl/WebGLObjects.js
-
curl -L -o WebGLObjects.js https://huggingface.co/spaces/SimWorld-AI/industrial-harbor-viewer/resolve/main/node_modules/three/src/renderers/webgl/WebGLObjects.js
1.58 kB
| function WebGLObjects( gl, geometries, attributes, info ) { | |
| let updateMap = new WeakMap(); | |
| function update( object ) { | |
| const frame = info.render.frame; | |
| const geometry = object.geometry; | |
| const buffergeometry = geometries.get( object, geometry ); | |
| // Update once per frame | |
| if ( updateMap.get( buffergeometry ) !== frame ) { | |
| geometries.update( buffergeometry ); | |
| updateMap.set( buffergeometry, frame ); | |
| } | |
| if ( object.isInstancedMesh ) { | |
| if ( object.hasEventListener( 'dispose', onInstancedMeshDispose ) === false ) { | |
| object.addEventListener( 'dispose', onInstancedMeshDispose ); | |
| } | |
| if ( updateMap.get( object ) !== frame ) { | |
| attributes.update( object.instanceMatrix, gl.ARRAY_BUFFER ); | |
| if ( object.instanceColor !== null ) { | |
| attributes.update( object.instanceColor, gl.ARRAY_BUFFER ); | |
| } | |
| updateMap.set( object, frame ); | |
| } | |
| } | |
| if ( object.isSkinnedMesh ) { | |
| const skeleton = object.skeleton; | |
| if ( updateMap.get( skeleton ) !== frame ) { | |
| skeleton.update(); | |
| updateMap.set( skeleton, frame ); | |
| } | |
| } | |
| return buffergeometry; | |
| } | |
| function dispose() { | |
| updateMap = new WeakMap(); | |
| } | |
| function onInstancedMeshDispose( event ) { | |
| const instancedMesh = event.target; | |
| instancedMesh.removeEventListener( 'dispose', onInstancedMeshDispose ); | |
| attributes.remove( instancedMesh.instanceMatrix ); | |
| if ( instancedMesh.instanceColor !== null ) attributes.remove( instancedMesh.instanceColor ); | |
| } | |
| return { | |
| update: update, | |
| dispose: dispose | |
| }; | |
| } | |
| export { WebGLObjects }; | |