UNPKG

s2maps-gpu

Version:

S2 Maps GPU - An open source, high-performance, and GPU-accelerated map engine for rendering large-scale, interactive maps.

740 lines (739 loc) 24.3 kB
import type { ColorArray } from 'style/color/index.js'; import type { ColorMode } from 's2/s2Map.js'; import type Context from '../context/context.js'; import type { Projector } from 'ui/camera/projector/index.js'; import type S2MapUI from 'ui/s2mapUI.js'; import type { SensorTextureDefinition } from 'ui/camera/timeCache.js'; import type { TileGL as Tile } from 'source/tile.spec.js'; import type TimeCache from 'ui/camera/timeCache.js'; import type { UrlMap } from 'util/index.js'; import type { WallpaperScheme } from './wallpaperWorkflow.js'; import type { BBox, VectorPoint } from 'gis-tools/index.js'; import type { FillData, GlyphData, HeatmapData, HillshadeData, LineData, PointData, RasterData, SensorData } from 'workers/worker.spec.js'; import type { FillDefinition, FillStyle, FillWorkflowLayerGuide, GlyphDefinition, GlyphStyle, GlyphWorkflowLayerGuide, HeatmapDefinition, HeatmapStyle, HeatmapWorkflowLayerGuide, HillshadeDefinition, HillshadeStyle, HillshadeWorkflowLayerGuide, LayerDefinitionBase, LineDefinition, LineStyle, LineWorkflowLayerGuide, PointDefinition, PointStyle, PointWorkflowLayerGuide, RasterDefinition, RasterStyle, RasterWorkflowLayerGuide, SensorDefinition, SensorStyle, SensorWorkflowLayerGuide, ShadeDefinition, ShadeStyle, ShadeWorkflowLayerGuide, StyleDefinition } from 'style/style.spec.js'; /** A collection of uniforms and their names in the shaders */ export type Uniforms = Record<string, string>; /** A collection of attributes and their names in the shaders */ export type Attributes = Record<string, string>; /** A collection of attribute locations { name: location } */ export type AttributeLocations = Record<string, number>; /** Shader Source */ export interface ShaderSource { source: string; uniforms: Uniforms; attributes: Attributes; } /** Mask Source */ export interface MaskSource { type: 'mask'; vertexBuffer: WebGLBuffer; indexBuffer: WebGLBuffer; count: number; offset: number; vao: WebGLVertexArrayObject; } /** Tile Mask Source */ export interface TileMaskSource extends MaskSource { tile: Tile; draw: () => void; destroy: () => void; } /** Fill Source */ export interface FillSource { type: 'fill'; vertexBuffer: WebGLBuffer; indexBuffer: WebGLBuffer; idBuffer: WebGLBuffer; codeTypeBuffer: WebGLBuffer; vao: WebGLVertexArrayObject; } /** Glyph Source */ export interface GlyphSource { type: 'glyph'; filterVAO: WebGLVertexArrayObject; vao: WebGLVertexArrayObject; glyphFilterBuffer: WebGLBuffer; glyphFilterIDBuffer: WebGLBuffer; glyphQuadBuffer: WebGLBuffer; glyphQuadIDBuffer: WebGLBuffer; glyphColorBuffer: WebGLBuffer; } /** Heatmap Source */ export interface HeatmapSource { type: 'heatmap'; vertexBuffer: WebGLBuffer; weightBuffer: WebGLBuffer; vao: WebGLVertexArrayObject; } /** Line Source */ export interface LineSource { type: 'line'; vertexBuffer: WebGLBuffer; lengthSoFarBuffer: WebGLBuffer; vao: WebGLVertexArrayObject; } /** Point Source */ export interface PointSource { type: 'point'; vertexBuffer: WebGLBuffer; idBuffer: WebGLBuffer; vao: WebGLVertexArrayObject; } /** Raster Source */ export interface RasterSource { type: 'raster'; texture: WebGLTexture; size: number; } /** Sensor Source */ export interface SensorSource { texture?: WebGLTexture; delete?: undefined; } /** List of all feature sources */ export type FeatureSource = MaskSource | FillSource | LineSource | PointSource | HeatmapSource | RasterSource | GlyphSource; /** List of all layer guides */ export type LayerGuides = FillWorkflowLayerGuide | GlyphWorkflowLayerGuide | HeatmapWorkflowLayerGuide | LineWorkflowLayerGuide | PointWorkflowLayerGuide | RasterWorkflowLayerGuide | HillshadeWorkflowLayerGuide | SensorWorkflowLayerGuide | ShadeWorkflowLayerGuide; /** Base Feature. Used by all features */ export interface FeatureBase { workflow: Workflow; tile: Tile; parent?: Tile; layerGuide: LayerGuides; featureCode: number[]; bounds?: BBox; draw: (interactive?: boolean) => void; destroy: () => void; duplicate?: (tile: Tile, parent?: Tile, bounds?: BBox) => FeatureBase; } /** Fill Feature */ export interface FillFeature extends FeatureBase { type: 'fill'; maskLayer: boolean; workflow: FillWorkflow; source: FillSource | TileMaskSource; layerGuide: FillWorkflowLayerGuide; count: number; offset: number; patternXY: VectorPoint; patternWH: [w: number, h: number]; patternMovement: number; color?: number[]; opacity?: number[]; mode: number; duplicate: (tile: Tile, parent?: Tile) => FillFeature; } /** Glyph Type */ export type GlyphType = 'text' | 'icon'; /** Glyph Feature */ export interface GlyphFeature extends FeatureBase { type: 'glyph'; source: GlyphSource; layerGuide: GlyphWorkflowLayerGuide; count: number; offset: number; filterCount: number; filterOffset: number; isIcon: boolean; textureName?: string; size?: number; fill?: ColorArray; stroke?: ColorArray; strokeWidth?: number; } /** Heatmap Feature */ export interface HeatmapFeature extends FeatureBase { type: 'heatmap'; source: HeatmapSource; layerGuide: HeatmapWorkflowLayerGuide; count: number; offset: number; radiusLo?: number; opacityLo?: number; intensityLo?: number; radiusHi?: number; opacityHi?: number; intensityHi?: number; drawTexture: () => void; } /** Line Feature */ export interface LineFeature extends FeatureBase { type: 'line'; source: LineSource; layerGuide: LineWorkflowLayerGuide; count: number; offset: number; cap: number; color?: ColorArray; opacity?: number; width?: number; gapwidth?: number; } /** Point Feature */ export interface PointFeature extends FeatureBase { type: 'point'; source: PointSource; layerGuide: PointWorkflowLayerGuide; count: number; offset: number; color?: ColorArray; radius?: number; stroke?: ColorArray; strokeWidth?: number; opacity?: number; } /** Raster Feature */ export interface RasterFeature extends FeatureBase { type: 'raster'; source: RasterSource; layerGuide: RasterWorkflowLayerGuide; fadeStartTime: number; opacity?: number; contrast?: number; saturation?: number; } /** Hillshade Feature */ export interface HillshadeFeature extends FeatureBase { type: 'hillshade'; source: RasterSource; layerGuide: HillshadeWorkflowLayerGuide; fadeStartTime: number; opacity?: number; shadowColor?: ColorArray; accentColor?: ColorArray; highlightColor?: ColorArray; azimuth?: number; altitude?: number; } /** Sensor Feature */ export interface SensorFeature extends FeatureBase { type: 'sensor'; fadeStartTime: number; layerGuide: SensorWorkflowLayerGuide; getTextures: () => SensorTextureDefinition; opacity?: number; } /** Shade Feature */ export interface ShadeFeature extends FeatureBase { type: 'shade'; maskLayer: boolean; source: MaskSource; layerGuide: ShadeWorkflowLayerGuide; } /** List of all features that can be rendered */ export type Features = FillFeature | GlyphFeature | HeatmapFeature | LineFeature | PointFeature | RasterFeature | SensorFeature | ShadeFeature | HillshadeFeature; /** List of all workflows that can draw features or internal states */ export interface Workflows { fill?: FillWorkflow; glyphFilter?: GlyphFilterWorkflow; glyph?: GlyphWorkflow; heatmap?: HeatmapWorkflow; line?: LineWorkflow; point?: PointWorkflow; raster?: RasterWorkflow; hillshade?: HillshadeWorkflow; sensor?: SensorWorkflow; shade?: ShadeWorkflow; wallpaper?: WallpaperWorkflow; skybox?: SkyboxWorkflow; background?: WallpaperWorkflow | SkyboxWorkflow; } /** List of all workflows that can draw features */ export interface WorkflowImports { fill: () => Promise<FillWorkflow>; glyphFilter: () => Promise<GlyphFilterWorkflow>; glyph: () => Promise<GlyphWorkflow>; heatmap: () => Promise<HeatmapWorkflow>; hillshade: () => Promise<HillshadeWorkflow>; line: () => Promise<LineWorkflow>; point: () => Promise<PointWorkflow>; raster: () => Promise<RasterWorkflow>; sensor: () => Promise<{ default: (context: Context) => Promise<SensorWorkflow>; }>; shade: () => Promise<ShadeWorkflow>; skybox: () => Promise<SkyboxWorkflow>; wallpaper: () => Promise<WallpaperWorkflow>; } /** Workflow keys */ export type WorkflowKey = keyof Workflows; /** Workflow types */ export type WorkflowType = 'fill' | 'glyph' | 'heatmap' | 'line' | 'point' | 'raster' | 'hillshade' | 'sensor' | 'shade' | 'skybox' | 'wallpaper'; /** Generic Workflow specification used by most workflows */ export interface WorkflowSpec { vertexShader: WebGLShader; fragmentShader: WebGLShader; radii: boolean; context: Context; gl: WebGLRenderingContext | WebGL2RenderingContext; type: 1 | 2; glProgram: WebGLProgram; updateColorBlindMode: null | ColorMode; updateMatrix: null | Float32Array; updateInputs: null | Float32Array; updateAspect: null | VectorPoint; curMode: number; LCH?: boolean; buildShaders: (vertex: ShaderSource, fragment: ShaderSource, attributeLocations?: AttributeLocations) => void; setupUniforms: (uniforms: Uniforms) => void; setupAttributes: (attributes: Attributes, attributeLocations: AttributeLocations) => void; delete: () => void; use: () => void; injectFrameUniforms: (matrix: Float32Array, view: Float32Array, aspect: VectorPoint) => void; flush: () => void; setTileUniforms: (tile: Tile, parent?: Tile) => void; setDevicePixelRatio: (ratio: number) => void; setColorBlindMode: (colorMode: ColorMode) => void; setMatrix: (matrix: Float32Array) => void; setInputs: (inputs: Float32Array) => void; setAspect: (aspect: VectorPoint) => void; setFaceST: (faceST: number[]) => void; setTilePos: (bottomTop: Float32Array) => void; setLayerCode: (layerIndex: number, layerCode: number[], lch: boolean) => void; setInteractive: (interactive: boolean) => void; setFeatureCode: (featureCode: number[]) => void; setMode: (mode: number) => void; } /** * Fill Workflow * * Draws fills and masks for WebGL(1|2) */ export interface FillWorkflow extends WorkflowSpec { label: 'fill'; uniforms: { [key in FillWorkflowUniforms]: WebGLUniformLocation; }; layerGuides: Map<number, FillWorkflowLayerGuide>; buildMaskFeature: (maskLayer: FillDefinition, tile: Tile) => void; buildSource: (fillData: FillData, tile: Tile) => void; buildLayerDefinition: (layerBase: LayerDefinitionBase, layer: FillStyle) => FillDefinition; draw: (featureGuide: FillFeature, interactive?: boolean) => void; drawMask: (mask: TileMaskSource) => void; } /** * Glyph Filter Workflow * * Compute glyph filter data to know which glyphs to render or skip */ export interface GlyphFilterWorkflow extends WorkflowSpec { label: 'glyphFilter'; quadTexture: WebGLTexture; resultTexture: WebGLTexture; quadFramebuffer: WebGLFramebuffer; resultFramebuffer: WebGLFramebuffer; indexOffset: number; mode: 1 | 2; uniforms: { [key in GlyphFilterUniforms]: WebGLUniformLocation; }; resize: () => void; setMode: (mode: number) => void; bindResultTexture: () => void; bindQuadFrameBuffer: () => void; bindResultFramebuffer: () => void; draw: (featureGuide: GlyphFeature, interactive: boolean) => void; } /** * Glyph Workflow * * Draws glyphs for WebGL(1|2) */ export interface GlyphWorkflow extends WorkflowSpec { label: 'glyph'; stepBuffer?: WebGLBuffer; uvBuffer?: WebGLBuffer; glyphFilterWorkflow: GlyphFilterWorkflow; layerGuides: Map<number, GlyphWorkflowLayerGuide>; uniforms: { [key in GlyphWorkflowUniforms]: WebGLUniformLocation; }; injectFilter: (glyphFilterWorkflow: GlyphFilterWorkflow) => void; buildSource: (glyphData: GlyphData, tile: Tile) => void; buildLayerDefinition: (layerBase: LayerDefinitionBase, layer: GlyphStyle) => GlyphDefinition; computeFilters: (glyphFeatures: GlyphFeature[]) => void; draw: (featureGuide: GlyphFeature, interactive: boolean) => void; } /** * Heatmap Workflow * * Draws heatmaps for WebGL(1|2) */ export interface HeatmapWorkflow extends WorkflowSpec { label: 'heatmap'; texture: WebGLTexture; nullTextureA: WebGLTexture; nullTextureB: WebGLTexture; framebuffer: WebGLFramebuffer; extentBuffer?: WebGLBuffer; layerGuides: Map<number, HeatmapWorkflowLayerGuide>; uniforms: { [key in HeatmapWorkflowUniforms]: WebGLUniformLocation; }; buildSource: (heatmapData: HeatmapData, tile: Tile) => void; buildLayerDefinition: (layerBase: LayerDefinitionBase, layer: HeatmapStyle) => HeatmapDefinition; setupTextureDraw: () => void; resize: () => void; textureDraw: (featureGuides: HeatmapFeature[]) => HeatmapFeature[] | undefined; drawToTexture: (featureGuide: HeatmapFeature) => void; draw: (featureGuide: HeatmapFeature) => void; } /** * Line Workflow * * Draws lines for WebGL(1|2) */ export interface LineWorkflow extends WorkflowSpec { label: 'line'; curTexture: number; typeBuffer?: WebGLBuffer; layerGuides: Map<number, LineWorkflowLayerGuide>; uniforms: { [key in LineWorkflowUniforms]: WebGLUniformLocation; }; buildSource: (lineData: LineData, tile: Tile) => void; buildLayerDefinition: (layerBase: LayerDefinitionBase, layer: LineStyle) => LineDefinition; draw: (featureGuide: LineFeature, interactive: boolean) => void; } /** * Point Workflow * * Draws points for WebGL(1|2) */ export interface PointWorkflow extends WorkflowSpec { label: 'point'; extentBuffer?: WebGLBuffer; layerGuides: Map<number, PointWorkflowLayerGuide>; uniforms: { [key in PointWorkflowUniforms]: WebGLUniformLocation; }; buildSource: (pointData: PointData, tile: Tile) => void; buildLayerDefinition: (layerBase: LayerDefinitionBase, layer: PointStyle) => PointDefinition; draw: (featureGuide: PointFeature, interactive: boolean) => void; } /** * Raster Workflow * * Draws rasters for WebGL(1|2) */ export interface RasterWorkflow extends WorkflowSpec { label: 'raster'; curSample: 'none' | 'linear' | 'nearest'; layerGuides: Map<number, RasterWorkflowLayerGuide>; uniforms: { [key in RasterWorkflowUniforms]: WebGLUniformLocation; }; buildSource: (rasterData: RasterData, tile: Tile) => void; buildLayerDefinition: (layerBase: LayerDefinitionBase, layer: RasterStyle) => RasterDefinition; draw: (featureGuide: RasterFeature, interactive?: boolean) => void; } /** * Hillshade Workflow * * Draws hillshades for WebGL(1|2) */ export interface HillshadeWorkflow extends WorkflowSpec { label: 'hillshade'; layerGuides: Map<number, HillshadeWorkflowLayerGuide>; uniforms: { [key in HillshadeWorkflowUniforms]: WebGLUniformLocation; }; buildSource: (hillshadeData: HillshadeData, tile: Tile) => void; buildLayerDefinition: (layerBase: LayerDefinitionBase, layer: HillshadeStyle) => HillshadeDefinition; draw: (featureGuide: HillshadeFeature, interactive: boolean) => void; } /** * Sensor Workflow * * Draws sensors for WebGL(1|2) */ export interface SensorWorkflow extends WorkflowSpec { label: 'sensor'; nullTexture: WebGLTexture; timeCache?: TimeCache; layerGuides: Map<number, SensorWorkflowLayerGuide>; uniforms: { [key in SensorWorkflowUniforms]: WebGLUniformLocation; }; buildSource: (sensorData: SensorData, tile: Tile) => void; buildLayerDefinition: (layerBase: LayerDefinitionBase, layer: SensorStyle) => SensorDefinition; injectTimeCache: (timeCache: TimeCache) => void; draw: (featureGuide: SensorFeature, interactive: boolean) => void; } /** * Shade Workflow * * Draws shadings for WebGL(1|2) */ export interface ShadeWorkflow extends WorkflowSpec { label: 'shade'; uniforms: { [key in ShadeWorkflowUniforms]: WebGLUniformLocation; }; buildLayerDefinition: (layerBase: LayerDefinitionBase, layer: ShadeStyle) => ShadeDefinition; buildMaskFeature: (maskLayer: ShadeDefinition, tile: Tile) => void; draw: (feature: ShadeFeature) => void; } /** * Skybox Workflow * * Draws a skybox for WebGL(1|2) */ export interface SkyboxWorkflow extends Omit<WorkflowSpec, 'draw'> { label: 'skybox'; cubeMap: WebGLTexture; facesReady: number; ready: boolean; fov: number; angle: number; matrix: Float32Array; uniforms: { [key in SkyboxWorkflowUniforms]: WebGLUniformLocation; }; updateStyle: (style: StyleDefinition, s2mapGL: S2MapUI, urlMap?: UrlMap) => void; draw: (projector: Projector) => void; } /** * Wallpaper Workflow * * Draws a wallpaper for WebGL(1|2) */ export interface WallpaperWorkflow extends Omit<WorkflowSpec, 'draw'> { label: 'wallpaper'; scheme: WallpaperScheme; tileSize: number; scale: VectorPoint; uniforms: { [key in WallpaperWorkflowUniforms]: WebGLUniformLocation; }; updateStyle: (style: StyleDefinition, s2mapGL: S2MapUI) => void; draw: (projector: Projector) => void; } /** List of all workflows that can draw features for WebGL(1|2) */ export type Workflow = FillWorkflow | GlyphFilterWorkflow | GlyphWorkflow | HeatmapWorkflow | LineWorkflow | PointWorkflow | RasterWorkflow | HillshadeWorkflow | SensorWorkflow | ShadeWorkflow | SkyboxWorkflow | WallpaperWorkflow; /** List of common uniforms for all workflows in WebGL(1|2) */ export declare enum WorkflowUniforms { uMatrix = "uMatrix", uAspect = "uAspect", uMode = "uMode", uLCH = "uLCH", uInteractive = "uInteractive", uFaceST = "uFaceST", uBottom = "uBottom", uTop = "uTop", uInputs = "uInputs", uLayerCode = "uLayerCode", uFeatureCode = "uFeatureCode", uDevicePixelRatio = "uDevicePixelRatio", uCBlind = "uCBlind" } /** List of Fill uniforms for WebGL(1|2) */ export declare enum FillWorkflowUniforms { uMatrix = "uMatrix", uLCH = "uLCH", uInteractive = "uInteractive", uFaceST = "uFaceST", uBottom = "uBottom", uTop = "uTop", uInputs = "uInputs", uLayerCode = "uLayerCode", uFeatureCode = "uFeatureCode", uCBlind = "uCBlind", uTexSize = "uTexSize", uPatternXY = "uPatternXY", uPatternWH = "uPatternWH", uPatternMovement = "uPatternMovement", uColors = "uColors",// WEBGL1 uOpacity = "uOpacity" } /** List of GlyphFilter uniforms for WebGL(1|2) */ export declare enum GlyphFilterUniforms { uMatrix = "uMatrix", uAspect = "uAspect", uMode = "uMode", uLCH = "uLCH", uFaceST = "uFaceST", uBottom = "uBottom", uTop = "uTop", uInputs = "uInputs", uLayerCode = "uLayerCode", uFeatureCode = "uFeatureCode", uDevicePixelRatio = "uDevicePixelRatio", uCBlind = "uCBlind", uIndexOffset = "uIndexOffset", uSize = "uSize" } /** List of Glyph uniforms for WebGL(1|2) */ export declare enum GlyphWorkflowUniforms { uMatrix = "uMatrix", uAspect = "uAspect", uLCH = "uLCH", uInteractive = "uInteractive", uFaceST = "uFaceST", uBottom = "uBottom", uTop = "uTop", uInputs = "uInputs", uLayerCode = "uLayerCode", uFeatureCode = "uFeatureCode", uDevicePixelRatio = "uDevicePixelRatio", uCBlind = "uCBlind", uOverdraw = "uOverdraw", uTexSize = "uTexSize", uIsIcon = "uIsIcon", uBounds = "uBounds", uIsStroke = "uIsStroke", uFeatures = "uFeatures", uGlyphTex = "uGlyphTex", uSize = "uSize",// WEBGL1 uFill = "uFill",// WEBGL1 uStroke = "uStroke",// WEBGL1 uSWidth = "uSWidth" } /** List of Heatmap uniforms for WebGL(1|2) */ export declare enum HeatmapWorkflowUniforms { uMatrix = "uMatrix", uAspect = "uAspect", uLCH = "uLCH", uFaceST = "uFaceST", uBottom = "uBottom", uTop = "uTop", uInputs = "uInputs", uLayerCode = "uLayerCode", uFeatureCode = "uFeatureCode", uDevicePixelRatio = "uDevicePixelRatio", uCBlind = "uCBlind", uIntensityHi = "uIntensityHi", uDrawState = "uDrawState", uImage = "uImage", uColorRamp = "uColorRamp", uBounds = "uBounds", uRadiusLo = "uRadiusLo",// WEBGL1 uOpacityLo = "uOpacityLo",// WEBGL1 uIntensityLo = "uIntensityLo",// WEBGL1 uRadiusHi = "uRadiusHi",// WEBGL1 uOpacityHi = "uOpacityHi" } /** List of Line uniforms for WebGL(1|2) */ export declare enum LineWorkflowUniforms { uMatrix = "uMatrix", uAspect = "uAspect", uLCH = "uLCH", uFaceST = "uFaceST", uBottom = "uBottom", uTop = "uTop", uInputs = "uInputs", uLayerCode = "uLayerCode", uFeatureCode = "uFeatureCode", uDevicePixelRatio = "uDevicePixelRatio", uCBlind = "uCBlind", uCap = "uCap", uDashed = "uDashed", uDashCount = "uDashCount", uDashArray = "uDashArray", uSize = "uSize",// WEBGL1 uColor = "uColor",// WEBGL1 uOpacity = "uOpacity",// WEBGL1 uWidth = "uWidth",// WEBGL1 uTexLength = "uTexLength" } /** List of Point uniforms for WebGL(1|2) */ export declare enum PointWorkflowUniforms { uMatrix = "uMatrix", uAspect = "uAspect", uMode = "uMode", uLCH = "uLCH", uInteractive = "uInteractive", uFaceST = "uFaceST", uBottom = "uBottom", uTop = "uTop", uInputs = "uInputs", uLayerCode = "uLayerCode", uFeatureCode = "uFeatureCode", uDevicePixelRatio = "uDevicePixelRatio", uCBlind = "uCBlind", uColor = "uColor", uRadius = "uRadius", uStroke = "uStroke", uSWidth = "uSWidth", uOpacity = "uOpacity", uBounds = "uBounds" } /** List of Raster uniforms for WebGL(1|2) */ export declare enum RasterWorkflowUniforms { uMatrix = "uMatrix", uInputs = "uInputs", uLCH = "uLCH", uFaceST = "uFaceST", uBottom = "uBottom", uTop = "uTop", uLayerCode = "uLayerCode", uFeatureCode = "uFeatureCode", uCBlind = "uCBlind", uFade = "uFade", uTexture = "uTexture", uOpacity = "uOpacity",// WEBGL1 uSaturation = "uSaturation",// WEBGL1 uContrast = "uContrast" } /** List of Hillshade uniforms for WebGL(1|2) */ export declare enum HillshadeWorkflowUniforms { uMatrix = "uMatrix", uInputs = "uInputs", uLCH = "uLCH", uFaceST = "uFaceST", uBottom = "uBottom", uTop = "uTop", uLayerCode = "uLayerCode", uFeatureCode = "uFeatureCode", uCBlind = "uCBlind", uFade = "uFade", uTexture = "uTexture", uUnpack = "uUnpack", uOpacity = "uOpacity",// WEBGL1 uShadowColor = "uShadowColor",// WEBGL1 uHighlightColor = "uHighlightColor",// WEBGL1 uAccentColor = "uAccentColor",// WEBGL1 uAzimuth = "uAzimuth",// WEBGL1 uAltitude = "uAltitude",// WEBGL1 uTexLength = "uTexLength" } /** List of Sensor uniforms for WebGL(1|2) */ export declare enum SensorWorkflowUniforms { uBottom = "uBottom", uCBlind = "uCBlind", uFaceST = "uFaceST", uFeatureCode = "uFeatureCode", uInputs = "uInputs", uLCH = "uLCH", uLayerCode = "uLayerCode", uMatrix = "uMatrix", uTop = "uTop", uColorRamp = "uColorRamp", uImage = "uImage", uNextImage = "uNextImage", uTime = "uTime", uOpacity = "uOpacity" } /** List of Shade uniforms for WebGL(1|2) */ export declare enum ShadeWorkflowUniforms { uAspect = "uAspect", uMatrix = "uMatrix", uFaceST = "uFaceST", uInputs = "uInputs", uDevicePixelRatio = "uDevicePixelRatio", uBottom = "uBottom", uTop = "uTop" } /** List of Skybox uniforms for WebGL(1|2) */ export declare enum SkyboxWorkflowUniforms { uMatrix = "uMatrix", uSkybox = "uSkybox" } /** List of Wallpaper uniforms for WebGL(1|2) */ export declare enum WallpaperWorkflowUniforms { uScale = "uScale", uBackground = "uBackground", uHalo = "uHalo", uFade1 = "uFade1", uFade2 = "uFade2" }