@webviz/subsurface-viewer
Version:
3D visualization component for subsurface reservoir data
36 lines (35 loc) • 1.26 kB
TypeScript
import { LayerExtension } from "@deck.gl/core";
/**
* The `FixedSizeExtension` class is a custom Deck.gl layer extension that modifies the size of rendered objects
* based on their clip-space position. This extension can be used to ensure that objects maintain a fixed size
* relative to the viewport, regardless of their depth in the scene.
*
* @extends LayerExtension
*
* @remarks
* The `getShaders` method injects a custom shader snippet into the vertex shader stage of Deck.gl's rendering pipeline.
* Specifically, it modifies the `size` variable by scaling it with `gl_Position.w`, which represents the depth
* component in clip space.
*
* @example
* ```typescript
* import { FixedSizeExtension } from './fixed-size-extension';
* import { TextLayer } from '@deck.gl/layers';
*
* const layer = new TextLayer({
* data,
* getPosition: d => d.coordinates,
* getText: d => d.label,
* getSize: d => d.size,
* extensions: [new FixedSizeExtension()],
* });
* ```
* @note See this discussion for more details: https://github.com/visgl/deck.gl/issues/7992
*/
export declare class FixedSizeExtension extends LayerExtension {
getShaders(): {
inject: {
"vs:DECKGL_FILTER_SIZE": string;
};
};
}