@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 +0,0 @@
1
- {"version":3,"sources":["../../../src/geometries/ico-sphere-geometry.js"],"names":["Vector3","Geometry","uid","ICO_POSITIONS","ICO_INDICES","IcoSphereGeometry","constructor","props","id","indices","attributes","tesselateIcosaHedron","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","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,8 +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';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/geometries/index.js"],"names":["default","ConeGeometry","CubeGeometry","CylinderGeometry","IcoSphereGeometry","PlaneGeometry","SphereGeometry","TruncatedConeGeometry"],"mappings":"AAAA,SAAQA,OAAO,IAAIC,YAAnB,QAAsC,iBAAtC;AACA,SAAQD,OAAO,IAAIE,YAAnB,QAAsC,iBAAtC;AACA,SAAQF,OAAO,IAAIG,gBAAnB,QAA0C,qBAA1C;AACA,SAAQH,OAAO,IAAII,iBAAnB,QAA2C,uBAA3C;AACA,SAAQJ,OAAO,IAAIK,aAAnB,QAAuC,kBAAvC;AACA,SAAQL,OAAO,IAAIM,cAAnB,QAAwC,mBAAxC;AACA,SAAQN,OAAO,IAAIO,qBAAnB,QAA+C,2BAA/C","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 +0,0 @@
1
- {"version":3,"sources":["../../../src/geometries/plane-geometry.js"],"names":["Geometry","unpackIndexedGeometry","uid","PlaneGeometry","constructor","props","id","indices","attributes","tesselatePlane","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":"AAAA,OAAOA,QAAP,MAAqB,sBAArB;AACA,SAAQC,qBAAR,QAAoC,4BAApC;AACA,SAAQC,GAAR,QAAkB,gBAAlB;AAEA,eAAe,MAAMC,aAAN,SAA4BH,QAA5B,CAAqC;AAClDI,EAAAA,WAAW,CAACC,KAAK,GAAG,EAAT,EAAa;AACtB,UAAM;AAACC,MAAAA,EAAE,GAAGJ,GAAG,CAAC,gBAAD;AAAT,QAA+BG,KAArC;AAEA,UAAM;AAACE,MAAAA,OAAD;AAAUC,MAAAA;AAAV,QAAwBC,cAAc,CAACJ,KAAD,CAA5C;AACA,UAAM,EACJ,GAAGA,KADC;AAEJC,MAAAA,EAFI;AAGJC,MAAAA,OAHI;AAIJC,MAAAA,UAAU,EAAE,EAAC,GAAGA,UAAJ;AAAgB,WAAGH,KAAK,CAACG;AAAzB;AAJR,KAAN;AAMD;;AAXiD;;AAmBpD,SAASC,cAAT,CAAwBJ,KAAxB,EAA+B;AAC7B,QAAM;AAACK,IAAAA,IAAI,GAAG,KAAR;AAAeC,IAAAA,MAAM,GAAG,CAAxB;AAA2BC,IAAAA,QAAQ,GAAG,KAAtC;AAA6CC,IAAAA,MAAM,GAAG;AAAtD,MAA+DR,KAArE;AAEA,QAAMS,MAAM,GAAGJ,IAAI,CAACK,KAAL,CAAW,GAAX,CAAf;AAEA,MAAIC,KAAK,GAAGX,KAAK,CAAE,GAAES,MAAM,CAAC,CAAD,CAAI,KAAd,CAAL,IAA4B,CAAxC;AACA,QAAMG,KAAK,GAAGZ,KAAK,CAAE,GAAES,MAAM,CAAC,CAAD,CAAI,KAAd,CAAL,IAA4B,CAA1C;AAEA,QAAMI,aAAa,GAAGb,KAAK,CAAE,IAAGS,MAAM,CAAC,CAAD,CAAI,EAAf,CAAL,IAA0B,CAAhD;AACA,QAAMK,aAAa,GAAGd,KAAK,CAAE,IAAGS,MAAM,CAAC,CAAD,CAAI,EAAf,CAAL,IAA0B,CAAhD;AACA,QAAMM,WAAW,GAAG,CAACF,aAAa,GAAG,CAAjB,KAAuBC,aAAa,GAAG,CAAvC,CAApB;AAEA,QAAME,SAAS,GAAG,IAAIC,YAAJ,CAAiBF,WAAW,GAAG,CAA/B,CAAlB;AACA,QAAMG,OAAO,GAAG,IAAID,YAAJ,CAAiBF,WAAW,GAAG,CAA/B,CAAhB;AACA,QAAMI,SAAS,GAAG,IAAIF,YAAJ,CAAiBF,WAAW,GAAG,CAA/B,CAAlB;;AAEA,MAAIR,QAAJ,EAAc;AACZI,IAAAA,KAAK,GAAG,CAACA,KAAT;AACD;;AAED,MAAIS,EAAE,GAAG,CAAT;AACA,MAAIC,EAAE,GAAG,CAAT;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIR,aAArB,EAAoCQ,CAAC,EAArC,EAAyC;AACvC,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIV,aAArB,EAAoCU,CAAC,EAArC,EAAyC;AACvC,YAAMC,CAAC,GAAGD,CAAC,GAAGV,aAAd;AACA,YAAMY,CAAC,GAAGH,CAAC,GAAGR,aAAd;AACAK,MAAAA,SAAS,CAACC,EAAE,GAAG,CAAN,CAAT,GAAoBb,QAAQ,GAAG,IAAIiB,CAAP,GAAWA,CAAvC;AACAL,MAAAA,SAAS,CAACC,EAAE,GAAG,CAAN,CAAT,GAAoBK,CAApB;;AAEA,cAAQpB,IAAR;AACE,aAAK,KAAL;AACEW,UAAAA,SAAS,CAACK,EAAE,GAAG,CAAN,CAAT,GAAoBV,KAAK,GAAGa,CAAR,GAAYb,KAAK,GAAG,GAAxC;AACAK,UAAAA,SAAS,CAACK,EAAE,GAAG,CAAN,CAAT,GAAoBT,KAAK,GAAGa,CAAR,GAAYb,KAAK,GAAG,GAAxC;AACAI,UAAAA,SAAS,CAACK,EAAE,GAAG,CAAN,CAAT,GAAoBf,MAApB;AAEAY,UAAAA,OAAO,CAACG,EAAE,GAAG,CAAN,CAAP,GAAkB,CAAlB;AACAH,UAAAA,OAAO,CAACG,EAAE,GAAG,CAAN,CAAP,GAAkB,CAAlB;AACAH,UAAAA,OAAO,CAACG,EAAE,GAAG,CAAN,CAAP,GAAkBd,QAAQ,GAAG,CAAH,GAAO,CAAC,CAAlC;AACA;;AAEF,aAAK,KAAL;AACES,UAAAA,SAAS,CAACK,EAAE,GAAG,CAAN,CAAT,GAAoBV,KAAK,GAAGa,CAAR,GAAYb,KAAK,GAAG,GAAxC;AACAK,UAAAA,SAAS,CAACK,EAAE,GAAG,CAAN,CAAT,GAAoBf,MAApB;AACAU,UAAAA,SAAS,CAACK,EAAE,GAAG,CAAN,CAAT,GAAoBT,KAAK,GAAGa,CAAR,GAAYb,KAAK,GAAG,GAAxC;AAEAM,UAAAA,OAAO,CAACG,EAAE,GAAG,CAAN,CAAP,GAAkB,CAAlB;AACAH,UAAAA,OAAO,CAACG,EAAE,GAAG,CAAN,CAAP,GAAkBd,QAAQ,GAAG,CAAH,GAAO,CAAC,CAAlC;AACAW,UAAAA,OAAO,CAACG,EAAE,GAAG,CAAN,CAAP,GAAkB,CAAlB;AACA;;AAEF,aAAK,KAAL;AACEL,UAAAA,SAAS,CAACK,EAAE,GAAG,CAAN,CAAT,GAAoBf,MAApB;AACAU,UAAAA,SAAS,CAACK,EAAE,GAAG,CAAN,CAAT,GAAoBV,KAAK,GAAGa,CAAR,GAAYb,KAAK,GAAG,GAAxC;AACAK,UAAAA,SAAS,CAACK,EAAE,GAAG,CAAN,CAAT,GAAoBT,KAAK,GAAGa,CAAR,GAAYb,KAAK,GAAG,GAAxC;AAEAM,UAAAA,OAAO,CAACG,EAAE,GAAG,CAAN,CAAP,GAAkBd,QAAQ,GAAG,CAAH,GAAO,CAAC,CAAlC;AACAW,UAAAA,OAAO,CAACG,EAAE,GAAG,CAAN,CAAP,GAAkB,CAAlB;AACAH,UAAAA,OAAO,CAACG,EAAE,GAAG,CAAN,CAAP,GAAkB,CAAlB;AACA;;AAEF;AACE,gBAAM,IAAIK,KAAJ,CAAU,6BAAV,CAAN;AAhCJ;;AAmCAN,MAAAA,EAAE,IAAI,CAAN;AACAC,MAAAA,EAAE,IAAI,CAAN;AACD;AACF;;AAED,QAAMM,cAAc,GAAGd,aAAa,GAAG,CAAvC;AACA,QAAMX,OAAO,GAAG,IAAI0B,WAAJ,CAAgBf,aAAa,GAAGC,aAAhB,GAAgC,CAAhD,CAAhB;;AAEA,OAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGR,aAApB,EAAmCQ,CAAC,EAApC,EAAwC;AACtC,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGV,aAApB,EAAmCU,CAAC,EAApC,EAAwC;AACtC,YAAMM,KAAK,GAAG,CAACP,CAAC,GAAGT,aAAJ,GAAoBU,CAArB,IAA0B,CAAxC;AAEArB,MAAAA,OAAO,CAAC2B,KAAK,GAAG,CAAT,CAAP,GAAqB,CAACP,CAAC,GAAG,CAAL,IAAUK,cAAV,GAA2BJ,CAAhD;AACArB,MAAAA,OAAO,CAAC2B,KAAK,GAAG,CAAT,CAAP,GAAqB,CAACP,CAAC,GAAG,CAAL,IAAUK,cAAV,GAA2BJ,CAAhD;AACArB,MAAAA,OAAO,CAAC2B,KAAK,GAAG,CAAT,CAAP,GAAqB,CAACP,CAAC,GAAG,CAAL,IAAUK,cAAV,GAA2BJ,CAA3B,GAA+B,CAApD;AAGArB,MAAAA,OAAO,CAAC2B,KAAK,GAAG,CAAT,CAAP,GAAqB,CAACP,CAAC,GAAG,CAAL,IAAUK,cAAV,GAA2BJ,CAAhD;AACArB,MAAAA,OAAO,CAAC2B,KAAK,GAAG,CAAT,CAAP,GAAqB,CAACP,CAAC,GAAG,CAAL,IAAUK,cAAV,GAA2BJ,CAA3B,GAA+B,CAApD;AACArB,MAAAA,OAAO,CAAC2B,KAAK,GAAG,CAAT,CAAP,GAAqB,CAACP,CAAC,GAAG,CAAL,IAAUK,cAAV,GAA2BJ,CAA3B,GAA+B,CAApD;AACD;AACF;;AAED,QAAMO,QAAQ,GAAG;AACf5B,IAAAA,OAAO,EAAE;AAAC6B,MAAAA,IAAI,EAAE,CAAP;AAAUC,MAAAA,KAAK,EAAE9B;AAAjB,KADM;AAEfC,IAAAA,UAAU,EAAE;AACV8B,MAAAA,QAAQ,EAAE;AAACF,QAAAA,IAAI,EAAE,CAAP;AAAUC,QAAAA,KAAK,EAAEhB;AAAjB,OADA;AAEVkB,MAAAA,MAAM,EAAE;AAACH,QAAAA,IAAI,EAAE,CAAP;AAAUC,QAAAA,KAAK,EAAEd;AAAjB,OAFE;AAGViB,MAAAA,UAAU,EAAE;AAACJ,QAAAA,IAAI,EAAE,CAAP;AAAUC,QAAAA,KAAK,EAAEb;AAAjB;AAHF;AAFG,GAAjB;AAUA,SAAOX,MAAM,GAAGZ,qBAAqB,CAACkC,QAAD,CAAxB,GAAqCA,QAAlD;AACD","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
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/geometries/sphere-geometry.js"],"names":["Geometry","uid","SphereGeometry","constructor","props","id","indices","attributes","tesselateSphere","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 +0,0 @@
1
- {"version":3,"sources":["../../../src/geometries/truncated-cone-geometry.js"],"names":["Geometry","uid","INDEX_OFFSETS","x","y","z","TruncatedConeGeometry","constructor","props","id","indices","attributes","tesselateTruncatedCone","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 +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":"AAAA,OAAO,SAASA,qBAAT,CAA+BC,QAA/B,EAAyC;AAC9C,QAAM;AAACC,IAAAA,OAAD;AAAUC,IAAAA;AAAV,MAAwBF,QAA9B;;AACA,MAAI,CAACC,OAAL,EAAc;AACZ,WAAOD,QAAP;AACD;;AAED,QAAMG,WAAW,GAAGF,OAAO,CAACG,KAAR,CAAcC,MAAlC;AACA,QAAMC,kBAAkB,GAAG,EAA3B;;AAEA,OAAK,MAAMC,aAAX,IAA4BL,UAA5B,EAAwC;AACtC,UAAMM,SAAS,GAAGN,UAAU,CAACK,aAAD,CAA5B;AACA,UAAM;AAACE,MAAAA,QAAD;AAAWL,MAAAA,KAAX;AAAkBM,MAAAA;AAAlB,QAA0BF,SAAhC;;AACA,QAAIC,QAAQ,IAAI,CAACC,IAAjB,EAAuB;AACrB;AACD;;AACD,UAAMC,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,YAAMC,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,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 +0,0 @@
1
- {"version":3,"sources":["../../../src/geometry/geometry.js"],"names":["uid","assert","DRAW_MODE","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","Geometry","constructor","props","id","drawMode","attributes","indices","vertexCount","userData","_setAttributes","_calculateVertexCount","mode","getVertexCount","getAttributes","_print","attributeName","ArrayBuffer","isView","value","size","attribute","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';
package/dist/esm/index.js DELETED
@@ -1,16 +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
- export { default as Geometry } from './geometry/geometry';
6
- export { default as ConeGeometry } from './geometries/cone-geometry';
7
- export { default as CubeGeometry } from './geometries/cube-geometry';
8
- export { default as CylinderGeometry } from './geometries/cylinder-geometry';
9
- export { default as IcoSphereGeometry } from './geometries/ico-sphere-geometry';
10
- export { default as PlaneGeometry } from './geometries/plane-geometry';
11
- export { default as SphereGeometry } from './geometries/sphere-geometry';
12
- export { default as TruncatedConeGeometry } from './geometries/truncated-cone-geometry';
13
- export { Timeline } from './animation/timeline';
14
- export { KeyFrames } from './animation/key-frames';
15
- export { default as ClipSpace } from './utils/clip-space';
16
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.js"],"names":["default","AnimationLoop","Model","ProgramManager","Transform","Geometry","ConeGeometry","CubeGeometry","CylinderGeometry","IcoSphereGeometry","PlaneGeometry","SphereGeometry","TruncatedConeGeometry","Timeline","KeyFrames","ClipSpace"],"mappings":"AACA,SAAQA,OAAO,IAAIC,aAAnB,QAAuC,sBAAvC;AACA,SAAQD,OAAO,IAAIE,KAAnB,QAA+B,aAA/B;AACA,SAAQF,OAAO,IAAIG,cAAnB,QAAwC,uBAAxC;AACA,SAAQH,OAAO,IAAII,SAAnB,QAAmC,uBAAnC;AAGA,SAAQJ,OAAO,IAAIK,QAAnB,QAAkC,qBAAlC;AACA,SAAQL,OAAO,IAAIM,YAAnB,QAAsC,4BAAtC;AACA,SAAQN,OAAO,IAAIO,YAAnB,QAAsC,4BAAtC;AACA,SAAQP,OAAO,IAAIQ,gBAAnB,QAA0C,gCAA1C;AACA,SAAQR,OAAO,IAAIS,iBAAnB,QAA2C,kCAA3C;AACA,SAAQT,OAAO,IAAIU,aAAnB,QAAuC,6BAAvC;AACA,SAAQV,OAAO,IAAIW,cAAnB,QAAwC,8BAAxC;AACA,SAAQX,OAAO,IAAIY,qBAAnB,QAA+C,sCAA/C;AAGA,SAAQC,QAAR,QAAuB,sBAAvB;AACA,SAAQC,SAAR,QAAwB,wBAAxB;AAGA,SAAQd,OAAO,IAAIe,SAAnB,QAAmC,oBAAnC","sourcesContent":["// CORE\nexport {default as AnimationLoop} from './lib/animation-loop';\nexport {default as Model} from './lib/model';\nexport {default as ProgramManager} from './lib/program-manager';\nexport {default as Transform} from './transform/transform';\n\n// Geometries\nexport {default as Geometry} from './geometry/geometry';\nexport {default as ConeGeometry} from './geometries/cone-geometry';\nexport {default as CubeGeometry} from './geometries/cube-geometry';\nexport {default as CylinderGeometry} from './geometries/cylinder-geometry';\nexport {default as IcoSphereGeometry} from './geometries/ico-sphere-geometry';\nexport {default as PlaneGeometry} from './geometries/plane-geometry';\nexport {default as SphereGeometry} from './geometries/sphere-geometry';\nexport {default as TruncatedConeGeometry} from './geometries/truncated-cone-geometry';\n\n// Animation\nexport {Timeline} from './animation/timeline';\nexport {KeyFrames} from './animation/key-frames';\n\n// Utils\nexport {default as ClipSpace} from './utils/clip-space';\n"],"file":"index.js"}
@@ -1,158 +0,0 @@
1
- // TODO - remove dependency on framebuffer (bundle size impact)
2
- import {Query, Framebuffer} from '@luma.gl/webgl';
3
- import { Stats } from 'probe.gl'
4
- import { Timeline } from '../animation/timeline'
5
-
6
- import {CreateGLContextOptions} from '@luma.gl/gltools'
7
- import {StatsManager} from '@luma.gl/webgl/src/init';
8
-
9
- interface AnimationProps {
10
- gl: WebGLRenderingContext
11
-
12
- stop: () => AnimationLoop
13
- canvas: HTMLCanvasElement | OffscreenCanvas
14
- framebuffer: Framebuffer
15
- // Initial values
16
- useDevicePixels: number | boolean
17
- needsRedraw?: string
18
- // Animation props
19
- startTime: number
20
- engineTime: number
21
- tick: number
22
- tock: number
23
-
24
- // Timeline time for back compatibility
25
- time: number
26
-
27
- width: number
28
- height: number
29
- aspect: number
30
-
31
- // Experimental
32
- _timeline: Timeline
33
- _loop: AnimationLoop
34
- _animationLoop: AnimationLoop
35
- _mousePosition?: [number, number] // [offsetX, offsetY]
36
- _offScreen: boolean
37
- }
38
-
39
- type AnimationLoopViewProps = {
40
- // view parameters
41
- autoResizeViewport?: boolean
42
- autoResizeDrawingBuffer?: boolean
43
- useDevicePixels?: number | boolean
44
- }
45
-
46
- // constructor parameters
47
- type AnimationLoopProps = AnimationLoopViewProps & {
48
- onCreateContext?: (opts: CreateGLContextOptions) => WebGLRenderingContext // TODO: signature from createGLContext
49
- onAddHTML?: (div: HTMLDivElement) => string // innerHTML
50
- onInitialize?: (animationProps: AnimationProps) => AnimationProps | Promise<AnimationProps>
51
- onRender?: (animationProps: AnimationProps) => void
52
- onFinalize?: (animationProps: AnimationProps) => void
53
- onError?: (reason: any) => PromiseLike<never>
54
- gl?: WebGLRenderingContext
55
- glOptions?: CreateGLContextOptions // createGLContext options
56
- debug?: boolean
57
- createFramebuffer?: boolean
58
- stats?: Stats
59
- }
60
-
61
- // instance of parameters after construction
62
- type AnimationLoopPropsInternal = {
63
- onCreateContext: (opts: CreateGLContextOptions) => WebGLRenderingContext // TODO: signature from createGLContext
64
- onAddHTML?: (div: HTMLDivElement) => string // innerHTML
65
- onInitialize: (animationProps: AnimationProps) => AnimationProps | Promise<AnimationProps>
66
- onRender: (animationProps: AnimationProps) => void
67
- onFinalize: (animationProps: AnimationProps) => void
68
- onError: (reason: any) => PromiseLike<never>
69
- gl?: WebGLRenderingContext
70
- glOptions: CreateGLContextOptions // createGLContext options
71
- debug: boolean
72
- createFramebuffer: boolean
73
- }
74
-
75
- export default class AnimationLoop {
76
- readonly animationProps: AnimationProps
77
- readonly props: AnimationLoopPropsInternal
78
- readonly gl: WebGLRenderingContext
79
- readonly canvas: HTMLCanvasElement | OffscreenCanvas
80
- readonly framebuffer: Framebuffer
81
- readonly timeline: Timeline
82
- readonly stats: Stats
83
- readonly cpuTime: Stats
84
- readonly gpuTime: Stats
85
- readonly frameRate: Stats
86
- readonly offScreen: boolean
87
-
88
- readonly display: any
89
-
90
- readonly useDevicePixels: number | boolean
91
- readonly autoResizeDrawingBuffer: boolean
92
- readonly autoResizeViewport: boolean
93
-
94
- constructor(props?: AnimationLoopProps);
95
- delete(): void;
96
- setNeedsRedraw(reason: string): AnimationLoop;
97
- setProps(props: AnimationLoopViewProps): AnimationLoop;
98
- start(opts?: CreateGLContextOptions): AnimationLoop;
99
- redraw(): AnimationLoop;
100
- stop(): AnimationLoop;
101
- attachTimeline(timeline: Timeline): Timeline;
102
- detachTimeline(): void;
103
- waitForRender(): Promise<void>;
104
- toDataURL(): Promise<string>;
105
- setViewParameters(): AnimationLoop;
106
- getHTMLControlValue(id: string, defaultValue?: number): number;
107
- isContextLost(): boolean;
108
-
109
- // Callbacks
110
- onCreateContext(opts: CreateGLContextOptions): WebGLRenderingContext;
111
- onInitialize(animationProps: object): object | Promise<object> | void;
112
- onRender(animationProps: object): void;
113
- onFinalize(animationProps: object): void;
114
- // TODO
115
- // onInitialize(animationProps: AnimationProps): AnimationProps | Promise<AnimationProps>;
116
- // onRender(animationProps: AnimationProps): void;
117
- // onFinalize(animationProps: AnimationProps): void;
118
-
119
- /*
120
- _startLoop(): void;
121
- _getPageLoadPromise(): Promise<Document>;
122
- _setDisplay(display?: any): void;
123
- _requestAnimationFrame(renderFrameCallback: () => void): void;
124
- _renderFrame(animationProps: AnimationProps): void;
125
- _clearNeedsRedraw(): void;
126
- _setupFrame(): void;
127
- _initializeCallbackData(): void;
128
- _updateCallbackData(): void;
129
- _finalizeCallbackData(): void;
130
- _addCallbackData(appContext: AnimationProps): void;
131
- _createWebGLContext(opts: CreateGLContextOptions): void;
132
- _createInfoDiv(): void;
133
- _getSizeAndAspect(): {
134
- width: number;
135
- height: number;
136
- aspect: number;
137
- };
138
- _resizeViewport(): void;
139
- _resizeCanvasDrawingBuffer(): void;
140
- _createFramebuffer(): void;
141
- _resizeFramebuffer(): void;
142
- _beginTimers(): void;
143
- _endTimers(): void;
144
- _startEventHandling(): void;
145
- _onMousemove(e: MouseEvent): void;
146
- _onMouseleave(e: MouseEvent): void;
147
-
148
- _initialized: boolean
149
- _running: boolean
150
- _animationFrameId?: number
151
- _nextFramePromise?: Promise<void>
152
- _resolveNextFrame?: (value: AnimationLoop) => void
153
- _cpuStartTime: number
154
- _gpuTimeQuery?: Query
155
- _pageLoadPromise?: Promise<Document>
156
-
157
- */
158
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/animation-loop.js"],"names":["isWebGL","createGLContext","instrumentGLContext","resizeGLContext","resetParameters","requestAnimationFrame","cancelAnimationFrame","Query","lumaStats","Framebuffer","log","assert","isBrowser","isPage","document","statIdCounter","AnimationLoop","constructor","props","onCreateContext","opts","onAddHTML","onInitialize","onRender","onFinalize","onError","gl","glOptions","debug","createFramebuffer","autoResizeViewport","autoResizeDrawingBuffer","stats","get","useDevicePixels","deprecated","useDevicePixelRatio","needsRedraw","timeline","cpuTime","gpuTime","frameRate","_initialized","_running","_animationFrameId","_nextFramePromise","_resolveNextFrame","_cpuStartTime","setProps","start","bind","stop","_pageLoadPromise","_onMousemove","_onMouseleave","delete","_setDisplay","setNeedsRedraw","reason","startPromise","_getPageLoadPromise","then","_createWebGLContext","_createFramebuffer","_startEventHandling","_initializeCallbackData","_updateCallbackData","_resizeCanvasDrawingBuffer","_resizeViewport","_gpuTimeQuery","isSupported","animationProps","appContext","_addCallbackData","_startLoop","catch","redraw","isContextLost","_beginTimers","_setupFrame","_renderFrame","_clearNeedsRedraw","offScreen","commit","_endTimers","_finalizeCallbackData","_cancelAnimationFrame","attachTimeline","detachTimeline","waitForRender","Promise","resolve","toDataURL","canvas","args","getHTMLControlValue","id","defaultValue","element","getElementById","Number","value","setViewParameters","removed","renderFrame","_requestAnimationFrame","reject","readyState","window","addEventListener","display","animationLoop","animationFrameId","renderFrameCallback","undefined","_resizeFramebuffer","framebuffer","startTime","Date","now","engineTime","tick","tock","time","_timeline","_loop","_animationLoop","_mousePosition","width","height","aspect","_getSizeAndAspect","update","Math","floor","getTime","_offScreen","Object","assign","OffscreenCanvas","Error","_createInfoDiv","wrapperDiv","createElement","body","appendChild","style","position","div","left","bottom","background","html","innerHTML","drawingBufferWidth","drawingBufferHeight","clientHeight","clientWidth","viewport","resize","timeEnd","timeStart","isResultAvailable","isTimerDisjoint","addTime","getTimerMilliseconds","beginTimeElapsedQuery","end","e","offsetX","offsetY"],"mappings":"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","sourcesContent":["import {\n isWebGL,\n createGLContext,\n instrumentGLContext,\n resizeGLContext,\n resetParameters\n} from '@luma.gl/gltools';\n\nimport {\n requestAnimationFrame,\n cancelAnimationFrame,\n Query,\n lumaStats,\n // TODO - remove dependency on framebuffer (bundle size impact)\n Framebuffer,\n log,\n assert\n} from '@luma.gl/webgl';\n\nimport {isBrowser} from 'probe.gl/env';\n\nconst isPage = isBrowser() && typeof document !== 'undefined';\n\nlet statIdCounter = 0;\n\nexport default class AnimationLoop {\n /*\n * @param {HTMLCanvasElement} canvas - if provided, width and height will be passed to context\n */\n constructor(props = {}) {\n const {\n onCreateContext = opts => createGLContext(opts),\n onAddHTML = null,\n onInitialize = () => {},\n onRender = () => {},\n onFinalize = () => {},\n onError,\n\n gl = null,\n glOptions = {},\n debug = false,\n\n createFramebuffer = false,\n\n // view parameters\n autoResizeViewport = true,\n autoResizeDrawingBuffer = true,\n stats = lumaStats.get(`animation-loop-${statIdCounter++}`)\n } = props;\n\n let {useDevicePixels = true} = props;\n\n if ('useDevicePixelRatio' in props) {\n log.deprecated('useDevicePixelRatio', 'useDevicePixels')();\n // @ts-ignore\n useDevicePixels = props.useDevicePixelRatio;\n }\n\n this.props = {\n onCreateContext,\n onAddHTML,\n onInitialize,\n onRender,\n onFinalize,\n onError,\n\n gl,\n glOptions,\n debug,\n createFramebuffer\n };\n\n // state\n this.gl = gl;\n this.needsRedraw = null;\n this.timeline = null;\n this.stats = stats;\n this.cpuTime = this.stats.get('CPU Time');\n this.gpuTime = this.stats.get('GPU Time');\n this.frameRate = this.stats.get('Frame Rate');\n\n this._initialized = false;\n this._running = false;\n this._animationFrameId = null;\n this._nextFramePromise = null;\n this._resolveNextFrame = null;\n this._cpuStartTime = 0;\n\n this.setProps({\n autoResizeViewport,\n autoResizeDrawingBuffer,\n useDevicePixels\n });\n\n // Bind methods\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n\n this._pageLoadPromise = null;\n\n this._onMousemove = this._onMousemove.bind(this);\n this._onMouseleave = this._onMouseleave.bind(this);\n }\n\n delete() {\n this.stop();\n this._setDisplay(null);\n }\n\n setNeedsRedraw(reason) {\n assert(typeof reason === 'string');\n this.needsRedraw = this.needsRedraw || reason;\n return this;\n }\n\n setProps(props) {\n if ('autoResizeViewport' in props) {\n this.autoResizeViewport = props.autoResizeViewport;\n }\n if ('autoResizeDrawingBuffer' in props) {\n this.autoResizeDrawingBuffer = props.autoResizeDrawingBuffer;\n }\n if ('useDevicePixels' in props) {\n this.useDevicePixels = props.useDevicePixels;\n }\n return this;\n }\n\n // Starts a render loop if not already running\n // @param {Object} context - contains frame specific info (E.g. tick, width, height, etc)\n start(opts = {}) {\n if (this._running) {\n return this;\n }\n this._running = true;\n // console.debug(`Starting ${this.constructor.name}`);\n // Wait for start promise before rendering frame\n const startPromise = this._getPageLoadPromise()\n .then(() => {\n if (!this._running || this._initialized) {\n return null;\n }\n\n // Create the WebGL context\n this._createWebGLContext(opts);\n this._createFramebuffer();\n this._startEventHandling();\n\n // Initialize the callback data\n this._initializeCallbackData();\n this._updateCallbackData();\n\n // Default viewport setup, in case onInitialize wants to render\n this._resizeCanvasDrawingBuffer();\n this._resizeViewport();\n\n this._gpuTimeQuery = Query.isSupported(this.gl, ['timers']) ? new Query(this.gl) : null;\n\n this._initialized = true;\n\n // Note: onIntialize can return a promise (in case it needs to load resources)\n return this.onInitialize(this.animationProps);\n })\n .then(appContext => {\n if (this._running) {\n this._addCallbackData(appContext || {});\n if (appContext !== false) {\n this._startLoop();\n }\n }\n });\n\n if (this.props.onError) {\n startPromise.catch(this.props.onError);\n }\n\n return this;\n }\n\n // Redraw now\n redraw() {\n if (this.isContextLost()) {\n return this;\n }\n\n this._beginTimers();\n\n this._setupFrame();\n this._updateCallbackData();\n\n this._renderFrame(this.animationProps);\n\n // clear needsRedraw flag\n this._clearNeedsRedraw();\n\n // https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/commit\n // Chrome's offscreen canvas does not require gl.commit\n if (this.offScreen && this.gl.commit) {\n this.gl.commit();\n }\n\n if (this._resolveNextFrame) {\n this._resolveNextFrame(this);\n this._nextFramePromise = null;\n this._resolveNextFrame = null;\n }\n\n this._endTimers();\n\n return this;\n }\n\n // Stops a render loop if already running, finalizing\n stop() {\n // console.debug(`Stopping ${this.constructor.name}`);\n if (this._running) {\n this._finalizeCallbackData();\n this._cancelAnimationFrame(this._animationFrameId);\n this._nextFramePromise = null;\n this._resolveNextFrame = null;\n this._animationFrameId = null;\n this._running = false;\n }\n return this;\n }\n\n attachTimeline(timeline) {\n this.timeline = timeline;\n\n return this.timeline;\n }\n\n detachTimeline() {\n this.timeline = null;\n }\n\n waitForRender() {\n this.setNeedsRedraw('waitForRender');\n\n if (!this._nextFramePromise) {\n this._nextFramePromise = new Promise(resolve => {\n this._resolveNextFrame = resolve;\n });\n }\n return this._nextFramePromise;\n }\n\n async toDataURL() {\n this.setNeedsRedraw('toDataURL');\n\n await this.waitForRender();\n\n return this.gl.canvas.toDataURL();\n }\n\n isContextLost() {\n return this.gl.isContextLost();\n }\n\n onCreateContext(...args) {\n return this.props.onCreateContext(...args);\n }\n\n onInitialize(...args) {\n return this.props.onInitialize(...args);\n }\n\n onRender(...args) {\n return this.props.onRender(...args);\n }\n\n onFinalize(...args) {\n return this.props.onFinalize(...args);\n }\n\n // DEPRECATED/REMOVED METHODS\n\n getHTMLControlValue(id, defaultValue = 1) {\n const element = document.getElementById(id);\n // @ts-ignore Not all html elements have value\n return element ? Number(element.value) : defaultValue;\n }\n\n // Update parameters\n setViewParameters() {\n log.removed('AnimationLoop.setViewParameters', 'AnimationLoop.setProps')();\n return this;\n }\n\n // PRIVATE METHODS\n\n _startLoop() {\n const renderFrame = () => {\n if (!this._running) {\n return;\n }\n this.redraw();\n this._animationFrameId = this._requestAnimationFrame(renderFrame);\n };\n\n // cancel any pending renders to ensure only one loop can ever run\n this._cancelAnimationFrame(this._animationFrameId);\n this._animationFrameId = this._requestAnimationFrame(renderFrame);\n }\n\n // PRIVATE METHODS\n\n _getPageLoadPromise() {\n if (!this._pageLoadPromise) {\n this._pageLoadPromise = isPage\n ? new Promise((resolve, reject) => {\n if (isPage && document.readyState === 'complete') {\n resolve(document);\n return;\n }\n window.addEventListener('load', () => {\n resolve(document);\n });\n })\n : Promise.resolve({});\n }\n return this._pageLoadPromise;\n }\n\n _setDisplay(display) {\n if (this.display) {\n this.display.delete();\n this.display.animationLoop = null;\n }\n\n // store animation loop on the display\n if (display) {\n display.animationLoop = this;\n }\n\n this.display = display;\n }\n\n _cancelAnimationFrame(animationFrameId) {\n // E.g. VR display has a separate animation frame to sync with headset\n if (this.display && this.display.cancelAnimationFrame) {\n return this.display.cancelAnimationFrame(animationFrameId);\n }\n\n return cancelAnimationFrame(animationFrameId);\n }\n\n _requestAnimationFrame(renderFrameCallback) {\n if (this._running) {\n // E.g. VR display has a separate animation frame to sync with headset\n if (this.display && this.display.requestAnimationFrame) {\n return this.display.requestAnimationFrame(renderFrameCallback);\n }\n\n return requestAnimationFrame(renderFrameCallback);\n }\n return undefined;\n }\n\n // Called on each frame, can be overridden to call onRender multiple times\n // to support e.g. stereoscopic rendering\n _renderFrame(...args) {\n // Allow e.g. VR display to render multiple frames.\n if (this.display) {\n this.display._renderFrame(...args);\n return;\n }\n\n // call callback\n this.onRender(...args);\n // end callback\n }\n\n _clearNeedsRedraw() {\n this.needsRedraw = null;\n }\n\n _setupFrame() {\n this._resizeCanvasDrawingBuffer();\n this._resizeViewport();\n this._resizeFramebuffer();\n }\n\n // Initialize the object that will be passed to app callbacks\n _initializeCallbackData() {\n this.animationProps = {\n gl: this.gl,\n\n stop: this.stop,\n canvas: this.gl.canvas,\n framebuffer: this.framebuffer,\n\n // Initial values\n useDevicePixels: this.useDevicePixels,\n needsRedraw: null,\n\n // Animation props\n startTime: Date.now(),\n engineTime: 0,\n tick: 0,\n tock: 0,\n\n // Timeline time for back compatibility\n time: 0,\n\n // Experimental\n _timeline: this.timeline,\n _loop: this,\n _animationLoop: this,\n _mousePosition: null // Event props\n };\n }\n\n // Update the context object that will be passed to app callbacks\n _updateCallbackData() {\n const {width, height, aspect} = this._getSizeAndAspect();\n if (width !== this.animationProps.width || height !== this.animationProps.height) {\n this.setNeedsRedraw('drawing buffer resized');\n }\n if (aspect !== this.animationProps.aspect) {\n this.setNeedsRedraw('drawing buffer aspect changed');\n }\n\n this.animationProps.width = width;\n this.animationProps.height = height;\n this.animationProps.aspect = aspect;\n\n this.animationProps.needsRedraw = this.needsRedraw;\n\n // Update time properties\n this.animationProps.engineTime = Date.now() - this.animationProps.startTime;\n\n if (this.timeline) {\n this.timeline.update(this.animationProps.engineTime);\n }\n\n this.animationProps.tick = Math.floor((this.animationProps.time / 1000) * 60);\n this.animationProps.tock++;\n\n // For back compatibility\n this.animationProps.time = this.timeline\n ? this.timeline.getTime()\n : this.animationProps.engineTime;\n\n // experimental\n this.animationProps._offScreen = this.offScreen;\n }\n\n _finalizeCallbackData() {\n // call callback\n this.onFinalize(this.animationProps);\n // end callback\n }\n\n // Add application's data to the app context object\n _addCallbackData(appContext) {\n if (typeof appContext === 'object' && appContext !== null) {\n this.animationProps = Object.assign({}, this.animationProps, appContext);\n }\n }\n\n // Either uses supplied or existing context, or calls provided callback to create one\n _createWebGLContext(opts) {\n this.offScreen =\n opts.canvas &&\n typeof OffscreenCanvas !== 'undefined' &&\n opts.canvas instanceof OffscreenCanvas;\n\n // Create the WebGL context if necessary\n opts = Object.assign({}, opts, this.props.glOptions);\n this.gl = this.props.gl ? instrumentGLContext(this.props.gl, opts) : this.onCreateContext(opts);\n\n if (!isWebGL(this.gl)) {\n throw new Error('AnimationLoop.onCreateContext - illegal context returned');\n }\n\n // Reset the WebGL context.\n resetParameters(this.gl);\n\n this._createInfoDiv();\n }\n\n _createInfoDiv() {\n if (this.gl.canvas && this.props.onAddHTML) {\n const wrapperDiv = document.createElement('div');\n document.body.appendChild(wrapperDiv);\n wrapperDiv.style.position = 'relative';\n const div = document.createElement('div');\n div.style.position = 'absolute';\n div.style.left = '10px';\n div.style.bottom = '10px';\n div.style.width = '300px';\n div.style.background = 'white';\n wrapperDiv.appendChild(this.gl.canvas);\n wrapperDiv.appendChild(div);\n const html = this.props.onAddHTML(div);\n if (html) {\n div.innerHTML = html;\n }\n }\n }\n\n _getSizeAndAspect() {\n // https://webglfundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html\n const width = this.gl.drawingBufferWidth;\n const height = this.gl.drawingBufferHeight;\n\n // https://webglfundamentals.org/webgl/lessons/webgl-anti-patterns.html\n let aspect = 1;\n const {canvas} = this.gl;\n\n if (canvas && canvas.clientHeight) {\n aspect = canvas.clientWidth / canvas.clientHeight;\n } else if (width > 0 && height > 0) {\n aspect = width / height;\n }\n\n return {width, height, aspect};\n }\n\n // Default viewport setup\n _resizeViewport() {\n if (this.autoResizeViewport) {\n this.gl.viewport(0, 0, this.gl.drawingBufferWidth, this.gl.drawingBufferHeight);\n }\n }\n\n // Resize the render buffer of the canvas to match canvas client size\n // Optionally multiplying with devicePixel ratio\n _resizeCanvasDrawingBuffer() {\n if (this.autoResizeDrawingBuffer) {\n resizeGLContext(this.gl, {useDevicePixels: this.useDevicePixels});\n }\n }\n\n // TBD - deprecated?\n _createFramebuffer() {\n // Setup default framebuffer\n if (this.props.createFramebuffer) {\n this.framebuffer = new Framebuffer(this.gl);\n }\n }\n\n _resizeFramebuffer() {\n if (this.framebuffer) {\n this.framebuffer.resize({\n width: this.gl.drawingBufferWidth,\n height: this.gl.drawingBufferHeight\n });\n }\n }\n\n _beginTimers() {\n this.frameRate.timeEnd();\n this.frameRate.timeStart();\n\n // Check if timer for last frame has completed.\n // GPU timer results are never available in the same\n // frame they are captured.\n if (\n this._gpuTimeQuery &&\n this._gpuTimeQuery.isResultAvailable() &&\n !this._gpuTimeQuery.isTimerDisjoint()\n ) {\n this.stats.get('GPU Time').addTime(this._gpuTimeQuery.getTimerMilliseconds());\n }\n\n if (this._gpuTimeQuery) {\n // GPU time query start\n this._gpuTimeQuery.beginTimeElapsedQuery();\n }\n\n this.cpuTime.timeStart();\n }\n\n _endTimers() {\n this.cpuTime.timeEnd();\n\n if (this._gpuTimeQuery) {\n // GPU time query end. Results will be available on next frame.\n this._gpuTimeQuery.end();\n }\n }\n\n // Event handling\n\n _startEventHandling() {\n const {canvas} = this.gl;\n if (canvas) {\n canvas.addEventListener('mousemove', this._onMousemove);\n canvas.addEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n _onMousemove(e) {\n this.animationProps._mousePosition = [e.offsetX, e.offsetY];\n }\n _onMouseleave(e) {\n this.animationProps._mousePosition = null;\n }\n}\n"],"file":"animation-loop.js"}
@@ -1,3 +0,0 @@
1
- export function getBuffersFromGeometry(gl: WebGLRenderingContext, geometry: any, options?: any): {};
2
-
3
- export function inferAttributeAccessor(attributeName: any, attribute: any): void;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/model-utils.js"],"names":["Buffer","assert","GLTF_TO_LUMA_ATTRIBUTE_MAP","POSITION","NORMAL","COLOR_0","TEXCOORD_0","TEXCOORD_1","TEXCOORD_2","getBuffersFromGeometry","gl","geometry","options","buffers","indices","name","attributes","attribute","remappedName","mapAttributeName","constant","value","typedArray","accessor","inferAttributeAccessor","data","Uint16Array","Uint32Array","size","isIndexed","undefined","target","attributeMap","attributeName","category","Number","isFinite"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {Buffer, assert} from '@luma.gl/webgl';\n\n// Support for mapping new geometries with glTF attribute names to \"classic\" luma.gl shader names\nconst GLTF_TO_LUMA_ATTRIBUTE_MAP = {\n POSITION: 'positions',\n NORMAL: 'normals',\n COLOR_0: 'colors',\n TEXCOORD_0: 'texCoords',\n TEXCOORD_1: 'texCoords1',\n TEXCOORD_2: 'texCoords2'\n};\n\nexport function getBuffersFromGeometry(gl, geometry, options) {\n const buffers = {};\n let indices = geometry.indices;\n\n for (const name in geometry.attributes) {\n const attribute = geometry.attributes[name];\n const remappedName = mapAttributeName(name, options);\n\n if (name === 'indices') {\n indices = attribute;\n } else if (attribute.constant) {\n buffers[remappedName] = attribute.value;\n } else {\n const typedArray = attribute.value;\n // Create accessor by copying the attribute and removing `value``\n const accessor = {...attribute};\n delete accessor.value;\n buffers[remappedName] = [new Buffer(gl, typedArray), accessor];\n\n inferAttributeAccessor(name, accessor);\n }\n }\n\n if (indices) {\n const data = indices.value || indices;\n assert(\n data instanceof Uint16Array || data instanceof Uint32Array,\n 'attribute array for \"indices\" must be of integer type'\n );\n const accessor = {\n size: 1,\n isIndexed: indices.isIndexed === undefined ? true : indices.isIndexed\n };\n buffers.indices = [\n new Buffer(gl, {\n data,\n target: GL.ELEMENT_ARRAY_BUFFER\n }),\n accessor\n ];\n }\n\n return buffers;\n}\n\nfunction mapAttributeName(name, options) {\n const {attributeMap = GLTF_TO_LUMA_ATTRIBUTE_MAP} = options || {};\n return (attributeMap && attributeMap[name]) || name;\n}\n\n// Check for well known attribute names\n// eslint-disable-next-line complexity\nexport function inferAttributeAccessor(attributeName, attribute) {\n let category;\n switch (attributeName) {\n case 'texCoords':\n case 'texCoord1':\n case 'texCoord2':\n case 'texCoord3':\n category = 'uvs';\n break;\n case 'vertices':\n case 'positions':\n case 'normals':\n case 'pickingColors':\n category = 'vectors';\n break;\n default:\n }\n\n // Check for categorys\n switch (category) {\n case 'vectors':\n attribute.size = attribute.size || 3;\n break;\n case 'uvs':\n attribute.size = attribute.size || 2;\n break;\n default:\n }\n\n assert(Number.isFinite(attribute.size), `attribute ${attributeName} needs size`);\n}\n"],"file":"model-utils.js"}