@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,217 +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 _core = require("@math.gl/core");
|
|
21
|
-
|
|
22
|
-
var _geometry = _interopRequireDefault(require("../geometry/geometry"));
|
|
23
|
-
|
|
24
|
-
var _webgl = require("@luma.gl/webgl");
|
|
25
|
-
|
|
26
|
-
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; }
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
|
|
30
|
-
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); }; }
|
|
31
|
-
|
|
32
|
-
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; } }
|
|
33
|
-
|
|
34
|
-
var ICO_POSITIONS = [-1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 1, 0, 0];
|
|
35
|
-
var ICO_INDICES = [3, 4, 5, 3, 5, 1, 3, 1, 0, 3, 0, 4, 4, 0, 2, 4, 2, 5, 2, 0, 1, 5, 2, 1];
|
|
36
|
-
|
|
37
|
-
var IcoSphereGeometry = function (_Geometry) {
|
|
38
|
-
(0, _inherits2.default)(IcoSphereGeometry, _Geometry);
|
|
39
|
-
|
|
40
|
-
var _super = _createSuper(IcoSphereGeometry);
|
|
41
|
-
|
|
42
|
-
function IcoSphereGeometry() {
|
|
43
|
-
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
44
|
-
(0, _classCallCheck2.default)(this, IcoSphereGeometry);
|
|
45
|
-
var _props$id = props.id,
|
|
46
|
-
id = _props$id === void 0 ? (0, _webgl.uid)('ico-sphere-geometry') : _props$id;
|
|
47
|
-
|
|
48
|
-
var _tesselateIcosaHedron = tesselateIcosaHedron(props),
|
|
49
|
-
indices = _tesselateIcosaHedron.indices,
|
|
50
|
-
attributes = _tesselateIcosaHedron.attributes;
|
|
51
|
-
|
|
52
|
-
return _super.call(this, _objectSpread(_objectSpread({}, props), {}, {
|
|
53
|
-
id: id,
|
|
54
|
-
indices: indices,
|
|
55
|
-
attributes: _objectSpread(_objectSpread({}, attributes), props.attributes)
|
|
56
|
-
}));
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return IcoSphereGeometry;
|
|
60
|
-
}(_geometry.default);
|
|
61
|
-
|
|
62
|
-
exports.default = IcoSphereGeometry;
|
|
63
|
-
|
|
64
|
-
function tesselateIcosaHedron(props) {
|
|
65
|
-
var _props$iterations = props.iterations,
|
|
66
|
-
iterations = _props$iterations === void 0 ? 0 : _props$iterations;
|
|
67
|
-
var PI = Math.PI;
|
|
68
|
-
var PI2 = PI * 2;
|
|
69
|
-
var positions = [].concat(ICO_POSITIONS);
|
|
70
|
-
var indices = [].concat(ICO_INDICES);
|
|
71
|
-
positions.push();
|
|
72
|
-
indices.push();
|
|
73
|
-
|
|
74
|
-
var getMiddlePoint = function () {
|
|
75
|
-
var pointMemo = {};
|
|
76
|
-
return function (i1, i2) {
|
|
77
|
-
i1 *= 3;
|
|
78
|
-
i2 *= 3;
|
|
79
|
-
var mini = i1 < i2 ? i1 : i2;
|
|
80
|
-
var maxi = i1 > i2 ? i1 : i2;
|
|
81
|
-
var key = "".concat(mini, "|").concat(maxi);
|
|
82
|
-
|
|
83
|
-
if (key in pointMemo) {
|
|
84
|
-
return pointMemo[key];
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
var x1 = positions[i1];
|
|
88
|
-
var y1 = positions[i1 + 1];
|
|
89
|
-
var z1 = positions[i1 + 2];
|
|
90
|
-
var x2 = positions[i2];
|
|
91
|
-
var y2 = positions[i2 + 1];
|
|
92
|
-
var z2 = positions[i2 + 2];
|
|
93
|
-
var xm = (x1 + x2) / 2;
|
|
94
|
-
var ym = (y1 + y2) / 2;
|
|
95
|
-
var zm = (z1 + z2) / 2;
|
|
96
|
-
var len = Math.sqrt(xm * xm + ym * ym + zm * zm);
|
|
97
|
-
xm /= len;
|
|
98
|
-
ym /= len;
|
|
99
|
-
zm /= len;
|
|
100
|
-
positions.push(xm, ym, zm);
|
|
101
|
-
return pointMemo[key] = positions.length / 3 - 1;
|
|
102
|
-
};
|
|
103
|
-
}();
|
|
104
|
-
|
|
105
|
-
for (var i = 0; i < iterations; i++) {
|
|
106
|
-
var indices2 = [];
|
|
107
|
-
|
|
108
|
-
for (var j = 0; j < indices.length; j += 3) {
|
|
109
|
-
var a = getMiddlePoint(indices[j + 0], indices[j + 1]);
|
|
110
|
-
var b = getMiddlePoint(indices[j + 1], indices[j + 2]);
|
|
111
|
-
var c = getMiddlePoint(indices[j + 2], indices[j + 0]);
|
|
112
|
-
indices2.push(c, indices[j + 0], a, a, indices[j + 1], b, b, indices[j + 2], c, a, b, c);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
indices = indices2;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
var normals = new Array(positions.length);
|
|
119
|
-
var texCoords = new Array(positions.length / 3 * 2);
|
|
120
|
-
var l = indices.length;
|
|
121
|
-
|
|
122
|
-
for (var _i = l - 3; _i >= 0; _i -= 3) {
|
|
123
|
-
var i1 = indices[_i + 0];
|
|
124
|
-
var i2 = indices[_i + 1];
|
|
125
|
-
var i3 = indices[_i + 2];
|
|
126
|
-
var in1 = i1 * 3;
|
|
127
|
-
var in2 = i2 * 3;
|
|
128
|
-
var in3 = i3 * 3;
|
|
129
|
-
var iu1 = i1 * 2;
|
|
130
|
-
var iu2 = i2 * 2;
|
|
131
|
-
var iu3 = i3 * 2;
|
|
132
|
-
var x1 = positions[in1 + 0];
|
|
133
|
-
var y1 = positions[in1 + 1];
|
|
134
|
-
var z1 = positions[in1 + 2];
|
|
135
|
-
var theta1 = Math.acos(z1 / Math.sqrt(x1 * x1 + y1 * y1 + z1 * z1));
|
|
136
|
-
var phi1 = Math.atan2(y1, x1) + PI;
|
|
137
|
-
var v1 = theta1 / PI;
|
|
138
|
-
var u1 = 1 - phi1 / PI2;
|
|
139
|
-
var x2 = positions[in2 + 0];
|
|
140
|
-
var y2 = positions[in2 + 1];
|
|
141
|
-
var z2 = positions[in2 + 2];
|
|
142
|
-
var theta2 = Math.acos(z2 / Math.sqrt(x2 * x2 + y2 * y2 + z2 * z2));
|
|
143
|
-
var phi2 = Math.atan2(y2, x2) + PI;
|
|
144
|
-
var v2 = theta2 / PI;
|
|
145
|
-
var u2 = 1 - phi2 / PI2;
|
|
146
|
-
var x3 = positions[in3 + 0];
|
|
147
|
-
var y3 = positions[in3 + 1];
|
|
148
|
-
var z3 = positions[in3 + 2];
|
|
149
|
-
var theta3 = Math.acos(z3 / Math.sqrt(x3 * x3 + y3 * y3 + z3 * z3));
|
|
150
|
-
var phi3 = Math.atan2(y3, x3) + PI;
|
|
151
|
-
var v3 = theta3 / PI;
|
|
152
|
-
var u3 = 1 - phi3 / PI2;
|
|
153
|
-
var vec1 = [x3 - x2, y3 - y2, z3 - z2];
|
|
154
|
-
var vec2 = [x1 - x2, y1 - y2, z1 - z2];
|
|
155
|
-
var normal = new _core.Vector3(vec1).cross(vec2).normalize();
|
|
156
|
-
var newIndex = void 0;
|
|
157
|
-
|
|
158
|
-
if ((u1 === 0 || u2 === 0 || u3 === 0) && (u1 === 0 || u1 > 0.5) && (u2 === 0 || u2 > 0.5) && (u3 === 0 || u3 > 0.5)) {
|
|
159
|
-
positions.push(positions[in1 + 0], positions[in1 + 1], positions[in1 + 2]);
|
|
160
|
-
newIndex = positions.length / 3 - 1;
|
|
161
|
-
indices.push(newIndex);
|
|
162
|
-
texCoords[newIndex * 2 + 0] = 1;
|
|
163
|
-
texCoords[newIndex * 2 + 1] = v1;
|
|
164
|
-
normals[newIndex * 3 + 0] = normal.x;
|
|
165
|
-
normals[newIndex * 3 + 1] = normal.y;
|
|
166
|
-
normals[newIndex * 3 + 2] = normal.z;
|
|
167
|
-
positions.push(positions[in2 + 0], positions[in2 + 1], positions[in2 + 2]);
|
|
168
|
-
newIndex = positions.length / 3 - 1;
|
|
169
|
-
indices.push(newIndex);
|
|
170
|
-
texCoords[newIndex * 2 + 0] = 1;
|
|
171
|
-
texCoords[newIndex * 2 + 1] = v2;
|
|
172
|
-
normals[newIndex * 3 + 0] = normal.x;
|
|
173
|
-
normals[newIndex * 3 + 1] = normal.y;
|
|
174
|
-
normals[newIndex * 3 + 2] = normal.z;
|
|
175
|
-
positions.push(positions[in3 + 0], positions[in3 + 1], positions[in3 + 2]);
|
|
176
|
-
newIndex = positions.length / 3 - 1;
|
|
177
|
-
indices.push(newIndex);
|
|
178
|
-
texCoords[newIndex * 2 + 0] = 1;
|
|
179
|
-
texCoords[newIndex * 2 + 1] = v3;
|
|
180
|
-
normals[newIndex * 3 + 0] = normal.x;
|
|
181
|
-
normals[newIndex * 3 + 1] = normal.y;
|
|
182
|
-
normals[newIndex * 3 + 2] = normal.z;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
normals[in1 + 0] = normals[in2 + 0] = normals[in3 + 0] = normal.x;
|
|
186
|
-
normals[in1 + 1] = normals[in2 + 1] = normals[in3 + 1] = normal.y;
|
|
187
|
-
normals[in1 + 2] = normals[in2 + 2] = normals[in3 + 2] = normal.z;
|
|
188
|
-
texCoords[iu1 + 0] = u1;
|
|
189
|
-
texCoords[iu1 + 1] = v1;
|
|
190
|
-
texCoords[iu2 + 0] = u2;
|
|
191
|
-
texCoords[iu2 + 1] = v2;
|
|
192
|
-
texCoords[iu3 + 0] = u3;
|
|
193
|
-
texCoords[iu3 + 1] = v3;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
return {
|
|
197
|
-
indices: {
|
|
198
|
-
size: 1,
|
|
199
|
-
value: new Uint16Array(indices)
|
|
200
|
-
},
|
|
201
|
-
attributes: {
|
|
202
|
-
POSITION: {
|
|
203
|
-
size: 3,
|
|
204
|
-
value: new Float32Array(positions)
|
|
205
|
-
},
|
|
206
|
-
NORMAL: {
|
|
207
|
-
size: 3,
|
|
208
|
-
value: new Float32Array(normals)
|
|
209
|
-
},
|
|
210
|
-
TEXCOORD_0: {
|
|
211
|
-
size: 2,
|
|
212
|
-
value: new Float32Array(texCoords)
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
//# sourceMappingURL=ico-sphere-geometry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/geometries/ico-sphere-geometry.js"],"names":["ICO_POSITIONS","ICO_INDICES","IcoSphereGeometry","props","id","tesselateIcosaHedron","indices","attributes","Geometry","iterations","PI","Math","PI2","positions","push","getMiddlePoint","pointMemo","i1","i2","mini","maxi","key","x1","y1","z1","x2","y2","z2","xm","ym","zm","len","sqrt","length","i","indices2","j","a","b","c","normals","Array","texCoords","l","i3","in1","in2","in3","iu1","iu2","iu3","theta1","acos","phi1","atan2","v1","u1","theta2","phi2","v2","u2","x3","y3","z3","theta3","phi3","v3","u3","vec1","vec2","normal","Vector3","cross","normalize","newIndex","x","y","z","size","value","Uint16Array","POSITION","Float32Array","NORMAL","TEXCOORD_0"],"mappings":"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","sourcesContent":["import {Vector3} from '@math.gl/core';\nimport Geometry from '../geometry/geometry';\nimport {uid} from '@luma.gl/webgl';\n\n/* eslint-disable comma-spacing, max-statements, complexity */\n\nconst ICO_POSITIONS = [-1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0, 1, 0, 0];\nconst ICO_INDICES = [3, 4, 5, 3, 5, 1, 3, 1, 0, 3, 0, 4, 4, 0, 2, 4, 2, 5, 2, 0, 1, 5, 2, 1];\n\nexport default class IcoSphereGeometry extends Geometry {\n constructor(props = {}) {\n const {id = uid('ico-sphere-geometry')} = props;\n const {indices, attributes} = tesselateIcosaHedron(props);\n super({\n ...props,\n id,\n indices,\n attributes: {...attributes, ...props.attributes}\n });\n }\n}\n\nfunction tesselateIcosaHedron(props) {\n const {iterations = 0} = props;\n\n const PI = Math.PI;\n const PI2 = PI * 2;\n\n const positions = [...ICO_POSITIONS];\n let indices = [...ICO_INDICES];\n\n positions.push();\n indices.push();\n\n const getMiddlePoint = (() => {\n const pointMemo = {};\n\n return (i1, i2) => {\n i1 *= 3;\n i2 *= 3;\n const mini = i1 < i2 ? i1 : i2;\n const maxi = i1 > i2 ? i1 : i2;\n const key = `${mini}|${maxi}`;\n\n if (key in pointMemo) {\n return pointMemo[key];\n }\n\n const x1 = positions[i1];\n const y1 = positions[i1 + 1];\n const z1 = positions[i1 + 2];\n const x2 = positions[i2];\n const y2 = positions[i2 + 1];\n const z2 = positions[i2 + 2];\n let xm = (x1 + x2) / 2;\n let ym = (y1 + y2) / 2;\n let zm = (z1 + z2) / 2;\n const len = Math.sqrt(xm * xm + ym * ym + zm * zm);\n\n xm /= len;\n ym /= len;\n zm /= len;\n\n positions.push(xm, ym, zm);\n\n return (pointMemo[key] = positions.length / 3 - 1);\n };\n })();\n\n for (let i = 0; i < iterations; i++) {\n const indices2 = [];\n for (let j = 0; j < indices.length; j += 3) {\n const a = getMiddlePoint(indices[j + 0], indices[j + 1]);\n const b = getMiddlePoint(indices[j + 1], indices[j + 2]);\n const c = getMiddlePoint(indices[j + 2], indices[j + 0]);\n\n indices2.push(c, indices[j + 0], a, a, indices[j + 1], b, b, indices[j + 2], c, a, b, c);\n }\n indices = indices2;\n }\n\n // Calculate texCoords and normals\n const normals = new Array(positions.length);\n const texCoords = new Array((positions.length / 3) * 2);\n\n const l = indices.length;\n for (let i = l - 3; i >= 0; i -= 3) {\n const i1 = indices[i + 0];\n const i2 = indices[i + 1];\n const i3 = indices[i + 2];\n const in1 = i1 * 3;\n const in2 = i2 * 3;\n const in3 = i3 * 3;\n const iu1 = i1 * 2;\n const iu2 = i2 * 2;\n const iu3 = i3 * 2;\n const x1 = positions[in1 + 0];\n const y1 = positions[in1 + 1];\n const z1 = positions[in1 + 2];\n const theta1 = Math.acos(z1 / Math.sqrt(x1 * x1 + y1 * y1 + z1 * z1));\n const phi1 = Math.atan2(y1, x1) + PI;\n const v1 = theta1 / PI;\n const u1 = 1 - phi1 / PI2;\n const x2 = positions[in2 + 0];\n const y2 = positions[in2 + 1];\n const z2 = positions[in2 + 2];\n const theta2 = Math.acos(z2 / Math.sqrt(x2 * x2 + y2 * y2 + z2 * z2));\n const phi2 = Math.atan2(y2, x2) + PI;\n const v2 = theta2 / PI;\n const u2 = 1 - phi2 / PI2;\n const x3 = positions[in3 + 0];\n const y3 = positions[in3 + 1];\n const z3 = positions[in3 + 2];\n const theta3 = Math.acos(z3 / Math.sqrt(x3 * x3 + y3 * y3 + z3 * z3));\n const phi3 = Math.atan2(y3, x3) + PI;\n const v3 = theta3 / PI;\n const u3 = 1 - phi3 / PI2;\n const vec1 = [x3 - x2, y3 - y2, z3 - z2];\n const vec2 = [x1 - x2, y1 - y2, z1 - z2];\n const normal = new Vector3(vec1).cross(vec2).normalize();\n let newIndex;\n\n if (\n (u1 === 0 || u2 === 0 || u3 === 0) &&\n (u1 === 0 || u1 > 0.5) &&\n (u2 === 0 || u2 > 0.5) &&\n (u3 === 0 || u3 > 0.5)\n ) {\n positions.push(positions[in1 + 0], positions[in1 + 1], positions[in1 + 2]);\n newIndex = positions.length / 3 - 1;\n indices.push(newIndex);\n texCoords[newIndex * 2 + 0] = 1;\n texCoords[newIndex * 2 + 1] = v1;\n normals[newIndex * 3 + 0] = normal.x;\n normals[newIndex * 3 + 1] = normal.y;\n normals[newIndex * 3 + 2] = normal.z;\n\n positions.push(positions[in2 + 0], positions[in2 + 1], positions[in2 + 2]);\n newIndex = positions.length / 3 - 1;\n indices.push(newIndex);\n texCoords[newIndex * 2 + 0] = 1;\n texCoords[newIndex * 2 + 1] = v2;\n normals[newIndex * 3 + 0] = normal.x;\n normals[newIndex * 3 + 1] = normal.y;\n normals[newIndex * 3 + 2] = normal.z;\n\n positions.push(positions[in3 + 0], positions[in3 + 1], positions[in3 + 2]);\n newIndex = positions.length / 3 - 1;\n indices.push(newIndex);\n texCoords[newIndex * 2 + 0] = 1;\n texCoords[newIndex * 2 + 1] = v3;\n normals[newIndex * 3 + 0] = normal.x;\n normals[newIndex * 3 + 1] = normal.y;\n normals[newIndex * 3 + 2] = normal.z;\n }\n\n normals[in1 + 0] = normals[in2 + 0] = normals[in3 + 0] = normal.x;\n normals[in1 + 1] = normals[in2 + 1] = normals[in3 + 1] = normal.y;\n normals[in1 + 2] = normals[in2 + 2] = normals[in3 + 2] = normal.z;\n\n texCoords[iu1 + 0] = u1;\n texCoords[iu1 + 1] = v1;\n\n texCoords[iu2 + 0] = u2;\n texCoords[iu2 + 1] = v2;\n\n texCoords[iu3 + 0] = u3;\n texCoords[iu3 + 1] = v3;\n }\n\n return {\n indices: {size: 1, value: new Uint16Array(indices)},\n attributes: {\n POSITION: {size: 3, value: new Float32Array(positions)},\n NORMAL: {size: 3, value: new Float32Array(normals)},\n TEXCOORD_0: {size: 2, value: new Float32Array(texCoords)}\n }\n };\n}\n"],"file":"ico-sphere-geometry.js"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export {default as ConeGeometry} from './cone-geometry';
|
|
2
|
-
export {default as CubeGeometry} from './cube-geometry';
|
|
3
|
-
export {default as CylinderGeometry} from './cylinder-geometry';
|
|
4
|
-
export {default as IcoSphereGeometry} from './ico-sphere-geometry';
|
|
5
|
-
export {default as PlaneGeometry} from './plane-geometry';
|
|
6
|
-
export {default as SphereGeometry} from './sphere-geometry';
|
|
7
|
-
export {default as TruncatedConeGeometry} from './truncated-cone-geometry';
|
|
@@ -1,64 +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
|
-
Object.defineProperty(exports, "ConeGeometry", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function get() {
|
|
11
|
-
return _coneGeometry.default;
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
Object.defineProperty(exports, "CubeGeometry", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function get() {
|
|
17
|
-
return _cubeGeometry.default;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
Object.defineProperty(exports, "CylinderGeometry", {
|
|
21
|
-
enumerable: true,
|
|
22
|
-
get: function get() {
|
|
23
|
-
return _cylinderGeometry.default;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
Object.defineProperty(exports, "IcoSphereGeometry", {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
get: function get() {
|
|
29
|
-
return _icoSphereGeometry.default;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
Object.defineProperty(exports, "PlaneGeometry", {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function get() {
|
|
35
|
-
return _planeGeometry.default;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
Object.defineProperty(exports, "SphereGeometry", {
|
|
39
|
-
enumerable: true,
|
|
40
|
-
get: function get() {
|
|
41
|
-
return _sphereGeometry.default;
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
Object.defineProperty(exports, "TruncatedConeGeometry", {
|
|
45
|
-
enumerable: true,
|
|
46
|
-
get: function get() {
|
|
47
|
-
return _truncatedConeGeometry.default;
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
var _coneGeometry = _interopRequireDefault(require("./cone-geometry"));
|
|
52
|
-
|
|
53
|
-
var _cubeGeometry = _interopRequireDefault(require("./cube-geometry"));
|
|
54
|
-
|
|
55
|
-
var _cylinderGeometry = _interopRequireDefault(require("./cylinder-geometry"));
|
|
56
|
-
|
|
57
|
-
var _icoSphereGeometry = _interopRequireDefault(require("./ico-sphere-geometry"));
|
|
58
|
-
|
|
59
|
-
var _planeGeometry = _interopRequireDefault(require("./plane-geometry"));
|
|
60
|
-
|
|
61
|
-
var _sphereGeometry = _interopRequireDefault(require("./sphere-geometry"));
|
|
62
|
-
|
|
63
|
-
var _truncatedConeGeometry = _interopRequireDefault(require("./truncated-cone-geometry"));
|
|
64
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/geometries/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export {default as ConeGeometry} from './cone-geometry';\nexport {default as CubeGeometry} from './cube-geometry';\nexport {default as CylinderGeometry} from './cylinder-geometry';\nexport {default as IcoSphereGeometry} from './ico-sphere-geometry';\nexport {default as PlaneGeometry} from './plane-geometry';\nexport {default as SphereGeometry} from './sphere-geometry';\nexport {default as TruncatedConeGeometry} from './truncated-cone-geometry';\n"],"file":"index.js"}
|
|
@@ -1,168 +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 _geometryUtils = require("../geometry/geometry-utils");
|
|
23
|
-
|
|
24
|
-
var _webgl = require("@luma.gl/webgl");
|
|
25
|
-
|
|
26
|
-
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; }
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
|
|
30
|
-
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); }; }
|
|
31
|
-
|
|
32
|
-
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; } }
|
|
33
|
-
|
|
34
|
-
var PlaneGeometry = function (_Geometry) {
|
|
35
|
-
(0, _inherits2.default)(PlaneGeometry, _Geometry);
|
|
36
|
-
|
|
37
|
-
var _super = _createSuper(PlaneGeometry);
|
|
38
|
-
|
|
39
|
-
function PlaneGeometry() {
|
|
40
|
-
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
41
|
-
(0, _classCallCheck2.default)(this, PlaneGeometry);
|
|
42
|
-
var _props$id = props.id,
|
|
43
|
-
id = _props$id === void 0 ? (0, _webgl.uid)('plane-geometry') : _props$id;
|
|
44
|
-
|
|
45
|
-
var _tesselatePlane = tesselatePlane(props),
|
|
46
|
-
indices = _tesselatePlane.indices,
|
|
47
|
-
attributes = _tesselatePlane.attributes;
|
|
48
|
-
|
|
49
|
-
return _super.call(this, _objectSpread(_objectSpread({}, props), {}, {
|
|
50
|
-
id: id,
|
|
51
|
-
indices: indices,
|
|
52
|
-
attributes: _objectSpread(_objectSpread({}, attributes), props.attributes)
|
|
53
|
-
}));
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return PlaneGeometry;
|
|
57
|
-
}(_geometry.default);
|
|
58
|
-
|
|
59
|
-
exports.default = PlaneGeometry;
|
|
60
|
-
|
|
61
|
-
function tesselatePlane(props) {
|
|
62
|
-
var _props$type = props.type,
|
|
63
|
-
type = _props$type === void 0 ? 'x,y' : _props$type,
|
|
64
|
-
_props$offset = props.offset,
|
|
65
|
-
offset = _props$offset === void 0 ? 0 : _props$offset,
|
|
66
|
-
_props$flipCull = props.flipCull,
|
|
67
|
-
flipCull = _props$flipCull === void 0 ? false : _props$flipCull,
|
|
68
|
-
_props$unpack = props.unpack,
|
|
69
|
-
unpack = _props$unpack === void 0 ? false : _props$unpack;
|
|
70
|
-
var coords = type.split(',');
|
|
71
|
-
var c1len = props["".concat(coords[0], "len")] || 1;
|
|
72
|
-
var c2len = props["".concat(coords[1], "len")] || 1;
|
|
73
|
-
var subdivisions1 = props["n".concat(coords[0])] || 1;
|
|
74
|
-
var subdivisions2 = props["n".concat(coords[1])] || 1;
|
|
75
|
-
var numVertices = (subdivisions1 + 1) * (subdivisions2 + 1);
|
|
76
|
-
var positions = new Float32Array(numVertices * 3);
|
|
77
|
-
var normals = new Float32Array(numVertices * 3);
|
|
78
|
-
var texCoords = new Float32Array(numVertices * 2);
|
|
79
|
-
|
|
80
|
-
if (flipCull) {
|
|
81
|
-
c1len = -c1len;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
var i2 = 0;
|
|
85
|
-
var i3 = 0;
|
|
86
|
-
|
|
87
|
-
for (var z = 0; z <= subdivisions2; z++) {
|
|
88
|
-
for (var x = 0; x <= subdivisions1; x++) {
|
|
89
|
-
var u = x / subdivisions1;
|
|
90
|
-
var v = z / subdivisions2;
|
|
91
|
-
texCoords[i2 + 0] = flipCull ? 1 - u : u;
|
|
92
|
-
texCoords[i2 + 1] = v;
|
|
93
|
-
|
|
94
|
-
switch (type) {
|
|
95
|
-
case 'x,y':
|
|
96
|
-
positions[i3 + 0] = c1len * u - c1len * 0.5;
|
|
97
|
-
positions[i3 + 1] = c2len * v - c2len * 0.5;
|
|
98
|
-
positions[i3 + 2] = offset;
|
|
99
|
-
normals[i3 + 0] = 0;
|
|
100
|
-
normals[i3 + 1] = 0;
|
|
101
|
-
normals[i3 + 2] = flipCull ? 1 : -1;
|
|
102
|
-
break;
|
|
103
|
-
|
|
104
|
-
case 'x,z':
|
|
105
|
-
positions[i3 + 0] = c1len * u - c1len * 0.5;
|
|
106
|
-
positions[i3 + 1] = offset;
|
|
107
|
-
positions[i3 + 2] = c2len * v - c2len * 0.5;
|
|
108
|
-
normals[i3 + 0] = 0;
|
|
109
|
-
normals[i3 + 1] = flipCull ? 1 : -1;
|
|
110
|
-
normals[i3 + 2] = 0;
|
|
111
|
-
break;
|
|
112
|
-
|
|
113
|
-
case 'y,z':
|
|
114
|
-
positions[i3 + 0] = offset;
|
|
115
|
-
positions[i3 + 1] = c1len * u - c1len * 0.5;
|
|
116
|
-
positions[i3 + 2] = c2len * v - c2len * 0.5;
|
|
117
|
-
normals[i3 + 0] = flipCull ? 1 : -1;
|
|
118
|
-
normals[i3 + 1] = 0;
|
|
119
|
-
normals[i3 + 2] = 0;
|
|
120
|
-
break;
|
|
121
|
-
|
|
122
|
-
default:
|
|
123
|
-
throw new Error('PlaneGeometry: unknown type');
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
i2 += 2;
|
|
127
|
-
i3 += 3;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
var numVertsAcross = subdivisions1 + 1;
|
|
132
|
-
var indices = new Uint16Array(subdivisions1 * subdivisions2 * 6);
|
|
133
|
-
|
|
134
|
-
for (var _z = 0; _z < subdivisions2; _z++) {
|
|
135
|
-
for (var _x = 0; _x < subdivisions1; _x++) {
|
|
136
|
-
var index = (_z * subdivisions1 + _x) * 6;
|
|
137
|
-
indices[index + 0] = (_z + 0) * numVertsAcross + _x;
|
|
138
|
-
indices[index + 1] = (_z + 1) * numVertsAcross + _x;
|
|
139
|
-
indices[index + 2] = (_z + 0) * numVertsAcross + _x + 1;
|
|
140
|
-
indices[index + 3] = (_z + 1) * numVertsAcross + _x;
|
|
141
|
-
indices[index + 4] = (_z + 1) * numVertsAcross + _x + 1;
|
|
142
|
-
indices[index + 5] = (_z + 0) * numVertsAcross + _x + 1;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
var geometry = {
|
|
147
|
-
indices: {
|
|
148
|
-
size: 1,
|
|
149
|
-
value: indices
|
|
150
|
-
},
|
|
151
|
-
attributes: {
|
|
152
|
-
POSITION: {
|
|
153
|
-
size: 3,
|
|
154
|
-
value: positions
|
|
155
|
-
},
|
|
156
|
-
NORMAL: {
|
|
157
|
-
size: 3,
|
|
158
|
-
value: normals
|
|
159
|
-
},
|
|
160
|
-
TEXCOORD_0: {
|
|
161
|
-
size: 2,
|
|
162
|
-
value: texCoords
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
return unpack ? (0, _geometryUtils.unpackIndexedGeometry)(geometry) : geometry;
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=plane-geometry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/geometries/plane-geometry.js"],"names":["PlaneGeometry","props","id","tesselatePlane","indices","attributes","Geometry","type","offset","flipCull","unpack","coords","split","c1len","c2len","subdivisions1","subdivisions2","numVertices","positions","Float32Array","normals","texCoords","i2","i3","z","x","u","v","Error","numVertsAcross","Uint16Array","index","geometry","size","value","POSITION","NORMAL","TEXCOORD_0"],"mappings":"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","sourcesContent":["import Geometry from '../geometry/geometry';\nimport {unpackIndexedGeometry} from '../geometry/geometry-utils';\nimport {uid} from '@luma.gl/webgl';\n\nexport default class PlaneGeometry extends Geometry {\n constructor(props = {}) {\n const {id = uid('plane-geometry')} = props;\n\n const {indices, attributes} = tesselatePlane(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 */\n/* eslint-disable complexity, max-statements */\nfunction tesselatePlane(props) {\n const {type = 'x,y', offset = 0, flipCull = false, unpack = false} = props;\n\n const coords = type.split(',');\n // width, height\n let c1len = props[`${coords[0]}len`] || 1;\n const c2len = props[`${coords[1]}len`] || 1;\n // subdivisionsWidth, subdivisionsDepth\n const subdivisions1 = props[`n${coords[0]}`] || 1;\n const subdivisions2 = props[`n${coords[1]}`] || 1;\n const numVertices = (subdivisions1 + 1) * (subdivisions2 + 1);\n\n const positions = new Float32Array(numVertices * 3);\n const normals = new Float32Array(numVertices * 3);\n const texCoords = new Float32Array(numVertices * 2);\n\n if (flipCull) {\n c1len = -c1len;\n }\n\n let i2 = 0;\n let i3 = 0;\n for (let z = 0; z <= subdivisions2; z++) {\n for (let x = 0; x <= subdivisions1; x++) {\n const u = x / subdivisions1;\n const v = z / subdivisions2;\n texCoords[i2 + 0] = flipCull ? 1 - u : u;\n texCoords[i2 + 1] = v;\n\n switch (type) {\n case 'x,y':\n positions[i3 + 0] = c1len * u - c1len * 0.5;\n positions[i3 + 1] = c2len * v - c2len * 0.5;\n positions[i3 + 2] = offset;\n\n normals[i3 + 0] = 0;\n normals[i3 + 1] = 0;\n normals[i3 + 2] = flipCull ? 1 : -1;\n break;\n\n case 'x,z':\n positions[i3 + 0] = c1len * u - c1len * 0.5;\n positions[i3 + 1] = offset;\n positions[i3 + 2] = c2len * v - c2len * 0.5;\n\n normals[i3 + 0] = 0;\n normals[i3 + 1] = flipCull ? 1 : -1;\n normals[i3 + 2] = 0;\n break;\n\n case 'y,z':\n positions[i3 + 0] = offset;\n positions[i3 + 1] = c1len * u - c1len * 0.5;\n positions[i3 + 2] = c2len * v - c2len * 0.5;\n\n normals[i3 + 0] = flipCull ? 1 : -1;\n normals[i3 + 1] = 0;\n normals[i3 + 2] = 0;\n break;\n\n default:\n throw new Error('PlaneGeometry: unknown type');\n }\n\n i2 += 2;\n i3 += 3;\n }\n }\n\n const numVertsAcross = subdivisions1 + 1;\n const indices = new Uint16Array(subdivisions1 * subdivisions2 * 6);\n\n for (let z = 0; z < subdivisions2; z++) {\n for (let x = 0; x < subdivisions1; x++) {\n const index = (z * subdivisions1 + x) * 6;\n // Make triangle 1 of quad.\n indices[index + 0] = (z + 0) * numVertsAcross + x;\n indices[index + 1] = (z + 1) * numVertsAcross + x;\n indices[index + 2] = (z + 0) * numVertsAcross + x + 1;\n\n // Make triangle 2 of quad.\n indices[index + 3] = (z + 1) * numVertsAcross + x;\n indices[index + 4] = (z + 1) * numVertsAcross + x + 1;\n indices[index + 5] = (z + 0) * numVertsAcross + x + 1;\n }\n }\n\n const geometry = {\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 // Optionally, unpack indexed geometry\n return unpack ? unpackIndexedGeometry(geometry) : geometry;\n}\n"],"file":"plane-geometry.js"}
|