@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
|
@@ -2,8 +2,17 @@ import Geometry from '../geometry/geometry';
|
|
|
2
2
|
import {unpackIndexedGeometry} from '../geometry/geometry-utils';
|
|
3
3
|
import {uid} from '@luma.gl/webgl';
|
|
4
4
|
|
|
5
|
-
export
|
|
6
|
-
|
|
5
|
+
export type PlaneGeometryProps = {
|
|
6
|
+
id?: string;
|
|
7
|
+
radius?: number;
|
|
8
|
+
attributes?
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
// Primitives inspired by TDL http://code.google.com/p/webglsamples/,
|
|
12
|
+
// copyright 2011 Google Inc. new BSD License
|
|
13
|
+
// (http://www.opensource.org/licenses/bsd-license.php).
|
|
14
|
+
export class PlaneGeometry extends Geometry {
|
|
15
|
+
constructor(props: PlaneGeometryProps = {}) {
|
|
7
16
|
const {id = uid('plane-geometry')} = props;
|
|
8
17
|
|
|
9
18
|
const {indices, attributes} = tesselatePlane(props);
|
|
@@ -16,10 +25,6 @@ export default class PlaneGeometry extends Geometry {
|
|
|
16
25
|
}
|
|
17
26
|
}
|
|
18
27
|
|
|
19
|
-
// Primitives inspired by TDL http://code.google.com/p/webglsamples/,
|
|
20
|
-
// copyright 2011 Google Inc. new BSD License
|
|
21
|
-
// (http://www.opensource.org/licenses/bsd-license.php).
|
|
22
|
-
/* eslint-disable max-statements, complexity */
|
|
23
28
|
/* eslint-disable complexity, max-statements */
|
|
24
29
|
function tesselatePlane(props) {
|
|
25
30
|
const {type = 'x,y', offset = 0, flipCull = false, unpack = false} = props;
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import Geometry from '../geometry/geometry';
|
|
2
2
|
import {uid} from '@luma.gl/webgl';
|
|
3
3
|
|
|
4
|
-
export
|
|
5
|
-
|
|
4
|
+
export type SphereGeometryProps = {
|
|
5
|
+
id?: string;
|
|
6
|
+
radius?: number;
|
|
7
|
+
nlat?: number;
|
|
8
|
+
nlong?: number;
|
|
9
|
+
attributes?
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// Primitives inspired by TDL http://code.google.com/p/webglsamples/,
|
|
13
|
+
// copyright 2011 Google Inc. new BSD License
|
|
14
|
+
// (http://www.opensource.org/licenses/bsd-license.php).
|
|
15
|
+
export class SphereGeometry extends Geometry {
|
|
16
|
+
constructor(props: SphereGeometryProps = {}) {
|
|
6
17
|
const {id = uid('sphere-geometry')} = props;
|
|
7
18
|
const {indices, attributes} = tesselateSphere(props);
|
|
8
19
|
super({
|
|
@@ -14,13 +25,9 @@ export default class SphereGeometry extends Geometry {
|
|
|
14
25
|
}
|
|
15
26
|
}
|
|
16
27
|
|
|
17
|
-
// Primitives inspired by TDL http://code.google.com/p/webglsamples/,
|
|
18
|
-
// copyright 2011 Google Inc. new BSD License
|
|
19
|
-
// (http://www.opensource.org/licenses/bsd-license.php).
|
|
20
28
|
/* eslint-disable max-statements, complexity */
|
|
21
|
-
function tesselateSphere(props) {
|
|
29
|
+
function tesselateSphere(props: SphereGeometryProps) {
|
|
22
30
|
const {nlat = 10, nlong = 10} = props;
|
|
23
|
-
let {radius = 1} = props;
|
|
24
31
|
|
|
25
32
|
const startLat = 0;
|
|
26
33
|
const endLat = Math.PI;
|
|
@@ -30,10 +37,7 @@ function tesselateSphere(props) {
|
|
|
30
37
|
const longRange = endLong - startLong;
|
|
31
38
|
const numVertices = (nlat + 1) * (nlong + 1);
|
|
32
39
|
|
|
33
|
-
|
|
34
|
-
const value = radius;
|
|
35
|
-
radius = (n1, n2, n3, u, v) => value;
|
|
36
|
-
}
|
|
40
|
+
const radius = (n1, n2, n3, u, v) => props.radius || 1;
|
|
37
41
|
|
|
38
42
|
const positions = new Float32Array(numVertices * 3);
|
|
39
43
|
const normals = new Float32Array(numVertices * 3);
|
|
@@ -7,8 +7,20 @@ const INDEX_OFFSETS = {
|
|
|
7
7
|
z: [1, 2, 0]
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
export
|
|
11
|
-
|
|
10
|
+
export type TruncatedConeGeometryProps = {
|
|
11
|
+
id?: string;
|
|
12
|
+
topRadius?: number;
|
|
13
|
+
bottomRadius?: number;
|
|
14
|
+
topCap?: boolean;
|
|
15
|
+
bottomCap?: boolean;
|
|
16
|
+
attributes?
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// Primitives inspired by TDL http://code.google.com/p/webglsamples/,
|
|
20
|
+
// copyright 2011 Google Inc. new BSD License
|
|
21
|
+
// (http://www.opensource.org/licenses/bsd-license.php).
|
|
22
|
+
export class TruncatedConeGeometry extends Geometry {
|
|
23
|
+
constructor(props: TruncatedConeGeometryProps = {}) {
|
|
12
24
|
const {id = uid('truncated-code-geometry')} = props;
|
|
13
25
|
const {indices, attributes} = tesselateTruncatedCone(props);
|
|
14
26
|
super({
|
|
@@ -20,9 +32,6 @@ export default class TruncatedConeGeometry extends Geometry {
|
|
|
20
32
|
}
|
|
21
33
|
}
|
|
22
34
|
|
|
23
|
-
// Primitives inspired by TDL http://code.google.com/p/webglsamples/,
|
|
24
|
-
// copyright 2011 Google Inc. new BSD License
|
|
25
|
-
// (http://www.opensource.org/licenses/bsd-license.php).
|
|
26
35
|
/* eslint-disable max-statements, complexity */
|
|
27
36
|
function tesselateTruncatedCone(props) {
|
|
28
37
|
const {
|
|
@@ -1,57 +1,70 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
import GL from '@luma.gl/constants';
|
|
1
3
|
import {uid, assert} from '@luma.gl/webgl';
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
//
|
|
5
|
+
/**
|
|
6
|
+
* Rendering primitives - "opology" specifies how to extract primitives from vertices.
|
|
7
|
+
*/
|
|
8
|
+
export type Topology =
|
|
9
|
+
GL.POINTS | // draw single points.
|
|
10
|
+
GL.LINES | // draw lines. Each vertex connects to the one after it.
|
|
11
|
+
GL.LINE_LOOP | // draw lines. Each set of two vertices is treated as a separate line segment.
|
|
12
|
+
GL.LINE_STRIP | // draw a connected group of line segments from the first vertex to the last
|
|
13
|
+
GL.TRIANGLES | // draw triangles. Each set of three vertices creates a separate triangle.
|
|
14
|
+
GL.TRIANGLE_STRIP | // draw a connected group of triangles.
|
|
15
|
+
GL.TRIANGLE_FAN // draw a connected group of triangles.
|
|
16
|
+
;
|
|
17
|
+
|
|
18
|
+
export type GeometryProps = {
|
|
19
|
+
id?: string;
|
|
20
|
+
drawMode?: Topology,
|
|
21
|
+
attributes?: {},
|
|
22
|
+
indices?;
|
|
23
|
+
vertexCount?: number
|
|
14
24
|
};
|
|
15
25
|
|
|
16
26
|
export default class Geometry {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
27
|
+
/** @deprecated */
|
|
28
|
+
static DRAW_MODE = {
|
|
29
|
+
POINTS: GL.POINTS, // draw single points.
|
|
30
|
+
LINES: GL.LINES, // draw lines. Each vertex connects to the one after it.
|
|
31
|
+
LINE_LOOP: GL.LINE_LOOP, // draw lines. Each set of two vertices is treated as a separate line segment.
|
|
32
|
+
LINE_STRIP: GL.LINE_STRIP, // draw a connected group of line segments from the first vertex to the last
|
|
33
|
+
TRIANGLES: GL.TRIANGLES, // draw triangles. Each set of three vertices creates a separate triangle.
|
|
34
|
+
TRIANGLE_STRIP: GL.TRIANGLE_STRIP, // draw a connected group of triangles.
|
|
35
|
+
TRIANGLE_FAN: GL.TRIANGLE_FAN // draw a connected group of triangles.
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
readonly id: string;
|
|
39
|
+
readonly drawMode: Topology = GL.TRIANGLES;
|
|
40
|
+
|
|
41
|
+
vertexCount: number;
|
|
42
|
+
attributes = {};
|
|
43
|
+
indices;
|
|
44
|
+
userData: Record<string, any> = {};
|
|
45
|
+
|
|
46
|
+
constructor(props: GeometryProps = {}) {
|
|
22
47
|
const {
|
|
23
48
|
id = uid('geometry'),
|
|
24
|
-
drawMode =
|
|
49
|
+
drawMode = GL.TRIANGLES,
|
|
25
50
|
attributes = {},
|
|
26
51
|
indices = null,
|
|
27
52
|
vertexCount = null
|
|
28
53
|
} = props;
|
|
29
54
|
|
|
30
55
|
this.id = id;
|
|
31
|
-
this.drawMode = drawMode
|
|
32
|
-
this.attributes = {};
|
|
33
|
-
this.userData = {};
|
|
56
|
+
this.drawMode = drawMode;
|
|
34
57
|
|
|
35
58
|
this._setAttributes(attributes, indices);
|
|
36
59
|
|
|
37
60
|
this.vertexCount = vertexCount || this._calculateVertexCount(this.attributes, this.indices);
|
|
38
|
-
|
|
39
|
-
// stubRemovedMethods(this, [
|
|
40
|
-
// 'setNeedsRedraw', 'needsRedraw', 'setAttributes'
|
|
41
|
-
// ], 'Immutable');
|
|
42
|
-
|
|
43
|
-
// stubRemovedMethods(this, [
|
|
44
|
-
// 'hasAttribute', 'getAttribute', 'getArray'
|
|
45
|
-
// ], 'Use geometry.attributes and geometry.indices');
|
|
46
|
-
|
|
47
|
-
// deprecateMethods(this, ['getAttributes'])
|
|
48
61
|
}
|
|
49
62
|
|
|
50
63
|
get mode() {
|
|
51
64
|
return this.drawMode;
|
|
52
65
|
}
|
|
53
66
|
|
|
54
|
-
getVertexCount() {
|
|
67
|
+
getVertexCount(): number {
|
|
55
68
|
return this.vertexCount;
|
|
56
69
|
}
|
|
57
70
|
|
|
@@ -62,7 +75,7 @@ export default class Geometry {
|
|
|
62
75
|
|
|
63
76
|
// PRIVATE
|
|
64
77
|
|
|
65
|
-
_print(attributeName) {
|
|
78
|
+
_print(attributeName): string {
|
|
66
79
|
return `Geometry ${this.id} attribute ${attributeName}`;
|
|
67
80
|
}
|
|
68
81
|
|
|
@@ -71,7 +84,7 @@ export default class Geometry {
|
|
|
71
84
|
// type: indices, vertices, uvs
|
|
72
85
|
// size: elements per vertex
|
|
73
86
|
// target: WebGL buffer type (string or constant)
|
|
74
|
-
_setAttributes(attributes, indices) {
|
|
87
|
+
_setAttributes(attributes, indices): this {
|
|
75
88
|
if (indices) {
|
|
76
89
|
this.indices = ArrayBuffer.isView(indices) ? {value: indices, size: 1} : indices;
|
|
77
90
|
}
|
|
@@ -108,7 +121,7 @@ export default class Geometry {
|
|
|
108
121
|
return this;
|
|
109
122
|
}
|
|
110
123
|
|
|
111
|
-
_calculateVertexCount(attributes, indices) {
|
|
124
|
+
_calculateVertexCount(attributes, indices): number {
|
|
112
125
|
if (indices) {
|
|
113
126
|
return indices.value.length;
|
|
114
127
|
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// CORE
|
|
2
|
+
export type {AnimationLoopProps, AnimationProps} from './lib/animation-loop';
|
|
3
|
+
export {default as AnimationLoop} from './lib/animation-loop';
|
|
4
|
+
export {RenderLoop} from './lib/render-loop';
|
|
5
|
+
|
|
6
|
+
export type {ModelProps} from './lib/model';
|
|
7
|
+
export {default as Model} from './lib/model';
|
|
8
|
+
export {default as ProgramManager} from './lib/program-manager';
|
|
9
|
+
export {default as Transform} from './transform/transform';
|
|
10
|
+
|
|
11
|
+
// Geometries
|
|
12
|
+
export {default as Geometry} from './geometry/geometry';
|
|
13
|
+
|
|
14
|
+
// Primitives
|
|
15
|
+
export type {ConeGeometryProps} from './geometries/cone-geometry';
|
|
16
|
+
export {ConeGeometry} from './geometries/cone-geometry';
|
|
17
|
+
export type {CubeGeometryProps} from './geometries/cube-geometry';
|
|
18
|
+
export {CubeGeometry} from './geometries/cube-geometry';
|
|
19
|
+
export type {CylinderGeometryProps} from './geometries/cylinder-geometry';
|
|
20
|
+
export {CylinderGeometry} from './geometries/cylinder-geometry';
|
|
21
|
+
export type {IcoSphereGeometryProps} from './geometries/ico-sphere-geometry';
|
|
22
|
+
export {IcoSphereGeometry} from './geometries/ico-sphere-geometry';
|
|
23
|
+
export type {PlaneGeometryProps} from './geometries/plane-geometry';
|
|
24
|
+
export {PlaneGeometry} from './geometries/plane-geometry';
|
|
25
|
+
export type {SphereGeometryProps} from './geometries/sphere-geometry';
|
|
26
|
+
export {SphereGeometry} from './geometries/sphere-geometry';
|
|
27
|
+
export type {TruncatedConeGeometryProps} from './geometries/truncated-cone-geometry';
|
|
28
|
+
export {TruncatedConeGeometry} from './geometries/truncated-cone-geometry';
|
|
29
|
+
|
|
30
|
+
// Animation
|
|
31
|
+
export {Timeline} from './animation/timeline';
|
|
32
|
+
export {KeyFrames} from './animation/key-frames';
|
|
33
|
+
|
|
34
|
+
// Utils
|
|
35
|
+
export {default as ClipSpace} from './utils/clip-space';
|