babylon.multiMaterial.ts 972 B

12345678910111213141516171819202122232425262728293031323334
  1. module BABYLON {
  2. export class MultiMaterial extends Material {
  3. public subMaterials = new Array<Material>();
  4. constructor(name: string, scene: Scene) {
  5. super(name, scene, true);
  6. scene.multiMaterials.push(this);
  7. }
  8. // Properties
  9. public getSubMaterial(index) {
  10. if (index < 0 || index >= this.subMaterials.length) {
  11. return this.getScene().defaultMaterial;
  12. }
  13. return this.subMaterials[index];
  14. }
  15. // Methods
  16. public isReady(mesh?: AbstractMesh): boolean {
  17. for (var index = 0; index < this.subMaterials.length; index++) {
  18. var subMaterial = this.subMaterials[index];
  19. if (subMaterial) {
  20. if (!this.subMaterials[index].isReady(mesh)) {
  21. return false;
  22. }
  23. }
  24. }
  25. return true;
  26. }
  27. }
  28. }