@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.
Files changed (270) hide show
  1. package/dist/animation/key-frames.d.ts +18 -0
  2. package/dist/animation/key-frames.d.ts.map +1 -0
  3. package/dist/{esm/animation → animation}/key-frames.js +13 -6
  4. package/dist/animation/key-frames.js.map +1 -0
  5. package/dist/animation/timeline.d.ts +51 -0
  6. package/dist/animation/timeline.d.ts.map +1 -0
  7. package/dist/{esm/animation → animation}/timeline.js +10 -5
  8. package/dist/animation/timeline.js.map +1 -0
  9. package/dist/bundle.d.ts +2 -0
  10. package/dist/bundle.d.ts.map +1 -0
  11. package/dist/bundle.js +5 -0
  12. package/dist/bundle.js.map +1 -0
  13. package/dist/geometries/cone-geometry.d.ts +10 -0
  14. package/dist/geometries/cone-geometry.d.ts.map +1 -0
  15. package/dist/{esm/geometries → geometries}/cone-geometry.js +2 -2
  16. package/dist/geometries/cone-geometry.js.map +1 -0
  17. package/dist/geometries/cube-geometry.d.ts +9 -0
  18. package/dist/geometries/cube-geometry.d.ts.map +1 -0
  19. package/dist/{esm/geometries → geometries}/cube-geometry.js +18 -18
  20. package/dist/geometries/cube-geometry.js.map +1 -0
  21. package/dist/geometries/cylinder-geometry.d.ts +10 -0
  22. package/dist/geometries/cylinder-geometry.d.ts.map +1 -0
  23. package/dist/{esm/geometries → geometries}/cylinder-geometry.js +2 -2
  24. package/dist/geometries/cylinder-geometry.js.map +1 -0
  25. package/dist/geometries/ico-sphere-geometry.d.ts +11 -0
  26. package/dist/geometries/ico-sphere-geometry.d.ts.map +1 -0
  27. package/dist/{esm/geometries → geometries}/ico-sphere-geometry.js +2 -2
  28. package/dist/geometries/ico-sphere-geometry.js.map +1 -0
  29. package/dist/geometries/plane-geometry.d.ts +10 -0
  30. package/dist/geometries/plane-geometry.d.ts.map +1 -0
  31. package/dist/{esm/geometries → geometries}/plane-geometry.js +5 -5
  32. package/dist/geometries/plane-geometry.js.map +1 -0
  33. package/dist/geometries/sphere-geometry.d.ts +12 -0
  34. package/dist/geometries/sphere-geometry.d.ts.map +1 -0
  35. package/dist/{esm/geometries → geometries}/sphere-geometry.js +2 -9
  36. package/dist/geometries/sphere-geometry.js.map +1 -0
  37. package/dist/geometries/truncated-cone-geometry.d.ts +13 -0
  38. package/dist/geometries/truncated-cone-geometry.d.ts.map +1 -0
  39. package/dist/{esm/geometries → geometries}/truncated-cone-geometry.js +1 -1
  40. package/dist/geometries/truncated-cone-geometry.js.map +1 -0
  41. package/dist/geometry/geometry-utils.d.ts +2 -0
  42. package/dist/geometry/geometry-utils.d.ts.map +1 -0
  43. package/dist/{esm/geometry → geometry}/geometry-utils.js +0 -0
  44. package/dist/geometry/geometry-utils.js.map +1 -0
  45. package/dist/geometry/geometry.d.ts +44 -0
  46. package/dist/geometry/geometry.d.ts.map +1 -0
  47. package/dist/{esm/geometry → geometry}/geometry.js +28 -19
  48. package/dist/geometry/geometry.js.map +1 -0
  49. package/dist/index.d.ts +26 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +17 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/lib/animation-loop.d.ts +149 -0
  54. package/dist/lib/animation-loop.d.ts.map +1 -0
  55. package/dist/{esm/lib → lib}/animation-loop.js +190 -143
  56. package/dist/lib/animation-loop.js.map +1 -0
  57. package/dist/lib/model-utils.d.ts +4 -0
  58. package/dist/lib/model-utils.d.ts.map +1 -0
  59. package/dist/{esm/lib → lib}/model-utils.js +3 -2
  60. package/dist/lib/model-utils.js.map +1 -0
  61. package/dist/lib/model.d.ts +109 -0
  62. package/dist/lib/model.d.ts.map +1 -0
  63. package/dist/{esm/lib → lib}/model.js +76 -20
  64. package/dist/lib/model.js.map +1 -0
  65. package/dist/lib/program-manager.d.ts +39 -0
  66. package/dist/lib/program-manager.d.ts.map +1 -0
  67. package/dist/{esm/lib → lib}/program-manager.js +29 -18
  68. package/dist/lib/program-manager.js.map +1 -0
  69. package/dist/lib/render-loop.d.ts +27 -0
  70. package/dist/lib/render-loop.d.ts.map +1 -0
  71. package/dist/lib/render-loop.js +56 -0
  72. package/dist/lib/render-loop.js.map +1 -0
  73. package/dist/transform/buffer-transform.d.ts +36 -0
  74. package/dist/transform/buffer-transform.d.ts.map +1 -0
  75. package/dist/{esm/transform → transform}/buffer-transform.js +15 -8
  76. package/dist/transform/buffer-transform.js.map +1 -0
  77. package/dist/transform/texture-transform.d.ts +57 -0
  78. package/dist/transform/texture-transform.d.ts.map +1 -0
  79. package/dist/{esm/transform → transform}/texture-transform.js +48 -16
  80. package/dist/transform/texture-transform.js.map +1 -0
  81. package/dist/transform/transform-shader-utils.d.ts +26 -0
  82. package/dist/transform/transform-shader-utils.d.ts.map +1 -0
  83. package/dist/{esm/transform → transform}/transform-shader-utils.js +38 -46
  84. package/dist/transform/transform-shader-utils.js.map +1 -0
  85. package/dist/transform/transform-types.d.ts +44 -0
  86. package/dist/transform/transform-types.d.ts.map +1 -0
  87. package/dist/transform/transform-types.js +2 -0
  88. package/dist/transform/transform-types.js.map +1 -0
  89. package/dist/transform/transform.d.ts +47 -0
  90. package/dist/transform/transform.d.ts.map +1 -0
  91. package/dist/{esm/transform → transform}/transform.js +63 -43
  92. package/dist/transform/transform.js.map +1 -0
  93. package/dist/utils/clip-space.d.ts +5 -0
  94. package/dist/utils/clip-space.d.ts.map +1 -0
  95. package/dist/{esm/utils → utils}/clip-space.js +3 -17
  96. package/dist/utils/clip-space.js.map +1 -0
  97. package/package.json +11 -11
  98. package/src/animation/{key-frames.js → key-frames.ts} +18 -16
  99. package/src/animation/{timeline.js → timeline.ts} +54 -18
  100. package/src/bundle.ts +4 -0
  101. package/src/geometries/{cone-geometry.js → cone-geometry.ts} +9 -3
  102. package/src/geometries/{cube-geometry.js → cube-geometry.ts} +17 -12
  103. package/src/geometries/cylinder-geometry.ts +20 -0
  104. package/src/geometries/{ico-sphere-geometry.js → ico-sphere-geometry.ts} +10 -3
  105. package/src/geometries/{plane-geometry.js → plane-geometry.ts} +11 -6
  106. package/src/geometries/{sphere-geometry.js → sphere-geometry.ts} +15 -11
  107. package/src/geometries/{truncated-cone-geometry.js → truncated-cone-geometry.ts} +14 -5
  108. package/src/geometry/{geometry-utils.js → geometry-utils.ts} +2 -0
  109. package/src/geometry/{geometry.js → geometry.ts} +47 -34
  110. package/src/index.ts +35 -0
  111. package/src/lib/animation-loop.ts +724 -0
  112. package/src/lib/{model-utils.js → model-utils.ts} +2 -2
  113. package/src/lib/{model.js → model.ts} +184 -66
  114. package/src/lib/{program-manager.js → program-manager.ts} +53 -34
  115. package/src/lib/render-loop.ts +56 -0
  116. package/src/transform/{buffer-transform.js → buffer-transform.ts} +42 -27
  117. package/src/transform/{texture-transform.js → texture-transform.ts} +35 -25
  118. package/src/transform/{transform-shader-utils.js → transform-shader-utils.ts} +55 -27
  119. package/src/transform/transform-types.ts +42 -0
  120. package/src/transform/transform.ts +189 -0
  121. package/src/utils/{clip-space.js → clip-space.ts} +4 -3
  122. package/dist/dist.js +0 -32403
  123. package/dist/dist.min.js +0 -1
  124. package/dist/es5/animation/key-frames.d.ts +0 -19
  125. package/dist/es5/animation/key-frames.js +0 -95
  126. package/dist/es5/animation/key-frames.js.map +0 -1
  127. package/dist/es5/animation/timeline.d.ts +0 -39
  128. package/dist/es5/animation/timeline.js +0 -211
  129. package/dist/es5/animation/timeline.js.map +0 -1
  130. package/dist/es5/bundle.js +0 -9
  131. package/dist/es5/bundle.js.map +0 -1
  132. package/dist/es5/geometries/cone-geometry.d.ts +0 -5
  133. package/dist/es5/geometries/cone-geometry.js +0 -59
  134. package/dist/es5/geometries/cone-geometry.js.map +0 -1
  135. package/dist/es5/geometries/cube-geometry.d.ts +0 -5
  136. package/dist/es5/geometries/cube-geometry.js +0 -75
  137. package/dist/es5/geometries/cube-geometry.js.map +0 -1
  138. package/dist/es5/geometries/cylinder-geometry.d.ts +0 -5
  139. package/dist/es5/geometries/cylinder-geometry.js +0 -55
  140. package/dist/es5/geometries/cylinder-geometry.js.map +0 -1
  141. package/dist/es5/geometries/ico-sphere-geometry.d.ts +0 -5
  142. package/dist/es5/geometries/ico-sphere-geometry.js +0 -217
  143. package/dist/es5/geometries/ico-sphere-geometry.js.map +0 -1
  144. package/dist/es5/geometries/index.d.ts +0 -7
  145. package/dist/es5/geometries/index.js +0 -64
  146. package/dist/es5/geometries/index.js.map +0 -1
  147. package/dist/es5/geometries/plane-geometry.d.ts +0 -5
  148. package/dist/es5/geometries/plane-geometry.js +0 -168
  149. package/dist/es5/geometries/plane-geometry.js.map +0 -1
  150. package/dist/es5/geometries/sphere-geometry.d.ts +0 -5
  151. package/dist/es5/geometries/sphere-geometry.js +0 -152
  152. package/dist/es5/geometries/sphere-geometry.js.map +0 -1
  153. package/dist/es5/geometries/truncated-cone-geometry.d.ts +0 -5
  154. package/dist/es5/geometries/truncated-cone-geometry.js +0 -171
  155. package/dist/es5/geometries/truncated-cone-geometry.js.map +0 -1
  156. package/dist/es5/geometry/geometry-utils.d.ts +0 -1
  157. package/dist/es5/geometry/geometry-utils.js +0 -49
  158. package/dist/es5/geometry/geometry-utils.js.map +0 -1
  159. package/dist/es5/geometry/geometry.d.ts +0 -25
  160. package/dist/es5/geometry/geometry.js +0 -150
  161. package/dist/es5/geometry/geometry.js.map +0 -1
  162. package/dist/es5/index.d.ts +0 -19
  163. package/dist/es5/index.js +0 -128
  164. package/dist/es5/index.js.map +0 -1
  165. package/dist/es5/lib/animation-loop.d.ts +0 -158
  166. package/dist/es5/lib/animation-loop.js +0 -642
  167. package/dist/es5/lib/animation-loop.js.map +0 -1
  168. package/dist/es5/lib/model-utils.d.ts +0 -3
  169. package/dist/es5/lib/model-utils.js +0 -110
  170. package/dist/es5/lib/model-utils.js.map +0 -1
  171. package/dist/es5/lib/model.d.ts +0 -214
  172. package/dist/es5/lib/model.js +0 -584
  173. package/dist/es5/lib/model.js.map +0 -1
  174. package/dist/es5/lib/program-manager.d.ts +0 -79
  175. package/dist/es5/lib/program-manager.js +0 -238
  176. package/dist/es5/lib/program-manager.js.map +0 -1
  177. package/dist/es5/transform/buffer-transform.d.ts +0 -13
  178. package/dist/es5/transform/buffer-transform.js +0 -294
  179. package/dist/es5/transform/buffer-transform.js.map +0 -1
  180. package/dist/es5/transform/resource-transform.d.ts +0 -16
  181. package/dist/es5/transform/texture-transform.d.ts +0 -16
  182. package/dist/es5/transform/texture-transform.js +0 -405
  183. package/dist/es5/transform/texture-transform.js.map +0 -1
  184. package/dist/es5/transform/transform-shader-utils.d.ts +0 -31
  185. package/dist/es5/transform/transform-shader-utils.js +0 -160
  186. package/dist/es5/transform/transform-shader-utils.js.map +0 -1
  187. package/dist/es5/transform/transform.d.ts +0 -33
  188. package/dist/es5/transform/transform.js +0 -274
  189. package/dist/es5/transform/transform.js.map +0 -1
  190. package/dist/es5/utils/clip-space.d.ts +0 -5
  191. package/dist/es5/utils/clip-space.js +0 -72
  192. package/dist/es5/utils/clip-space.js.map +0 -1
  193. package/dist/esm/animation/key-frames.d.ts +0 -19
  194. package/dist/esm/animation/key-frames.js.map +0 -1
  195. package/dist/esm/animation/timeline.d.ts +0 -39
  196. package/dist/esm/animation/timeline.js.map +0 -1
  197. package/dist/esm/bundle.js +0 -7
  198. package/dist/esm/bundle.js.map +0 -1
  199. package/dist/esm/geometries/cone-geometry.d.ts +0 -5
  200. package/dist/esm/geometries/cone-geometry.js.map +0 -1
  201. package/dist/esm/geometries/cube-geometry.d.ts +0 -5
  202. package/dist/esm/geometries/cube-geometry.js.map +0 -1
  203. package/dist/esm/geometries/cylinder-geometry.d.ts +0 -5
  204. package/dist/esm/geometries/cylinder-geometry.js.map +0 -1
  205. package/dist/esm/geometries/ico-sphere-geometry.d.ts +0 -5
  206. package/dist/esm/geometries/ico-sphere-geometry.js.map +0 -1
  207. package/dist/esm/geometries/index.d.ts +0 -7
  208. package/dist/esm/geometries/index.js +0 -8
  209. package/dist/esm/geometries/index.js.map +0 -1
  210. package/dist/esm/geometries/plane-geometry.d.ts +0 -5
  211. package/dist/esm/geometries/plane-geometry.js.map +0 -1
  212. package/dist/esm/geometries/sphere-geometry.d.ts +0 -5
  213. package/dist/esm/geometries/sphere-geometry.js.map +0 -1
  214. package/dist/esm/geometries/truncated-cone-geometry.d.ts +0 -5
  215. package/dist/esm/geometries/truncated-cone-geometry.js.map +0 -1
  216. package/dist/esm/geometry/geometry-utils.d.ts +0 -1
  217. package/dist/esm/geometry/geometry-utils.js.map +0 -1
  218. package/dist/esm/geometry/geometry.d.ts +0 -25
  219. package/dist/esm/geometry/geometry.js.map +0 -1
  220. package/dist/esm/index.d.ts +0 -19
  221. package/dist/esm/index.js +0 -16
  222. package/dist/esm/index.js.map +0 -1
  223. package/dist/esm/lib/animation-loop.d.ts +0 -158
  224. package/dist/esm/lib/animation-loop.js.map +0 -1
  225. package/dist/esm/lib/model-utils.d.ts +0 -3
  226. package/dist/esm/lib/model-utils.js.map +0 -1
  227. package/dist/esm/lib/model.d.ts +0 -214
  228. package/dist/esm/lib/model.js.map +0 -1
  229. package/dist/esm/lib/program-manager.d.ts +0 -79
  230. package/dist/esm/lib/program-manager.js.map +0 -1
  231. package/dist/esm/transform/buffer-transform.d.ts +0 -13
  232. package/dist/esm/transform/buffer-transform.js.map +0 -1
  233. package/dist/esm/transform/resource-transform.d.ts +0 -16
  234. package/dist/esm/transform/texture-transform.d.ts +0 -16
  235. package/dist/esm/transform/texture-transform.js.map +0 -1
  236. package/dist/esm/transform/transform-shader-utils.d.ts +0 -31
  237. package/dist/esm/transform/transform-shader-utils.js.map +0 -1
  238. package/dist/esm/transform/transform.d.ts +0 -33
  239. package/dist/esm/transform/transform.js.map +0 -1
  240. package/dist/esm/utils/clip-space.d.ts +0 -5
  241. package/dist/esm/utils/clip-space.js.map +0 -1
  242. package/src/animation/key-frames.d.ts +0 -19
  243. package/src/animation/timeline.d.ts +0 -39
  244. package/src/bundle.js +0 -7
  245. package/src/geometries/cone-geometry.d.ts +0 -5
  246. package/src/geometries/cube-geometry.d.ts +0 -5
  247. package/src/geometries/cylinder-geometry.d.ts +0 -5
  248. package/src/geometries/cylinder-geometry.js +0 -14
  249. package/src/geometries/ico-sphere-geometry.d.ts +0 -5
  250. package/src/geometries/index.d.ts +0 -7
  251. package/src/geometries/index.js +0 -7
  252. package/src/geometries/plane-geometry.d.ts +0 -5
  253. package/src/geometries/sphere-geometry.d.ts +0 -5
  254. package/src/geometries/truncated-cone-geometry.d.ts +0 -5
  255. package/src/geometry/geometry-utils.d.ts +0 -1
  256. package/src/geometry/geometry.d.ts +0 -25
  257. package/src/index.d.ts +0 -19
  258. package/src/index.js +0 -22
  259. package/src/lib/animation-loop.d.ts +0 -158
  260. package/src/lib/animation-loop.js +0 -601
  261. package/src/lib/model-utils.d.ts +0 -3
  262. package/src/lib/model.d.ts +0 -214
  263. package/src/lib/program-manager.d.ts +0 -79
  264. package/src/transform/buffer-transform.d.ts +0 -13
  265. package/src/transform/resource-transform.d.ts +0 -16
  266. package/src/transform/texture-transform.d.ts +0 -16
  267. package/src/transform/transform-shader-utils.d.ts +0 -31
  268. package/src/transform/transform.d.ts +0 -33
  269. package/src/transform/transform.js +0 -177
  270. 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,5 +0,0 @@
1
- import Geometry from '../geometry/geometry';
2
-
3
- export default class TruncatedConeGeometry extends Geometry {
4
- constructor(props?: {});
5
- }
@@ -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":"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","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"}
@@ -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';