genFace method
dynamic
genFace()
Implementation
genFace( Map buffers, Map geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength ) {
for ( var i = 2; i < faceLength; i ++ ) {
buffers["vertex"].add( geoInfo["vertexPositions"][ facePositionIndexes[ 0 ] ] );
buffers["vertex"].add( geoInfo["vertexPositions"][ facePositionIndexes[ 1 ] ] );
buffers["vertex"].add( geoInfo["vertexPositions"][ facePositionIndexes[ 2 ] ] );
buffers["vertex"].add( geoInfo["vertexPositions"][ facePositionIndexes[ ( i - 1 ) * 3 ] ] );
buffers["vertex"].add( geoInfo["vertexPositions"][ facePositionIndexes[ ( i - 1 ) * 3 + 1 ] ] );
buffers["vertex"].add( geoInfo["vertexPositions"][ facePositionIndexes[ ( i - 1 ) * 3 + 2 ] ] );
buffers["vertex"].add( geoInfo["vertexPositions"][ facePositionIndexes[ i * 3 ] ] );
buffers["vertex"].add( geoInfo["vertexPositions"][ facePositionIndexes[ i * 3 + 1 ] ] );
buffers["vertex"].add( geoInfo["vertexPositions"][ facePositionIndexes[ i * 3 + 2 ] ] );
if ( geoInfo["skeleton"] != null ) {
buffers["vertexWeights"].add( faceWeights[ 0 ] );
buffers["vertexWeights"].add( faceWeights[ 1 ] );
buffers["vertexWeights"].add( faceWeights[ 2 ] );
buffers["vertexWeights"].add( faceWeights[ 3 ] );
buffers["vertexWeights"].add( faceWeights[ ( i - 1 ) * 4 ] );
buffers["vertexWeights"].add( faceWeights[ ( i - 1 ) * 4 + 1 ] );
buffers["vertexWeights"].add( faceWeights[ ( i - 1 ) * 4 + 2 ] );
buffers["vertexWeights"].add( faceWeights[ ( i - 1 ) * 4 + 3 ] );
buffers["vertexWeights"].add( faceWeights[ i * 4 ] );
buffers["vertexWeights"].add( faceWeights[ i * 4 + 1 ] );
buffers["vertexWeights"].add( faceWeights[ i * 4 + 2 ] );
buffers["vertexWeights"].add( faceWeights[ i * 4 + 3 ] );
buffers["weightsIndices"].add( faceWeightIndices[ 0 ] );
buffers["weightsIndices"].add( faceWeightIndices[ 1 ] );
buffers["weightsIndices"].add( faceWeightIndices[ 2 ] );
buffers["weightsIndices"].add( faceWeightIndices[ 3 ] );
buffers["weightsIndices"].add( faceWeightIndices[ ( i - 1 ) * 4 ] );
buffers["weightsIndices"].add( faceWeightIndices[ ( i - 1 ) * 4 + 1 ] );
buffers["weightsIndices"].add( faceWeightIndices[ ( i - 1 ) * 4 + 2 ] );
buffers["weightsIndices"].add( faceWeightIndices[ ( i - 1 ) * 4 + 3 ] );
buffers["weightsIndices"].add( faceWeightIndices[ i * 4 ] );
buffers["weightsIndices"].add( faceWeightIndices[ i * 4 + 1 ] );
buffers["weightsIndices"].add( faceWeightIndices[ i * 4 + 2 ] );
buffers["weightsIndices"].add( faceWeightIndices[ i * 4 + 3 ] );
}
if ( geoInfo["color"] != null ) {
buffers["colors"].add( faceColors[ 0 ] );
buffers["colors"].add( faceColors[ 1 ] );
buffers["colors"].add( faceColors[ 2 ] );
buffers["colors"].add( faceColors[ ( i - 1 ) * 3 ] );
buffers["colors"].add( faceColors[ ( i - 1 ) * 3 + 1 ] );
buffers["colors"].add( faceColors[ ( i - 1 ) * 3 + 2 ] );
buffers["colors"].add( faceColors[ i * 3 ] );
buffers["colors"].add( faceColors[ i * 3 + 1 ] );
buffers["colors"].add( faceColors[ i * 3 + 2 ] );
}
if ( geoInfo["material"] != null && geoInfo["material"]["mappingType"] != 'AllSame' ) {
buffers["materialIndex"].add( materialIndex );
buffers["materialIndex"].add( materialIndex );
buffers["materialIndex"].add( materialIndex );
}
if ( geoInfo["normal"] != null ) {
buffers["normal"].add( faceNormals[ 0 ] );
buffers["normal"].add( faceNormals[ 1 ] );
buffers["normal"].add( faceNormals[ 2 ] );
buffers["normal"].add( faceNormals[ ( i - 1 ) * 3 ] );
buffers["normal"].add( faceNormals[ ( i - 1 ) * 3 + 1 ] );
buffers["normal"].add( faceNormals[ ( i - 1 ) * 3 + 2 ] );
buffers["normal"].add( faceNormals[ i * 3 ] );
buffers["normal"].add( faceNormals[ i * 3 + 1 ] );
buffers["normal"].add( faceNormals[ i * 3 + 2 ] );
}
if ( geoInfo["uv"] != null ) {
geoInfo["uv"].asMap().forEach( ( j, uv ) {
if ( buffers["uvs"].length == j ) buffers["uvs"].add( [] );
buffers["uvs"][ j ].add( faceUVs[ j ][ 0 ] );
buffers["uvs"][ j ].add( faceUVs[ j ][ 1 ] );
buffers["uvs"][ j ].add( faceUVs[ j ][ ( i - 1 ) * 2 ] );
buffers["uvs"][ j ].add( faceUVs[ j ][ ( i - 1 ) * 2 + 1 ] );
buffers["uvs"][ j ].add( faceUVs[ j ][ i * 2 ] );
buffers["uvs"][ j ].add( faceUVs[ j ][ i * 2 + 1 ] );
} );
}
}
}