3f7b872c278e56d68606e1e0eb99ae9b082af8bf.svn-base 970 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. *
  3. * @param {*} geometry
  4. * @return {*}
  5. * morphTargetsPosition,
  6. * morphTargetsNormal,
  7. * _vertices
  8. _normals
  9. _colors
  10. _uvs
  11. _uvs2,
  12. _skinIndices,
  13. _skinWeights
  14. */
  15. function fromGeometry(geometry) {
  16. var faces = geometry.faces;
  17. var vertices = geometry.vertices;
  18. if (vertices.length > 0 && faces.length === 0) {
  19. console.error('THREE.DirectGeometry: Faceless geometries are not supported.');
  20. }
  21. var _vertices = [],
  22. _normals = [];
  23. for (var i = 0; i < faces.length; i++) {
  24. var face = faces[i];
  25. _vertices.push(vertices[face.a], vertices[face.b], vertices[face.c]);
  26. var vertexNormals = face.vertexNormals;
  27. if (vertexNormals.length === 3) {
  28. _normals.push(vertexNormals[0], vertexNormals[1], vertexNormals[2]);
  29. } else {
  30. var normal = face.normal;
  31. _normals.push(normal, normal, normal);
  32. }
  33. }
  34. return {
  35. vertices: _vertices,
  36. normals: _normals,
  37. }
  38. }
  39. export default fromGeometry