@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,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,5 +0,0 @@
1
- import Geometry from '../geometry/geometry';
2
-
3
- export default class PlaneGeometry extends Geometry {
4
- constructor(props?: {});
5
- }
@@ -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"}
@@ -1,5 +0,0 @@
1
- import Geometry from '../geometry/geometry';
2
-
3
- export default class SphereGeometry extends Geometry {
4
- constructor(props?: {});
5
- }