import {System} from "../../../../ecs/System";
import {Decal} from "./Decal";
import {Transform} from "../../../../ecs/transform/Transform";
import Engine from "../../../../Engine";
import {SurfacePoint3} from "../../../../../core/geom/3d/SurfacePoint3";

export class FPDecalSystem extends System<Decal, Transform> {
    constructor(engine: Engine)


    raycast(
        origin_x: number, origin_y: number, origin_z: number,
        direction_x: number, direction_y: number, direction_z: number,
        filter_function?: (entity: number, mesh: Decal) => boolean,
        filter_function_context?: any
    ): { entity: number, component: Decal, contact: SurfacePoint3 }[]


    queryOverlapFrustum(
        result: ArrayLike<number>,
        result_offset: number,
        planes: ArrayLike<number>
    ): number
}
