Last active
May 7, 2021 09:00
-
-
Save kazimuth/e87e42a6e7577949e887e431bb4dd7a8 to your computer and use it in GitHub Desktop.
MathBox 2 Typescript type declaration file
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** MathBox type declarations (autogenerated) */ | |
/** Matrix width */ | |
declare interface MBArea { | |
/** Use (fast) integer lookups */ | |
aligned?: boolean; | |
/** Axis pair */ | |
axes?: number[]; | |
/** Matrix buffer height */ | |
bufferHeight?: number; | |
/** Matrix buffer width */ | |
bufferWidth?: number; | |
/** Centered instead of corner sampling */ | |
centeredX?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredY?: boolean; | |
/** Number of channels */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Data array */ | |
data?: object; | |
/** Data emitter expression, e.g. `function (emit, x, y, i, j, time, delta) { ... }` */ | |
expr?: (emit: (...args: any[]) => void, ...args: number[]) => void; | |
/** Frames-per-second update rate, e.g. `60` */ | |
fps?: number; | |
/** Matrix height */ | |
height?: number; | |
/** Matrix history */ | |
history?: number; | |
/** Maximum frames to hurry per frame */ | |
hurry?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Number of items */ | |
items?: number; | |
/** Maximum frames to track */ | |
limit?: number; | |
/** Update continuously */ | |
live?: boolean; | |
/** Texture magnification filtering */ | |
magFilter?: any; | |
/** Texture minification filtering */ | |
minFilter?: any; | |
/** Pass clock time to data */ | |
observe?: boolean; | |
/** Number of samples padding */ | |
paddingX?: number; | |
/** Number of samples padding */ | |
paddingY?: number; | |
/** Range on axis */ | |
rangeX?: [number, number]; | |
/** Range on axis */ | |
rangeY?: [number, number]; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Texture data type */ | |
type?: string; | |
/** Matrix width */ | |
width?: number; | |
} | |
/** Array width */ | |
declare interface MBArray { | |
/** Use (fast) integer lookups */ | |
aligned?: boolean; | |
/** Array buffer width */ | |
bufferWidth?: number; | |
/** Number of channels */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Data array */ | |
data?: object; | |
/** Data emitter expression, e.g. `function (emit, i, time, delta) { ... }` */ | |
expr?: (emit: (...args: any[]) => void, ...args: number[]) => void; | |
/** Frames-per-second update rate, e.g. `60` */ | |
fps?: number; | |
/** Array history */ | |
history?: number; | |
/** Maximum frames to hurry per frame */ | |
hurry?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Number of items */ | |
items?: number; | |
/** Maximum frames to track */ | |
limit?: number; | |
/** Update continuously */ | |
live?: boolean; | |
/** Texture magnification filtering */ | |
magFilter?: any; | |
/** Texture minification filtering */ | |
minFilter?: any; | |
/** Pass clock time to data */ | |
observe?: boolean; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Texture data type */ | |
type?: string; | |
/** Array width */ | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBAxis { | |
/** Axis */ | |
axis?: number; | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Close line */ | |
closed?: boolean; | |
/** Color */ | |
color?: string; | |
/** UVWO map on matching axis */ | |
crossed?: boolean; | |
/** Depth scaling */ | |
depth?: number; | |
/** Geometric detail */ | |
detail?: number; | |
/** Draw end arrow */ | |
end?: boolean; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Opacity */ | |
opacity?: number; | |
/** 4D Origin */ | |
origin?: [number, number, number, number]; | |
/** Proximity threshold, e.g. `10` */ | |
proximity?: number; | |
/** Range on axis */ | |
range?: [number, number]; | |
/** Arrow size */ | |
size?: number; | |
/** Draw start arrow */ | |
start?: boolean; | |
/** Line stroke (solid, dotted, dashed) */ | |
stroke?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** 3D Up, e.g. `[0, 1, 0]` */ | |
declare interface MBCamera { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** 3D Euler order */ | |
eulerOrder?: number[]; | |
/** Field-of-view (degrees), e.g. `60` */ | |
fov?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** 3D Look at, e.g. `[2, 3, 4]` */ | |
lookAt?: [number, number, number]; | |
/** 3D Position, e.g. `[1, 2, 3]` */ | |
position?: [number, number, number]; | |
/** Re-use existing camera */ | |
proxy?: boolean; | |
/** 3D Quaternion, e.g. `[0.707, 0, 0, 0.707]` */ | |
quaternion?: [number, number, number, number]; | |
/** 3D Euler rotation, e.g. `[π/2, 0, 0]` */ | |
rotation?: [number, number, number]; | |
/** 3D Up, e.g. `[0, 1, 0]` */ | |
up?: [number, number, number]; | |
width?: number; | |
} | |
/** Visibility for rendering */ | |
declare interface MBCartesian { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Euler order */ | |
eulerOrder?: number[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** 3D Position */ | |
position?: [number, number, number]; | |
/** 3D Quaternion */ | |
quaternion?: [number, number, number, number]; | |
/** 4D range in view */ | |
range?: [number, number][]; | |
/** 3D Euler rotation */ | |
rotation?: [number, number, number]; | |
/** 3D Scale */ | |
scale?: [number, number, number]; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
width?: number; | |
} | |
/** Visibility for rendering */ | |
declare interface MBCartesian4 { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** 4D Position */ | |
position?: [number, number, number, number]; | |
/** 4D range in view */ | |
range?: [number, number][]; | |
/** 4D Scale */ | |
scale?: [number, number, number, number]; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
width?: number; | |
} | |
/** Input source */ | |
declare interface MBClamp { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Input source */ | |
source?: string; | |
width?: number; | |
} | |
/** Play until */ | |
declare interface MBClock { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Play delay */ | |
delay?: number; | |
/** Play from */ | |
from?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Loop */ | |
loop?: boolean; | |
/** Play pace */ | |
pace?: number; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Seek to time, e.g. `4` */ | |
seek?: number; | |
/** Play speed */ | |
speed?: number; | |
/** Play until */ | |
to?: number; | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBCompose { | |
/** Compose with alpha transparency */ | |
alpha?: boolean; | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Color */ | |
color?: string; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Opacity */ | |
opacity?: number; | |
/** Input source */ | |
source?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** HTML zoom */ | |
declare interface MBDom { | |
/** HTML attributes, e.g. `{"style": {"color": "red"}}` */ | |
attributes?: object; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Color */ | |
color?: string; | |
/** Depth scaling */ | |
depth?: number; | |
/** HTML data source */ | |
html?: string; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** 2D offset */ | |
offset?: [number, number]; | |
/** Opacity */ | |
opacity?: number; | |
/** Outline size */ | |
outline?: number; | |
/** Allow pointer events */ | |
pointerEvents?: boolean; | |
/** Points data source */ | |
points?: string; | |
/** Text size */ | |
size?: number; | |
/** Snap to pixel */ | |
snap?: boolean; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** HTML zoom */ | |
zoom?: number; | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBFace { | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Close line */ | |
closed?: boolean; | |
/** Color */ | |
color?: string; | |
/** Colors data source, e.g. `"#colors"` */ | |
colors?: string; | |
/** Depth scaling */ | |
depth?: number; | |
/** Fill mesh */ | |
fill?: boolean; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Draw line */ | |
line?: boolean; | |
/** Z-Bias for lines on fill */ | |
lineBias?: number; | |
/** Texture map source, e.g. `"#map"` */ | |
map?: string; | |
/** Opacity */ | |
opacity?: number; | |
/** Points data source */ | |
points?: string; | |
/** Proximity threshold, e.g. `10` */ | |
proximity?: number; | |
/** Shade mesh */ | |
shaded?: boolean; | |
/** Line width */ | |
size?: number; | |
/** Line stroke (solid, dotted, dashed) */ | |
stroke?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** Font weight, e.g. `"bold"` */ | |
declare interface MBFormat { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Array of labels, e.g. `["Grumpy", "Sleepy", "Sneezy"]` */ | |
data?: number[]; | |
/** Font detail */ | |
detail?: number; | |
/** Digits of precision, e.g. `2` */ | |
digits?: number; | |
/** Label formatter expression, e.g. `function (x, y, z, w, i, j, k, l, time, delta) { ... }` */ | |
expr?: (...args: any[]) => void; | |
/** Font family */ | |
font?: string; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Update continuously */ | |
live?: boolean; | |
/** Texture magnification filtering */ | |
magFilter?: any; | |
/** Texture minification filtering */ | |
minFilter?: any; | |
/** Signed distance field range */ | |
sdf?: number; | |
/** Input source */ | |
source?: string; | |
/** Font style, e.g. `"italic"` */ | |
style?: string; | |
/** Texture data type */ | |
type?: string; | |
/** Font variant, e.g. `"small-caps"` */ | |
variant?: string; | |
/** Font weight, e.g. `"bold"` */ | |
weight?: string; | |
width?: number; | |
} | |
/** Shader to use */ | |
declare interface MBFragment { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Pass RGBA values in sRGB instead of linear RGB */ | |
gamma?: boolean; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Fragment pass (color, light, rgba) */ | |
pass?: string; | |
/** Shader to use */ | |
shader?: string; | |
width?: number; | |
} | |
/** Include zero */ | |
declare interface MBGrid { | |
/** Axis pair */ | |
axes?: number[]; | |
/** Power base for sub/super units */ | |
baseX?: number; | |
/** Power base for sub/super units */ | |
baseY?: number; | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Close line */ | |
closed?: boolean; | |
/** Close X lines */ | |
closedX?: boolean; | |
/** Close Y lines */ | |
closedY?: boolean; | |
/** Color */ | |
color?: string; | |
/** UVWO map on matching axes */ | |
crossed?: boolean; | |
/** UVWO map on matching axis */ | |
crossedX?: boolean; | |
/** UVWO map on matching axis */ | |
crossedY?: boolean; | |
/** Depth scaling */ | |
depth?: number; | |
/** Geometric detail */ | |
detailX?: number; | |
/** Geometric detail */ | |
detailY?: number; | |
/** Number of divisions */ | |
divideX?: number; | |
/** Number of divisions */ | |
divideY?: number; | |
/** Include end */ | |
endX?: boolean; | |
/** Include end */ | |
endY?: boolean; | |
/** Scale factor */ | |
factorX?: number; | |
/** Scale factor */ | |
factorY?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Draw X lines */ | |
lineX?: boolean; | |
/** Draw Y lines */ | |
lineY?: boolean; | |
/** Scale type */ | |
modeX?: string; | |
/** Scale type */ | |
modeY?: string; | |
/** Snap to nice numbers */ | |
niceX?: boolean; | |
/** Snap to nice numbers */ | |
niceY?: boolean; | |
/** Opacity */ | |
opacity?: number; | |
/** 4D Origin */ | |
origin?: [number, number, number, number]; | |
/** Proximity threshold, e.g. `10` */ | |
proximity?: number; | |
/** Range on axis */ | |
rangeX?: [number, number]; | |
/** Range on axis */ | |
rangeY?: [number, number]; | |
/** Line width */ | |
size?: number; | |
/** Include start */ | |
startX?: boolean; | |
/** Include start */ | |
startY?: boolean; | |
/** Line stroke (solid, dotted, dashed) */ | |
stroke?: string; | |
/** Reference unit */ | |
unitX?: number; | |
/** Reference unit */ | |
unitY?: number; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
/** Include zero */ | |
zeroX?: boolean; | |
/** Include zero */ | |
zeroY?: boolean; | |
width?: number; | |
} | |
/** Visibility for rendering */ | |
declare interface MBGroup { | |
/** Updates continuously */ | |
active?: boolean; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
width?: number; | |
} | |
/** Width alignment */ | |
declare interface MBGrow { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Depth alignment */ | |
depth?: string; | |
/** Height alignment */ | |
height?: string; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Items alignment */ | |
items?: string; | |
/** Scale factor */ | |
scale?: number; | |
/** Input source */ | |
source?: string; | |
/** Width alignment */ | |
width?: string; | |
} | |
/** Voxel width */ | |
declare interface MBHtml { | |
/** Use (fast) integer lookups */ | |
aligned?: boolean; | |
/** Voxel buffer depth */ | |
bufferDepth?: number; | |
/** Voxel buffer height */ | |
bufferHeight?: number; | |
/** Voxel buffer width */ | |
bufferWidth?: number; | |
/** Number of channels */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Data array */ | |
data?: object; | |
/** Voxel depth */ | |
depth?: number; | |
/** Data emitter expression */ | |
expr?: (emit: (...args: any[]) => void, ...args: number[]) => void; | |
/** Frames-per-second update rate, e.g. `60` */ | |
fps?: number; | |
/** Voxel height */ | |
height?: number; | |
/** Maximum frames to hurry per frame */ | |
hurry?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Number of items */ | |
items?: number; | |
/** Maximum frames to track */ | |
limit?: number; | |
/** Update continuously */ | |
live?: boolean; | |
/** Pass clock time to data */ | |
observe?: boolean; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Voxel width */ | |
width?: number; | |
} | |
/** Unique ID, e.g. `"sampler"` */ | |
declare interface MBInherit { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
width?: number; | |
} | |
/** Array width */ | |
declare interface MBInterval { | |
/** Use (fast) integer lookups */ | |
aligned?: boolean; | |
/** Axis */ | |
axis?: number; | |
/** Array buffer width */ | |
bufferWidth?: number; | |
/** Centered instead of corner sampling */ | |
centered?: boolean; | |
/** Number of channels */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Data array */ | |
data?: object; | |
/** Data emitter expression, e.g. `function (emit, x, i, time, delta) { ... }` */ | |
expr?: (emit: (...args: any[]) => void, ...args: number[]) => void; | |
/** Frames-per-second update rate, e.g. `60` */ | |
fps?: number; | |
/** Array history */ | |
history?: number; | |
/** Maximum frames to hurry per frame */ | |
hurry?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Number of items */ | |
items?: number; | |
/** Maximum frames to track */ | |
limit?: number; | |
/** Update continuously */ | |
live?: boolean; | |
/** Texture magnification filtering */ | |
magFilter?: any; | |
/** Texture minification filtering */ | |
minFilter?: any; | |
/** Pass clock time to data */ | |
observe?: boolean; | |
/** Number of samples padding */ | |
padding?: number; | |
/** Range on axis */ | |
range?: [number, number]; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Texture data type */ | |
type?: string; | |
/** Array width */ | |
width?: number; | |
} | |
/** Input source */ | |
declare interface MBJoin { | |
/** Axis to join, e.g. `x` */ | |
axis?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Axis order */ | |
order?: number[]; | |
/** Tuple overlap */ | |
overlap?: number; | |
/** Input source */ | |
source?: string; | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBLabel { | |
/** Outline background */ | |
background?: string; | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Color */ | |
color?: string; | |
/** Colors data source, e.g. `"#colors"` */ | |
colors?: string; | |
/** Depth scaling */ | |
depth?: number; | |
/** Expand glyphs */ | |
expand?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** 2D offset */ | |
offset?: [number, number]; | |
/** Opacity */ | |
opacity?: number; | |
/** Outline size */ | |
outline?: number; | |
/** Points data source */ | |
points?: string; | |
/** Text size */ | |
size?: number; | |
/** Snap to pixel */ | |
snap?: boolean; | |
/** Text source */ | |
text?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** Vertex pass (data, view, world, eye) */ | |
declare interface MBLayer { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** 3D Depth */ | |
depth?: number; | |
/** Fit to (contain, cover, x, y) */ | |
fit?: string; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
width?: number; | |
} | |
/** Lerp to width, e.g. `5` */ | |
declare interface MBLerp { | |
/** Centered instead of corner sampling */ | |
centeredW?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredX?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredY?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredZ?: boolean; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Lerp to depth, e.g. `5` */ | |
depth?: number; | |
/** Lerp to height, e.g. `5` */ | |
height?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Lerp to items, e.g. `5` */ | |
items?: number; | |
/** Number of samples padding */ | |
paddingW?: number; | |
/** Number of samples padding */ | |
paddingX?: number; | |
/** Number of samples padding */ | |
paddingY?: number; | |
/** Number of samples padding */ | |
paddingZ?: number; | |
/** Scaling mode (relative, absolute) */ | |
size?: string; | |
/** Input source */ | |
source?: string; | |
/** Lerp to width, e.g. `5` */ | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBLine { | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Close line */ | |
closed?: boolean; | |
/** Color */ | |
color?: string; | |
/** Colors data source, e.g. `"#colors"` */ | |
colors?: string; | |
/** Depth scaling */ | |
depth?: number; | |
/** Draw end arrow */ | |
end?: boolean; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Opacity */ | |
opacity?: number; | |
/** Points data source */ | |
points?: string; | |
/** Proximity threshold, e.g. `10` */ | |
proximity?: number; | |
/** Arrow size */ | |
size?: number; | |
/** Draw start arrow */ | |
start?: boolean; | |
/** Line stroke (solid, dotted, dashed) */ | |
stroke?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** Shader to use */ | |
declare interface MBMask { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Shader to use */ | |
shader?: string; | |
width?: number; | |
} | |
/** Matrix width */ | |
declare interface MBMatrix { | |
/** Use (fast) integer lookups */ | |
aligned?: boolean; | |
/** Matrix buffer height */ | |
bufferHeight?: number; | |
/** Matrix buffer width */ | |
bufferWidth?: number; | |
/** Number of channels */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Data array */ | |
data?: object; | |
/** Data emitter expression, e.g. `function (emit, i, j, time, delta) { ... }` */ | |
expr?: (emit: (...args: any[]) => void, ...args: number[]) => void; | |
/** Frames-per-second update rate, e.g. `60` */ | |
fps?: number; | |
/** Matrix height */ | |
height?: number; | |
/** Matrix history */ | |
history?: number; | |
/** Maximum frames to hurry per frame */ | |
hurry?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Number of items */ | |
items?: number; | |
/** Maximum frames to track */ | |
limit?: number; | |
/** Update continuously */ | |
live?: boolean; | |
/** Texture magnification filtering */ | |
magFilter?: any; | |
/** Texture minification filtering */ | |
minFilter?: any; | |
/** Pass clock time to data */ | |
observe?: boolean; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Texture data type */ | |
type?: string; | |
/** Matrix width */ | |
width?: number; | |
} | |
/** Texture data type */ | |
declare interface MBMemo { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Texture magnification filtering */ | |
magFilter?: any; | |
/** Texture minification filtering */ | |
minFilter?: any; | |
/** Input source */ | |
source?: string; | |
/** Texture data type */ | |
type?: string; | |
width?: number; | |
} | |
/** Exit to */ | |
declare interface MBMove { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Transition delay */ | |
delay?: number; | |
/** Transition enter delay, e.g. `0.3` */ | |
delayEnter?: number; | |
/** Transition exit delay, e.g. `0.3` */ | |
delayExit?: number; | |
/** Transition duration */ | |
duration?: number; | |
/** Transition enter duration */ | |
durationEnter?: number; | |
/** Transition exit duration */ | |
durationExit?: number; | |
/** Enter state, e.g. `0.5` */ | |
enter?: number; | |
/** Exit state, e.g. `0.5` */ | |
exit?: number; | |
/** Enter from */ | |
from?: [number, number, number, number]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** Stagger dimensions, e.g. `[2, 1, 0, 0]` */ | |
stagger?: [number, number, number, number]; | |
/** Exit to */ | |
to?: [number, number, number, number]; | |
width?: number; | |
} | |
/** Time speed */ | |
declare interface MBNow { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Current moment, e.g. `1444094929.619` */ | |
now?: number; | |
/** Time pace */ | |
pace?: number; | |
/** Seek to time */ | |
seek?: number; | |
/** Time speed */ | |
speed?: number; | |
width?: number; | |
} | |
/** Trigger on step */ | |
declare interface MBPlay { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Play delay */ | |
delay?: number; | |
/** Animation ease (linear, cosine, binary, hold) */ | |
ease?: string; | |
/** Play from */ | |
from?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Loop */ | |
loop?: boolean; | |
/** Play pace */ | |
pace?: number; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Animation script, e.g. `{ "0": { props: { color: "red" }, expr: { size: function (t) { return Math.sin(t) + 1; }}}, "1": ...}` */ | |
script?: object; | |
/** Play speed */ | |
speed?: number; | |
/** Animation target */ | |
target?: string; | |
/** Play until */ | |
to?: number; | |
/** Trigger on step */ | |
trigger?: number; | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBPoint { | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Color */ | |
color?: string; | |
/** Colors data source, e.g. `"#colors"` */ | |
colors?: string; | |
/** Depth scaling */ | |
depth?: number; | |
/** Fill shape */ | |
fill?: boolean; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Opacity */ | |
opacity?: number; | |
/** Optical or exact sizing */ | |
optical?: boolean; | |
/** Points data source */ | |
points?: string; | |
/** Point shape (circle, square, diamond, up, down, left, right) */ | |
shape?: string; | |
/** Point size */ | |
size?: number; | |
/** Point sizes data source, e.g. `"#sizes"` */ | |
sizes?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** Visibility for rendering */ | |
declare interface MBPolar { | |
/** Amount of polar bend */ | |
bend?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Euler order */ | |
eulerOrder?: number[]; | |
/** Expand into helix */ | |
helix?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** 3D Position */ | |
position?: [number, number, number]; | |
/** 3D Quaternion */ | |
quaternion?: [number, number, number, number]; | |
/** 4D range in view */ | |
range?: [number, number][]; | |
/** 3D Euler rotation */ | |
rotation?: [number, number, number]; | |
/** 3D Scale */ | |
scale?: [number, number, number]; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
width?: number; | |
} | |
/** Presentation length (computed) */ | |
declare interface MBPresent { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Apply directional transitions */ | |
directed?: boolean; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Present slide number */ | |
index?: number; | |
/** Presentation length (computed) */ | |
length?: number; | |
width?: number; | |
} | |
/** Readback width (read only) */ | |
declare interface MBReadback { | |
/** Updates continuously */ | |
active?: boolean; | |
/** Readback channels (read only) */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Readback data buffer (read only) */ | |
data?: any; | |
/** Readback depth (read only) */ | |
depth?: number; | |
/** Readback consume expression, e.g. `function (x, y, z, w, i, j, k, l) { ... }` */ | |
expr?: (...args: any[]) => void; | |
/** Readback height (read only) */ | |
height?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Readback items (read only) */ | |
items?: number; | |
/** Input source */ | |
source?: string; | |
/** Readback data type (float, unsignedByte) */ | |
type?: number; | |
/** Readback width (read only) */ | |
width?: number; | |
} | |
/** Repeat width */ | |
declare interface MBRepeat { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Repeat depth */ | |
depth?: number; | |
/** Repeat height */ | |
height?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Repeat items */ | |
items?: number; | |
/** Input source */ | |
source?: string; | |
/** Repeat width */ | |
width?: number; | |
} | |
/** Resample factor width, e.g. `10` */ | |
declare interface MBResample { | |
/** Centered instead of corner sampling */ | |
centeredW?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredX?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredY?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredZ?: boolean; | |
/** Resample channels */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Resample factor depth, e.g. `10` */ | |
depth?: number; | |
/** Resample factor height, e.g. `10` */ | |
height?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Resample indices */ | |
indices?: number; | |
/** Resample factor items, e.g. `10` */ | |
items?: number; | |
/** Number of samples padding */ | |
paddingW?: number; | |
/** Number of samples padding */ | |
paddingX?: number; | |
/** Number of samples padding */ | |
paddingY?: number; | |
/** Number of samples padding */ | |
paddingZ?: number; | |
/** Source sampling (relative, absolute) */ | |
sample?: string; | |
/** Shader to use */ | |
shader?: string; | |
/** Scaling mode (relative, absolute) */ | |
size?: string; | |
/** Input source */ | |
source?: string; | |
/** Resample factor width, e.g. `10` */ | |
width?: number; | |
} | |
/** Resample factor width, e.g. `10` */ | |
declare interface MBRetext { | |
/** Centered instead of corner sampling */ | |
centeredW?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredX?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredY?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredZ?: boolean; | |
/** Resample channels */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Resample factor depth, e.g. `10` */ | |
depth?: number; | |
/** Resample factor height, e.g. `10` */ | |
height?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Resample indices */ | |
indices?: number; | |
/** Resample factor items, e.g. `10` */ | |
items?: number; | |
/** Number of samples padding */ | |
paddingW?: number; | |
/** Number of samples padding */ | |
paddingX?: number; | |
/** Number of samples padding */ | |
paddingY?: number; | |
/** Number of samples padding */ | |
paddingZ?: number; | |
/** Source sampling (relative, absolute) */ | |
sample?: string; | |
/** Shader to use */ | |
shader?: string; | |
/** Scaling mode (relative, absolute) */ | |
size?: string; | |
/** Input source */ | |
source?: string; | |
/** Resample factor width, e.g. `10` */ | |
width?: number; | |
} | |
/** Stagger dimensions, e.g. `[2, 1, 0, 0]` */ | |
declare interface MBReveal { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Transition delay */ | |
delay?: number; | |
/** Transition enter delay, e.g. `0.3` */ | |
delayEnter?: number; | |
/** Transition exit delay, e.g. `0.3` */ | |
delayExit?: number; | |
/** Transition duration */ | |
duration?: number; | |
/** Transition enter duration */ | |
durationEnter?: number; | |
/** Transition exit duration */ | |
durationExit?: number; | |
/** Enter state, e.g. `0.5` */ | |
enter?: number; | |
/** Exit state, e.g. `0.5` */ | |
exit?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Stagger dimensions, e.g. `[2, 1, 0, 0]` */ | |
stagger?: [number, number, number, number]; | |
width?: number; | |
} | |
/** Global speed */ | |
declare interface MBRoot { | |
/** Active camera */ | |
camera?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Camera focus distance in world units */ | |
focus?: number; | |
/** (Vertical) Field-of-view to calibrate units for (degrees), e.g. `60` */ | |
fov?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** (Vertical) Reference scale of viewport in pixels, e.g. `720` */ | |
scale?: number; | |
/** Global speed */ | |
speed?: number; | |
width?: number; | |
} | |
/** RTT width, e.g. `640` */ | |
declare interface MBRtt { | |
/** Active camera */ | |
camera?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** RTT height, e.g. `360` */ | |
height?: number; | |
/** RTT history */ | |
history?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Texture magnification filtering */ | |
magFilter?: any; | |
/** Texture minification filtering */ | |
minFilter?: any; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** Global speed */ | |
speed?: number; | |
/** Texture data type */ | |
type?: string; | |
/** RTT width, e.g. `640` */ | |
width?: number; | |
} | |
/** Include zero */ | |
declare interface MBScale { | |
/** Axis */ | |
axis?: number; | |
/** Power base for sub/super units */ | |
base?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Number of divisions */ | |
divide?: number; | |
/** Include end */ | |
end?: boolean; | |
/** Scale factor */ | |
factor?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Scale type */ | |
mode?: string; | |
/** Snap to nice numbers */ | |
nice?: boolean; | |
/** 4D Origin */ | |
origin?: [number, number, number, number]; | |
/** Range on axis */ | |
range?: [number, number]; | |
/** Include start */ | |
start?: boolean; | |
/** Reference unit */ | |
unit?: number; | |
/** Include zero */ | |
zero?: boolean; | |
width?: number; | |
} | |
/** Shader uniform objects (three.js style), e.g. `{ time: { type: 'f', value: 3 }}` */ | |
declare interface MBShader { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Shader code */ | |
code?: string; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Shader language */ | |
language?: string; | |
/** Sampler sources, e.g. `["#pressure", "#divergence"]` */ | |
sources?: string; | |
/** Shader uniform objects (three.js style), e.g. `{ time: { type: 'f', value: 3 }}` */ | |
uniforms?: object; | |
width?: number; | |
} | |
/** Slice from, to width (excluding to), e.g. `[2, 4]` */ | |
declare interface MBSlice { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Slice from, to depth (excluding to), e.g. `[2, 4]` */ | |
depth?: [number, number]; | |
/** Slice from, to height (excluding to), e.g. `[2, 4]` */ | |
height?: [number, number]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Slice from, to items (excluding to), e.g. `[2, 4]` */ | |
items?: [number, number]; | |
/** Input source */ | |
source?: string; | |
/** Slice from, to width (excluding to), e.g. `[2, 4]` */ | |
width?: [number, number]; | |
} | |
/** Disappear on step, e.g. `4` */ | |
declare interface MBSlide { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Appear early steps */ | |
early?: number; | |
/** Appear from step, e.g. `2` */ | |
from?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Stay late steps */ | |
late?: number; | |
/** Slide order */ | |
order?: number; | |
/** Slide steps */ | |
steps?: number; | |
/** Disappear on step, e.g. `4` */ | |
to?: number; | |
width?: number; | |
} | |
/** Visibility for rendering */ | |
declare interface MBSpherical { | |
/** Amount of spherical bend */ | |
bend?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Euler order */ | |
eulerOrder?: number[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** 3D Position */ | |
position?: [number, number, number]; | |
/** 3D Quaternion */ | |
quaternion?: [number, number, number, number]; | |
/** 4D range in view */ | |
range?: [number, number][]; | |
/** 3D Euler rotation */ | |
rotation?: [number, number, number]; | |
/** 3D Scale */ | |
scale?: [number, number, number]; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
width?: number; | |
} | |
/** Input source */ | |
declare interface MBSplit { | |
/** Axis to split, e.g. `x` */ | |
axis?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Tuple length */ | |
length?: number; | |
/** Axis order */ | |
order?: number[]; | |
/** Tuple overlap */ | |
overlap?: number; | |
/** Input source */ | |
source?: string; | |
width?: number; | |
} | |
/** Width offset, e.g. `[1.5, 0, 0, 0]` */ | |
declare interface MBSpread { | |
/** Depth alignment */ | |
alignDepth?: string; | |
/** Height alignment */ | |
alignHeight?: string; | |
/** Items alignment */ | |
alignItems?: string; | |
/** Width alignment */ | |
alignWidth?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Depth offset, e.g. `[1.5, 0, 0, 0]` */ | |
depth?: [number, number, number, number]; | |
/** Height offset, e.g. `[1.5, 0, 0, 0]` */ | |
height?: [number, number, number, number]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Items offset, e.g. `[1.5, 0, 0, 0]` */ | |
items?: [number, number, number, number]; | |
/** Input source */ | |
source?: string; | |
/** Spread per item (absolute) or array (relative) */ | |
unit?: string; | |
/** Width offset, e.g. `[1.5, 0, 0, 0]` */ | |
width?: [number, number, number, number]; | |
} | |
/** Trigger on step */ | |
declare interface MBStep { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Step delay */ | |
delay?: number; | |
/** Step duration */ | |
duration?: number; | |
/** Animation ease (linear, cosine, binary, hold) */ | |
ease?: string; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Step pace */ | |
pace?: number; | |
/** Playhead ease (linear, cosine, binary, hold) */ | |
playback?: string; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Step rewind factor */ | |
rewind?: number; | |
/** Animation script, e.g. `{ "0": { props: { color: "red" }, expr: { size: function (t) { return Math.sin(t) + 1; }}}, "1": ...}` */ | |
script?: object; | |
/** Speed up through skips */ | |
skip?: boolean; | |
/** Step speed */ | |
speed?: number; | |
/** Playhead stops, e.g. `[0, 1, 3, 5]` */ | |
stops?: number; | |
/** Animation target */ | |
target?: string; | |
/** Trigger on step */ | |
trigger?: number; | |
width?: number; | |
} | |
/** Visibility for rendering */ | |
declare interface MBStereographic { | |
/** Amount of stereographic bend */ | |
bend?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Euler order */ | |
eulerOrder?: number[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** 3D Position */ | |
position?: [number, number, number]; | |
/** 3D Quaternion */ | |
quaternion?: [number, number, number, number]; | |
/** 4D range in view */ | |
range?: [number, number][]; | |
/** 3D Euler rotation */ | |
rotation?: [number, number, number]; | |
/** 3D Scale */ | |
scale?: [number, number, number]; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
width?: number; | |
} | |
/** Visibility for rendering */ | |
declare interface MBStereographic4 { | |
/** Amount of stereographic bend */ | |
bend?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** 4D Position */ | |
position?: [number, number, number, number]; | |
/** 4D range in view */ | |
range?: [number, number][]; | |
/** 4D Scale */ | |
scale?: [number, number, number, number]; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBStrip { | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Close line */ | |
closed?: boolean; | |
/** Color */ | |
color?: string; | |
/** Colors data source, e.g. `"#colors"` */ | |
colors?: string; | |
/** Depth scaling */ | |
depth?: number; | |
/** Fill mesh */ | |
fill?: boolean; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Draw line */ | |
line?: boolean; | |
/** Z-Bias for lines on fill */ | |
lineBias?: number; | |
/** Texture map source, e.g. `"#map"` */ | |
map?: string; | |
/** Opacity */ | |
opacity?: number; | |
/** Points data source */ | |
points?: string; | |
/** Proximity threshold, e.g. `10` */ | |
proximity?: number; | |
/** Shade mesh */ | |
shaded?: boolean; | |
/** Line width */ | |
size?: number; | |
/** Line stroke (solid, dotted, dashed) */ | |
stroke?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** Divisions of width, e.g. `5` */ | |
declare interface MBSubdivide { | |
/** Fraction to end outward from vertices */ | |
bevel?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Divisions of depth, e.g. `5` */ | |
depth?: number; | |
/** Divisions of height, e.g. `5` */ | |
height?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Divisions of items, e.g. `5` */ | |
items?: number; | |
/** Interpolate values with computed indices */ | |
lerp?: boolean; | |
/** Input source */ | |
source?: string; | |
/** Divisions of width, e.g. `5` */ | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBSurface { | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Close line */ | |
closed?: boolean; | |
/** Close X lines */ | |
closedX?: boolean; | |
/** Close Y lines */ | |
closedY?: boolean; | |
/** Color */ | |
color?: string; | |
/** Colors data source, e.g. `"#colors"` */ | |
colors?: string; | |
/** UVWO map on matching axes */ | |
crossed?: boolean; | |
/** Depth scaling */ | |
depth?: number; | |
/** Fill mesh */ | |
fill?: boolean; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Z-Bias for lines on fill */ | |
lineBias?: number; | |
/** Draw X lines */ | |
lineX?: boolean; | |
/** Draw Y lines */ | |
lineY?: boolean; | |
/** Texture map source, e.g. `"#map"` */ | |
map?: string; | |
/** Opacity */ | |
opacity?: number; | |
/** Points data source */ | |
points?: string; | |
/** Proximity threshold, e.g. `10` */ | |
proximity?: number; | |
/** Shade mesh */ | |
shaded?: boolean; | |
/** Line width */ | |
size?: number; | |
/** Line stroke (solid, dotted, dashed) */ | |
stroke?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** Input source */ | |
declare interface MBSwizzle { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Swizzle order */ | |
order?: number[]; | |
/** Input source */ | |
source?: string; | |
width?: number; | |
} | |
/** Voxel width */ | |
declare interface MBText { | |
/** Use (fast) integer lookups */ | |
aligned?: boolean; | |
/** Voxel buffer depth */ | |
bufferDepth?: number; | |
/** Voxel buffer height */ | |
bufferHeight?: number; | |
/** Voxel buffer width */ | |
bufferWidth?: number; | |
/** Number of channels */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Data array */ | |
data?: object; | |
/** Voxel depth */ | |
depth?: number; | |
/** Font detail */ | |
detail?: number; | |
/** Data emitter expression */ | |
expr?: (emit: (...args: any[]) => void, ...args: number[]) => void; | |
/** Font family */ | |
font?: string; | |
/** Frames-per-second update rate, e.g. `60` */ | |
fps?: number; | |
/** Voxel height */ | |
height?: number; | |
/** Maximum frames to hurry per frame */ | |
hurry?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Number of items */ | |
items?: number; | |
/** Maximum frames to track */ | |
limit?: number; | |
/** Update continuously */ | |
live?: boolean; | |
/** Texture magnification filtering */ | |
magFilter?: any; | |
/** Texture minification filtering */ | |
minFilter?: any; | |
/** Pass clock time to data */ | |
observe?: boolean; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Signed distance field range */ | |
sdf?: number; | |
/** Font style, e.g. `"italic"` */ | |
style?: string; | |
/** Texture data type */ | |
type?: string; | |
/** Font variant, e.g. `"small-caps"` */ | |
variant?: string; | |
/** Font weight, e.g. `"bold"` */ | |
weight?: string; | |
/** Voxel width */ | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBTicks { | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Close line */ | |
closed?: boolean; | |
/** Color */ | |
color?: string; | |
/** Colors data source, e.g. `"#colors"` */ | |
colors?: string; | |
/** Depth scaling */ | |
depth?: number; | |
/** Tick epsilon */ | |
epsilon?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Normal for reference plane */ | |
normal?: boolean; | |
/** Opacity */ | |
opacity?: number; | |
/** Points data source */ | |
points?: string; | |
/** Proximity threshold, e.g. `10` */ | |
proximity?: number; | |
/** Tick size */ | |
size?: number; | |
/** Line stroke (solid, dotted, dashed) */ | |
stroke?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** 3D Scale */ | |
declare interface MBTransform { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** 3D Euler order */ | |
eulerOrder?: number[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** 3D Projective Matrix */ | |
matrix?: number[]; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** 3D Position */ | |
position?: [number, number, number]; | |
/** 3D Quaternion */ | |
quaternion?: [number, number, number, number]; | |
/** 3D Euler rotation */ | |
rotation?: [number, number, number]; | |
/** 3D Scale */ | |
scale?: [number, number, number]; | |
width?: number; | |
} | |
/** 4D Scale */ | |
declare interface MBTransform4 { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** 4D Affine Matrix */ | |
matrix?: number[]; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** 4D Position */ | |
position?: [number, number, number, number]; | |
/** 4D Scale */ | |
scale?: [number, number, number, number]; | |
width?: number; | |
} | |
/** Input source */ | |
declare interface MBTranspose { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Transpose order */ | |
order?: number[]; | |
/** Input source */ | |
source?: string; | |
width?: number; | |
} | |
/** (Vertical) Reference scale of viewport in pixels, e.g. `720` */ | |
declare interface MBUnit { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Camera focus distance in world units */ | |
focus?: number; | |
/** (Vertical) Field-of-view to calibrate units for (degrees), e.g. `60` */ | |
fov?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** (Vertical) Reference scale of viewport in pixels, e.g. `720` */ | |
scale?: number; | |
width?: number; | |
} | |
/** Write Z buffer */ | |
declare interface MBVector { | |
/** Blending mode ('no, normal, add, subtract, multiply) */ | |
blending?: string; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Close line */ | |
closed?: boolean; | |
/** Color */ | |
color?: string; | |
/** Colors data source, e.g. `"#colors"` */ | |
colors?: string; | |
/** Depth scaling */ | |
depth?: number; | |
/** Draw end arrow */ | |
end?: boolean; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Opacity */ | |
opacity?: number; | |
/** Points data source */ | |
points?: string; | |
/** Proximity threshold, e.g. `10` */ | |
proximity?: number; | |
/** Arrow size */ | |
size?: number; | |
/** Draw start arrow */ | |
start?: boolean; | |
/** Line stroke (solid, dotted, dashed) */ | |
stroke?: string; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
/** Z-Bias (3D stacking) */ | |
zBias?: number; | |
/** Z-Index (2D stacking) */ | |
zIndex?: number; | |
/** Z-Order (drawing order), e.g. `2` */ | |
zOrder?: number; | |
/** Test Z buffer */ | |
zTest?: boolean; | |
/** Write Z buffer */ | |
zWrite?: boolean; | |
width?: number; | |
} | |
/** Shader to use */ | |
declare interface MBVertex { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** Shader to use */ | |
shader?: string; | |
width?: number; | |
} | |
/** Visibility for rendering */ | |
declare interface MBView { | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Vertex pass (data, view, world, eye) */ | |
pass?: any; | |
/** 4D range in view */ | |
range?: [number, number][]; | |
/** Visibility for rendering */ | |
visible?: boolean; | |
width?: number; | |
} | |
/** Voxel width */ | |
declare interface MBVolume { | |
/** Use (fast) integer lookups */ | |
aligned?: boolean; | |
/** Axis triplet */ | |
axes?: number[]; | |
/** Voxel buffer depth */ | |
bufferDepth?: number; | |
/** Voxel buffer height */ | |
bufferHeight?: number; | |
/** Voxel buffer width */ | |
bufferWidth?: number; | |
/** Centered instead of corner sampling */ | |
centeredX?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredY?: boolean; | |
/** Centered instead of corner sampling */ | |
centeredZ?: boolean; | |
/** Number of channels */ | |
channels?: number; | |
/** Custom classes, e.g. `["big"]` */ | |
classes?: string[]; | |
/** Data array */ | |
data?: object; | |
/** Voxel depth */ | |
depth?: number; | |
/** Data emitter expression, e.g. `function (emit, x, y, z, i, j, k, time, delta) { ... }` */ | |
expr?: (emit: (...args: any[]) => void, ...args: number[]) => void; | |
/** Frames-per-second update rate, e.g. `60` */ | |
fps?: number; | |
/** Voxel height */ | |
height?: number; | |
/** Maximum frames to hurry per frame */ | |
hurry?: number; | |
/** Unique ID, e.g. `"sampler"` */ | |
id?: string; | |
/** Number of items */ | |
items?: number; | |
/** Maximum frames to track */ | |
limit?: number; | |
/** Update continuously */ | |
live?: boolean; | |
/** Texture magnification filtering */ | |
magFilter?: any; | |
/** Texture minification filtering */ | |
minFilter?: any; | |
/** Pass clock time to data */ | |
observe?: boolean; | |
/** Number of samples padding */ | |
paddingX?: number; | |
/** Number of samples padding */ | |
paddingY?: number; | |
/** Number of samples padding */ | |
paddingZ?: number; | |
/** Range on axis */ | |
rangeX?: [number, number]; | |
/** Range on axis */ | |
rangeY?: [number, number]; | |
/** Range on axis */ | |
rangeZ?: [number, number]; | |
/** Run on real time, not clock time */ | |
realtime?: boolean; | |
/** Texture data type */ | |
type?: string; | |
/** Voxel width */ | |
width?: number; | |
} | |
declare type Selector<T> = { | |
/** Set a prop to the value provided. */ | |
set<A extends keyof T>(attr: A, v: T[A]); | |
/** Set multiple props to the values provided. */ | |
set(elts: {[A in keyof T]: T[A]}); | |
/** Invoke the function every frame and set the prop to its return value. */ | |
bind<A extends keyof T>(attr: A, cb: (time: number, delta: number) => T[A]); | |
/** Get the current value of a prop. */ | |
get<A extends keyof T>(attr: A): T[A]; | |
/** Get the current values of all props. */ | |
get(): T; | |
/** A function on mathbox that returns a selection of all the nodes matching the selector. | |
Like CSS, the selector may be the name of a primitive (e.g. "camera"), an id (e.g. "#colors"), | |
or a class (e.g. ".points"). */ | |
select(selector: string): Selector<any>; | |
/** Print (in the console) the DOM nodes in this selection. Called automatically on first load. */ | |
inspect(): void; | |
/** Display a visual representation of all shader snippets, how they are wired, with the GLSL available on mouseover. */ | |
debug(): void; | |
/** Iterate over a selection's nodes in document order and discard the return values. */ | |
each(cb: (node: Selector<any>) => void): void; | |
/** Iterate over a selection's nodes in document order and return the resulting values as an array. */ | |
map(cb: (node: Selector<any>) => any): any[]; | |
/** Select the i'th node where i is a 0-indexed number of the node in question. */ | |
eq(i: number): Selector<any>; | |
/** Matrix width */ | |
area: (opts?: MBArea) => Selector<MBArea>; | |
/** Array width */ | |
array: (opts?: MBArray) => Selector<MBArray>; | |
/** Write Z buffer */ | |
axis: (opts?: MBAxis) => Selector<MBAxis>; | |
/** 3D Up, e.g. `[0, 1, 0]` */ | |
camera: (opts?: MBCamera) => Selector<MBCamera>; | |
/** Visibility for rendering */ | |
cartesian: (opts?: MBCartesian) => Selector<MBCartesian>; | |
/** Visibility for rendering */ | |
cartesian4: (opts?: MBCartesian4) => Selector<MBCartesian4>; | |
/** Input source */ | |
clamp: (opts?: MBClamp) => Selector<MBClamp>; | |
/** Play until */ | |
clock: (opts?: MBClock) => Selector<MBClock>; | |
/** Write Z buffer */ | |
compose: (opts?: MBCompose) => Selector<MBCompose>; | |
/** HTML zoom */ | |
dom: (opts?: MBDom) => Selector<MBDom>; | |
/** Write Z buffer */ | |
face: (opts?: MBFace) => Selector<MBFace>; | |
/** Font weight, e.g. `"bold"` */ | |
format: (opts?: MBFormat) => Selector<MBFormat>; | |
/** Shader to use */ | |
fragment: (opts?: MBFragment) => Selector<MBFragment>; | |
/** Include zero */ | |
grid: (opts?: MBGrid) => Selector<MBGrid>; | |
/** Visibility for rendering */ | |
group: (opts?: MBGroup) => Selector<MBGroup>; | |
/** Width alignment */ | |
grow: (opts?: MBGrow) => Selector<MBGrow>; | |
/** Voxel width */ | |
html: (opts?: MBHtml) => Selector<MBHtml>; | |
/** Unique ID, e.g. `"sampler"` */ | |
inherit: (opts?: MBInherit) => Selector<MBInherit>; | |
/** Array width */ | |
interval: (opts?: MBInterval) => Selector<MBInterval>; | |
/** Input source */ | |
join: (opts?: MBJoin) => Selector<MBJoin>; | |
/** Write Z buffer */ | |
label: (opts?: MBLabel) => Selector<MBLabel>; | |
/** Vertex pass (data, view, world, eye) */ | |
layer: (opts?: MBLayer) => Selector<MBLayer>; | |
/** Lerp to width, e.g. `5` */ | |
lerp: (opts?: MBLerp) => Selector<MBLerp>; | |
/** Write Z buffer */ | |
line: (opts?: MBLine) => Selector<MBLine>; | |
/** Shader to use */ | |
mask: (opts?: MBMask) => Selector<MBMask>; | |
/** Matrix width */ | |
matrix: (opts?: MBMatrix) => Selector<MBMatrix>; | |
/** Texture data type */ | |
memo: (opts?: MBMemo) => Selector<MBMemo>; | |
/** Exit to */ | |
move: (opts?: MBMove) => Selector<MBMove>; | |
/** Time speed */ | |
now: (opts?: MBNow) => Selector<MBNow>; | |
/** Trigger on step */ | |
play: (opts?: MBPlay) => Selector<MBPlay>; | |
/** Write Z buffer */ | |
point: (opts?: MBPoint) => Selector<MBPoint>; | |
/** Visibility for rendering */ | |
polar: (opts?: MBPolar) => Selector<MBPolar>; | |
/** Presentation length (computed) */ | |
present: (opts?: MBPresent) => Selector<MBPresent>; | |
/** Readback width (read only) */ | |
readback: (opts?: MBReadback) => Selector<MBReadback>; | |
/** Repeat width */ | |
repeat: (opts?: MBRepeat) => Selector<MBRepeat>; | |
/** Resample factor width, e.g. `10` */ | |
resample: (opts?: MBResample) => Selector<MBResample>; | |
/** Resample factor width, e.g. `10` */ | |
retext: (opts?: MBRetext) => Selector<MBRetext>; | |
/** Stagger dimensions, e.g. `[2, 1, 0, 0]` */ | |
reveal: (opts?: MBReveal) => Selector<MBReveal>; | |
/** Global speed */ | |
root: (opts?: MBRoot) => Selector<MBRoot>; | |
/** RTT width, e.g. `640` */ | |
rtt: (opts?: MBRtt) => Selector<MBRtt>; | |
/** Include zero */ | |
scale: (opts?: MBScale) => Selector<MBScale>; | |
/** Shader uniform objects (three.js style), e.g. `{ time: { type: 'f', value: 3 }}` */ | |
shader: (opts?: MBShader) => Selector<MBShader>; | |
/** Slice from, to width (excluding to), e.g. `[2, 4]` */ | |
slice: (opts?: MBSlice) => Selector<MBSlice>; | |
/** Disappear on step, e.g. `4` */ | |
slide: (opts?: MBSlide) => Selector<MBSlide>; | |
/** Visibility for rendering */ | |
spherical: (opts?: MBSpherical) => Selector<MBSpherical>; | |
/** Input source */ | |
split: (opts?: MBSplit) => Selector<MBSplit>; | |
/** Width offset, e.g. `[1.5, 0, 0, 0]` */ | |
spread: (opts?: MBSpread) => Selector<MBSpread>; | |
/** Trigger on step */ | |
step: (opts?: MBStep) => Selector<MBStep>; | |
/** Visibility for rendering */ | |
stereographic: (opts?: MBStereographic) => Selector<MBStereographic>; | |
/** Visibility for rendering */ | |
stereographic4: (opts?: MBStereographic4) => Selector<MBStereographic4>; | |
/** Write Z buffer */ | |
strip: (opts?: MBStrip) => Selector<MBStrip>; | |
/** Divisions of width, e.g. `5` */ | |
subdivide: (opts?: MBSubdivide) => Selector<MBSubdivide>; | |
/** Write Z buffer */ | |
surface: (opts?: MBSurface) => Selector<MBSurface>; | |
/** Input source */ | |
swizzle: (opts?: MBSwizzle) => Selector<MBSwizzle>; | |
/** Voxel width */ | |
text: (opts?: MBText) => Selector<MBText>; | |
/** Write Z buffer */ | |
ticks: (opts?: MBTicks) => Selector<MBTicks>; | |
/** 3D Scale */ | |
transform: (opts?: MBTransform) => Selector<MBTransform>; | |
/** 4D Scale */ | |
transform4: (opts?: MBTransform4) => Selector<MBTransform4>; | |
/** Input source */ | |
transpose: (opts?: MBTranspose) => Selector<MBTranspose>; | |
/** (Vertical) Reference scale of viewport in pixels, e.g. `720` */ | |
unit: (opts?: MBUnit) => Selector<MBUnit>; | |
/** Write Z buffer */ | |
vector: (opts?: MBVector) => Selector<MBVector>; | |
/** Shader to use */ | |
vertex: (opts?: MBVertex) => Selector<MBVertex>; | |
/** Visibility for rendering */ | |
view: (opts?: MBView) => Selector<MBView>; | |
/** Voxel width */ | |
volume: (opts?: MBVolume) => Selector<MBVolume>; | |
} | |
declare interface MathBox extends Selector<MBRoot> { | |
fallback: any; | |
three: any; | |
} | |
declare var mathBox: (opts?: { | |
init?: boolean, | |
element?: any, | |
plugins?: string[], | |
aliases?: any | |
}) => MathBox; | |
declare var THREE: any; | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
import sys | |
if len(sys.argv) == 1: | |
print("please pass the path to mapbox/docs/primitives.md") | |
PRIMITIVES_MD = sys.argv[1] | |
data = open(PRIMITIVES_MD).readlines() | |
prim = None | |
doc = None | |
ifaces = '' | |
members = '' | |
def optsname(prim): | |
return 'MB' + prim[0].upper() + prim[1:] | |
def output(prim, doc, funs): | |
global ifaces, members | |
ifaces += f'\n/** {doc} */\ndeclare interface {optsname(prim)} {{\n{funs}\n}}' | |
members += f'\n /** {doc} */\n {prim}: (opts?: {optsname(prim)}) => Selector<{optsname(prim)}>;' | |
def proctype(ty): | |
try: | |
if ty == 'bool': | |
return 'boolean' | |
if ty in {'type', 'color', 'stroke', 'select', 'blending', | |
'font', 'anchor', 'ease', 'shape', 'mapping', 'fit', 'scale', | |
'fragmentPass'}: | |
return 'string' | |
if ty in ['function']: | |
return '(...args: any[]) => void' | |
if ty == 'emitter': | |
return '(emit: (...args: any[]) => void, ...args: number[]) => void' | |
if ty in ['int', 'positive', 'timestamp', 'float', 'axis']: | |
return 'number' | |
if ty in ['vec2']: | |
return '[number, number]' | |
if ty in ['vec3']: | |
return '[number, number, number]' | |
if ty in ['vec4', 'quat']: | |
return '[number, number, number, number]' | |
if ty in ['swizzle', 'array', 'transpose', 'swizzle(2) axis', 'swizzle(3) axis', 'mat4']: | |
return 'number[]' | |
if ty in ['filter', 'vertexPass', 'data']: | |
return 'any' | |
if ty.startswith('nullable'): | |
return proctype(ty.split(' ')[1]) | |
if ty.endswith('array'): | |
return proctype(ty.split(' ')[0]) + '[]' | |
if ty.startswith('array'): | |
return proctype(ty.split(' ')[1]) + '[]' | |
if ty.startswith('positive'): | |
return proctype(ty.split(' ')[1]) | |
except: | |
print('bad:', ty, file=sys.stderr) | |
return ty | |
i = 0 | |
while not data[i].startswith('### Reference'): | |
i += 1 | |
i += 1 | |
funs = '' | |
while True: | |
if i >= len(data): | |
break | |
line = data[i] | |
if line.strip() == '': | |
i += 1 | |
continue | |
if line.startswith('####'): | |
if prim: | |
if 'width?:' not in funs: | |
funs += ' width?: number;' | |
output(prim, doc, funs) | |
doc = '' | |
funs = '' | |
prim = re.search('`\w+/(\w+)`', line).group(1) | |
if line.startswith('*'): | |
doc = line | |
if line.startswith(' *'): | |
q = re.match(' \* \*(\w+)\* = `.*` \((.*)\) - (.*)', line) | |
if q is None: | |
print('failure:', line) | |
1/0 | |
name = q.group(1) | |
ty = q.group(2) | |
doc = q.group(3) | |
fun = f' /** {doc} */\n {name}?: {proctype(ty)};\n' | |
funs += fun | |
i += 1 | |
print(f'''/** MathBox type declarations (autogenerated) */ | |
{ifaces} | |
declare type Selector<T> = {{ | |
/** Set a prop to the value provided. */ | |
set<A extends keyof T>(attr: A, v: T[A]); | |
/** Set multiple props to the values provided. */ | |
set(elts: {{[A in keyof T]: T[A]}}); | |
/** Invoke the function every frame and set the prop to its return value. */ | |
bind<A extends keyof T>(attr: A, cb: (time: number, delta: number) => T[A]); | |
/** Get the current value of a prop. */ | |
get<A extends keyof T>(attr: A): T[A]; | |
/** Get the current values of all props. */ | |
get(): T; | |
/** A function on mathbox that returns a selection of all the nodes matching the selector. | |
Like CSS, the selector may be the name of a primitive (e.g. "camera"), an id (e.g. "#colors"), | |
or a class (e.g. ".points"). */ | |
select(selector: string): Selector<any>; | |
/** Print (in the console) the DOM nodes in this selection. Called automatically on first load. */ | |
inspect(): void; | |
/** Display a visual representation of all shader snippets, how they are wired, with the GLSL available on mouseover. */ | |
debug(): void; | |
/** Iterate over a selection's nodes in document order and discard the return values. */ | |
each(cb: (node: Selector<any>) => void): void; | |
/** Iterate over a selection's nodes in document order and return the resulting values as an array. */ | |
map(cb: (node: Selector<any>) => any): any[]; | |
/** Select the i'th node where i is a 0-indexed number of the node in question. */ | |
eq(i: number): Selector<any>; | |
{members} | |
}} | |
declare interface MathBox extends Selector<MBRoot> {{ | |
fallback: any; | |
three: any; | |
}} | |
declare var mathBox: (opts?: {{ | |
init?: boolean, | |
element?: any, | |
plugins?: string[], | |
aliases?: any | |
}}) => MathBox; | |
declare var THREE: any; | |
''') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment