KHR_materials_variants.d.ts 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import type { Nullable } from "@babylonjs/core/types.js";
  2. import type { IGLTFLoaderExtension } from "../glTFLoaderExtension";
  3. import { GLTFLoader } from "../glTFLoader";
  4. import { Mesh } from "@babylonjs/core/Meshes/mesh.js";
  5. import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
  6. import type { INode, IMeshPrimitive, IMesh } from "../glTFLoaderInterfaces";
  7. /**
  8. * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_variants/README.md)
  9. */
  10. export declare class KHR_materials_variants implements IGLTFLoaderExtension {
  11. /**
  12. * The name of this extension.
  13. */
  14. readonly name = "KHR_materials_variants";
  15. /**
  16. * Defines whether this extension is enabled.
  17. */
  18. enabled: boolean;
  19. private _loader;
  20. private _variants?;
  21. /**
  22. * @internal
  23. */
  24. constructor(loader: GLTFLoader);
  25. /** @internal */
  26. dispose(): void;
  27. /**
  28. * Gets the list of available variant names for this asset.
  29. * @param rootMesh The glTF root mesh
  30. * @returns the list of all the variant names for this model
  31. */
  32. static GetAvailableVariants(rootMesh: Mesh): string[];
  33. /**
  34. * Gets the list of available variant names for this asset.
  35. * @param rootMesh The glTF root mesh
  36. * @returns the list of all the variant names for this model
  37. */
  38. getAvailableVariants(rootMesh: Mesh): string[];
  39. /**
  40. * Select a variant given a variant name or a list of variant names.
  41. * @param rootMesh The glTF root mesh
  42. * @param variantName The variant name(s) to select.
  43. */
  44. static SelectVariant(rootMesh: Mesh, variantName: string | string[]): void;
  45. /**
  46. * Select a variant given a variant name or a list of variant names.
  47. * @param rootMesh The glTF root mesh
  48. * @param variantName The variant name(s) to select.
  49. */
  50. selectVariant(rootMesh: Mesh, variantName: string | string[]): void;
  51. /**
  52. * Reset back to the original before selecting a variant.
  53. * @param rootMesh The glTF root mesh
  54. */
  55. static Reset(rootMesh: Mesh): void;
  56. /**
  57. * Reset back to the original before selecting a variant.
  58. * @param rootMesh The glTF root mesh
  59. */
  60. reset(rootMesh: Mesh): void;
  61. /**
  62. * Gets the last selected variant name(s) or null if original.
  63. * @param rootMesh The glTF root mesh
  64. * @returns The selected variant name(s).
  65. */
  66. static GetLastSelectedVariant(rootMesh: Mesh): Nullable<string | string[]>;
  67. /**
  68. * Gets the last selected variant name(s) or null if original.
  69. * @param rootMesh The glTF root mesh
  70. * @returns The selected variant name(s).
  71. */
  72. getLastSelectedVariant(rootMesh: Mesh): Nullable<string | string[]>;
  73. private static _GetExtensionMetadata;
  74. /** @internal */
  75. onLoading(): void;
  76. /**
  77. * @internal
  78. */
  79. _loadMeshPrimitiveAsync(context: string, name: string, node: INode, mesh: IMesh, primitive: IMeshPrimitive, assign: (babylonMesh: AbstractMesh) => void): Nullable<Promise<AbstractMesh>>;
  80. }