@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
131 lines • 3.35 kB
TypeScript
/**
* @class
*/
export class FogOfWar {
/**
*
* @type {boolean}
*/
textureNeedsUpdate: boolean;
/**
*
* @type {boolean}
*/
distanceFieldNeedsUpdate: boolean;
/**
*
* @type {DataTexture|null}
*/
texture: DataTexture | null;
/**
* Resolution scale of FoW versus terrain resolution, higher number makes FoW more detailed
* @type {Vector1}
*/
scale: Vector1;
/**
* Size of the fog area
* @type {Vector2}
*/
size: Vector2;
color: Vector4;
/**
* Contains indices of pixes that are currently being updated
* @type {RowFirstTable}
*/
fadeMask: RowFirstTable;
on: {
textureChanged: Signal<any, any, any, any, any, any, any, any>;
};
/**
*
* @type {Sampler2D}
*/
sampler: Sampler2D;
/**
*
* @type {Sampler2D}
*/
distanceSampler: Sampler2D;
/**
*
* @param {number} timeDelta
*/
updateFade(timeDelta: number): void;
/**
*
* @param {number} x
* @param {number} y
*/
revealPoint(x: number, y: number): void;
clear(): void;
revealAll(): void;
concealAll(): void;
/**
*
* @param {number} x
* @param {number} y
* @param {number} radius
*/
reveal(x: number, y: number, radius: number): void;
/**
*
* @param {number} x
* @param {number} y
* @param {number} radius
*/
conceal(x: number, y: number, radius: number): void;
dispose(): void;
updateTexture(): void;
/**
*
* @param {number} timeDelta
*/
update(timeDelta: number): void;
/**
* Compute bounding box of revealed area in grid space, where coordinate system maps to discrete texels of the fog
* @param {AABB2} result
*/
computeRevealedGridBoundingRectangle(result: AABB2): void;
/**
*
* @param {number} x
* @param {number} y
* @param {number[]} result
*/
worldToSamplePosition(x: number, y: number, result: number[]): void;
/**
*
* @param {AABB3} aabb
* @param {Vector3} cameraFocalPoint
* @param {number} clearance distance to nearest non-occluding cell
*/
computeAABBVisibility(aabb: AABB3, cameraFocalPoint: Vector3, clearance: number): boolean;
/**
* Returns fog clearance from a set of world coordinates
* @param {number} x world X coordinate
* @param {number} y world Y coordinate
* @returns {number} clearance value
*/
getWorldClearance(x: number, y: number): number;
rebuildDistanceField(): void;
rebuildDistanceSampler(): void;
rebuildSampler(): void;
/**
*
* @param {number} w
* @param {number} h
* @param scale
*/
resize(w: number, h: number, scale: any): void;
}
export namespace FogOfWar {
let typeName: string;
}
import { DataTexture } from "three";
import Vector1 from "../../../core/geom/Vector1.js";
import Vector2 from "../../../core/geom/Vector2.js";
import Vector4 from "../../../core/geom/Vector4.js";
import { RowFirstTable } from "../../../core/collection/table/RowFirstTable.js";
import Signal from "../../../core/events/signal/Signal.js";
import { Sampler2D } from "../../graphics/texture/sampler/Sampler2D.js";
//# sourceMappingURL=FogOfWar.d.ts.map