import Layer, { UpdateParameters } from "./layer.js"; import type AttributeManager from "./attribute/attribute-manager.js"; import type { PickingInfo, GetPickingInfoParams } from "./picking/pick-info.js"; import type { FilterContext } from "../passes/layers-pass.js"; import type { LayersList, LayerContext } from "./layer-manager.js"; import type { CompositeLayerProps, Accessor } from "../types/layer-props.js"; import { ConstructorOf } from "../types/types.js"; export default abstract class CompositeLayer extends Layer> { static layerName: string; /** `true` if this layer renders other layers */ get isComposite(): boolean; /** `true` if the layer renders to screen */ get isDrawable(): boolean; /** Returns true if all async resources are loaded */ get isLoaded(): boolean; /** Return last rendered sub layers */ getSubLayers(): Layer[]; initializeState(context: LayerContext): void; /** Updates selected state members and marks the composite layer to need rerender */ setState(updateObject: any): void; /** called to augment the info object that is bubbled up from a sublayer override Layer.getPickingInfo() because decoding / setting uniform do not apply to a composite layer. */ getPickingInfo({ info }: GetPickingInfoParams): PickingInfo; abstract renderLayers(): Layer | null | LayersList; /** * Filters sub layers at draw time. Return true if the sub layer should be drawn. */ filterSubLayer(context: FilterContext): boolean; /** Returns true if sub layer needs to be rendered */ protected shouldRenderSubLayer(subLayerId: string, data: any): boolean; /** Returns sub layer class for a specific sublayer */ protected getSubLayerClass(subLayerId: string, DefaultLayerClass: ConstructorOf): ConstructorOf; /** When casting user data into another format to pass to sublayers, add reference to the original object and object index */ protected getSubLayerRow(row: T, sourceObject: any, sourceObjectIndex: number): T; /** Some composite layers cast user data into another format before passing to sublayers We need to unwrap them before calling the accessor so that they see the original data objects */ protected getSubLayerAccessor(accessor: Accessor): Accessor; /** Returns sub layer props for a specific sublayer */ protected getSubLayerProps(sublayerProps?: { id?: string; updateTriggers?: Record; [propName: string]: any; }): any; /** Update sub layers to highlight the hovered object */ protected _updateAutoHighlight(info: PickingInfo): void; /** Override base Layer method */ protected _getAttributeManager(): AttributeManager | null; /** (Internal) Called after an update to rerender sub layers */ protected _postUpdate(updateParams: UpdateParameters, forceUpdate: boolean): void; } //# sourceMappingURL=composite-layer.d.ts.map