import { LayeredMaterial } from "../LayeredMaterial"; import { DecalConfig, DamageConfig, DecalDamageSystemConfig } from "./types/DecalConfig"; import { LayerData, LayeredMaterialOptions } from "../types"; export declare class DecalLayeredMaterial extends LayeredMaterial { private _decals; private _damages; private _decalSystemConfig; private _decalTextureAtlas; private _damageMaskTexture; private _lastUpdateTime; private _updateInterval; constructor(options?: LayeredMaterialOptions & { decalSystem?: DecalDamageSystemConfig; }); private setupDecalDamageSystem; /** * Add a decal to the material */ addDecal(decalConfig: Omit): string; /** * Add damage to the material */ addDamage(damageConfig: Omit): string; /** * Remove a decal by ID */ removeDecal(id: string): boolean; /** * Remove damage by ID */ removeDamage(id: string): boolean; /** * Update decal/damage system (call this in animation loop) */ update(deltaTime: number): void; private updateDecalLifetimes; private updateDamageHealing; private removeOldestDecal; private removeOldestDamage; /** * Update the material with current decals and damages */ private updateDecalDamageSystem; /** * Override buildLayerBlending to include decals and damages */ protected buildLayerBlending(): LayerData; /** * Apply damage layers to the base material */ private applyDamages; /** * Apply decal layers to the material */ private applyDecals; /** * Calculate mask for a damage area */ private calculateDamageMask; /** * Calculate mask for a decal */ private calculateDecalMask; /** * World-space planar decal projection */ private calculateWorldSpaceDecalMask; /** * UV-space decal projection */ private calculateUVSpaceDecalMask; /** * Box projection decal */ private calculateBoxDecalMask; /** * Sphere projection decal */ private calculateSphereDecalMask; /** * Calculate scratch pattern mask */ private calculateScratchMask; private createDecalAtlas; private createDamageMaskTexture; getDecals(): ReadonlyArray; getDamages(): ReadonlyArray; clearDecals(): void; clearDamages(): void; setDecalSystemConfig(config: Partial): void; dispose(): void; } //# sourceMappingURL=DecalLayeredMaterial.d.ts.map