MultiMaterial.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. THREE.MultiMaterial = function ( materials ) {
  5. this.uuid = THREE.Math.generateUUID();
  6. this.type = 'MultiMaterial';
  7. this.materials = materials instanceof Array ? materials : [];
  8. this.visible = true;
  9. };
  10. THREE.MultiMaterial.prototype = {
  11. constructor: THREE.MultiMaterial,
  12. toJSON: function ( meta ) {
  13. var output = {
  14. metadata: {
  15. version: 4.2,
  16. type: 'material',
  17. generator: 'MaterialExporter'
  18. },
  19. uuid: this.uuid,
  20. type: this.type,
  21. materials: []
  22. };
  23. var materials = this.materials;
  24. for ( var i = 0, l = materials.length; i < l; i ++ ) {
  25. var material = materials[ i ].toJSON( meta );
  26. delete material.metadata;
  27. output.materials.push( material );
  28. }
  29. output.visible = this.visible;
  30. return output;
  31. },
  32. clone: function () {
  33. var material = new this.constructor();
  34. for ( var i = 0; i < this.materials.length; i ++ ) {
  35. material.materials.push( this.materials[ i ].clone() );
  36. }
  37. material.visible = this.visible;
  38. return material;
  39. }
  40. };
  41. // backwards compatibility
  42. THREE.MeshFaceMaterial = THREE.MultiMaterial;
粤ICP备19079148号