( geometryGroup, object )
| 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 = []; |
no test coverage detected