@luma.gl/engine 8.5.10 → 8.6.0-alpha.4

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 (271) hide show
  1. package/LICENSE +8 -1
  2. package/dist/animation/key-frames.d.ts +18 -0
  3. package/dist/animation/key-frames.d.ts.map +1 -0
  4. package/dist/{esm/animation → animation}/key-frames.js +13 -6
  5. package/dist/animation/key-frames.js.map +1 -0
  6. package/dist/animation/timeline.d.ts +51 -0
  7. package/dist/animation/timeline.d.ts.map +1 -0
  8. package/dist/{esm/animation → animation}/timeline.js +10 -5
  9. package/dist/animation/timeline.js.map +1 -0
  10. package/dist/bundle.d.ts +2 -0
  11. package/dist/bundle.d.ts.map +1 -0
  12. package/dist/bundle.js +5 -0
  13. package/dist/bundle.js.map +1 -0
  14. package/dist/geometries/cone-geometry.d.ts +10 -0
  15. package/dist/geometries/cone-geometry.d.ts.map +1 -0
  16. package/dist/{esm/geometries → geometries}/cone-geometry.js +2 -2
  17. package/dist/geometries/cone-geometry.js.map +1 -0
  18. package/dist/geometries/cube-geometry.d.ts +9 -0
  19. package/dist/geometries/cube-geometry.d.ts.map +1 -0
  20. package/dist/{esm/geometries → geometries}/cube-geometry.js +18 -18
  21. package/dist/geometries/cube-geometry.js.map +1 -0
  22. package/dist/geometries/cylinder-geometry.d.ts +10 -0
  23. package/dist/geometries/cylinder-geometry.d.ts.map +1 -0
  24. package/dist/{esm/geometries → geometries}/cylinder-geometry.js +2 -2
  25. package/dist/geometries/cylinder-geometry.js.map +1 -0
  26. package/dist/geometries/ico-sphere-geometry.d.ts +11 -0
  27. package/dist/geometries/ico-sphere-geometry.d.ts.map +1 -0
  28. package/dist/{esm/geometries → geometries}/ico-sphere-geometry.js +2 -2
  29. package/dist/geometries/ico-sphere-geometry.js.map +1 -0
  30. package/dist/geometries/plane-geometry.d.ts +10 -0
  31. package/dist/geometries/plane-geometry.d.ts.map +1 -0
  32. package/dist/{esm/geometries → geometries}/plane-geometry.js +5 -5
  33. package/dist/geometries/plane-geometry.js.map +1 -0
  34. package/dist/geometries/sphere-geometry.d.ts +12 -0
  35. package/dist/geometries/sphere-geometry.d.ts.map +1 -0
  36. package/dist/{esm/geometries → geometries}/sphere-geometry.js +2 -9
  37. package/dist/geometries/sphere-geometry.js.map +1 -0
  38. package/dist/geometries/truncated-cone-geometry.d.ts +13 -0
  39. package/dist/geometries/truncated-cone-geometry.d.ts.map +1 -0
  40. package/dist/{esm/geometries → geometries}/truncated-cone-geometry.js +1 -1
  41. package/dist/geometries/truncated-cone-geometry.js.map +1 -0
  42. package/dist/geometry/geometry-utils.d.ts +2 -0
  43. package/dist/geometry/geometry-utils.d.ts.map +1 -0
  44. package/dist/{esm/geometry → geometry}/geometry-utils.js +0 -0
  45. package/dist/geometry/geometry-utils.js.map +1 -0
  46. package/dist/geometry/geometry.d.ts +44 -0
  47. package/dist/geometry/geometry.d.ts.map +1 -0
  48. package/dist/{esm/geometry → geometry}/geometry.js +28 -19
  49. package/dist/geometry/geometry.js.map +1 -0
  50. package/dist/index.d.ts +26 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +17 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/lib/animation-loop.d.ts +149 -0
  55. package/dist/lib/animation-loop.d.ts.map +1 -0
  56. package/dist/{esm/lib → lib}/animation-loop.js +190 -143
  57. package/dist/lib/animation-loop.js.map +1 -0
  58. package/dist/lib/model-utils.d.ts +4 -0
  59. package/dist/lib/model-utils.d.ts.map +1 -0
  60. package/dist/{esm/lib → lib}/model-utils.js +3 -2
  61. package/dist/lib/model-utils.js.map +1 -0
  62. package/dist/lib/model.d.ts +111 -0
  63. package/dist/lib/model.d.ts.map +1 -0
  64. package/dist/{esm/lib → lib}/model.js +76 -20
  65. package/dist/lib/model.js.map +1 -0
  66. package/dist/lib/program-manager.d.ts +39 -0
  67. package/dist/lib/program-manager.d.ts.map +1 -0
  68. package/dist/{esm/lib → lib}/program-manager.js +29 -18
  69. package/dist/lib/program-manager.js.map +1 -0
  70. package/dist/lib/render-loop.d.ts +27 -0
  71. package/dist/lib/render-loop.d.ts.map +1 -0
  72. package/dist/lib/render-loop.js +56 -0
  73. package/dist/lib/render-loop.js.map +1 -0
  74. package/dist/transform/buffer-transform.d.ts +36 -0
  75. package/dist/transform/buffer-transform.d.ts.map +1 -0
  76. package/dist/{esm/transform → transform}/buffer-transform.js +15 -8
  77. package/dist/transform/buffer-transform.js.map +1 -0
  78. package/dist/transform/texture-transform.d.ts +57 -0
  79. package/dist/transform/texture-transform.d.ts.map +1 -0
  80. package/dist/{esm/transform → transform}/texture-transform.js +48 -16
  81. package/dist/transform/texture-transform.js.map +1 -0
  82. package/dist/transform/transform-shader-utils.d.ts +26 -0
  83. package/dist/transform/transform-shader-utils.d.ts.map +1 -0
  84. package/dist/{esm/transform → transform}/transform-shader-utils.js +38 -46
  85. package/dist/transform/transform-shader-utils.js.map +1 -0
  86. package/dist/transform/transform-types.d.ts +44 -0
  87. package/dist/transform/transform-types.d.ts.map +1 -0
  88. package/dist/transform/transform-types.js +2 -0
  89. package/dist/transform/transform-types.js.map +1 -0
  90. package/dist/transform/transform.d.ts +47 -0
  91. package/dist/transform/transform.d.ts.map +1 -0
  92. package/dist/{esm/transform → transform}/transform.js +63 -43
  93. package/dist/transform/transform.js.map +1 -0
  94. package/dist/utils/clip-space.d.ts +5 -0
  95. package/dist/utils/clip-space.d.ts.map +1 -0
  96. package/dist/{esm/utils → utils}/clip-space.js +3 -17
  97. package/dist/utils/clip-space.js.map +1 -0
  98. package/package.json +11 -11
  99. package/src/animation/{key-frames.js → key-frames.ts} +18 -16
  100. package/src/animation/{timeline.js → timeline.ts} +54 -18
  101. package/src/bundle.ts +4 -0
  102. package/src/geometries/{cone-geometry.js → cone-geometry.ts} +9 -3
  103. package/src/geometries/{cube-geometry.js → cube-geometry.ts} +17 -12
  104. package/src/geometries/cylinder-geometry.ts +20 -0
  105. package/src/geometries/{ico-sphere-geometry.js → ico-sphere-geometry.ts} +10 -3
  106. package/src/geometries/{plane-geometry.js → plane-geometry.ts} +11 -6
  107. package/src/geometries/{sphere-geometry.js → sphere-geometry.ts} +15 -11
  108. package/src/geometries/{truncated-cone-geometry.js → truncated-cone-geometry.ts} +14 -5
  109. package/src/geometry/{geometry-utils.js → geometry-utils.ts} +2 -0
  110. package/src/geometry/{geometry.js → geometry.ts} +47 -34
  111. package/src/index.ts +35 -0
  112. package/src/lib/animation-loop.ts +724 -0
  113. package/src/lib/{model-utils.js → model-utils.ts} +2 -2
  114. package/src/lib/{model.js → model.ts} +186 -66
  115. package/src/lib/{program-manager.js → program-manager.ts} +53 -34
  116. package/src/lib/render-loop.ts +56 -0
  117. package/src/transform/{buffer-transform.js → buffer-transform.ts} +42 -27
  118. package/src/transform/{texture-transform.js → texture-transform.ts} +35 -25
  119. package/src/transform/{transform-shader-utils.js → transform-shader-utils.ts} +55 -27
  120. package/src/transform/transform-types.ts +42 -0
  121. package/src/transform/transform.ts +189 -0
  122. package/src/utils/{clip-space.js → clip-space.ts} +4 -3
  123. package/dist/dist.js +0 -32249
  124. package/dist/dist.min.js +0 -1
  125. package/dist/es5/animation/key-frames.d.ts +0 -19
  126. package/dist/es5/animation/key-frames.js +0 -95
  127. package/dist/es5/animation/key-frames.js.map +0 -1
  128. package/dist/es5/animation/timeline.d.ts +0 -39
  129. package/dist/es5/animation/timeline.js +0 -211
  130. package/dist/es5/animation/timeline.js.map +0 -1
  131. package/dist/es5/bundle.js +0 -9
  132. package/dist/es5/bundle.js.map +0 -1
  133. package/dist/es5/geometries/cone-geometry.d.ts +0 -5
  134. package/dist/es5/geometries/cone-geometry.js +0 -59
  135. package/dist/es5/geometries/cone-geometry.js.map +0 -1
  136. package/dist/es5/geometries/cube-geometry.d.ts +0 -5
  137. package/dist/es5/geometries/cube-geometry.js +0 -75
  138. package/dist/es5/geometries/cube-geometry.js.map +0 -1
  139. package/dist/es5/geometries/cylinder-geometry.d.ts +0 -5
  140. package/dist/es5/geometries/cylinder-geometry.js +0 -55
  141. package/dist/es5/geometries/cylinder-geometry.js.map +0 -1
  142. package/dist/es5/geometries/ico-sphere-geometry.d.ts +0 -5
  143. package/dist/es5/geometries/ico-sphere-geometry.js +0 -217
  144. package/dist/es5/geometries/ico-sphere-geometry.js.map +0 -1
  145. package/dist/es5/geometries/index.d.ts +0 -7
  146. package/dist/es5/geometries/index.js +0 -64
  147. package/dist/es5/geometries/index.js.map +0 -1
  148. package/dist/es5/geometries/plane-geometry.d.ts +0 -5
  149. package/dist/es5/geometries/plane-geometry.js +0 -168
  150. package/dist/es5/geometries/plane-geometry.js.map +0 -1
  151. package/dist/es5/geometries/sphere-geometry.d.ts +0 -5
  152. package/dist/es5/geometries/sphere-geometry.js +0 -152
  153. package/dist/es5/geometries/sphere-geometry.js.map +0 -1
  154. package/dist/es5/geometries/truncated-cone-geometry.d.ts +0 -5
  155. package/dist/es5/geometries/truncated-cone-geometry.js +0 -171
  156. package/dist/es5/geometries/truncated-cone-geometry.js.map +0 -1
  157. package/dist/es5/geometry/geometry-utils.d.ts +0 -1
  158. package/dist/es5/geometry/geometry-utils.js +0 -49
  159. package/dist/es5/geometry/geometry-utils.js.map +0 -1
  160. package/dist/es5/geometry/geometry.d.ts +0 -25
  161. package/dist/es5/geometry/geometry.js +0 -150
  162. package/dist/es5/geometry/geometry.js.map +0 -1
  163. package/dist/es5/index.d.ts +0 -19
  164. package/dist/es5/index.js +0 -128
  165. package/dist/es5/index.js.map +0 -1
  166. package/dist/es5/lib/animation-loop.d.ts +0 -158
  167. package/dist/es5/lib/animation-loop.js +0 -642
  168. package/dist/es5/lib/animation-loop.js.map +0 -1
  169. package/dist/es5/lib/model-utils.d.ts +0 -3
  170. package/dist/es5/lib/model-utils.js +0 -110
  171. package/dist/es5/lib/model-utils.js.map +0 -1
  172. package/dist/es5/lib/model.d.ts +0 -214
  173. package/dist/es5/lib/model.js +0 -584
  174. package/dist/es5/lib/model.js.map +0 -1
  175. package/dist/es5/lib/program-manager.d.ts +0 -79
  176. package/dist/es5/lib/program-manager.js +0 -238
  177. package/dist/es5/lib/program-manager.js.map +0 -1
  178. package/dist/es5/transform/buffer-transform.d.ts +0 -13
  179. package/dist/es5/transform/buffer-transform.js +0 -294
  180. package/dist/es5/transform/buffer-transform.js.map +0 -1
  181. package/dist/es5/transform/resource-transform.d.ts +0 -16
  182. package/dist/es5/transform/texture-transform.d.ts +0 -16
  183. package/dist/es5/transform/texture-transform.js +0 -405
  184. package/dist/es5/transform/texture-transform.js.map +0 -1
  185. package/dist/es5/transform/transform-shader-utils.d.ts +0 -31
  186. package/dist/es5/transform/transform-shader-utils.js +0 -160
  187. package/dist/es5/transform/transform-shader-utils.js.map +0 -1
  188. package/dist/es5/transform/transform.d.ts +0 -33
  189. package/dist/es5/transform/transform.js +0 -274
  190. package/dist/es5/transform/transform.js.map +0 -1
  191. package/dist/es5/utils/clip-space.d.ts +0 -5
  192. package/dist/es5/utils/clip-space.js +0 -72
  193. package/dist/es5/utils/clip-space.js.map +0 -1
  194. package/dist/esm/animation/key-frames.d.ts +0 -19
  195. package/dist/esm/animation/key-frames.js.map +0 -1
  196. package/dist/esm/animation/timeline.d.ts +0 -39
  197. package/dist/esm/animation/timeline.js.map +0 -1
  198. package/dist/esm/bundle.js +0 -7
  199. package/dist/esm/bundle.js.map +0 -1
  200. package/dist/esm/geometries/cone-geometry.d.ts +0 -5
  201. package/dist/esm/geometries/cone-geometry.js.map +0 -1
  202. package/dist/esm/geometries/cube-geometry.d.ts +0 -5
  203. package/dist/esm/geometries/cube-geometry.js.map +0 -1
  204. package/dist/esm/geometries/cylinder-geometry.d.ts +0 -5
  205. package/dist/esm/geometries/cylinder-geometry.js.map +0 -1
  206. package/dist/esm/geometries/ico-sphere-geometry.d.ts +0 -5
  207. package/dist/esm/geometries/ico-sphere-geometry.js.map +0 -1
  208. package/dist/esm/geometries/index.d.ts +0 -7
  209. package/dist/esm/geometries/index.js +0 -8
  210. package/dist/esm/geometries/index.js.map +0 -1
  211. package/dist/esm/geometries/plane-geometry.d.ts +0 -5
  212. package/dist/esm/geometries/plane-geometry.js.map +0 -1
  213. package/dist/esm/geometries/sphere-geometry.d.ts +0 -5
  214. package/dist/esm/geometries/sphere-geometry.js.map +0 -1
  215. package/dist/esm/geometries/truncated-cone-geometry.d.ts +0 -5
  216. package/dist/esm/geometries/truncated-cone-geometry.js.map +0 -1
  217. package/dist/esm/geometry/geometry-utils.d.ts +0 -1
  218. package/dist/esm/geometry/geometry-utils.js.map +0 -1
  219. package/dist/esm/geometry/geometry.d.ts +0 -25
  220. package/dist/esm/geometry/geometry.js.map +0 -1
  221. package/dist/esm/index.d.ts +0 -19
  222. package/dist/esm/index.js +0 -16
  223. package/dist/esm/index.js.map +0 -1
  224. package/dist/esm/lib/animation-loop.d.ts +0 -158
  225. package/dist/esm/lib/animation-loop.js.map +0 -1
  226. package/dist/esm/lib/model-utils.d.ts +0 -3
  227. package/dist/esm/lib/model-utils.js.map +0 -1
  228. package/dist/esm/lib/model.d.ts +0 -214
  229. package/dist/esm/lib/model.js.map +0 -1
  230. package/dist/esm/lib/program-manager.d.ts +0 -79
  231. package/dist/esm/lib/program-manager.js.map +0 -1
  232. package/dist/esm/transform/buffer-transform.d.ts +0 -13
  233. package/dist/esm/transform/buffer-transform.js.map +0 -1
  234. package/dist/esm/transform/resource-transform.d.ts +0 -16
  235. package/dist/esm/transform/texture-transform.d.ts +0 -16
  236. package/dist/esm/transform/texture-transform.js.map +0 -1
  237. package/dist/esm/transform/transform-shader-utils.d.ts +0 -31
  238. package/dist/esm/transform/transform-shader-utils.js.map +0 -1
  239. package/dist/esm/transform/transform.d.ts +0 -33
  240. package/dist/esm/transform/transform.js.map +0 -1
  241. package/dist/esm/utils/clip-space.d.ts +0 -5
  242. package/dist/esm/utils/clip-space.js.map +0 -1
  243. package/src/animation/key-frames.d.ts +0 -19
  244. package/src/animation/timeline.d.ts +0 -39
  245. package/src/bundle.js +0 -7
  246. package/src/geometries/cone-geometry.d.ts +0 -5
  247. package/src/geometries/cube-geometry.d.ts +0 -5
  248. package/src/geometries/cylinder-geometry.d.ts +0 -5
  249. package/src/geometries/cylinder-geometry.js +0 -14
  250. package/src/geometries/ico-sphere-geometry.d.ts +0 -5
  251. package/src/geometries/index.d.ts +0 -7
  252. package/src/geometries/index.js +0 -7
  253. package/src/geometries/plane-geometry.d.ts +0 -5
  254. package/src/geometries/sphere-geometry.d.ts +0 -5
  255. package/src/geometries/truncated-cone-geometry.d.ts +0 -5
  256. package/src/geometry/geometry-utils.d.ts +0 -1
  257. package/src/geometry/geometry.d.ts +0 -25
  258. package/src/index.d.ts +0 -19
  259. package/src/index.js +0 -22
  260. package/src/lib/animation-loop.d.ts +0 -158
  261. package/src/lib/animation-loop.js +0 -601
  262. package/src/lib/model-utils.d.ts +0 -3
  263. package/src/lib/model.d.ts +0 -214
  264. package/src/lib/program-manager.d.ts +0 -79
  265. package/src/transform/buffer-transform.d.ts +0 -13
  266. package/src/transform/resource-transform.d.ts +0 -16
  267. package/src/transform/texture-transform.d.ts +0 -16
  268. package/src/transform/transform-shader-utils.d.ts +0 -31
  269. package/src/transform/transform.d.ts +0 -33
  270. package/src/transform/transform.js +0 -177
  271. package/src/utils/clip-space.d.ts +0 -5
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/transform/transform.js"],"names":["getPassthroughFS","BufferTransform","TextureTransform","isWebGL2","assert","isObjectEmpty","getShaderVersion","Model","Transform","isSupported","gl","constructor","props","model","elementCount","bufferTransform","textureTransform","elementIDBuffer","_initialize","Object","seal","delete","run","opts","clearRenderTarget","updatedOpts","_updateDrawOptions","framebuffer","clear","color","transform","swap","swapped","resourceTransforms","filter","Boolean","resourceTransform","getBuffer","varyingName","getData","data","getFramebuffer","update","setVertexCount","_buildResourceTransforms","_updateModelProps","assign","fs","version","vs","id","drawMode","vertexCount","setupResources","updatedProps","updateModelProps","canCreateBufferTransform","canCreateTextureTransform","getDrawOptions","feedbackBuffers","feedbackMap","varyings","length","_sourceTextures","_targetTexture","_targetTextureVarying"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {getPassthroughFS} from '@luma.gl/shadertools';\nimport BufferTransform from './buffer-transform';\nimport TextureTransform from './texture-transform';\n\nimport {isWebGL2} from '@luma.gl/gltools';\nimport {assert, isObjectEmpty, getShaderVersion} from '@luma.gl/webgl';\nimport Model from '../lib/model';\n\n// takes source and target buffers/textures and setsup the pipeline\nexport default class Transform {\n static isSupported(gl) {\n // TODO : differentiate writting to buffer vs not\n return isWebGL2(gl);\n }\n\n constructor(gl, props = {}) {\n this.gl = gl;\n this.model = null;\n this.elementCount = 0;\n this.bufferTransform = null;\n this.textureTransform = null;\n this.elementIDBuffer = null;\n this._initialize(props);\n Object.seal(this);\n }\n\n // Delete owned resources.\n delete() {\n const {model, bufferTransform, textureTransform} = this;\n if (model) {\n model.delete();\n }\n if (bufferTransform) {\n bufferTransform.delete();\n }\n if (textureTransform) {\n textureTransform.delete();\n }\n }\n\n // Run one transform loop.\n run(opts = {}) {\n const {clearRenderTarget = true} = opts;\n\n const updatedOpts = this._updateDrawOptions(opts);\n\n if (clearRenderTarget && updatedOpts.framebuffer) {\n updatedOpts.framebuffer.clear({color: true});\n }\n\n this.model.transform(updatedOpts);\n }\n\n // swap resources if a map is provided\n swap() {\n let swapped = false;\n const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);\n for (const resourceTransform of resourceTransforms) {\n swapped = swapped || resourceTransform.swap();\n }\n assert(swapped, 'Nothing to swap');\n }\n\n // Return Buffer object for given varying name.\n getBuffer(varyingName = null) {\n return this.bufferTransform && this.bufferTransform.getBuffer(varyingName);\n }\n\n // Return data either from Buffer or from Texture\n getData(opts = {}) {\n const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);\n for (const resourceTransform of resourceTransforms) {\n // @ts-ignore\n const data = resourceTransform.getData(opts);\n if (data) {\n return data;\n }\n }\n return null;\n }\n\n // Return framebuffer object if rendering to textures\n getFramebuffer() {\n return this.textureTransform && this.textureTransform.getFramebuffer();\n }\n\n // Update some or all buffer/texture bindings.\n update(opts = {}) {\n if ('elementCount' in opts) {\n // @ts-ignore TODO\n this.model.setVertexCount(opts.elementCount);\n }\n const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);\n for (const resourceTransform of resourceTransforms) {\n resourceTransform.update(opts);\n }\n }\n\n // Private\n\n _initialize(props = {}) {\n const {gl} = this;\n this._buildResourceTransforms(gl, props);\n\n props = this._updateModelProps(props);\n this.model = new Model(\n gl,\n Object.assign({}, props, {\n fs: props.fs || getPassthroughFS({version: getShaderVersion(props.vs)}),\n id: props.id || 'transform-model',\n drawMode: props.drawMode || GL.POINTS,\n vertexCount: props.elementCount\n })\n );\n\n /* eslint-disable no-unused-expressions */\n this.bufferTransform && this.bufferTransform.setupResources({model: this.model});\n /* eslint-enable no-unused-expressions */\n }\n\n _updateModelProps(props) {\n let updatedProps = Object.assign({}, props);\n const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);\n for (const resourceTransform of resourceTransforms) {\n updatedProps = resourceTransform.updateModelProps(updatedProps);\n }\n return updatedProps;\n }\n\n _buildResourceTransforms(gl, props) {\n if (canCreateBufferTransform(props)) {\n this.bufferTransform = new BufferTransform(gl, props);\n }\n if (canCreateTextureTransform(props)) {\n this.textureTransform = new TextureTransform(gl, props);\n }\n assert(\n this.bufferTransform || this.textureTransform,\n 'must provide source/feedback buffers or source/target textures'\n );\n }\n\n _updateDrawOptions(opts) {\n let updatedOpts = Object.assign({}, opts);\n const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);\n for (const resourceTransform of resourceTransforms) {\n updatedOpts = Object.assign(updatedOpts, resourceTransform.getDrawOptions(updatedOpts));\n }\n return updatedOpts;\n }\n}\n\n// Helper Methods\n\nfunction canCreateBufferTransform(props) {\n if (\n !isObjectEmpty(props.feedbackBuffers) ||\n !isObjectEmpty(props.feedbackMap) ||\n (props.varyings && props.varyings.length > 0)\n ) {\n return true;\n }\n return false;\n}\n\nfunction canCreateTextureTransform(props) {\n if (\n !isObjectEmpty(props._sourceTextures) ||\n props._targetTexture ||\n props._targetTextureVarying\n ) {\n return true;\n }\n\n return false;\n}\n"],"file":"transform.js"}
@@ -1,5 +0,0 @@
1
- import Model, {ModelProps} from '../lib/model';
2
-
3
- export default class ClipSpace extends Model {
4
- constructor(gl: WebGLRenderingContext, opts?: ModelProps);
5
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/clip-space.js"],"names":["Model","Geometry","CLIPSPACE_VERTEX_SHADER","POSITIONS","ClipSpace","constructor","gl","opts","TEX_COORDS","map","coord","Object","assign","vs","geometry","drawMode","vertexCount","attributes","aClipSpacePosition","size","value","Float32Array","aTexCoord","aCoordinate","setVertexCount"],"mappings":"AAEA,OAAOA,KAAP,MAAkB,cAAlB;AACA,OAAOC,QAAP,MAAqB,sBAArB;AAEA,MAAMC,uBAAuB,GAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAfA;AAkBA,MAAMC,SAAS,GAAG,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAT,EAAY,CAAC,CAAb,EAAgB,CAAC,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAlB;AAEA,eAAe,MAAMC,SAAN,SAAwBJ,KAAxB,CAA8B;AAC3CK,EAAAA,WAAW,CAACC,EAAD,EAAKC,IAAL,EAAW;AACpB,UAAMC,UAAU,GAAGL,SAAS,CAACM,GAAV,CAAcC,KAAK,IAAKA,KAAK,KAAK,CAAC,CAAX,GAAe,CAAf,GAAmBA,KAA3C,CAAnB;AAEA,UACEJ,EADF,EAEEK,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBL,IAAlB,EAAwB;AACtBM,MAAAA,EAAE,EAAEX,uBADkB;AAEtBY,MAAAA,QAAQ,EAAE,IAAIb,QAAJ,CAAa;AACrBc,QAAAA,QAAQ,GADa;AAErBC,QAAAA,WAAW,EAAE,CAFQ;AAGrBC,QAAAA,UAAU,EAAE;AACVC,UAAAA,kBAAkB,EAAE;AAACC,YAAAA,IAAI,EAAE,CAAP;AAAUC,YAAAA,KAAK,EAAE,IAAIC,YAAJ,CAAiBlB,SAAjB;AAAjB,WADV;AAEVmB,UAAAA,SAAS,EAAE;AAACH,YAAAA,IAAI,EAAE,CAAP;AAAUC,YAAAA,KAAK,EAAE,IAAIC,YAAJ,CAAiBb,UAAjB;AAAjB,WAFD;AAGVe,UAAAA,WAAW,EAAE;AAACJ,YAAAA,IAAI,EAAE,CAAP;AAAUC,YAAAA,KAAK,EAAE,IAAIC,YAAJ,CAAiBb,UAAjB;AAAjB;AAHH;AAHS,OAAb;AAFY,KAAxB,CAFF;AAeA,SAAKgB,cAAL,CAAoB,CAApB;AACD;;AApB0C","sourcesContent":["// ClipSpace\nimport GL from '@luma.gl/constants';\nimport Model from '../lib/model';\nimport Geometry from '../geometry/geometry';\n\nconst CLIPSPACE_VERTEX_SHADER = `\\\nattribute vec2 aClipSpacePosition;\nattribute vec2 aTexCoord;\nattribute vec2 aCoordinate;\n\nvarying vec2 position;\nvarying vec2 coordinate;\nvarying vec2 uv;\n\nvoid main(void) {\n gl_Position = vec4(aClipSpacePosition, 0., 1.);\n position = aClipSpacePosition;\n coordinate = aCoordinate;\n uv = aTexCoord;\n}\n`;\n\n/* eslint-disable indent, no-multi-spaces */\nconst POSITIONS = [-1, -1, 1, -1, -1, 1, 1, 1];\n\nexport default class ClipSpace extends Model {\n constructor(gl, opts) {\n const TEX_COORDS = POSITIONS.map(coord => (coord === -1 ? 0 : coord));\n\n super(\n gl,\n Object.assign({}, opts, {\n vs: CLIPSPACE_VERTEX_SHADER,\n geometry: new Geometry({\n drawMode: GL.TRIANGLE_STRIP,\n vertexCount: 4,\n attributes: {\n aClipSpacePosition: {size: 2, value: new Float32Array(POSITIONS)},\n aTexCoord: {size: 2, value: new Float32Array(TEX_COORDS)},\n aCoordinate: {size: 2, value: new Float32Array(TEX_COORDS)}\n }\n })\n })\n );\n this.setVertexCount(4);\n }\n}\n"],"file":"clip-space.js"}
@@ -1,19 +0,0 @@
1
- type KeyFrame<T> = [number, T]
2
-
3
- export class KeyFrames<T> {
4
- _lastTime: number
5
- startIndex: number
6
- endIndex: number
7
- factor: number
8
- times: Array<number>
9
- values: Array<T>
10
-
11
- constructor(keyFrames: Array<KeyFrame<T>> | number[][]);
12
- setKeyFrames(keyFrames: Array<KeyFrame<T>> | number[][]): void;
13
- setTime(time: number): void;
14
- getStartTime(): number;
15
- getEndTime(): number;
16
- getStartData(): T;
17
- getEndData(): T;
18
- _calculateKeys(time: number): void;
19
- }
@@ -1,39 +0,0 @@
1
- interface ChannelProps {
2
- delay?: number
3
- duration?: number
4
- rate?: number
5
- repeat?: number
6
- }
7
-
8
- interface Channel {
9
- time: number
10
- delay: number
11
- duration: number
12
- rate: number
13
- repeat: number
14
- }
15
-
16
- interface Animation {
17
- setTime: (time: number) => void
18
- }
19
-
20
- export class Timeline {
21
- time: number
22
- channels: Map<number, Channel>
23
- animations: Map<number, Animation>
24
- playing: boolean
25
- lastEngineTime: number
26
- constructor();
27
- addChannel(props: ChannelProps): number;
28
- removeChannel(handle: number): void;
29
- isFinished(handle: number): boolean;
30
- getTime(handle?: number): any;
31
- setTime(time: number): void;
32
- play(): void;
33
- pause(): void;
34
- reset(): void;
35
- attachAnimation(animation: Animation, channelHandle: any): number;
36
- detachAnimation(handle: number): void;
37
- update(engineTime: number): void;
38
- _setChannelTime(channel: Channel, time: number): void;
39
- }
package/src/bundle.js DELETED
@@ -1,7 +0,0 @@
1
- const moduleExports = require('./index');
2
-
3
- const _global = typeof window === 'undefined' ? global : window;
4
- // @ts-ignore
5
- _global.luma = _global.luma || {};
6
- // @ts-ignore
7
- module.exports = Object.assign(_global.luma, moduleExports);
@@ -1,5 +0,0 @@
1
- import TruncatedConeGeometry from './truncated-cone-geometry';
2
-
3
- export default class ConeGeometry extends TruncatedConeGeometry {
4
- constructor(props?: {});
5
- }
@@ -1,5 +0,0 @@
1
- import Geometry from '../geometry/geometry';
2
-
3
- export default class CubeGeometry extends Geometry {
4
- constructor(props?: {});
5
- }
@@ -1,5 +0,0 @@
1
- import TruncatedConeGeometry from './truncated-cone-geometry';
2
-
3
- export default class CylinderGeometry extends TruncatedConeGeometry {
4
- constructor(props?: {});
5
- }
@@ -1,14 +0,0 @@
1
- import TruncatedConeGeometry from './truncated-cone-geometry';
2
- import {uid} from '@luma.gl/webgl';
3
-
4
- export default class CylinderGeometry extends TruncatedConeGeometry {
5
- constructor(props = {}) {
6
- const {id = uid('cylinder-geometry'), radius = 1} = props;
7
- super({
8
- ...props,
9
- id,
10
- bottomRadius: radius,
11
- topRadius: radius
12
- });
13
- }
14
- }
@@ -1,5 +0,0 @@
1
- import Geometry from '../geometry/geometry';
2
-
3
- export default class IcoSphereGeometry extends Geometry {
4
- constructor(props?: {});
5
- }
@@ -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,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,5 +0,0 @@
1
- import Geometry from '../geometry/geometry';
2
-
3
- export default class PlaneGeometry extends Geometry {
4
- constructor(props?: {});
5
- }
@@ -1,5 +0,0 @@
1
- import Geometry from '../geometry/geometry';
2
-
3
- export default class SphereGeometry extends Geometry {
4
- constructor(props?: {});
5
- }
@@ -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
- export function unpackIndexedGeometry(geometry: any): any;
@@ -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
- }
package/src/index.d.ts DELETED
@@ -1,19 +0,0 @@
1
- export {default as AnimationLoop} from './lib/animation-loop';
2
- export {default as Model} from './lib/model';
3
- export {default as ProgramManager} from './lib/program-manager';
4
- export {default as Transform} from './transform/transform';
5
-
6
- export {Timeline} from './animation/timeline';
7
- export {KeyFrames} from './animation/key-frames';
8
-
9
- // Geometries
10
- export {default as Geometry} from './geometry/geometry';
11
- export {default as ConeGeometry} from './geometries/cone-geometry';
12
- export {default as CubeGeometry} from './geometries/cube-geometry';
13
- export {default as CylinderGeometry} from './geometries/cylinder-geometry';
14
- export {default as IcoSphereGeometry} from './geometries/ico-sphere-geometry';
15
- export {default as PlaneGeometry} from './geometries/plane-geometry';
16
- export {default as SphereGeometry} from './geometries/sphere-geometry';
17
- export {default as TruncatedConeGeometry} from './geometries/truncated-cone-geometry';
18
-
19
- export {default as ClipSpace} from './utils/clip-space';
package/src/index.js DELETED
@@ -1,22 +0,0 @@
1
- // CORE
2
- export {default as AnimationLoop} from './lib/animation-loop';
3
- export {default as Model} from './lib/model';
4
- export {default as ProgramManager} from './lib/program-manager';
5
- export {default as Transform} from './transform/transform';
6
-
7
- // Geometries
8
- export {default as Geometry} from './geometry/geometry';
9
- export {default as ConeGeometry} from './geometries/cone-geometry';
10
- export {default as CubeGeometry} from './geometries/cube-geometry';
11
- export {default as CylinderGeometry} from './geometries/cylinder-geometry';
12
- export {default as IcoSphereGeometry} from './geometries/ico-sphere-geometry';
13
- export {default as PlaneGeometry} from './geometries/plane-geometry';
14
- export {default as SphereGeometry} from './geometries/sphere-geometry';
15
- export {default as TruncatedConeGeometry} from './geometries/truncated-cone-geometry';
16
-
17
- // Animation
18
- export {Timeline} from './animation/timeline';
19
- export {KeyFrames} from './animation/key-frames';
20
-
21
- // Utils
22
- export {default as ClipSpace} from './utils/clip-space';
@@ -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
- }