@luma.gl/engine 8.5.8 → 8.6.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/animation/key-frames.d.ts +18 -0
- package/dist/animation/key-frames.d.ts.map +1 -0
- package/dist/{esm/animation → animation}/key-frames.js +13 -6
- package/dist/animation/key-frames.js.map +1 -0
- package/dist/animation/timeline.d.ts +51 -0
- package/dist/animation/timeline.d.ts.map +1 -0
- package/dist/{esm/animation → animation}/timeline.js +10 -5
- package/dist/animation/timeline.js.map +1 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +5 -0
- package/dist/bundle.js.map +1 -0
- package/dist/geometries/cone-geometry.d.ts +10 -0
- package/dist/geometries/cone-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/cone-geometry.js +2 -2
- package/dist/geometries/cone-geometry.js.map +1 -0
- package/dist/geometries/cube-geometry.d.ts +9 -0
- package/dist/geometries/cube-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/cube-geometry.js +18 -18
- package/dist/geometries/cube-geometry.js.map +1 -0
- package/dist/geometries/cylinder-geometry.d.ts +10 -0
- package/dist/geometries/cylinder-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/cylinder-geometry.js +2 -2
- package/dist/geometries/cylinder-geometry.js.map +1 -0
- package/dist/geometries/ico-sphere-geometry.d.ts +11 -0
- package/dist/geometries/ico-sphere-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/ico-sphere-geometry.js +2 -2
- package/dist/geometries/ico-sphere-geometry.js.map +1 -0
- package/dist/geometries/plane-geometry.d.ts +10 -0
- package/dist/geometries/plane-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/plane-geometry.js +5 -5
- package/dist/geometries/plane-geometry.js.map +1 -0
- package/dist/geometries/sphere-geometry.d.ts +12 -0
- package/dist/geometries/sphere-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/sphere-geometry.js +2 -9
- package/dist/geometries/sphere-geometry.js.map +1 -0
- package/dist/geometries/truncated-cone-geometry.d.ts +13 -0
- package/dist/geometries/truncated-cone-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/truncated-cone-geometry.js +1 -1
- package/dist/geometries/truncated-cone-geometry.js.map +1 -0
- package/dist/geometry/geometry-utils.d.ts +2 -0
- package/dist/geometry/geometry-utils.d.ts.map +1 -0
- package/dist/{esm/geometry → geometry}/geometry-utils.js +0 -0
- package/dist/geometry/geometry-utils.js.map +1 -0
- package/dist/geometry/geometry.d.ts +44 -0
- package/dist/geometry/geometry.d.ts.map +1 -0
- package/dist/{esm/geometry → geometry}/geometry.js +28 -19
- package/dist/geometry/geometry.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/animation-loop.d.ts +149 -0
- package/dist/lib/animation-loop.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/animation-loop.js +190 -143
- package/dist/lib/animation-loop.js.map +1 -0
- package/dist/lib/model-utils.d.ts +4 -0
- package/dist/lib/model-utils.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/model-utils.js +3 -2
- package/dist/lib/model-utils.js.map +1 -0
- package/dist/lib/model.d.ts +109 -0
- package/dist/lib/model.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/model.js +76 -20
- package/dist/lib/model.js.map +1 -0
- package/dist/lib/program-manager.d.ts +39 -0
- package/dist/lib/program-manager.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/program-manager.js +29 -18
- package/dist/lib/program-manager.js.map +1 -0
- package/dist/lib/render-loop.d.ts +27 -0
- package/dist/lib/render-loop.d.ts.map +1 -0
- package/dist/lib/render-loop.js +56 -0
- package/dist/lib/render-loop.js.map +1 -0
- package/dist/transform/buffer-transform.d.ts +36 -0
- package/dist/transform/buffer-transform.d.ts.map +1 -0
- package/dist/{esm/transform → transform}/buffer-transform.js +15 -8
- package/dist/transform/buffer-transform.js.map +1 -0
- package/dist/transform/texture-transform.d.ts +57 -0
- package/dist/transform/texture-transform.d.ts.map +1 -0
- package/dist/{esm/transform → transform}/texture-transform.js +48 -16
- package/dist/transform/texture-transform.js.map +1 -0
- package/dist/transform/transform-shader-utils.d.ts +26 -0
- package/dist/transform/transform-shader-utils.d.ts.map +1 -0
- package/dist/{esm/transform → transform}/transform-shader-utils.js +38 -46
- package/dist/transform/transform-shader-utils.js.map +1 -0
- package/dist/transform/transform-types.d.ts +44 -0
- package/dist/transform/transform-types.d.ts.map +1 -0
- package/dist/transform/transform-types.js +2 -0
- package/dist/transform/transform-types.js.map +1 -0
- package/dist/transform/transform.d.ts +47 -0
- package/dist/transform/transform.d.ts.map +1 -0
- package/dist/{esm/transform → transform}/transform.js +63 -43
- package/dist/transform/transform.js.map +1 -0
- package/dist/utils/clip-space.d.ts +5 -0
- package/dist/utils/clip-space.d.ts.map +1 -0
- package/dist/{esm/utils → utils}/clip-space.js +3 -17
- package/dist/utils/clip-space.js.map +1 -0
- package/package.json +11 -11
- package/src/animation/{key-frames.js → key-frames.ts} +18 -16
- package/src/animation/{timeline.js → timeline.ts} +54 -18
- package/src/bundle.ts +4 -0
- package/src/geometries/{cone-geometry.js → cone-geometry.ts} +9 -3
- package/src/geometries/{cube-geometry.js → cube-geometry.ts} +17 -12
- package/src/geometries/cylinder-geometry.ts +20 -0
- package/src/geometries/{ico-sphere-geometry.js → ico-sphere-geometry.ts} +10 -3
- package/src/geometries/{plane-geometry.js → plane-geometry.ts} +11 -6
- package/src/geometries/{sphere-geometry.js → sphere-geometry.ts} +15 -11
- package/src/geometries/{truncated-cone-geometry.js → truncated-cone-geometry.ts} +14 -5
- package/src/geometry/{geometry-utils.js → geometry-utils.ts} +2 -0
- package/src/geometry/{geometry.js → geometry.ts} +47 -34
- package/src/index.ts +35 -0
- package/src/lib/animation-loop.ts +724 -0
- package/src/lib/{model-utils.js → model-utils.ts} +2 -2
- package/src/lib/{model.js → model.ts} +184 -66
- package/src/lib/{program-manager.js → program-manager.ts} +53 -34
- package/src/lib/render-loop.ts +56 -0
- package/src/transform/{buffer-transform.js → buffer-transform.ts} +42 -27
- package/src/transform/{texture-transform.js → texture-transform.ts} +35 -25
- package/src/transform/{transform-shader-utils.js → transform-shader-utils.ts} +55 -27
- package/src/transform/transform-types.ts +42 -0
- package/src/transform/transform.ts +189 -0
- package/src/utils/{clip-space.js → clip-space.ts} +4 -3
- package/dist/dist.js +0 -32403
- package/dist/dist.min.js +0 -1
- package/dist/es5/animation/key-frames.d.ts +0 -19
- package/dist/es5/animation/key-frames.js +0 -95
- package/dist/es5/animation/key-frames.js.map +0 -1
- package/dist/es5/animation/timeline.d.ts +0 -39
- package/dist/es5/animation/timeline.js +0 -211
- package/dist/es5/animation/timeline.js.map +0 -1
- package/dist/es5/bundle.js +0 -9
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/geometries/cone-geometry.d.ts +0 -5
- package/dist/es5/geometries/cone-geometry.js +0 -59
- package/dist/es5/geometries/cone-geometry.js.map +0 -1
- package/dist/es5/geometries/cube-geometry.d.ts +0 -5
- package/dist/es5/geometries/cube-geometry.js +0 -75
- package/dist/es5/geometries/cube-geometry.js.map +0 -1
- package/dist/es5/geometries/cylinder-geometry.d.ts +0 -5
- package/dist/es5/geometries/cylinder-geometry.js +0 -55
- package/dist/es5/geometries/cylinder-geometry.js.map +0 -1
- package/dist/es5/geometries/ico-sphere-geometry.d.ts +0 -5
- package/dist/es5/geometries/ico-sphere-geometry.js +0 -217
- package/dist/es5/geometries/ico-sphere-geometry.js.map +0 -1
- package/dist/es5/geometries/index.d.ts +0 -7
- package/dist/es5/geometries/index.js +0 -64
- package/dist/es5/geometries/index.js.map +0 -1
- package/dist/es5/geometries/plane-geometry.d.ts +0 -5
- package/dist/es5/geometries/plane-geometry.js +0 -168
- package/dist/es5/geometries/plane-geometry.js.map +0 -1
- package/dist/es5/geometries/sphere-geometry.d.ts +0 -5
- package/dist/es5/geometries/sphere-geometry.js +0 -152
- package/dist/es5/geometries/sphere-geometry.js.map +0 -1
- package/dist/es5/geometries/truncated-cone-geometry.d.ts +0 -5
- package/dist/es5/geometries/truncated-cone-geometry.js +0 -171
- package/dist/es5/geometries/truncated-cone-geometry.js.map +0 -1
- package/dist/es5/geometry/geometry-utils.d.ts +0 -1
- package/dist/es5/geometry/geometry-utils.js +0 -49
- package/dist/es5/geometry/geometry-utils.js.map +0 -1
- package/dist/es5/geometry/geometry.d.ts +0 -25
- package/dist/es5/geometry/geometry.js +0 -150
- package/dist/es5/geometry/geometry.js.map +0 -1
- package/dist/es5/index.d.ts +0 -19
- package/dist/es5/index.js +0 -128
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/animation-loop.d.ts +0 -158
- package/dist/es5/lib/animation-loop.js +0 -642
- package/dist/es5/lib/animation-loop.js.map +0 -1
- package/dist/es5/lib/model-utils.d.ts +0 -3
- package/dist/es5/lib/model-utils.js +0 -110
- package/dist/es5/lib/model-utils.js.map +0 -1
- package/dist/es5/lib/model.d.ts +0 -214
- package/dist/es5/lib/model.js +0 -584
- package/dist/es5/lib/model.js.map +0 -1
- package/dist/es5/lib/program-manager.d.ts +0 -79
- package/dist/es5/lib/program-manager.js +0 -238
- package/dist/es5/lib/program-manager.js.map +0 -1
- package/dist/es5/transform/buffer-transform.d.ts +0 -13
- package/dist/es5/transform/buffer-transform.js +0 -294
- package/dist/es5/transform/buffer-transform.js.map +0 -1
- package/dist/es5/transform/resource-transform.d.ts +0 -16
- package/dist/es5/transform/texture-transform.d.ts +0 -16
- package/dist/es5/transform/texture-transform.js +0 -405
- package/dist/es5/transform/texture-transform.js.map +0 -1
- package/dist/es5/transform/transform-shader-utils.d.ts +0 -31
- package/dist/es5/transform/transform-shader-utils.js +0 -160
- package/dist/es5/transform/transform-shader-utils.js.map +0 -1
- package/dist/es5/transform/transform.d.ts +0 -33
- package/dist/es5/transform/transform.js +0 -274
- package/dist/es5/transform/transform.js.map +0 -1
- package/dist/es5/utils/clip-space.d.ts +0 -5
- package/dist/es5/utils/clip-space.js +0 -72
- package/dist/es5/utils/clip-space.js.map +0 -1
- package/dist/esm/animation/key-frames.d.ts +0 -19
- package/dist/esm/animation/key-frames.js.map +0 -1
- package/dist/esm/animation/timeline.d.ts +0 -39
- package/dist/esm/animation/timeline.js.map +0 -1
- package/dist/esm/bundle.js +0 -7
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/geometries/cone-geometry.d.ts +0 -5
- package/dist/esm/geometries/cone-geometry.js.map +0 -1
- package/dist/esm/geometries/cube-geometry.d.ts +0 -5
- package/dist/esm/geometries/cube-geometry.js.map +0 -1
- package/dist/esm/geometries/cylinder-geometry.d.ts +0 -5
- package/dist/esm/geometries/cylinder-geometry.js.map +0 -1
- package/dist/esm/geometries/ico-sphere-geometry.d.ts +0 -5
- package/dist/esm/geometries/ico-sphere-geometry.js.map +0 -1
- package/dist/esm/geometries/index.d.ts +0 -7
- package/dist/esm/geometries/index.js +0 -8
- package/dist/esm/geometries/index.js.map +0 -1
- package/dist/esm/geometries/plane-geometry.d.ts +0 -5
- package/dist/esm/geometries/plane-geometry.js.map +0 -1
- package/dist/esm/geometries/sphere-geometry.d.ts +0 -5
- package/dist/esm/geometries/sphere-geometry.js.map +0 -1
- package/dist/esm/geometries/truncated-cone-geometry.d.ts +0 -5
- package/dist/esm/geometries/truncated-cone-geometry.js.map +0 -1
- package/dist/esm/geometry/geometry-utils.d.ts +0 -1
- package/dist/esm/geometry/geometry-utils.js.map +0 -1
- package/dist/esm/geometry/geometry.d.ts +0 -25
- package/dist/esm/geometry/geometry.js.map +0 -1
- package/dist/esm/index.d.ts +0 -19
- package/dist/esm/index.js +0 -16
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/animation-loop.d.ts +0 -158
- package/dist/esm/lib/animation-loop.js.map +0 -1
- package/dist/esm/lib/model-utils.d.ts +0 -3
- package/dist/esm/lib/model-utils.js.map +0 -1
- package/dist/esm/lib/model.d.ts +0 -214
- package/dist/esm/lib/model.js.map +0 -1
- package/dist/esm/lib/program-manager.d.ts +0 -79
- package/dist/esm/lib/program-manager.js.map +0 -1
- package/dist/esm/transform/buffer-transform.d.ts +0 -13
- package/dist/esm/transform/buffer-transform.js.map +0 -1
- package/dist/esm/transform/resource-transform.d.ts +0 -16
- package/dist/esm/transform/texture-transform.d.ts +0 -16
- package/dist/esm/transform/texture-transform.js.map +0 -1
- package/dist/esm/transform/transform-shader-utils.d.ts +0 -31
- package/dist/esm/transform/transform-shader-utils.js.map +0 -1
- package/dist/esm/transform/transform.d.ts +0 -33
- package/dist/esm/transform/transform.js.map +0 -1
- package/dist/esm/utils/clip-space.d.ts +0 -5
- package/dist/esm/utils/clip-space.js.map +0 -1
- package/src/animation/key-frames.d.ts +0 -19
- package/src/animation/timeline.d.ts +0 -39
- package/src/bundle.js +0 -7
- package/src/geometries/cone-geometry.d.ts +0 -5
- package/src/geometries/cube-geometry.d.ts +0 -5
- package/src/geometries/cylinder-geometry.d.ts +0 -5
- package/src/geometries/cylinder-geometry.js +0 -14
- package/src/geometries/ico-sphere-geometry.d.ts +0 -5
- package/src/geometries/index.d.ts +0 -7
- package/src/geometries/index.js +0 -7
- package/src/geometries/plane-geometry.d.ts +0 -5
- package/src/geometries/sphere-geometry.d.ts +0 -5
- package/src/geometries/truncated-cone-geometry.d.ts +0 -5
- package/src/geometry/geometry-utils.d.ts +0 -1
- package/src/geometry/geometry.d.ts +0 -25
- package/src/index.d.ts +0 -19
- package/src/index.js +0 -22
- package/src/lib/animation-loop.d.ts +0 -158
- package/src/lib/animation-loop.js +0 -601
- package/src/lib/model-utils.d.ts +0 -3
- package/src/lib/model.d.ts +0 -214
- package/src/lib/program-manager.d.ts +0 -79
- package/src/transform/buffer-transform.d.ts +0 -13
- package/src/transform/resource-transform.d.ts +0 -16
- package/src/transform/texture-transform.d.ts +0 -16
- package/src/transform/transform-shader-utils.d.ts +0 -31
- package/src/transform/transform.d.ts +0 -33
- package/src/transform/transform.js +0 -177
- package/src/utils/clip-space.d.ts +0 -5
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import GL from '@luma.gl/constants';
|
|
2
|
+
/**
|
|
3
|
+
* Rendering primitives - "opology" specifies how to extract primitives from vertices.
|
|
4
|
+
*/
|
|
5
|
+
export declare type Topology = GL.POINTS | // draw single points.
|
|
6
|
+
GL.LINES | // draw lines. Each vertex connects to the one after it.
|
|
7
|
+
GL.LINE_LOOP | // draw lines. Each set of two vertices is treated as a separate line segment.
|
|
8
|
+
GL.LINE_STRIP | // draw a connected group of line segments from the first vertex to the last
|
|
9
|
+
GL.TRIANGLES | // draw triangles. Each set of three vertices creates a separate triangle.
|
|
10
|
+
GL.TRIANGLE_STRIP | // draw a connected group of triangles.
|
|
11
|
+
GL.TRIANGLE_FAN;
|
|
12
|
+
export declare type GeometryProps = {
|
|
13
|
+
id?: string;
|
|
14
|
+
drawMode?: Topology;
|
|
15
|
+
attributes?: {};
|
|
16
|
+
indices?: any;
|
|
17
|
+
vertexCount?: number;
|
|
18
|
+
};
|
|
19
|
+
export default class Geometry {
|
|
20
|
+
/** @deprecated */
|
|
21
|
+
static DRAW_MODE: {
|
|
22
|
+
POINTS: GL;
|
|
23
|
+
LINES: GL;
|
|
24
|
+
LINE_LOOP: GL;
|
|
25
|
+
LINE_STRIP: GL;
|
|
26
|
+
TRIANGLES: GL;
|
|
27
|
+
TRIANGLE_STRIP: GL;
|
|
28
|
+
TRIANGLE_FAN: GL;
|
|
29
|
+
};
|
|
30
|
+
readonly id: string;
|
|
31
|
+
readonly drawMode: Topology;
|
|
32
|
+
vertexCount: number;
|
|
33
|
+
attributes: {};
|
|
34
|
+
indices: any;
|
|
35
|
+
userData: Record<string, any>;
|
|
36
|
+
constructor(props?: GeometryProps);
|
|
37
|
+
get mode(): Topology;
|
|
38
|
+
getVertexCount(): number;
|
|
39
|
+
getAttributes(): {};
|
|
40
|
+
_print(attributeName: any): string;
|
|
41
|
+
_setAttributes(attributes: any, indices: any): this;
|
|
42
|
+
_calculateVertexCount(attributes: any, indices: any): number;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/geometry/geometry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGpC;;GAEG;AACH,oBAAY,QAAQ,GAClB,EAAE,CAAC,MAAM,GAAI,sBAAsB;AACnC,EAAE,CAAC,KAAK,GAAI,wDAAwD;AACpE,EAAE,CAAC,SAAS,GAAI,8EAA8E;AAC9F,EAAE,CAAC,UAAU,GAAI,4EAA4E;AAC7F,EAAE,CAAC,SAAS,GAAI,0EAA0E;AAC1F,EAAE,CAAC,cAAc,GAAI,uCAAuC;AAC5D,EAAE,CAAC,YAAY,CACd;AAEH,oBAAY,aAAa,GAAG;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,EAAE,CAAC;IAChB,OAAO,CAAC,MAAC;IACT,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,kBAAkB;IAClB,MAAM,CAAC,SAAS;;;;;;;;MAQd;IAEF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAgB;IAE3C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,KAAM;IAChB,OAAO,MAAC;IACR,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;gBAEvB,KAAK,GAAE,aAAkB;IAiBrC,IAAI,IAAI,aAEP;IAED,cAAc,IAAI,MAAM;IAKxB,aAAa;IAMb,MAAM,CAAC,aAAa,KAAA,GAAG,MAAM;IAS7B,cAAc,CAAC,UAAU,KAAA,EAAE,OAAO,KAAA,GAAG,IAAI;IAqCzC,qBAAqB,CAAC,UAAU,KAAA,EAAE,OAAO,KAAA,GAAG,MAAM;CAgBnD"}
|
|
@@ -1,30 +1,29 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import GL from '@luma.gl/constants';
|
|
1
3
|
import { uid, assert } from '@luma.gl/webgl';
|
|
2
|
-
export const DRAW_MODE = {
|
|
3
|
-
POINTS: 0x0000,
|
|
4
|
-
LINES: 0x0001,
|
|
5
|
-
LINE_LOOP: 0x0002,
|
|
6
|
-
LINE_STRIP: 0x0003,
|
|
7
|
-
TRIANGLES: 0x0004,
|
|
8
|
-
TRIANGLE_STRIP: 0x0005,
|
|
9
|
-
TRIANGLE_FAN: 0x0006
|
|
10
|
-
};
|
|
11
4
|
export default class Geometry {
|
|
12
|
-
static get DRAW_MODE() {
|
|
13
|
-
return DRAW_MODE;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
5
|
constructor(props = {}) {
|
|
6
|
+
_defineProperty(this, "id", void 0);
|
|
7
|
+
|
|
8
|
+
_defineProperty(this, "drawMode", GL.TRIANGLES);
|
|
9
|
+
|
|
10
|
+
_defineProperty(this, "vertexCount", void 0);
|
|
11
|
+
|
|
12
|
+
_defineProperty(this, "attributes", {});
|
|
13
|
+
|
|
14
|
+
_defineProperty(this, "indices", void 0);
|
|
15
|
+
|
|
16
|
+
_defineProperty(this, "userData", {});
|
|
17
|
+
|
|
17
18
|
const {
|
|
18
19
|
id = uid('geometry'),
|
|
19
|
-
drawMode =
|
|
20
|
+
drawMode = GL.TRIANGLES,
|
|
20
21
|
attributes = {},
|
|
21
22
|
indices = null,
|
|
22
23
|
vertexCount = null
|
|
23
24
|
} = props;
|
|
24
25
|
this.id = id;
|
|
25
|
-
this.drawMode = drawMode
|
|
26
|
-
this.attributes = {};
|
|
27
|
-
this.userData = {};
|
|
26
|
+
this.drawMode = drawMode;
|
|
28
27
|
|
|
29
28
|
this._setAttributes(attributes, indices);
|
|
30
29
|
|
|
@@ -47,7 +46,7 @@ export default class Geometry {
|
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
_print(attributeName) {
|
|
50
|
-
return
|
|
49
|
+
return "Geometry ".concat(this.id, " attribute ").concat(attributeName);
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
_setAttributes(attributes, indices) {
|
|
@@ -63,7 +62,7 @@ export default class Geometry {
|
|
|
63
62
|
attribute = ArrayBuffer.isView(attribute) ? {
|
|
64
63
|
value: attribute
|
|
65
64
|
} : attribute;
|
|
66
|
-
assert(ArrayBuffer.isView(attribute.value),
|
|
65
|
+
assert(ArrayBuffer.isView(attribute.value), "".concat(this._print(attributeName), ": must be typed array or object with value as typed array"));
|
|
67
66
|
|
|
68
67
|
if ((attributeName === 'POSITION' || attributeName === 'positions') && !attribute.size) {
|
|
69
68
|
attribute.size = 3;
|
|
@@ -110,4 +109,14 @@ export default class Geometry {
|
|
|
110
109
|
}
|
|
111
110
|
|
|
112
111
|
}
|
|
112
|
+
|
|
113
|
+
_defineProperty(Geometry, "DRAW_MODE", {
|
|
114
|
+
POINTS: GL.POINTS,
|
|
115
|
+
LINES: GL.LINES,
|
|
116
|
+
LINE_LOOP: GL.LINE_LOOP,
|
|
117
|
+
LINE_STRIP: GL.LINE_STRIP,
|
|
118
|
+
TRIANGLES: GL.TRIANGLES,
|
|
119
|
+
TRIANGLE_STRIP: GL.TRIANGLE_STRIP,
|
|
120
|
+
TRIANGLE_FAN: GL.TRIANGLE_FAN
|
|
121
|
+
});
|
|
113
122
|
//# sourceMappingURL=geometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/geometry/geometry.ts"],"names":["GL","uid","assert","Geometry","constructor","props","TRIANGLES","id","drawMode","attributes","indices","vertexCount","_setAttributes","_calculateVertexCount","mode","getVertexCount","getAttributes","_print","attributeName","ArrayBuffer","isView","value","size","attribute","isIndexed","undefined","Object","assign","length","Infinity","constant","Math","min","Number","isFinite","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLE_STRIP","TRIANGLE_FAN"],"mappings":";AACA,OAAOA,EAAP,MAAe,oBAAf;AACA,SAAQC,GAAR,EAAaC,MAAb,QAA0B,gBAA1B;AAuBA,eAAe,MAAMC,QAAN,CAAe;AAoB5BC,EAAAA,WAAW,CAACC,KAAoB,GAAG,EAAxB,EAA4B;AAAA;;AAAA,sCAPTL,EAAE,CAACM,SAOM;;AAAA;;AAAA,wCAJ1B,EAI0B;;AAAA;;AAAA,sCAFP,EAEO;;AACrC,UAAM;AACJC,MAAAA,EAAE,GAAGN,GAAG,CAAC,UAAD,CADJ;AAEJO,MAAAA,QAAQ,GAAGR,EAAE,CAACM,SAFV;AAGJG,MAAAA,UAAU,GAAG,EAHT;AAIJC,MAAAA,OAAO,GAAG,IAJN;AAKJC,MAAAA,WAAW,GAAG;AALV,QAMFN,KANJ;AAQA,SAAKE,EAAL,GAAUA,EAAV;AACA,SAAKC,QAAL,GAAgBA,QAAhB;;AAEA,SAAKI,cAAL,CAAoBH,UAApB,EAAgCC,OAAhC;;AAEA,SAAKC,WAAL,GAAmBA,WAAW,IAAI,KAAKE,qBAAL,CAA2B,KAAKJ,UAAhC,EAA4C,KAAKC,OAAjD,CAAlC;AACD;;AAEO,MAAJI,IAAI,GAAG;AACT,WAAO,KAAKN,QAAZ;AACD;;AAEDO,EAAAA,cAAc,GAAW;AACvB,WAAO,KAAKJ,WAAZ;AACD;;AAGDK,EAAAA,aAAa,GAAG;AACd,WAAO,KAAKN,OAAL,GAAe;AAACA,MAAAA,OAAO,EAAE,KAAKA,OAAf;AAAwB,SAAG,KAAKD;AAAhC,KAAf,GAA6D,KAAKA,UAAzE;AACD;;AAIDQ,EAAAA,MAAM,CAACC,aAAD,EAAwB;AAC5B,8BAAmB,KAAKX,EAAxB,wBAAwCW,aAAxC;AACD;;AAODN,EAAAA,cAAc,CAACH,UAAD,EAAaC,OAAb,EAA4B;AACxC,QAAIA,OAAJ,EAAa;AACX,WAAKA,OAAL,GAAeS,WAAW,CAACC,MAAZ,CAAmBV,OAAnB,IAA8B;AAACW,QAAAA,KAAK,EAAEX,OAAR;AAAiBY,QAAAA,IAAI,EAAE;AAAvB,OAA9B,GAA0DZ,OAAzE;AACD;;AAED,SAAK,MAAMQ,aAAX,IAA4BT,UAA5B,EAAwC;AACtC,UAAIc,SAAS,GAAGd,UAAU,CAACS,aAAD,CAA1B;AAGAK,MAAAA,SAAS,GAAGJ,WAAW,CAACC,MAAZ,CAAmBG,SAAnB,IAAgC;AAACF,QAAAA,KAAK,EAAEE;AAAR,OAAhC,GAAqDA,SAAjE;AAEArB,MAAAA,MAAM,CACJiB,WAAW,CAACC,MAAZ,CAAmBG,SAAS,CAACF,KAA7B,CADI,YAED,KAAKJ,MAAL,CAAYC,aAAZ,CAFC,+DAAN;;AAKA,UAAI,CAACA,aAAa,KAAK,UAAlB,IAAgCA,aAAa,KAAK,WAAnD,KAAmE,CAACK,SAAS,CAACD,IAAlF,EAAwF;AACtFC,QAAAA,SAAS,CAACD,IAAV,GAAiB,CAAjB;AACD;;AAGD,UAAIJ,aAAa,KAAK,SAAtB,EAAiC;AAC/BhB,QAAAA,MAAM,CAAC,CAAC,KAAKQ,OAAP,CAAN;AACA,aAAKA,OAAL,GAAea,SAAf;AACD,OAHD,MAGO;AACL,aAAKd,UAAL,CAAgBS,aAAhB,IAAiCK,SAAjC;AACD;AACF;;AAED,QAAI,KAAKb,OAAL,IAAgB,KAAKA,OAAL,CAAac,SAAb,KAA2BC,SAA/C,EAA0D;AACxD,WAAKf,OAAL,GAAegB,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkB,KAAKjB,OAAvB,CAAf;AACA,aAAO,KAAKA,OAAL,CAAac,SAApB;AACD;;AAED,WAAO,IAAP;AACD;;AAEDX,EAAAA,qBAAqB,CAACJ,UAAD,EAAaC,OAAb,EAA8B;AACjD,QAAIA,OAAJ,EAAa;AACX,aAAOA,OAAO,CAACW,KAAR,CAAcO,MAArB;AACD;;AACD,QAAIjB,WAAW,GAAGkB,QAAlB;;AACA,SAAK,MAAMX,aAAX,IAA4BT,UAA5B,EAAwC;AACtC,YAAMc,SAAS,GAAGd,UAAU,CAACS,aAAD,CAA5B;AACA,YAAM;AAACG,QAAAA,KAAD;AAAQC,QAAAA,IAAR;AAAcQ,QAAAA;AAAd,UAA0BP,SAAhC;;AACA,UAAI,CAACO,QAAD,IAAaT,KAAb,IAAsBC,IAAI,IAAI,CAAlC,EAAqC;AACnCX,QAAAA,WAAW,GAAGoB,IAAI,CAACC,GAAL,CAASrB,WAAT,EAAsBU,KAAK,CAACO,MAAN,GAAeN,IAArC,CAAd;AACD;AACF;;AAEDpB,IAAAA,MAAM,CAAC+B,MAAM,CAACC,QAAP,CAAgBvB,WAAhB,CAAD,CAAN;AACA,WAAOA,WAAP;AACD;;AAjH2B;;gBAATR,Q,eAEA;AACjBgC,EAAAA,MAAM,EAAEnC,EAAE,CAACmC,MADM;AAEjBC,EAAAA,KAAK,EAAEpC,EAAE,CAACoC,KAFO;AAGjBC,EAAAA,SAAS,EAAErC,EAAE,CAACqC,SAHG;AAIjBC,EAAAA,UAAU,EAAEtC,EAAE,CAACsC,UAJE;AAKjBhC,EAAAA,SAAS,EAAEN,EAAE,CAACM,SALG;AAMjBiC,EAAAA,cAAc,EAAEvC,EAAE,CAACuC,cANF;AAOjBC,EAAAA,YAAY,EAAExC,EAAE,CAACwC;AAPA,C","sourcesContent":["// luma.gl, MIT license\nimport GL from '@luma.gl/constants';\nimport {uid, assert} from '@luma.gl/webgl';\n\n/**\n * Rendering primitives - \"opology\" specifies how to extract primitives from vertices.\n */\nexport type Topology =\n GL.POINTS | // draw single points.\n GL.LINES | // draw lines. Each vertex connects to the one after it.\n GL.LINE_LOOP | // draw lines. Each set of two vertices is treated as a separate line segment.\n GL.LINE_STRIP | // draw a connected group of line segments from the first vertex to the last\n GL.TRIANGLES | // draw triangles. Each set of three vertices creates a separate triangle.\n GL.TRIANGLE_STRIP | // draw a connected group of triangles.\n GL.TRIANGLE_FAN // draw a connected group of triangles.\n ;\n\nexport type GeometryProps = {\n id?: string;\n drawMode?: Topology,\n attributes?: {},\n indices?;\n vertexCount?: number\n};\n\nexport default class Geometry {\n /** @deprecated */\n static DRAW_MODE = {\n POINTS: GL.POINTS, // draw single points.\n LINES: GL.LINES, // draw lines. Each vertex connects to the one after it.\n LINE_LOOP: GL.LINE_LOOP, // draw lines. Each set of two vertices is treated as a separate line segment.\n LINE_STRIP: GL.LINE_STRIP, // draw a connected group of line segments from the first vertex to the last\n TRIANGLES: GL.TRIANGLES, // draw triangles. Each set of three vertices creates a separate triangle.\n TRIANGLE_STRIP: GL.TRIANGLE_STRIP, // draw a connected group of triangles.\n TRIANGLE_FAN: GL.TRIANGLE_FAN // draw a connected group of triangles.\n };\n\n readonly id: string;\n readonly drawMode: Topology = GL.TRIANGLES;\n\n vertexCount: number;\n attributes = {};\n indices;\n userData: Record<string, any> = {};\n\n constructor(props: GeometryProps = {}) {\n const {\n id = uid('geometry'),\n drawMode = GL.TRIANGLES,\n attributes = {},\n indices = null,\n vertexCount = null\n } = props;\n\n this.id = id;\n this.drawMode = drawMode;\n\n this._setAttributes(attributes, indices);\n\n this.vertexCount = vertexCount || this._calculateVertexCount(this.attributes, this.indices);\n }\n\n get mode() {\n return this.drawMode;\n }\n\n getVertexCount(): number {\n return this.vertexCount;\n }\n\n // Return an object with all attributes plus indices added as a field.\n getAttributes() {\n return this.indices ? {indices: this.indices, ...this.attributes} : this.attributes;\n }\n\n // PRIVATE\n\n _print(attributeName): string {\n return `Geometry ${this.id} attribute ${attributeName}`;\n }\n\n // Attribute\n // value: typed array\n // type: indices, vertices, uvs\n // size: elements per vertex\n // target: WebGL buffer type (string or constant)\n _setAttributes(attributes, indices): this {\n if (indices) {\n this.indices = ArrayBuffer.isView(indices) ? {value: indices, size: 1} : indices;\n }\n\n for (const attributeName in attributes) {\n let attribute = attributes[attributeName];\n\n // Wrap \"unwrapped\" arrays and try to autodetect their type\n attribute = ArrayBuffer.isView(attribute) ? {value: attribute} : attribute;\n\n assert(\n ArrayBuffer.isView(attribute.value),\n `${this._print(attributeName)}: must be typed array or object with value as typed array`\n );\n\n if ((attributeName === 'POSITION' || attributeName === 'positions') && !attribute.size) {\n attribute.size = 3;\n }\n\n // Move indices to separate field\n if (attributeName === 'indices') {\n assert(!this.indices);\n this.indices = attribute;\n } else {\n this.attributes[attributeName] = attribute;\n }\n }\n\n if (this.indices && this.indices.isIndexed !== undefined) {\n this.indices = Object.assign({}, this.indices);\n delete this.indices.isIndexed;\n }\n\n return this;\n }\n\n _calculateVertexCount(attributes, indices): number {\n if (indices) {\n return indices.value.length;\n }\n let vertexCount = Infinity;\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n const {value, size, constant} = attribute;\n if (!constant && value && size >= 1) {\n vertexCount = Math.min(vertexCount, value.length / size);\n }\n }\n\n assert(Number.isFinite(vertexCount));\n return vertexCount;\n }\n}\n"],"file":"geometry.js"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type { AnimationLoopProps, AnimationProps } from './lib/animation-loop';
|
|
2
|
+
export { default as AnimationLoop } from './lib/animation-loop';
|
|
3
|
+
export { RenderLoop } from './lib/render-loop';
|
|
4
|
+
export type { ModelProps } from './lib/model';
|
|
5
|
+
export { default as Model } from './lib/model';
|
|
6
|
+
export { default as ProgramManager } from './lib/program-manager';
|
|
7
|
+
export { default as Transform } from './transform/transform';
|
|
8
|
+
export { default as Geometry } from './geometry/geometry';
|
|
9
|
+
export type { ConeGeometryProps } from './geometries/cone-geometry';
|
|
10
|
+
export { ConeGeometry } from './geometries/cone-geometry';
|
|
11
|
+
export type { CubeGeometryProps } from './geometries/cube-geometry';
|
|
12
|
+
export { CubeGeometry } from './geometries/cube-geometry';
|
|
13
|
+
export type { CylinderGeometryProps } from './geometries/cylinder-geometry';
|
|
14
|
+
export { CylinderGeometry } from './geometries/cylinder-geometry';
|
|
15
|
+
export type { IcoSphereGeometryProps } from './geometries/ico-sphere-geometry';
|
|
16
|
+
export { IcoSphereGeometry } from './geometries/ico-sphere-geometry';
|
|
17
|
+
export type { PlaneGeometryProps } from './geometries/plane-geometry';
|
|
18
|
+
export { PlaneGeometry } from './geometries/plane-geometry';
|
|
19
|
+
export type { SphereGeometryProps } from './geometries/sphere-geometry';
|
|
20
|
+
export { SphereGeometry } from './geometries/sphere-geometry';
|
|
21
|
+
export type { TruncatedConeGeometryProps } from './geometries/truncated-cone-geometry';
|
|
22
|
+
export { TruncatedConeGeometry } from './geometries/truncated-cone-geometry';
|
|
23
|
+
export { Timeline } from './animation/timeline';
|
|
24
|
+
export { KeyFrames } from './animation/key-frames';
|
|
25
|
+
export { default as ClipSpace } from './utils/clip-space';
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAE7C,YAAY,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAGxD,YAAY,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,YAAY,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,YAAY,EAAC,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAC,sBAAsB,EAAC,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,YAAY,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAC,0BAA0B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAG3E,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { default as AnimationLoop } from './lib/animation-loop';
|
|
2
|
+
export { RenderLoop } from './lib/render-loop';
|
|
3
|
+
export { default as Model } from './lib/model';
|
|
4
|
+
export { default as ProgramManager } from './lib/program-manager';
|
|
5
|
+
export { default as Transform } from './transform/transform';
|
|
6
|
+
export { default as Geometry } from './geometry/geometry';
|
|
7
|
+
export { ConeGeometry } from './geometries/cone-geometry';
|
|
8
|
+
export { CubeGeometry } from './geometries/cube-geometry';
|
|
9
|
+
export { CylinderGeometry } from './geometries/cylinder-geometry';
|
|
10
|
+
export { IcoSphereGeometry } from './geometries/ico-sphere-geometry';
|
|
11
|
+
export { PlaneGeometry } from './geometries/plane-geometry';
|
|
12
|
+
export { SphereGeometry } from './geometries/sphere-geometry';
|
|
13
|
+
export { TruncatedConeGeometry } from './geometries/truncated-cone-geometry';
|
|
14
|
+
export { Timeline } from './animation/timeline';
|
|
15
|
+
export { KeyFrames } from './animation/key-frames';
|
|
16
|
+
export { default as ClipSpace } from './utils/clip-space';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["default","AnimationLoop","RenderLoop","Model","ProgramManager","Transform","Geometry","ConeGeometry","CubeGeometry","CylinderGeometry","IcoSphereGeometry","PlaneGeometry","SphereGeometry","TruncatedConeGeometry","Timeline","KeyFrames","ClipSpace"],"mappings":"AAEA,SAAQA,OAAO,IAAIC,aAAnB,QAAuC,sBAAvC;AACA,SAAQC,UAAR,QAAyB,mBAAzB;AAGA,SAAQF,OAAO,IAAIG,KAAnB,QAA+B,aAA/B;AACA,SAAQH,OAAO,IAAII,cAAnB,QAAwC,uBAAxC;AACA,SAAQJ,OAAO,IAAIK,SAAnB,QAAmC,uBAAnC;AAGA,SAAQL,OAAO,IAAIM,QAAnB,QAAkC,qBAAlC;AAIA,SAAQC,YAAR,QAA2B,4BAA3B;AAEA,SAAQC,YAAR,QAA2B,4BAA3B;AAEA,SAAQC,gBAAR,QAA+B,gCAA/B;AAEA,SAAQC,iBAAR,QAAgC,kCAAhC;AAEA,SAAQC,aAAR,QAA4B,6BAA5B;AAEA,SAAQC,cAAR,QAA6B,8BAA7B;AAEA,SAAQC,qBAAR,QAAoC,sCAApC;AAGA,SAAQC,QAAR,QAAuB,sBAAvB;AACA,SAAQC,SAAR,QAAwB,wBAAxB;AAGA,SAAQf,OAAO,IAAIgB,SAAnB,QAAmC,oBAAnC","sourcesContent":["// CORE\nexport type {AnimationLoopProps, AnimationProps} from './lib/animation-loop';\nexport {default as AnimationLoop} from './lib/animation-loop';\nexport {RenderLoop} from './lib/render-loop';\n\nexport type {ModelProps} from './lib/model';\nexport {default as Model} from './lib/model';\nexport {default as ProgramManager} from './lib/program-manager';\nexport {default as Transform} from './transform/transform';\n\n// Geometries\nexport {default as Geometry} from './geometry/geometry';\n\n// Primitives\nexport type {ConeGeometryProps} from './geometries/cone-geometry';\nexport {ConeGeometry} from './geometries/cone-geometry';\nexport type {CubeGeometryProps} from './geometries/cube-geometry';\nexport {CubeGeometry} from './geometries/cube-geometry';\nexport type {CylinderGeometryProps} from './geometries/cylinder-geometry';\nexport {CylinderGeometry} from './geometries/cylinder-geometry';\nexport type {IcoSphereGeometryProps} from './geometries/ico-sphere-geometry';\nexport {IcoSphereGeometry} from './geometries/ico-sphere-geometry';\nexport type {PlaneGeometryProps} from './geometries/plane-geometry';\nexport {PlaneGeometry} from './geometries/plane-geometry';\nexport type {SphereGeometryProps} from './geometries/sphere-geometry';\nexport {SphereGeometry} from './geometries/sphere-geometry';\nexport type {TruncatedConeGeometryProps} from './geometries/truncated-cone-geometry';\nexport {TruncatedConeGeometry} from './geometries/truncated-cone-geometry';\n\n// Animation\nexport {Timeline} from './animation/timeline';\nexport {KeyFrames} from './animation/key-frames';\n\n// Utils\nexport {default as ClipSpace} from './utils/clip-space';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/// <reference types="offscreencanvas" />
|
|
2
|
+
import { Device } from '@luma.gl/api';
|
|
3
|
+
import type { WebGLDeviceProps } from '@luma.gl/webgl';
|
|
4
|
+
import { Query, Framebuffer } from '@luma.gl/webgl';
|
|
5
|
+
import { Stats, Stat } from '@probe.gl/stats';
|
|
6
|
+
import { Timeline } from '../animation/timeline';
|
|
7
|
+
declare type DeviceProps = WebGLDeviceProps;
|
|
8
|
+
declare type ContextProps = WebGLDeviceProps;
|
|
9
|
+
/** AnimationLoop properties */
|
|
10
|
+
export declare type AnimationLoopProps = {
|
|
11
|
+
onCreateDevice?: (props: DeviceProps) => Device;
|
|
12
|
+
onCreateContext?: (props: ContextProps) => WebGLRenderingContext;
|
|
13
|
+
onAddHTML?: (div: HTMLDivElement) => string;
|
|
14
|
+
onInitialize?: (animationProps: AnimationProps) => {} | void;
|
|
15
|
+
onRender?: (animationProps: AnimationProps) => void;
|
|
16
|
+
onFinalize?: (animationProps: AnimationProps) => void;
|
|
17
|
+
onError?: (reason: any) => void;
|
|
18
|
+
stats?: Stats;
|
|
19
|
+
device?: Device;
|
|
20
|
+
glOptions?: ContextProps;
|
|
21
|
+
debug?: boolean;
|
|
22
|
+
autoResizeViewport?: boolean;
|
|
23
|
+
autoResizeDrawingBuffer?: boolean;
|
|
24
|
+
useDevicePixels?: number | boolean;
|
|
25
|
+
/** @deprecated Use .device */
|
|
26
|
+
gl?: WebGLRenderingContext;
|
|
27
|
+
/** @deprecated Will be removed */
|
|
28
|
+
createFramebuffer?: boolean;
|
|
29
|
+
};
|
|
30
|
+
export declare type AnimationProps = {
|
|
31
|
+
device: Device;
|
|
32
|
+
stop: () => AnimationLoop;
|
|
33
|
+
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
34
|
+
useDevicePixels: number | boolean;
|
|
35
|
+
needsRedraw?: string;
|
|
36
|
+
startTime: number;
|
|
37
|
+
engineTime: number;
|
|
38
|
+
tick: number;
|
|
39
|
+
tock: number;
|
|
40
|
+
time: number;
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
aspect: number;
|
|
44
|
+
timeline: Timeline;
|
|
45
|
+
animationLoop: AnimationLoop;
|
|
46
|
+
_mousePosition?: [number, number];
|
|
47
|
+
/** @deprecated Will be removed, create your own Framebuffer */
|
|
48
|
+
framebuffer: Framebuffer;
|
|
49
|
+
/** @deprecated Use .device */
|
|
50
|
+
gl: WebGLRenderingContext;
|
|
51
|
+
/** @deprecated Use .timeline */
|
|
52
|
+
_timeline: Timeline;
|
|
53
|
+
/** @deprecated Use .animationLoop */
|
|
54
|
+
_loop: AnimationLoop;
|
|
55
|
+
/** @deprecated Use .animationLoop */
|
|
56
|
+
_animationLoop: AnimationLoop;
|
|
57
|
+
};
|
|
58
|
+
/** Convenient animation loop */
|
|
59
|
+
export default class AnimationLoop {
|
|
60
|
+
device: Device;
|
|
61
|
+
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
62
|
+
props: Required<AnimationLoopProps>;
|
|
63
|
+
animationProps: AnimationProps;
|
|
64
|
+
framebuffer: Framebuffer;
|
|
65
|
+
timeline: Timeline;
|
|
66
|
+
stats: Stats;
|
|
67
|
+
cpuTime: Stat;
|
|
68
|
+
gpuTime: Stat;
|
|
69
|
+
frameRate: Stat;
|
|
70
|
+
display: any;
|
|
71
|
+
needsRedraw: string | null;
|
|
72
|
+
_initialized: boolean;
|
|
73
|
+
_running: boolean;
|
|
74
|
+
_animationFrameId: any;
|
|
75
|
+
_pageLoadPromise: Promise<{}> | null;
|
|
76
|
+
_nextFramePromise: Promise<AnimationLoop> | null;
|
|
77
|
+
_resolveNextFrame: ((AnimationLoop: any) => void) | null;
|
|
78
|
+
_cpuStartTime: number;
|
|
79
|
+
_gpuTimeQuery: Query | null;
|
|
80
|
+
/** @deprecated */
|
|
81
|
+
gl: WebGLRenderingContext;
|
|
82
|
+
constructor(props?: AnimationLoopProps);
|
|
83
|
+
destroy(): void;
|
|
84
|
+
/** @deprecated Use .destroy() */
|
|
85
|
+
delete(): void;
|
|
86
|
+
setNeedsRedraw(reason: string): this;
|
|
87
|
+
setProps(props: AnimationLoopProps): this;
|
|
88
|
+
start(opts?: {}): this;
|
|
89
|
+
/** Starts a render loop if not already running
|
|
90
|
+
* @param {Object} context - contains frame specific info (E.g. tick, width, height, etc)
|
|
91
|
+
*/
|
|
92
|
+
_start(opts: any): Promise<this>;
|
|
93
|
+
/** Explicitly draw a frame */
|
|
94
|
+
redraw(): this;
|
|
95
|
+
stop(): this;
|
|
96
|
+
attachTimeline(timeline: Timeline): Timeline;
|
|
97
|
+
detachTimeline(): void;
|
|
98
|
+
waitForRender(): Promise<AnimationLoop>;
|
|
99
|
+
toDataURL(): Promise<string>;
|
|
100
|
+
isContextLost(): boolean;
|
|
101
|
+
onCreateDevice(deviceProps: DeviceProps): Device;
|
|
102
|
+
onInitialize(animationProps: AnimationProps): {} | void;
|
|
103
|
+
onRender(animationProps: AnimationProps): void;
|
|
104
|
+
onFinalize(animationProps: AnimationProps): void;
|
|
105
|
+
/** @deprecated Use .onCreateDevice() */
|
|
106
|
+
onCreateContext(props: ContextProps): WebGLRenderingContext;
|
|
107
|
+
/** @deprecated */
|
|
108
|
+
getHTMLControlValue(id: any, defaultValue?: number): number;
|
|
109
|
+
_initialize(props: AnimationLoopProps): void;
|
|
110
|
+
_getPageLoadPromise(): Promise<{}>;
|
|
111
|
+
_setDisplay(display: any): void;
|
|
112
|
+
_requestAnimationFrame(): void;
|
|
113
|
+
_cancelAnimationFrame(): void;
|
|
114
|
+
_animationFrame(): void;
|
|
115
|
+
_renderFrame(props: AnimationProps): void;
|
|
116
|
+
_clearNeedsRedraw(): void;
|
|
117
|
+
_setupFrame(): void;
|
|
118
|
+
_initializeCallbackData(): void;
|
|
119
|
+
_updateCallbackData(): void;
|
|
120
|
+
_finalizeCallbackData(): void;
|
|
121
|
+
/** Add application's data to the app context object */
|
|
122
|
+
_addCallbackData(appContext: any): void;
|
|
123
|
+
/** Either uses supplied or existing context, or calls provided callback to create one */
|
|
124
|
+
_createDevice(props: DeviceProps): void;
|
|
125
|
+
_createInfoDiv(): void;
|
|
126
|
+
_getSizeAndAspect(): {
|
|
127
|
+
width: number;
|
|
128
|
+
height: number;
|
|
129
|
+
aspect: number;
|
|
130
|
+
};
|
|
131
|
+
/** Default viewport setup */
|
|
132
|
+
_resizeViewport(): void;
|
|
133
|
+
/**
|
|
134
|
+
* Resize the render buffer of the canvas to match canvas client size
|
|
135
|
+
* Optionally multiplying with devicePixel ratio
|
|
136
|
+
*/
|
|
137
|
+
_resizeCanvasDrawingBuffer(): void;
|
|
138
|
+
_beginTimers(): void;
|
|
139
|
+
_endTimers(): void;
|
|
140
|
+
_startEventHandling(): void;
|
|
141
|
+
_onMousemove(e: any): void;
|
|
142
|
+
_onMouseleave(e: any): void;
|
|
143
|
+
/** @deprecated */
|
|
144
|
+
_createFramebuffer(): void;
|
|
145
|
+
/** @deprecated */
|
|
146
|
+
_resizeFramebuffer(): void;
|
|
147
|
+
}
|
|
148
|
+
export {};
|
|
149
|
+
//# sourceMappingURL=animation-loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation-loop.d.ts","sourceRoot":"","sources":["../../src/lib/animation-loop.ts"],"names":[],"mappings":"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"}
|