MCPcopy
hub / github.com/mapillary/OpenSfM / initGeometryGroups

Function initGeometryGroups

viewer/js/three.js:21548–21603  ·  view source on GitHub ↗
( scene, object, geometry )

Source from the content-addressed store, hash-verified

21546 }
21547
21548 function initGeometryGroups( scene, object, geometry ) {
21549
21550 var material = object.material, addBuffers = false;
21551
21552 if ( geometryGroups[ geometry.id ] === undefined || geometry.groupsNeedUpdate === true ) {
21553
21554 delete _webglObjects[ object.id ];
21555
21556 geometryGroups[ geometry.id ] = makeGroups( geometry, material instanceof THREE.MeshFaceMaterial );
21557
21558 geometry.groupsNeedUpdate = false;
21559
21560 }
21561
21562 var geometryGroupsList = geometryGroups[ geometry.id ];
21563
21564 // create separate VBOs per geometry chunk
21565
21566 for ( var i = 0, il = geometryGroupsList.length; i < il; i ++ ) {
21567
21568 var geometryGroup = geometryGroupsList[ i ];
21569
21570 // initialise VBO on the first access
21571
21572 if ( geometryGroup.__webglVertexBuffer === undefined ) {
21573
21574 createMeshBuffers( geometryGroup );
21575 initMeshBuffers( geometryGroup, object );
21576
21577 geometry.verticesNeedUpdate = true;
21578 geometry.morphTargetsNeedUpdate = true;
21579 geometry.elementsNeedUpdate = true;
21580 geometry.uvsNeedUpdate = true;
21581 geometry.normalsNeedUpdate = true;
21582 geometry.tangentsNeedUpdate = true;
21583 geometry.colorsNeedUpdate = true;
21584
21585 addBuffers = true;
21586
21587 } else {
21588
21589 addBuffers = false;
21590
21591 }
21592
21593 if ( addBuffers || object.__webglActive === undefined ) {
21594
21595 addBuffer( _webglObjects, geometryGroup, object );
21596
21597 }
21598
21599 }
21600
21601 object.__webglActive = true;
21602
21603 }
21604
21605 function addBuffer( objlist, buffer, object ) {

Callers 2

initObjectFunction · 0.85
updateObjectFunction · 0.85

Calls 4

makeGroupsFunction · 0.85
createMeshBuffersFunction · 0.85
initMeshBuffersFunction · 0.85
addBufferFunction · 0.85

Tested by

no test coverage detected