import { Color } from '@galacean/effects-math/es/core/color'; import * as spec from '@galacean/effects-specification'; import type { Engine } from '../engine'; import type { Maskable } from '../material'; import { MaskProcessor } from '../material'; import type { BoundingBoxTriangle, HitTestTriangleParams } from '../plugins'; import { MeshCollider } from '../plugins'; import type { Renderer } from '../render'; import { Geometry } from '../render'; import { Texture } from '../texture'; import { RendererComponent } from './renderer-component'; /** * 图层元素渲染属性, 经过处理后的 spec.SpriteContent.renderer */ export interface ItemRenderer extends Required> { texture: Texture; mask: number; } /** * @since 2.7.0 */ export declare class MaskableGraphic extends RendererComponent implements Maskable { interaction?: { behavior: spec.InteractBehavior; }; renderer: ItemRenderer; geometry: Geometry; protected visible: boolean; protected readonly maskManager: MaskProcessor; /** * 用于点击测试的碰撞器 */ protected meshCollider: MeshCollider; protected defaultGeometry: Geometry; private _color; /** * * @param engine */ constructor(engine: Engine); /** * 设置当前 Mesh 的可见性。 * @param visible - true:可见,false:不可见 * @deprecated 2.4.0 Please use enabled instead */ setVisible(visible: boolean): void; /** * 获取当前 Mesh 的可见性。 * @deprecated 2.4.0 Please use enabled instead */ getVisible(): boolean; /** * 设置当前图层的颜色 * > Tips: 透明度也属于颜色的一部分,当有透明度/颜色 K 帧变化时,该 API 会失效 * @since 2.4.0 * @param color - 颜色值 */ setColor(color: Color): void; /** * 设置当前图层的颜色 * > Tips: 透明度也属于颜色的一部分,当有透明度/颜色 K 帧变化时,该 API 会失效 * @since 2.0.0 * @param color - 颜色值 */ setColor(color: spec.vec4): void; /** * 获取当前图层的颜色 * @since 2.5.0 */ get color(): Color; /** * 设置当前图层的颜色 * @since 2.5.0 */ set color(value: Color); /** * 使用纹理对象设置当前 Mesh 的纹理 * @since 2.0.0 * @param input - 纹理对象 */ setTexture(input: Texture): void; /** * 使用资源链接异步设置当前 Mesh 的纹理 * @param input - 资料链接 * @since 2.3.0 */ setTexture(input: string): Promise; onUpdate(dt: number): void; render(renderer: Renderer): void; onStart(): void; getHitTestParams: (force?: boolean) => HitTestTriangleParams | undefined; getBoundingBox(): BoundingBoxTriangle; private configureMaterial; private draw; fromData(data: unknown): void; }