@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
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
|
|
18
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
-
|
|
20
|
-
var _geometry = _interopRequireDefault(require("../geometry/geometry"));
|
|
21
|
-
|
|
22
|
-
var _webgl = require("@luma.gl/webgl");
|
|
23
|
-
|
|
24
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
25
|
-
|
|
26
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
27
|
-
|
|
28
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
29
|
-
|
|
30
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
31
|
-
|
|
32
|
-
var SphereGeometry = function (_Geometry) {
|
|
33
|
-
(0, _inherits2.default)(SphereGeometry, _Geometry);
|
|
34
|
-
|
|
35
|
-
var _super = _createSuper(SphereGeometry);
|
|
36
|
-
|
|
37
|
-
function SphereGeometry() {
|
|
38
|
-
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
39
|
-
(0, _classCallCheck2.default)(this, SphereGeometry);
|
|
40
|
-
var _props$id = props.id,
|
|
41
|
-
id = _props$id === void 0 ? (0, _webgl.uid)('sphere-geometry') : _props$id;
|
|
42
|
-
|
|
43
|
-
var _tesselateSphere = tesselateSphere(props),
|
|
44
|
-
indices = _tesselateSphere.indices,
|
|
45
|
-
attributes = _tesselateSphere.attributes;
|
|
46
|
-
|
|
47
|
-
return _super.call(this, _objectSpread(_objectSpread({}, props), {}, {
|
|
48
|
-
id: id,
|
|
49
|
-
indices: indices,
|
|
50
|
-
attributes: _objectSpread(_objectSpread({}, attributes), props.attributes)
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return SphereGeometry;
|
|
55
|
-
}(_geometry.default);
|
|
56
|
-
|
|
57
|
-
exports.default = SphereGeometry;
|
|
58
|
-
|
|
59
|
-
function tesselateSphere(props) {
|
|
60
|
-
var _props$nlat = props.nlat,
|
|
61
|
-
nlat = _props$nlat === void 0 ? 10 : _props$nlat,
|
|
62
|
-
_props$nlong = props.nlong,
|
|
63
|
-
nlong = _props$nlong === void 0 ? 10 : _props$nlong;
|
|
64
|
-
var _props$radius = props.radius,
|
|
65
|
-
radius = _props$radius === void 0 ? 1 : _props$radius;
|
|
66
|
-
var startLat = 0;
|
|
67
|
-
var endLat = Math.PI;
|
|
68
|
-
var latRange = endLat - startLat;
|
|
69
|
-
var startLong = 0;
|
|
70
|
-
var endLong = 2 * Math.PI;
|
|
71
|
-
var longRange = endLong - startLong;
|
|
72
|
-
var numVertices = (nlat + 1) * (nlong + 1);
|
|
73
|
-
|
|
74
|
-
if (typeof radius === 'number') {
|
|
75
|
-
var value = radius;
|
|
76
|
-
|
|
77
|
-
radius = function radius(n1, n2, n3, u, v) {
|
|
78
|
-
return value;
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
var positions = new Float32Array(numVertices * 3);
|
|
83
|
-
var normals = new Float32Array(numVertices * 3);
|
|
84
|
-
var texCoords = new Float32Array(numVertices * 2);
|
|
85
|
-
var IndexType = numVertices > 0xffff ? Uint32Array : Uint16Array;
|
|
86
|
-
var indices = new IndexType(nlat * nlong * 6);
|
|
87
|
-
|
|
88
|
-
for (var y = 0; y <= nlat; y++) {
|
|
89
|
-
for (var x = 0; x <= nlong; x++) {
|
|
90
|
-
var u = x / nlong;
|
|
91
|
-
var v = y / nlat;
|
|
92
|
-
var index = x + y * (nlong + 1);
|
|
93
|
-
var i2 = index * 2;
|
|
94
|
-
var i3 = index * 3;
|
|
95
|
-
var theta = longRange * u;
|
|
96
|
-
var phi = latRange * v;
|
|
97
|
-
var sinTheta = Math.sin(theta);
|
|
98
|
-
var cosTheta = Math.cos(theta);
|
|
99
|
-
var sinPhi = Math.sin(phi);
|
|
100
|
-
var cosPhi = Math.cos(phi);
|
|
101
|
-
var ux = cosTheta * sinPhi;
|
|
102
|
-
var uy = cosPhi;
|
|
103
|
-
var uz = sinTheta * sinPhi;
|
|
104
|
-
var r = radius(ux, uy, uz, u, v);
|
|
105
|
-
positions[i3 + 0] = r * ux;
|
|
106
|
-
positions[i3 + 1] = r * uy;
|
|
107
|
-
positions[i3 + 2] = r * uz;
|
|
108
|
-
normals[i3 + 0] = ux;
|
|
109
|
-
normals[i3 + 1] = uy;
|
|
110
|
-
normals[i3 + 2] = uz;
|
|
111
|
-
texCoords[i2 + 0] = u;
|
|
112
|
-
texCoords[i2 + 1] = 1 - v;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
var numVertsAround = nlong + 1;
|
|
117
|
-
|
|
118
|
-
for (var _x = 0; _x < nlong; _x++) {
|
|
119
|
-
for (var _y = 0; _y < nlat; _y++) {
|
|
120
|
-
var _index = (_x * nlat + _y) * 6;
|
|
121
|
-
|
|
122
|
-
indices[_index + 0] = _y * numVertsAround + _x;
|
|
123
|
-
indices[_index + 1] = _y * numVertsAround + _x + 1;
|
|
124
|
-
indices[_index + 2] = (_y + 1) * numVertsAround + _x;
|
|
125
|
-
indices[_index + 3] = (_y + 1) * numVertsAround + _x;
|
|
126
|
-
indices[_index + 4] = _y * numVertsAround + _x + 1;
|
|
127
|
-
indices[_index + 5] = (_y + 1) * numVertsAround + _x + 1;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
return {
|
|
132
|
-
indices: {
|
|
133
|
-
size: 1,
|
|
134
|
-
value: indices
|
|
135
|
-
},
|
|
136
|
-
attributes: {
|
|
137
|
-
POSITION: {
|
|
138
|
-
size: 3,
|
|
139
|
-
value: positions
|
|
140
|
-
},
|
|
141
|
-
NORMAL: {
|
|
142
|
-
size: 3,
|
|
143
|
-
value: normals
|
|
144
|
-
},
|
|
145
|
-
TEXCOORD_0: {
|
|
146
|
-
size: 2,
|
|
147
|
-
value: texCoords
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
//# sourceMappingURL=sphere-geometry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/geometries/sphere-geometry.js"],"names":["SphereGeometry","props","id","tesselateSphere","indices","attributes","Geometry","nlat","nlong","radius","startLat","endLat","Math","PI","latRange","startLong","endLong","longRange","numVertices","value","n1","n2","n3","u","v","positions","Float32Array","normals","texCoords","IndexType","Uint32Array","Uint16Array","y","x","index","i2","i3","theta","phi","sinTheta","sin","cosTheta","cos","sinPhi","cosPhi","ux","uy","uz","r","numVertsAround","size","POSITION","NORMAL","TEXCOORD_0"],"mappings":"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","sourcesContent":["import Geometry from '../geometry/geometry';\nimport {uid} from '@luma.gl/webgl';\n\nexport default class SphereGeometry extends Geometry {\n constructor(props = {}) {\n const {id = uid('sphere-geometry')} = props;\n const {indices, attributes} = tesselateSphere(props);\n super({\n ...props,\n id,\n indices,\n attributes: {...attributes, ...props.attributes}\n });\n }\n}\n\n// Primitives inspired by TDL http://code.google.com/p/webglsamples/,\n// copyright 2011 Google Inc. new BSD License\n// (http://www.opensource.org/licenses/bsd-license.php).\n/* eslint-disable max-statements, complexity */\nfunction tesselateSphere(props) {\n const {nlat = 10, nlong = 10} = props;\n let {radius = 1} = props;\n\n const startLat = 0;\n const endLat = Math.PI;\n const latRange = endLat - startLat;\n const startLong = 0;\n const endLong = 2 * Math.PI;\n const longRange = endLong - startLong;\n const numVertices = (nlat + 1) * (nlong + 1);\n\n if (typeof radius === 'number') {\n const value = radius;\n radius = (n1, n2, n3, u, v) => value;\n }\n\n const positions = new Float32Array(numVertices * 3);\n const normals = new Float32Array(numVertices * 3);\n const texCoords = new Float32Array(numVertices * 2);\n\n const IndexType = numVertices > 0xffff ? Uint32Array : Uint16Array;\n const indices = new IndexType(nlat * nlong * 6);\n\n // Create positions, normals and texCoords\n for (let y = 0; y <= nlat; y++) {\n for (let x = 0; x <= nlong; x++) {\n const u = x / nlong;\n const v = y / nlat;\n\n const index = x + y * (nlong + 1);\n const i2 = index * 2;\n const i3 = index * 3;\n\n const theta = longRange * u;\n const phi = latRange * v;\n const sinTheta = Math.sin(theta);\n const cosTheta = Math.cos(theta);\n const sinPhi = Math.sin(phi);\n const cosPhi = Math.cos(phi);\n const ux = cosTheta * sinPhi;\n const uy = cosPhi;\n const uz = sinTheta * sinPhi;\n\n const r = radius(ux, uy, uz, u, v);\n\n positions[i3 + 0] = r * ux;\n positions[i3 + 1] = r * uy;\n positions[i3 + 2] = r * uz;\n\n normals[i3 + 0] = ux;\n normals[i3 + 1] = uy;\n normals[i3 + 2] = uz;\n\n texCoords[i2 + 0] = u;\n texCoords[i2 + 1] = 1 - v;\n }\n }\n\n // Create indices\n const numVertsAround = nlong + 1;\n for (let x = 0; x < nlong; x++) {\n for (let y = 0; y < nlat; y++) {\n const index = (x * nlat + y) * 6;\n\n indices[index + 0] = y * numVertsAround + x;\n indices[index + 1] = y * numVertsAround + x + 1;\n indices[index + 2] = (y + 1) * numVertsAround + x;\n\n indices[index + 3] = (y + 1) * numVertsAround + x;\n indices[index + 4] = y * numVertsAround + x + 1;\n indices[index + 5] = (y + 1) * numVertsAround + x + 1;\n }\n }\n\n return {\n indices: {size: 1, value: indices},\n attributes: {\n POSITION: {size: 3, value: positions},\n NORMAL: {size: 3, value: normals},\n TEXCOORD_0: {size: 2, value: texCoords}\n }\n };\n}\n"],"file":"sphere-geometry.js"}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
|
|
18
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
-
|
|
20
|
-
var _geometry = _interopRequireDefault(require("../geometry/geometry"));
|
|
21
|
-
|
|
22
|
-
var _webgl = require("@luma.gl/webgl");
|
|
23
|
-
|
|
24
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
25
|
-
|
|
26
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
27
|
-
|
|
28
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
29
|
-
|
|
30
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
31
|
-
|
|
32
|
-
var INDEX_OFFSETS = {
|
|
33
|
-
x: [2, 0, 1],
|
|
34
|
-
y: [0, 1, 2],
|
|
35
|
-
z: [1, 2, 0]
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
var TruncatedConeGeometry = function (_Geometry) {
|
|
39
|
-
(0, _inherits2.default)(TruncatedConeGeometry, _Geometry);
|
|
40
|
-
|
|
41
|
-
var _super = _createSuper(TruncatedConeGeometry);
|
|
42
|
-
|
|
43
|
-
function TruncatedConeGeometry() {
|
|
44
|
-
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
45
|
-
(0, _classCallCheck2.default)(this, TruncatedConeGeometry);
|
|
46
|
-
var _props$id = props.id,
|
|
47
|
-
id = _props$id === void 0 ? (0, _webgl.uid)('truncated-code-geometry') : _props$id;
|
|
48
|
-
|
|
49
|
-
var _tesselateTruncatedCo = tesselateTruncatedCone(props),
|
|
50
|
-
indices = _tesselateTruncatedCo.indices,
|
|
51
|
-
attributes = _tesselateTruncatedCo.attributes;
|
|
52
|
-
|
|
53
|
-
return _super.call(this, _objectSpread(_objectSpread({}, props), {}, {
|
|
54
|
-
id: id,
|
|
55
|
-
indices: indices,
|
|
56
|
-
attributes: _objectSpread(_objectSpread({}, attributes), props.attributes)
|
|
57
|
-
}));
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return TruncatedConeGeometry;
|
|
61
|
-
}(_geometry.default);
|
|
62
|
-
|
|
63
|
-
exports.default = TruncatedConeGeometry;
|
|
64
|
-
|
|
65
|
-
function tesselateTruncatedCone(props) {
|
|
66
|
-
var _props$bottomRadius = props.bottomRadius,
|
|
67
|
-
bottomRadius = _props$bottomRadius === void 0 ? 0 : _props$bottomRadius,
|
|
68
|
-
_props$topRadius = props.topRadius,
|
|
69
|
-
topRadius = _props$topRadius === void 0 ? 0 : _props$topRadius,
|
|
70
|
-
_props$height = props.height,
|
|
71
|
-
height = _props$height === void 0 ? 1 : _props$height,
|
|
72
|
-
_props$nradial = props.nradial,
|
|
73
|
-
nradial = _props$nradial === void 0 ? 10 : _props$nradial,
|
|
74
|
-
_props$nvertical = props.nvertical,
|
|
75
|
-
nvertical = _props$nvertical === void 0 ? 10 : _props$nvertical,
|
|
76
|
-
_props$verticalAxis = props.verticalAxis,
|
|
77
|
-
verticalAxis = _props$verticalAxis === void 0 ? 'y' : _props$verticalAxis,
|
|
78
|
-
_props$topCap = props.topCap,
|
|
79
|
-
topCap = _props$topCap === void 0 ? false : _props$topCap,
|
|
80
|
-
_props$bottomCap = props.bottomCap,
|
|
81
|
-
bottomCap = _props$bottomCap === void 0 ? false : _props$bottomCap;
|
|
82
|
-
var extra = (topCap ? 2 : 0) + (bottomCap ? 2 : 0);
|
|
83
|
-
var numVertices = (nradial + 1) * (nvertical + 1 + extra);
|
|
84
|
-
var slant = Math.atan2(bottomRadius - topRadius, height);
|
|
85
|
-
var msin = Math.sin;
|
|
86
|
-
var mcos = Math.cos;
|
|
87
|
-
var mpi = Math.PI;
|
|
88
|
-
var cosSlant = mcos(slant);
|
|
89
|
-
var sinSlant = msin(slant);
|
|
90
|
-
var start = topCap ? -2 : 0;
|
|
91
|
-
var end = nvertical + (bottomCap ? 2 : 0);
|
|
92
|
-
var vertsAroundEdge = nradial + 1;
|
|
93
|
-
var indices = new Uint16Array(nradial * (nvertical + extra) * 6);
|
|
94
|
-
var indexOffset = INDEX_OFFSETS[verticalAxis];
|
|
95
|
-
var positions = new Float32Array(numVertices * 3);
|
|
96
|
-
var normals = new Float32Array(numVertices * 3);
|
|
97
|
-
var texCoords = new Float32Array(numVertices * 2);
|
|
98
|
-
var i3 = 0;
|
|
99
|
-
var i2 = 0;
|
|
100
|
-
|
|
101
|
-
for (var i = start; i <= end; i++) {
|
|
102
|
-
var v = i / nvertical;
|
|
103
|
-
var y = height * v;
|
|
104
|
-
var ringRadius = void 0;
|
|
105
|
-
|
|
106
|
-
if (i < 0) {
|
|
107
|
-
y = 0;
|
|
108
|
-
v = 1;
|
|
109
|
-
ringRadius = bottomRadius;
|
|
110
|
-
} else if (i > nvertical) {
|
|
111
|
-
y = height;
|
|
112
|
-
v = 1;
|
|
113
|
-
ringRadius = topRadius;
|
|
114
|
-
} else {
|
|
115
|
-
ringRadius = bottomRadius + (topRadius - bottomRadius) * (i / nvertical);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (i === -2 || i === nvertical + 2) {
|
|
119
|
-
ringRadius = 0;
|
|
120
|
-
v = 0;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
y -= height / 2;
|
|
124
|
-
|
|
125
|
-
for (var j = 0; j < vertsAroundEdge; j++) {
|
|
126
|
-
var sin = msin(j * mpi * 2 / nradial);
|
|
127
|
-
var cos = mcos(j * mpi * 2 / nradial);
|
|
128
|
-
positions[i3 + indexOffset[0]] = sin * ringRadius;
|
|
129
|
-
positions[i3 + indexOffset[1]] = y;
|
|
130
|
-
positions[i3 + indexOffset[2]] = cos * ringRadius;
|
|
131
|
-
normals[i3 + indexOffset[0]] = i < 0 || i > nvertical ? 0 : sin * cosSlant;
|
|
132
|
-
normals[i3 + indexOffset[1]] = i < 0 ? -1 : i > nvertical ? 1 : sinSlant;
|
|
133
|
-
normals[i3 + indexOffset[2]] = i < 0 || i > nvertical ? 0 : cos * cosSlant;
|
|
134
|
-
texCoords[i2 + 0] = j / nradial;
|
|
135
|
-
texCoords[i2 + 1] = v;
|
|
136
|
-
i2 += 2;
|
|
137
|
-
i3 += 3;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
for (var _i = 0; _i < nvertical + extra; _i++) {
|
|
142
|
-
for (var _j = 0; _j < nradial; _j++) {
|
|
143
|
-
var index = (_i * nradial + _j) * 6;
|
|
144
|
-
indices[index + 0] = vertsAroundEdge * (_i + 0) + 0 + _j;
|
|
145
|
-
indices[index + 1] = vertsAroundEdge * (_i + 0) + 1 + _j;
|
|
146
|
-
indices[index + 2] = vertsAroundEdge * (_i + 1) + 1 + _j;
|
|
147
|
-
indices[index + 3] = vertsAroundEdge * (_i + 0) + 0 + _j;
|
|
148
|
-
indices[index + 4] = vertsAroundEdge * (_i + 1) + 1 + _j;
|
|
149
|
-
indices[index + 5] = vertsAroundEdge * (_i + 1) + 0 + _j;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return {
|
|
154
|
-
indices: indices,
|
|
155
|
-
attributes: {
|
|
156
|
-
POSITION: {
|
|
157
|
-
size: 3,
|
|
158
|
-
value: positions
|
|
159
|
-
},
|
|
160
|
-
NORMAL: {
|
|
161
|
-
size: 3,
|
|
162
|
-
value: normals
|
|
163
|
-
},
|
|
164
|
-
TEXCOORD_0: {
|
|
165
|
-
size: 2,
|
|
166
|
-
value: texCoords
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=truncated-cone-geometry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/geometries/truncated-cone-geometry.js"],"names":["INDEX_OFFSETS","x","y","z","TruncatedConeGeometry","props","id","tesselateTruncatedCone","indices","attributes","Geometry","bottomRadius","topRadius","height","nradial","nvertical","verticalAxis","topCap","bottomCap","extra","numVertices","slant","Math","atan2","msin","sin","mcos","cos","mpi","PI","cosSlant","sinSlant","start","end","vertsAroundEdge","Uint16Array","indexOffset","positions","Float32Array","normals","texCoords","i3","i2","i","v","ringRadius","j","index","POSITION","size","value","NORMAL","TEXCOORD_0"],"mappings":"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","sourcesContent":["import Geometry from '../geometry/geometry';\nimport {uid} from '@luma.gl/webgl';\n\nconst INDEX_OFFSETS = {\n x: [2, 0, 1],\n y: [0, 1, 2],\n z: [1, 2, 0]\n};\n\nexport default class TruncatedConeGeometry extends Geometry {\n constructor(props = {}) {\n const {id = uid('truncated-code-geometry')} = props;\n const {indices, attributes} = tesselateTruncatedCone(props);\n super({\n ...props,\n id,\n indices,\n attributes: {...attributes, ...props.attributes}\n });\n }\n}\n\n// Primitives inspired by TDL http://code.google.com/p/webglsamples/,\n// copyright 2011 Google Inc. new BSD License\n// (http://www.opensource.org/licenses/bsd-license.php).\n/* eslint-disable max-statements, complexity */\nfunction tesselateTruncatedCone(props) {\n const {\n bottomRadius = 0,\n topRadius = 0,\n height = 1,\n nradial = 10,\n nvertical = 10,\n verticalAxis = 'y',\n topCap = false,\n bottomCap = false\n } = props;\n\n const extra = (topCap ? 2 : 0) + (bottomCap ? 2 : 0);\n const numVertices = (nradial + 1) * (nvertical + 1 + extra);\n\n const slant = Math.atan2(bottomRadius - topRadius, height);\n const msin = Math.sin;\n const mcos = Math.cos;\n const mpi = Math.PI;\n const cosSlant = mcos(slant);\n const sinSlant = msin(slant);\n const start = topCap ? -2 : 0;\n const end = nvertical + (bottomCap ? 2 : 0);\n const vertsAroundEdge = nradial + 1;\n\n const indices = new Uint16Array(nradial * (nvertical + extra) * 6);\n const indexOffset = INDEX_OFFSETS[verticalAxis];\n\n const positions = new Float32Array(numVertices * 3);\n const normals = new Float32Array(numVertices * 3);\n const texCoords = new Float32Array(numVertices * 2);\n\n let i3 = 0;\n let i2 = 0;\n for (let i = start; i <= end; i++) {\n let v = i / nvertical;\n let y = height * v;\n let ringRadius;\n\n if (i < 0) {\n y = 0;\n v = 1;\n ringRadius = bottomRadius;\n } else if (i > nvertical) {\n y = height;\n v = 1;\n ringRadius = topRadius;\n } else {\n ringRadius = bottomRadius + (topRadius - bottomRadius) * (i / nvertical);\n }\n if (i === -2 || i === nvertical + 2) {\n ringRadius = 0;\n v = 0;\n }\n y -= height / 2;\n for (let j = 0; j < vertsAroundEdge; j++) {\n const sin = msin((j * mpi * 2) / nradial);\n const cos = mcos((j * mpi * 2) / nradial);\n\n positions[i3 + indexOffset[0]] = sin * ringRadius;\n positions[i3 + indexOffset[1]] = y;\n positions[i3 + indexOffset[2]] = cos * ringRadius;\n\n normals[i3 + indexOffset[0]] = i < 0 || i > nvertical ? 0 : sin * cosSlant;\n normals[i3 + indexOffset[1]] = i < 0 ? -1 : i > nvertical ? 1 : sinSlant;\n normals[i3 + indexOffset[2]] = i < 0 || i > nvertical ? 0 : cos * cosSlant;\n\n texCoords[i2 + 0] = j / nradial;\n texCoords[i2 + 1] = v;\n\n i2 += 2;\n i3 += 3;\n }\n }\n\n for (let i = 0; i < nvertical + extra; i++) {\n for (let j = 0; j < nradial; j++) {\n const index = (i * nradial + j) * 6;\n indices[index + 0] = vertsAroundEdge * (i + 0) + 0 + j;\n indices[index + 1] = vertsAroundEdge * (i + 0) + 1 + j;\n indices[index + 2] = vertsAroundEdge * (i + 1) + 1 + j;\n indices[index + 3] = vertsAroundEdge * (i + 0) + 0 + j;\n indices[index + 4] = vertsAroundEdge * (i + 1) + 1 + j;\n indices[index + 5] = vertsAroundEdge * (i + 1) + 0 + j;\n }\n }\n\n return {\n indices,\n attributes: {\n POSITION: {size: 3, value: positions},\n NORMAL: {size: 3, value: normals},\n TEXCOORD_0: {size: 2, value: texCoords}\n }\n };\n}\n"],"file":"truncated-cone-geometry.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export function unpackIndexedGeometry(geometry: any): any;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.unpackIndexedGeometry = unpackIndexedGeometry;
|
|
7
|
-
|
|
8
|
-
function unpackIndexedGeometry(geometry) {
|
|
9
|
-
var indices = geometry.indices,
|
|
10
|
-
attributes = geometry.attributes;
|
|
11
|
-
|
|
12
|
-
if (!indices) {
|
|
13
|
-
return geometry;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
var vertexCount = indices.value.length;
|
|
17
|
-
var unpackedAttributes = {};
|
|
18
|
-
|
|
19
|
-
for (var attributeName in attributes) {
|
|
20
|
-
var attribute = attributes[attributeName];
|
|
21
|
-
var constant = attribute.constant,
|
|
22
|
-
value = attribute.value,
|
|
23
|
-
size = attribute.size;
|
|
24
|
-
|
|
25
|
-
if (constant || !size) {
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
var unpackedValue = new value.constructor(vertexCount * size);
|
|
30
|
-
|
|
31
|
-
for (var x = 0; x < vertexCount; ++x) {
|
|
32
|
-
var index = indices.value[x];
|
|
33
|
-
|
|
34
|
-
for (var i = 0; i < size; i++) {
|
|
35
|
-
unpackedValue[x * size + i] = value[index * size + i];
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
unpackedAttributes[attributeName] = {
|
|
40
|
-
size: size,
|
|
41
|
-
value: unpackedValue
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return {
|
|
46
|
-
attributes: Object.assign({}, attributes, unpackedAttributes)
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=geometry-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/geometry/geometry-utils.js"],"names":["unpackIndexedGeometry","geometry","indices","attributes","vertexCount","value","length","unpackedAttributes","attributeName","attribute","constant","size","unpackedValue","constructor","x","index","i","Object","assign"],"mappings":";;;;;;;AAAO,SAASA,qBAAT,CAA+BC,QAA/B,EAAyC;AAAA,MACvCC,OADuC,GAChBD,QADgB,CACvCC,OADuC;AAAA,MAC9BC,UAD8B,GAChBF,QADgB,CAC9BE,UAD8B;;AAE9C,MAAI,CAACD,OAAL,EAAc;AACZ,WAAOD,QAAP;AACD;;AAED,MAAMG,WAAW,GAAGF,OAAO,CAACG,KAAR,CAAcC,MAAlC;AACA,MAAMC,kBAAkB,GAAG,EAA3B;;AAEA,OAAK,IAAMC,aAAX,IAA4BL,UAA5B,EAAwC;AACtC,QAAMM,SAAS,GAAGN,UAAU,CAACK,aAAD,CAA5B;AADsC,QAE/BE,QAF+B,GAEND,SAFM,CAE/BC,QAF+B;AAAA,QAErBL,KAFqB,GAENI,SAFM,CAErBJ,KAFqB;AAAA,QAEdM,IAFc,GAENF,SAFM,CAEdE,IAFc;;AAGtC,QAAID,QAAQ,IAAI,CAACC,IAAjB,EAAuB;AACrB;AACD;;AACD,QAAMC,aAAa,GAAG,IAAIP,KAAK,CAACQ,WAAV,CAAsBT,WAAW,GAAGO,IAApC,CAAtB;;AACA,SAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGV,WAApB,EAAiC,EAAEU,CAAnC,EAAsC;AACpC,UAAMC,KAAK,GAAGb,OAAO,CAACG,KAAR,CAAcS,CAAd,CAAd;;AACA,WAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,IAApB,EAA0BK,CAAC,EAA3B,EAA+B;AAC7BJ,QAAAA,aAAa,CAACE,CAAC,GAAGH,IAAJ,GAAWK,CAAZ,CAAb,GAA8BX,KAAK,CAACU,KAAK,GAAGJ,IAAR,GAAeK,CAAhB,CAAnC;AACD;AACF;;AACDT,IAAAA,kBAAkB,CAACC,aAAD,CAAlB,GAAoC;AAACG,MAAAA,IAAI,EAAJA,IAAD;AAAON,MAAAA,KAAK,EAAEO;AAAd,KAApC;AACD;;AAED,SAAO;AACLT,IAAAA,UAAU,EAAEc,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBf,UAAlB,EAA8BI,kBAA9B;AADP,GAAP;AAGD","sourcesContent":["export function unpackIndexedGeometry(geometry) {\n const {indices, attributes} = geometry;\n if (!indices) {\n return geometry;\n }\n\n const vertexCount = indices.value.length;\n const unpackedAttributes = {};\n\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n const {constant, value, size} = attribute;\n if (constant || !size) {\n continue; // eslint-disable-line\n }\n const unpackedValue = new value.constructor(vertexCount * size);\n for (let x = 0; x < vertexCount; ++x) {\n const index = indices.value[x];\n for (let i = 0; i < size; i++) {\n unpackedValue[x * size + i] = value[index * size + i];\n }\n }\n unpackedAttributes[attributeName] = {size, value: unpackedValue};\n }\n\n return {\n attributes: Object.assign({}, attributes, unpackedAttributes)\n };\n}\n"],"file":"geometry-utils.js"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export const DRAW_MODE: {
|
|
2
|
-
POINTS: number;
|
|
3
|
-
LINES: number;
|
|
4
|
-
LINE_LOOP: number;
|
|
5
|
-
LINE_STRIP: number;
|
|
6
|
-
TRIANGLES: number;
|
|
7
|
-
TRIANGLE_STRIP: number;
|
|
8
|
-
TRIANGLE_FAN: number;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export default class Geometry {
|
|
12
|
-
static get DRAW_MODE(): {
|
|
13
|
-
POINTS: number;
|
|
14
|
-
LINES: number;
|
|
15
|
-
LINE_LOOP: number;
|
|
16
|
-
LINE_STRIP: number;
|
|
17
|
-
TRIANGLES: number;
|
|
18
|
-
TRIANGLE_STRIP: number;
|
|
19
|
-
TRIANGLE_FAN: number;
|
|
20
|
-
};
|
|
21
|
-
constructor(props?: {});
|
|
22
|
-
get mode(): any;
|
|
23
|
-
getVertexCount(): any;
|
|
24
|
-
getAttributes(): any;
|
|
25
|
-
}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = exports.DRAW_MODE = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
|
-
var _webgl = require("@luma.gl/webgl");
|
|
17
|
-
|
|
18
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
-
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
|
-
|
|
22
|
-
var DRAW_MODE = {
|
|
23
|
-
POINTS: 0x0000,
|
|
24
|
-
LINES: 0x0001,
|
|
25
|
-
LINE_LOOP: 0x0002,
|
|
26
|
-
LINE_STRIP: 0x0003,
|
|
27
|
-
TRIANGLES: 0x0004,
|
|
28
|
-
TRIANGLE_STRIP: 0x0005,
|
|
29
|
-
TRIANGLE_FAN: 0x0006
|
|
30
|
-
};
|
|
31
|
-
exports.DRAW_MODE = DRAW_MODE;
|
|
32
|
-
|
|
33
|
-
var Geometry = function () {
|
|
34
|
-
(0, _createClass2.default)(Geometry, null, [{
|
|
35
|
-
key: "DRAW_MODE",
|
|
36
|
-
get: function get() {
|
|
37
|
-
return DRAW_MODE;
|
|
38
|
-
}
|
|
39
|
-
}]);
|
|
40
|
-
|
|
41
|
-
function Geometry() {
|
|
42
|
-
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
43
|
-
(0, _classCallCheck2.default)(this, Geometry);
|
|
44
|
-
var _props$id = props.id,
|
|
45
|
-
id = _props$id === void 0 ? (0, _webgl.uid)('geometry') : _props$id,
|
|
46
|
-
_props$drawMode = props.drawMode,
|
|
47
|
-
drawMode = _props$drawMode === void 0 ? DRAW_MODE.TRIANGLES : _props$drawMode,
|
|
48
|
-
_props$attributes = props.attributes,
|
|
49
|
-
attributes = _props$attributes === void 0 ? {} : _props$attributes,
|
|
50
|
-
_props$indices = props.indices,
|
|
51
|
-
indices = _props$indices === void 0 ? null : _props$indices,
|
|
52
|
-
_props$vertexCount = props.vertexCount,
|
|
53
|
-
vertexCount = _props$vertexCount === void 0 ? null : _props$vertexCount;
|
|
54
|
-
this.id = id;
|
|
55
|
-
this.drawMode = drawMode | 0;
|
|
56
|
-
this.attributes = {};
|
|
57
|
-
this.userData = {};
|
|
58
|
-
|
|
59
|
-
this._setAttributes(attributes, indices);
|
|
60
|
-
|
|
61
|
-
this.vertexCount = vertexCount || this._calculateVertexCount(this.attributes, this.indices);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
(0, _createClass2.default)(Geometry, [{
|
|
65
|
-
key: "getVertexCount",
|
|
66
|
-
value: function getVertexCount() {
|
|
67
|
-
return this.vertexCount;
|
|
68
|
-
}
|
|
69
|
-
}, {
|
|
70
|
-
key: "getAttributes",
|
|
71
|
-
value: function getAttributes() {
|
|
72
|
-
return this.indices ? _objectSpread({
|
|
73
|
-
indices: this.indices
|
|
74
|
-
}, this.attributes) : this.attributes;
|
|
75
|
-
}
|
|
76
|
-
}, {
|
|
77
|
-
key: "_print",
|
|
78
|
-
value: function _print(attributeName) {
|
|
79
|
-
return "Geometry ".concat(this.id, " attribute ").concat(attributeName);
|
|
80
|
-
}
|
|
81
|
-
}, {
|
|
82
|
-
key: "_setAttributes",
|
|
83
|
-
value: function _setAttributes(attributes, indices) {
|
|
84
|
-
if (indices) {
|
|
85
|
-
this.indices = ArrayBuffer.isView(indices) ? {
|
|
86
|
-
value: indices,
|
|
87
|
-
size: 1
|
|
88
|
-
} : indices;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
for (var attributeName in attributes) {
|
|
92
|
-
var attribute = attributes[attributeName];
|
|
93
|
-
attribute = ArrayBuffer.isView(attribute) ? {
|
|
94
|
-
value: attribute
|
|
95
|
-
} : attribute;
|
|
96
|
-
(0, _webgl.assert)(ArrayBuffer.isView(attribute.value), "".concat(this._print(attributeName), ": must be typed array or object with value as typed array"));
|
|
97
|
-
|
|
98
|
-
if ((attributeName === 'POSITION' || attributeName === 'positions') && !attribute.size) {
|
|
99
|
-
attribute.size = 3;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (attributeName === 'indices') {
|
|
103
|
-
(0, _webgl.assert)(!this.indices);
|
|
104
|
-
this.indices = attribute;
|
|
105
|
-
} else {
|
|
106
|
-
this.attributes[attributeName] = attribute;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (this.indices && this.indices.isIndexed !== undefined) {
|
|
111
|
-
this.indices = Object.assign({}, this.indices);
|
|
112
|
-
delete this.indices.isIndexed;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return this;
|
|
116
|
-
}
|
|
117
|
-
}, {
|
|
118
|
-
key: "_calculateVertexCount",
|
|
119
|
-
value: function _calculateVertexCount(attributes, indices) {
|
|
120
|
-
if (indices) {
|
|
121
|
-
return indices.value.length;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
var vertexCount = Infinity;
|
|
125
|
-
|
|
126
|
-
for (var attributeName in attributes) {
|
|
127
|
-
var attribute = attributes[attributeName];
|
|
128
|
-
var value = attribute.value,
|
|
129
|
-
size = attribute.size,
|
|
130
|
-
constant = attribute.constant;
|
|
131
|
-
|
|
132
|
-
if (!constant && value && size >= 1) {
|
|
133
|
-
vertexCount = Math.min(vertexCount, value.length / size);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
(0, _webgl.assert)(Number.isFinite(vertexCount));
|
|
138
|
-
return vertexCount;
|
|
139
|
-
}
|
|
140
|
-
}, {
|
|
141
|
-
key: "mode",
|
|
142
|
-
get: function get() {
|
|
143
|
-
return this.drawMode;
|
|
144
|
-
}
|
|
145
|
-
}]);
|
|
146
|
-
return Geometry;
|
|
147
|
-
}();
|
|
148
|
-
|
|
149
|
-
exports.default = Geometry;
|
|
150
|
-
//# sourceMappingURL=geometry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/geometry/geometry.js"],"names":["DRAW_MODE","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","Geometry","props","id","drawMode","attributes","indices","vertexCount","userData","_setAttributes","_calculateVertexCount","attributeName","ArrayBuffer","isView","value","size","attribute","_print","isIndexed","undefined","Object","assign","length","Infinity","constant","Math","min","Number","isFinite"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;AAIO,IAAMA,SAAS,GAAG;AACvBC,EAAAA,MAAM,EAAE,MADe;AAEvBC,EAAAA,KAAK,EAAE,MAFgB;AAGvBC,EAAAA,SAAS,EAAE,MAHY;AAIvBC,EAAAA,UAAU,EAAE,MAJW;AAKvBC,EAAAA,SAAS,EAAE,MALY;AAMvBC,EAAAA,cAAc,EAAE,MANO;AAOvBC,EAAAA,YAAY,EAAE;AAPS,CAAlB;;;IAWcC,Q;;;wBACI;AACrB,aAAOR,SAAP;AACD;;;AAED,sBAAwB;AAAA,QAAZS,KAAY,uEAAJ,EAAI;AAAA;AAAA,oBAOlBA,KAPkB,CAEpBC,EAFoB;AAAA,QAEpBA,EAFoB,0BAEf,gBAAI,UAAJ,CAFe;AAAA,0BAOlBD,KAPkB,CAGpBE,QAHoB;AAAA,QAGpBA,QAHoB,gCAGTX,SAAS,CAACK,SAHD;AAAA,4BAOlBI,KAPkB,CAIpBG,UAJoB;AAAA,QAIpBA,UAJoB,kCAIP,EAJO;AAAA,yBAOlBH,KAPkB,CAKpBI,OALoB;AAAA,QAKpBA,OALoB,+BAKV,IALU;AAAA,6BAOlBJ,KAPkB,CAMpBK,WANoB;AAAA,QAMpBA,WANoB,mCAMN,IANM;AAStB,SAAKJ,EAAL,GAAUA,EAAV;AACA,SAAKC,QAAL,GAAgBA,QAAQ,GAAG,CAA3B;AACA,SAAKC,UAAL,GAAkB,EAAlB;AACA,SAAKG,QAAL,GAAgB,EAAhB;;AAEA,SAAKC,cAAL,CAAoBJ,UAApB,EAAgCC,OAAhC;;AAEA,SAAKC,WAAL,GAAmBA,WAAW,IAAI,KAAKG,qBAAL,CAA2B,KAAKL,UAAhC,EAA4C,KAAKC,OAAjD,CAAlC;AAWD;;;;qCAMgB;AACf,aAAO,KAAKC,WAAZ;AACD;;;oCAGe;AACd,aAAO,KAAKD,OAAL;AAAgBA,QAAAA,OAAO,EAAE,KAAKA;AAA9B,SAA0C,KAAKD,UAA/C,IAA6D,KAAKA,UAAzE;AACD;;;2BAIMM,a,EAAe;AACpB,gCAAmB,KAAKR,EAAxB,wBAAwCQ,aAAxC;AACD;;;mCAOcN,U,EAAYC,O,EAAS;AAClC,UAAIA,OAAJ,EAAa;AACX,aAAKA,OAAL,GAAeM,WAAW,CAACC,MAAZ,CAAmBP,OAAnB,IAA8B;AAACQ,UAAAA,KAAK,EAAER,OAAR;AAAiBS,UAAAA,IAAI,EAAE;AAAvB,SAA9B,GAA0DT,OAAzE;AACD;;AAED,WAAK,IAAMK,aAAX,IAA4BN,UAA5B,EAAwC;AACtC,YAAIW,SAAS,GAAGX,UAAU,CAACM,aAAD,CAA1B;AAGAK,QAAAA,SAAS,GAAGJ,WAAW,CAACC,MAAZ,CAAmBG,SAAnB,IAAgC;AAACF,UAAAA,KAAK,EAAEE;AAAR,SAAhC,GAAqDA,SAAjE;AAEA,2BACEJ,WAAW,CAACC,MAAZ,CAAmBG,SAAS,CAACF,KAA7B,CADF,YAEK,KAAKG,MAAL,CAAYN,aAAZ,CAFL;;AAKA,YAAI,CAACA,aAAa,KAAK,UAAlB,IAAgCA,aAAa,KAAK,WAAnD,KAAmE,CAACK,SAAS,CAACD,IAAlF,EAAwF;AACtFC,UAAAA,SAAS,CAACD,IAAV,GAAiB,CAAjB;AACD;;AAGD,YAAIJ,aAAa,KAAK,SAAtB,EAAiC;AAC/B,6BAAO,CAAC,KAAKL,OAAb;AACA,eAAKA,OAAL,GAAeU,SAAf;AACD,SAHD,MAGO;AACL,eAAKX,UAAL,CAAgBM,aAAhB,IAAiCK,SAAjC;AACD;AACF;;AAED,UAAI,KAAKV,OAAL,IAAgB,KAAKA,OAAL,CAAaY,SAAb,KAA2BC,SAA/C,EAA0D;AACxD,aAAKb,OAAL,GAAec,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkB,KAAKf,OAAvB,CAAf;AACA,eAAO,KAAKA,OAAL,CAAaY,SAApB;AACD;;AAED,aAAO,IAAP;AACD;;;0CAEqBb,U,EAAYC,O,EAAS;AACzC,UAAIA,OAAJ,EAAa;AACX,eAAOA,OAAO,CAACQ,KAAR,CAAcQ,MAArB;AACD;;AACD,UAAIf,WAAW,GAAGgB,QAAlB;;AACA,WAAK,IAAMZ,aAAX,IAA4BN,UAA5B,EAAwC;AACtC,YAAMW,SAAS,GAAGX,UAAU,CAACM,aAAD,CAA5B;AADsC,YAE/BG,KAF+B,GAENE,SAFM,CAE/BF,KAF+B;AAAA,YAExBC,IAFwB,GAENC,SAFM,CAExBD,IAFwB;AAAA,YAElBS,QAFkB,GAENR,SAFM,CAElBQ,QAFkB;;AAGtC,YAAI,CAACA,QAAD,IAAaV,KAAb,IAAsBC,IAAI,IAAI,CAAlC,EAAqC;AACnCR,UAAAA,WAAW,GAAGkB,IAAI,CAACC,GAAL,CAASnB,WAAT,EAAsBO,KAAK,CAACQ,MAAN,GAAeP,IAArC,CAAd;AACD;AACF;;AAED,yBAAOY,MAAM,CAACC,QAAP,CAAgBrB,WAAhB,CAAP;AACA,aAAOA,WAAP;AACD;;;wBA5EU;AACT,aAAO,KAAKH,QAAZ;AACD","sourcesContent":["import {uid, assert} from '@luma.gl/webgl';\n\n// Rendering primitives - specify how to extract primitives from vertices.\n// NOTE: These are numerically identical to the corresponding WebGL/OpenGL constants\nexport const DRAW_MODE = {\n POINTS: 0x0000, // draw single points.\n LINES: 0x0001, // draw lines. Each vertex connects to the one after it.\n LINE_LOOP: 0x0002, // draw lines. Each set of two vertices is treated as a separate line segment.\n LINE_STRIP: 0x0003, // draw a connected group of line segments from the first vertex to the last\n TRIANGLES: 0x0004, // draw triangles. Each set of three vertices creates a separate triangle.\n TRIANGLE_STRIP: 0x0005, // draw a connected group of triangles.\n TRIANGLE_FAN: 0x0006 // draw a connected group of triangles.\n // Each vertex connects to the previous and the first vertex in the fan.\n};\n\nexport default class Geometry {\n static get DRAW_MODE() {\n return DRAW_MODE;\n }\n\n constructor(props = {}) {\n const {\n id = uid('geometry'),\n drawMode = DRAW_MODE.TRIANGLES,\n attributes = {},\n indices = null,\n vertexCount = null\n } = props;\n\n this.id = id;\n this.drawMode = drawMode | 0;\n this.attributes = {};\n this.userData = {};\n\n this._setAttributes(attributes, indices);\n\n this.vertexCount = vertexCount || this._calculateVertexCount(this.attributes, this.indices);\n\n // stubRemovedMethods(this, [\n // 'setNeedsRedraw', 'needsRedraw', 'setAttributes'\n // ], 'Immutable');\n\n // stubRemovedMethods(this, [\n // 'hasAttribute', 'getAttribute', 'getArray'\n // ], 'Use geometry.attributes and geometry.indices');\n\n // deprecateMethods(this, ['getAttributes'])\n }\n\n get mode() {\n return this.drawMode;\n }\n\n getVertexCount() {\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) {\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) {\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) {\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/es5/index.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export {default as AnimationLoop} from './lib/animation-loop';
|
|
2
|
-
export {default as Model} from './lib/model';
|
|
3
|
-
export {default as ProgramManager} from './lib/program-manager';
|
|
4
|
-
export {default as Transform} from './transform/transform';
|
|
5
|
-
|
|
6
|
-
export {Timeline} from './animation/timeline';
|
|
7
|
-
export {KeyFrames} from './animation/key-frames';
|
|
8
|
-
|
|
9
|
-
// Geometries
|
|
10
|
-
export {default as Geometry} from './geometry/geometry';
|
|
11
|
-
export {default as ConeGeometry} from './geometries/cone-geometry';
|
|
12
|
-
export {default as CubeGeometry} from './geometries/cube-geometry';
|
|
13
|
-
export {default as CylinderGeometry} from './geometries/cylinder-geometry';
|
|
14
|
-
export {default as IcoSphereGeometry} from './geometries/ico-sphere-geometry';
|
|
15
|
-
export {default as PlaneGeometry} from './geometries/plane-geometry';
|
|
16
|
-
export {default as SphereGeometry} from './geometries/sphere-geometry';
|
|
17
|
-
export {default as TruncatedConeGeometry} from './geometries/truncated-cone-geometry';
|
|
18
|
-
|
|
19
|
-
export {default as ClipSpace} from './utils/clip-space';
|