+ let face = faces[i];\r
+\r
+ result.geometry.faces.push(new THREE.Face3(\r
+ face.a, face.b, face.c\r
+ ));\r
+ result.geometry.faces.push(new THREE.Face3(\r
+ face.c, face.b, face.d\r
+ ));\r
+ \r
+ let xLength =\r
+ result.geometry.vertices[face.b]\r
+ .sub(result.geometry.vertices[face.a])\r
+ .length();\r
+ let yLength =\r
+ result.geometry.vertices[face.c]\r
+ .sub(result.geometry.vertices[face.a])\r
+ .length();\r
+ let weight = xLength * yLength / 2;\r
+\r
+ xLength =\r
+ result.geometry.vertices[face.b]\r
+ .sub(result.geometry.vertices[face.d])\r
+ .length();\r
+ yLength =\r
+ result.geometry.vertices[face.c]\r
+ .sub(result.geometry.vertices[face.d])\r
+ .length();\r
+\r
+ weight += xLength * yLength / 2;\r
+\r
+ result.vertexWeights[face.a] += weight / 4;\r
+ result.vertexWeights[face.b] += weight / 4;\r
+ result.vertexWeights[face.c] += weight / 4;\r
+ result.vertexWeights[face.d] += weight / 4;\r