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

Function initMeshBuffers

viewer/js/three.js:18684–18811  ·  view source on GitHub ↗
( geometryGroup, object )

Source from the content-addressed store, hash-verified

18682 };
18683
18684 function initMeshBuffers ( geometryGroup, object ) {
18685
18686 var geometry = object.geometry,
18687 faces3 = geometryGroup.faces3,
18688
18689 nvertices = faces3.length * 3,
18690 ntris = faces3.length * 1,
18691 nlines = faces3.length * 3,
18692
18693 material = getBufferMaterial( object, geometryGroup );
18694
18695 geometryGroup.__vertexArray = new Float32Array( nvertices * 3 );
18696 geometryGroup.__normalArray = new Float32Array( nvertices * 3 );
18697 geometryGroup.__colorArray = new Float32Array( nvertices * 3 );
18698 geometryGroup.__uvArray = new Float32Array( nvertices * 2 );
18699
18700 if ( geometry.faceVertexUvs.length > 1 ) {
18701
18702 geometryGroup.__uv2Array = new Float32Array( nvertices * 2 );
18703
18704 }
18705
18706 if ( geometry.hasTangents ) {
18707
18708 geometryGroup.__tangentArray = new Float32Array( nvertices * 4 );
18709
18710 }
18711
18712 if ( object.geometry.skinWeights.length && object.geometry.skinIndices.length ) {
18713
18714 geometryGroup.__skinIndexArray = new Float32Array( nvertices * 4 );
18715 geometryGroup.__skinWeightArray = new Float32Array( nvertices * 4 );
18716
18717 }
18718
18719 var UintArray = extensions.get( 'OES_element_index_uint' ) !== null && ntris > 21845 ? Uint32Array : Uint16Array; // 65535 / 3
18720
18721 geometryGroup.__typeArray = UintArray;
18722 geometryGroup.__faceArray = new UintArray( ntris * 3 );
18723 geometryGroup.__lineArray = new UintArray( nlines * 2 );
18724
18725 var m, ml;
18726
18727 if ( geometryGroup.numMorphTargets ) {
18728
18729 geometryGroup.__morphTargetsArrays = [];
18730
18731 for ( m = 0, ml = geometryGroup.numMorphTargets; m < ml; m ++ ) {
18732
18733 geometryGroup.__morphTargetsArrays.push( new Float32Array( nvertices * 3 ) );
18734
18735 }
18736
18737 }
18738
18739 if ( geometryGroup.numMorphNormals ) {
18740
18741 geometryGroup.__morphNormalsArrays = [];

Callers 2

initGeometryGroupsFunction · 0.85
updateObjectFunction · 0.85

Calls 2

getBufferMaterialFunction · 0.85
getMethod · 0.80

Tested by

no test coverage detected