@webviz/subsurface-viewer
Version:
3D visualization component for subsurface reservoir data
73 lines (72 loc) • 2.33 kB
TypeScript
import type { Color, UpdateParameters } from "@deck.gl/core";
import { Layer } from "@deck.gl/core";
import type { RenderPass, UniformValue } from "@luma.gl/core";
import { Model } from "@luma.gl/engine";
import type { Point3D } from "../../utils";
import type { ExtendedLayerProps } from "../utils/layerTools";
declare enum TEXT_ANCHOR {
start = 0,
middle = 1,
end = 2
}
declare enum ALIGNMENT_BASELINE {
top = 1,
center = 0,
bottom = -1
}
type LabelData = {
label: string;
pos: Point3D;
anchor?: TEXT_ANCHOR;
alignment?: ALIGNMENT_BASELINE;
};
declare enum ViewSide {
Left = 0,
Right = 1,
Bottom = 2,
Top = 3
}
export interface Axes2DLayerProps extends ExtendedLayerProps {
/** Minimal horizontal pixel size margin. May be larger if this number is to small for the label.
*/
minimalMarginH: number;
/** Minimal vertical pixel size margin. May be larger if this number is to small for the label.
*/
minimalMarginV: number;
/** @deprecated Use "minimalMarginH"
*/
marginH: number;
/** @deprecated Use "minimalMarginV"
*/
marginV: number;
formatLabelFunc?: (x: number) => string;
labelColor?: Color;
labelFontSizePt?: number;
axisColor?: Color;
backgroundColor?: Color;
isLeftRuler: boolean;
isRightRuler: boolean;
isBottomRuler: boolean;
isTopRuler: boolean;
}
export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
shouldUpdateState({ props, oldProps, context, changeFlags, }: UpdateParameters<Layer<Axes2DLayerProps>>): boolean;
updateState(): void;
initializeState(): void;
makeLabel(n: number, ndecimals: number): string;
GetTickLinesAndLabels(min: number, max: number, viewSide: ViewSide): [number[], LabelData[]];
GetBackgroundTriangleLinesHorizontal(x_min_w: number, x_max_w: number, isTop: boolean): number[];
GetBackgroundTriangleLinesVertical(y_min_w: number, y_max_w: number, isLeft: boolean): number[];
makeLabelsData(tick_lines: number[], tick_labels: string[]): LabelData[];
draw(opts: {
context: {
renderPass: RenderPass;
};
}): void;
_getModels(fontTexture: UniformValue): {
labelModels: Model[];
lineModel: Model;
backgroundModel: Model;
};
}
export {};