import { Matrix4 } from '@galacean/effects-math/es/core/index'; import type { Engine } from '../engine'; import type { Material, MaterialDestroyOptions } from '../material'; import type { Geometry, Renderer } from '../render'; import type { Disposable } from '../utils'; import { DestroyOptions } from '../utils'; import { RendererComponent } from '../components'; export interface MeshOptionsBase { material: Material; name?: string; worldMatrix?: Matrix4; priority?: number; } export interface GeometryMeshProps extends MeshOptionsBase { geometry: Geometry; } export interface MeshDestroyOptions { geometries?: DestroyOptions; material?: MaterialDestroyOptions | DestroyOptions; } /** * Mesh 抽象类 */ export declare class Mesh extends RendererComponent implements Disposable { /** * Mesh 的全局唯一 id */ readonly id: string; /** * Mesh 的世界矩阵 */ worldMatrix: Matrix4; /** * Mesh 的 Geometry */ geometry: Geometry; protected destroyed: boolean; private visible; /** * 创建一个新的 Mesh 对象。 */ static create: (engine: Engine, props?: GeometryMeshProps) => Mesh; constructor(engine: Engine, props?: GeometryMeshProps); get isDestroyed(): boolean; /** * 设置当前 Mesh 的可见性。 * @param visible - true:可见,false:不可见 */ setVisible(visible: boolean): void; /** * 获取当前 Mesh 的可见性。 */ getVisible(): boolean; render(renderer: Renderer): void; /** * 获取当前 Mesh 的第一个 geometry。 */ firstGeometry(): Geometry; /** * 设置当前 Mesh 的材质 * @param material - 要设置的材质 * @param destroy - 可选的材质销毁选项 */ setMaterial(material: Material, destroy?: MaterialDestroyOptions | DestroyOptions.keep): void; restore(): void; /** * 销毁当前资源 * @param options - 可选的销毁选项 */ dispose(options?: MeshDestroyOptions): void; }