@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/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
- }