@luma.gl/engine 9.0.0-alpha.5 → 9.0.0-alpha.7
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.
- package/dist/animation/timeline.d.ts +1 -1
- package/dist/animation/timeline.d.ts.map +1 -1
- package/dist/animation/timeline.js.map +1 -1
- package/dist/geometries/cube-geometry.d.ts.map +1 -1
- package/dist/geometries/cube-geometry.js +1 -0
- package/dist/geometries/cube-geometry.js.map +1 -1
- package/dist/geometries/ico-sphere-geometry.js.map +1 -1
- package/dist/geometry/geometry.d.ts +20 -29
- package/dist/geometry/geometry.d.ts.map +1 -1
- package/dist/geometry/geometry.js +20 -23
- package/dist/geometry/geometry.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/animation-loop.d.ts +12 -14
- package/dist/lib/animation-loop.d.ts.map +1 -1
- package/dist/lib/animation-loop.js +69 -43
- package/dist/lib/animation-loop.js.map +1 -1
- package/dist/lib/animation-props.d.ts +4 -4
- package/dist/lib/animation-props.d.ts.map +1 -1
- package/dist/lib/model.d.ts +6 -6
- package/dist/lib/model.d.ts.map +1 -1
- package/dist/lib/model.js +16 -10
- package/dist/lib/model.js.map +1 -1
- package/dist/lib/pipeline-factory.d.ts +15 -10
- package/dist/lib/pipeline-factory.d.ts.map +1 -1
- package/dist/lib/pipeline-factory.js +47 -19
- package/dist/lib/pipeline-factory.js.map +1 -1
- package/dist/lib/render-loop.d.ts +1 -1
- package/dist/lib/render-loop.d.ts.map +1 -1
- package/dist/lib/render-loop.js +2 -2
- package/dist/lib/render-loop.js.map +1 -1
- package/package.json +5 -5
- package/src/animation/timeline.ts +1 -1
- package/src/geometries/cube-geometry.ts +1 -0
- package/src/geometries/ico-sphere-geometry.ts +1 -1
- package/src/geometry/geometry.ts +54 -49
- package/src/index.ts +8 -6
- package/src/lib/animation-loop.ts +61 -52
- package/src/lib/animation-props.ts +4 -4
- package/src/lib/model.ts +20 -16
- package/src/lib/pipeline-factory.ts +59 -50
- package/src/lib/render-loop.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../src/animation/timeline.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACF,oBAAY,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,oBAAY,gBAAgB,GAAG;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC,CAAA;AAEA,aAAK,OAAO,GAAG;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,aAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../src/animation/timeline.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACF,oBAAY,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,oBAAY,gBAAgB,GAAG;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC,CAAA;AAEA,aAAK,OAAO,GAAG;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,aAAK,SAAS,GAAG;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QACT,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAChC,CAAA;CACF,CAAA;AAKD,qBAAa,QAAQ;IACnB,IAAI,EAAE,MAAM,CAAK;IACjB,QAAQ,uBAA8B;IACtC,UAAU,yBAAgC;IAC1C,OAAO,EAAE,OAAO,CAAS;IACzB,cAAc,EAAE,MAAM,CAAM;;IAK5B,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAiBzC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUnC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IASnC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAchC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAe3B,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;IAKb,KAAK,IAAI,IAAI;IAIb,eAAe,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM;IAa5E,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAUhC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAWtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/animation/timeline.ts"],"names":["channelHandles","animationHandles","Timeline","constructor","Map","addChannel","props","delay","duration","Number","POSITIVE_INFINITY","rate","repeat","handle","channel","time","_setChannelTime","channels","set","removeChannel","delete","animationHandle","animation","animations","detachAnimation","isFinished","get","undefined","getTime","setTime","Math","max","values","animationData","play","playing","pause","lastEngineTime","reset","attachAnimation","channelHandle","update","engineTime","offsetTime","totalDuration"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\n\n/**\n * Timeline channel properties\n * @param delay = 0;\n * @param duration = Number.POSITIVE_INFINITY;\n * @param rate = 1\n * @param repeat = 1\n */\n export type ChannelOptions = {\n delay?: number\n duration?: number\n rate?: number\n repeat?: number\n}\n\nexport type AnimationOptions = {\n setTime: (time: number) => void\n}\n\n type Channel = {\n time: number\n delay: number\n duration: number\n rate: number\n repeat: number\n}\n\ntype Animation = {\n channel
|
|
1
|
+
{"version":3,"sources":["../../src/animation/timeline.ts"],"names":["channelHandles","animationHandles","Timeline","constructor","Map","addChannel","props","delay","duration","Number","POSITIVE_INFINITY","rate","repeat","handle","channel","time","_setChannelTime","channels","set","removeChannel","delete","animationHandle","animation","animations","detachAnimation","isFinished","get","undefined","getTime","setTime","Math","max","values","animationData","play","playing","pause","lastEngineTime","reset","attachAnimation","channelHandle","update","engineTime","offsetTime","totalDuration"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\n\n/**\n * Timeline channel properties\n * @param delay = 0;\n * @param duration = Number.POSITIVE_INFINITY;\n * @param rate = 1\n * @param repeat = 1\n */\n export type ChannelOptions = {\n delay?: number\n duration?: number\n rate?: number\n repeat?: number\n}\n\nexport type AnimationOptions = {\n setTime: (time: number) => void\n}\n\n type Channel = {\n time: number\n delay: number\n duration: number\n rate: number\n repeat: number\n}\n\ntype Animation = {\n channel?: number;\n animation: {\n setTime: (time: number) => void\n }\n}\n\nlet channelHandles = 1;\nlet animationHandles = 1;\n\nexport class Timeline {\n time: number = 0;\n channels = new Map<number, Channel>();\n animations = new Map<number, Animation>();\n playing: boolean = false;\n lastEngineTime: number = -1;\n\n constructor() {\n }\n\n addChannel(props: ChannelOptions): number {\n const {delay = 0, duration = Number.POSITIVE_INFINITY, rate = 1, repeat = 1} = props;\n\n const handle = channelHandles++;\n const channel: Channel = {\n time: 0,\n delay,\n duration,\n rate,\n repeat\n };\n this._setChannelTime(channel, this.time);\n this.channels.set(handle, channel);\n\n return handle;\n }\n\n removeChannel(handle: number): void {\n this.channels.delete(handle);\n\n for (const [animationHandle, animation] of this.animations) {\n if (animation.channel === handle) {\n this.detachAnimation(animationHandle);\n }\n }\n }\n\n isFinished(handle: number): boolean {\n const channel = this.channels.get(handle);\n if (channel === undefined) {\n return false;\n }\n\n return this.time >= channel.delay + channel.duration * channel.repeat;\n }\n\n getTime(handle?: number): number {\n if (handle === undefined) {\n return this.time;\n }\n\n const channel = this.channels.get(handle);\n\n if (channel === undefined) {\n return -1;\n }\n\n return channel.time;\n }\n\n setTime(time: number): void {\n this.time = Math.max(0, time);\n\n const channels = this.channels.values();\n for (const channel of channels) {\n this._setChannelTime(channel, this.time);\n }\n\n const animations = this.animations.values();\n for (const animationData of animations) {\n const {animation, channel} = animationData;\n animation.setTime(this.getTime(channel));\n }\n }\n\n play(): void {\n this.playing = true;\n }\n\n pause(): void {\n this.playing = false;\n this.lastEngineTime = -1;\n }\n\n reset(): void {\n this.setTime(0);\n }\n\n attachAnimation(animation: AnimationOptions, channelHandle?: number): number {\n const animationHandle = animationHandles++;\n\n this.animations.set(animationHandle, {\n animation,\n channel: channelHandle\n });\n\n animation.setTime(this.getTime(channelHandle));\n\n return animationHandle;\n }\n\n detachAnimation(handle: number): void {\n this.animations.delete(handle);\n }\n\n update(engineTime: number): void {\n if (this.playing) {\n if (this.lastEngineTime === -1) {\n this.lastEngineTime = engineTime;\n }\n this.setTime(this.time + (engineTime - this.lastEngineTime));\n this.lastEngineTime = engineTime;\n }\n }\n\n _setChannelTime(channel: Channel, time: number): void {\n const offsetTime = time - channel.delay;\n const totalDuration = channel.duration * channel.repeat;\n // Note(Tarek): Don't loop on final repeat.\n if (offsetTime >= totalDuration) {\n channel.time = channel.duration * channel.rate;\n } else {\n channel.time = Math.max(0, offsetTime) % channel.duration;\n channel.time *= channel.rate;\n }\n }\n}\n"],"file":"timeline.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cube-geometry.d.ts","sourceRoot":"","sources":["../../src/geometries/cube-geometry.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAG5C,oBAAY,iBAAiB,GAAG;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,MAAC;CACb,CAAC;AAEF,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,KAAK,GAAE,iBAAsB;
|
|
1
|
+
{"version":3,"file":"cube-geometry.d.ts","sourceRoot":"","sources":["../../src/geometries/cube-geometry.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAG5C,oBAAY,iBAAiB,GAAG;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,MAAC;CACb,CAAC;AAEF,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,KAAK,GAAE,iBAAsB;CAc1C;AAqDD,eAAO,MAAM,0BAA0B,cA0CrC,CAAC;AAIH,eAAO,MAAM,2BAA2B,cA0CtC,CAAC;AAIH,eAAO,MAAM,uBAAuB,cA0ClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/geometries/cube-geometry.ts"],"names":["uid","Geometry","CubeGeometry","constructor","props","id","indices","size","value","CUBE_INDICES","attributes","ATTRIBUTES","NON_INDEXED_ATTRIBUTES","Uint16Array","CUBE_POSITIONS","Float32Array","CUBE_NORMALS","CUBE_TEX_COORDS","CUBE_NON_INDEXED_POSITIONS","CUBE_NON_INDEXED_TEX_COORDS","CUBE_NON_INDEXED_COLORS","POSITION","NORMAL","TEXCOORD_0","COLOR_0"],"mappings":"AAAA,SAAQA,GAAR,QAAkB,cAAlB;AACA,OAAOC,QAAP,MAAqB,sBAArB;AASA,OAAO,MAAMC,YAAN,SAA2BD,QAA3B,CAAoC;AACzCE,EAAAA,WAAW,CAACC,KAAwB,GAAG,EAA5B,EAAgC;AACzC,UAAM;AAACC,MAAAA,EAAE,GAAGL,GAAG,CAAC,eAAD,CAAT;AAA4BM,MAAAA,OAAO,GAAG;AAAtC,QAA8CF,KAApD;AACA,UAAME,OAAO,GAAG,EACd,GAAGF,KADW;AAEdC,MAAAA,EAFc;AAGdC,MAAAA,OAAO,EAAE;AAACC,QAAAA,IAAI,EAAE,CAAP;AAAUC,QAAAA,KAAK,EAAEC;AAAjB,OAHK;AAIdC,MAAAA,UAAU,EAAE,EAAC,GAAGC,UAAJ;AAAgB,WAAGP,KAAK,CAACM;AAAzB;AAJE,KAAH,GAKT,EACF,GAAGN,KADD;AAEFC,MAAAA,EAFE;AAGFK,MAAAA,UAAU,EAAE,EAAC,GAAGE,sBAAJ;AAA4B,WAAGR,KAAK,CAACM;AAArC;AAHV,KALJ;AAUD;;AAbwC;AAiB3C,MAAMD,YAAY,GAAG,IAAII,WAAJ,CAAgB,CACnC,CADmC,EAChC,CADgC,EAC7B,CAD6B,EAC1B,CAD0B,EACvB,CADuB,EACpB,CADoB,EACjB,CADiB,EACd,CADc,EACX,CADW,EACR,CADQ,EACL,CADK,EACF,CADE,EACC,CADD,EACI,CADJ,EACO,EADP,EACW,CADX,EACc,EADd,EACkB,EADlB,EACsB,EADtB,EAC0B,EAD1B,EAEnC,EAFmC,EAE/B,EAF+B,EAE3B,EAF2B,EAEvB,EAFuB,EAEnB,EAFmB,EAEf,EAFe,EAEX,EAFW,EAEP,EAFO,EAEH,EAFG,EAEC,EAFD,EAEK,EAFL,EAES,EAFT,EAEa,EAFb,EAEiB,EAFjB,EAEqB,EAFrB,EAEyB,EAFzB,CAAhB,CAArB;AAMA,MAAMC,cAAc,GAAG,IAAIC,YAAJ,CAAiB,CACtC,CAAC,CADqC,EACjC,CAAC,CADgC,EAC5B,CAD4B,EACzB,CADyB,EACrB,CAAC,CADoB,EAChB,CADgB,EACZ,CADY,EACR,CADQ,EACJ,CADI,EACA,CAAC,CADD,EACK,CADL,EACS,CADT,EAEtC,CAAC,CAFqC,EAEjC,CAAC,CAFgC,EAE5B,CAAC,CAF2B,EAEvB,CAAC,CAFsB,EAElB,CAFkB,EAEd,CAAC,CAFa,EAET,CAFS,EAEL,CAFK,EAED,CAAC,CAFA,EAEI,CAFJ,EAEQ,CAAC,CAFT,EAEa,CAAC,CAFd,EAGtC,CAAC,CAHqC,EAGjC,CAHiC,EAG7B,CAAC,CAH4B,EAGxB,CAAC,CAHuB,EAGnB,CAHmB,EAGf,CAHe,EAGX,CAHW,EAGP,CAHO,EAGH,CAHG,EAGC,CAHD,EAGK,CAHL,EAGS,CAAC,CAHV,EAItC,CAAC,CAJqC,EAIjC,CAAC,CAJgC,EAI5B,CAAC,CAJ2B,EAIvB,CAJuB,EAInB,CAAC,CAJkB,EAId,CAAC,CAJa,EAIT,CAJS,EAIL,CAAC,CAJI,EAIA,CAJA,EAII,CAAC,CAJL,EAIS,CAAC,CAJV,EAIc,CAJd,EAKtC,CALsC,EAKlC,CAAC,CALiC,EAK7B,CAAC,CAL4B,EAKxB,CALwB,EAKpB,CALoB,EAKhB,CAAC,CALe,EAKX,CALW,EAKP,CALO,EAKH,CALG,EAKC,CALD,EAKK,CAAC,CALN,EAKU,CALV,EAMtC,CAAC,CANqC,EAMjC,CAAC,CANgC,EAM5B,CAAC,CAN2B,EAMvB,CAAC,CANsB,EAMlB,CAAC,CANiB,EAMb,CANa,EAMT,CAAC,CANQ,EAMJ,CANI,EAMA,CANA,EAMI,CAAC,CANL,EAMS,CANT,EAMa,CAAC,CANd,CAAjB,CAAvB;AAWA,MAAMC,YAAY,GAAG,IAAID,YAAJ,CAAiB,CAEpC,CAFoC,EAEhC,CAFgC,EAE5B,CAF4B,EAExB,CAFwB,EAEpB,CAFoB,EAEhB,CAFgB,EAEZ,CAFY,EAER,CAFQ,EAEJ,CAFI,EAEA,CAFA,EAEI,CAFJ,EAEQ,CAFR,EAIpC,CAJoC,EAIhC,CAJgC,EAI5B,CAAC,CAJ2B,EAIvB,CAJuB,EAInB,CAJmB,EAIf,CAAC,CAJc,EAIV,CAJU,EAIN,CAJM,EAIF,CAAC,CAJC,EAIG,CAJH,EAIO,CAJP,EAIW,CAAC,CAJZ,EAMpC,CANoC,EAMhC,CANgC,EAM5B,CAN4B,EAMxB,CANwB,EAMpB,CANoB,EAMhB,CANgB,EAMZ,CANY,EAMR,CANQ,EAMJ,CANI,EAMA,CANA,EAMI,CANJ,EAMQ,CANR,EAQpC,CARoC,EAQhC,CAAC,CAR+B,EAQ3B,CAR2B,EAQvB,CARuB,EAQnB,CAAC,CARkB,EAQd,CARc,EAQV,CARU,EAQN,CAAC,CARK,EAQD,CARC,EAQG,CARH,EAQO,CAAC,CARR,EAQY,CARZ,EAUpC,CAVoC,EAUhC,CAVgC,EAU5B,CAV4B,EAUxB,CAVwB,EAUpB,CAVoB,EAUhB,CAVgB,EAUZ,CAVY,EAUR,CAVQ,EAUJ,CAVI,EAUA,CAVA,EAUI,CAVJ,EAUQ,CAVR,EAYpC,CAAC,CAZmC,EAY/B,CAZ+B,EAY3B,CAZ2B,EAYvB,CAAC,CAZsB,EAYlB,CAZkB,EAYd,CAZc,EAYV,CAAC,CAZS,EAYL,CAZK,EAYD,CAZC,EAYG,CAAC,CAZJ,EAYQ,CAZR,EAYY,CAZZ,CAAjB,CAArB;AAgBA,MAAME,eAAe,GAAG,IAAIF,YAAJ,CAAiB,CAEvC,CAFuC,EAEnC,CAFmC,EAE/B,CAF+B,EAE3B,CAF2B,EAEvB,CAFuB,EAEnB,CAFmB,EAEf,CAFe,EAEX,CAFW,EAIvC,CAJuC,EAInC,CAJmC,EAI/B,CAJ+B,EAI3B,CAJ2B,EAIvB,CAJuB,EAInB,CAJmB,EAIf,CAJe,EAIX,CAJW,EAMvC,CANuC,EAMnC,CANmC,EAM/B,CAN+B,EAM3B,CAN2B,EAMvB,CANuB,EAMnB,CANmB,EAMf,CANe,EAMX,CANW,EAQvC,CARuC,EAQnC,CARmC,EAQ/B,CAR+B,EAQ3B,CAR2B,EAQvB,CARuB,EAQnB,CARmB,EAQf,CARe,EAQX,CARW,EAUvC,CAVuC,EAUnC,CAVmC,EAU/B,CAV+B,EAU3B,CAV2B,EAUvB,CAVuB,EAUnB,CAVmB,EAUf,CAVe,EAUX,CAVW,EAYvC,CAZuC,EAYnC,CAZmC,EAY/B,CAZ+B,EAY3B,CAZ2B,EAYvB,CAZuB,EAYnB,CAZmB,EAYf,CAZe,EAYX,CAZW,CAAjB,CAAxB;AAiBA,OAAO,MAAMG,0BAA0B,GAAG,IAAIH,YAAJ,CAAiB,CACzD,CADyD,EACtD,CAAC,CADqD,EAClD,CADkD,EAC/C,CAD+C,EAEzD,CAAC,CAFwD,EAErD,CAAC,CAFoD,EAEjD,CAFiD,EAE9C,CAF8C,EAGzD,CAAC,CAHwD,EAGrD,CAAC,CAHoD,EAGjD,CAAC,CAHgD,EAG7C,CAH6C,EAIzD,CAJyD,EAItD,CAAC,CAJqD,EAIlD,CAAC,CAJiD,EAI9C,CAJ8C,EAKzD,CALyD,EAKtD,CAAC,CALqD,EAKlD,CALkD,EAK/C,CAL+C,EAMzD,CAAC,CANwD,EAMrD,CAAC,CANoD,EAMjD,CAAC,CANgD,EAM7C,CAN6C,EAQzD,CARyD,EAQtD,CARsD,EAQnD,CARmD,EAQhD,CARgD,EASzD,CATyD,EAStD,CAAC,CATqD,EASlD,CATkD,EAS/C,CAT+C,EAUzD,CAVyD,EAUtD,CAAC,CAVqD,EAUlD,CAAC,CAViD,EAU9C,CAV8C,EAWzD,CAXyD,EAWtD,CAXsD,EAWnD,CAAC,CAXkD,EAW/C,CAX+C,EAYzD,CAZyD,EAYtD,CAZsD,EAYnD,CAZmD,EAYhD,CAZgD,EAazD,CAbyD,EAatD,CAAC,CAbqD,EAalD,CAAC,CAbiD,EAa9C,CAb8C,EAezD,CAAC,CAfwD,EAerD,CAfqD,EAelD,CAfkD,EAe/C,CAf+C,EAgBzD,CAhByD,EAgBtD,CAhBsD,EAgBnD,CAhBmD,EAgBhD,CAhBgD,EAiBzD,CAjByD,EAiBtD,CAjBsD,EAiBnD,CAAC,CAjBkD,EAiB/C,CAjB+C,EAkBzD,CAAC,CAlBwD,EAkBrD,CAlBqD,EAkBlD,CAAC,CAlBiD,EAkB9C,CAlB8C,EAmBzD,CAAC,CAnBwD,EAmBrD,CAnBqD,EAmBlD,CAnBkD,EAmB/C,CAnB+C,EAoBzD,CApByD,EAoBtD,CApBsD,EAoBnD,CAAC,CApBkD,EAoB/C,CApB+C,EAsBzD,CAAC,CAtBwD,EAsBrD,CAAC,CAtBoD,EAsBjD,CAtBiD,EAsB9C,CAtB8C,EAuBzD,CAAC,CAvBwD,EAuBrD,CAvBqD,EAuBlD,CAvBkD,EAuB/C,CAvB+C,EAwBzD,CAAC,CAxBwD,EAwBrD,CAxBqD,EAwBlD,CAAC,CAxBiD,EAwB9C,CAxB8C,EAyBzD,CAAC,CAzBwD,EAyBrD,CAAC,CAzBoD,EAyBjD,CAAC,CAzBgD,EAyB7C,CAzB6C,EA0BzD,CAAC,CA1BwD,EA0BrD,CAAC,CA1BoD,EA0BjD,CA1BiD,EA0B9C,CA1B8C,EA2BzD,CAAC,CA3BwD,EA2BrD,CA3BqD,EA2BlD,CAAC,CA3BiD,EA2B9C,CA3B8C,EA6BzD,CA7ByD,EA6BtD,CA7BsD,EA6BnD,CA7BmD,EA6BhD,CA7BgD,EA8BzD,CAAC,CA9BwD,EA8BrD,CA9BqD,EA8BlD,CA9BkD,EA8B/C,CA9B+C,EA+BzD,CAAC,CA/BwD,EA+BrD,CAAC,CA/BoD,EA+BjD,CA/BiD,EA+B9C,CA/B8C,EAgCzD,CAAC,CAhCwD,EAgCrD,CAAC,CAhCoD,EAgCjD,CAhCiD,EAgC9C,CAhC8C,EAiCzD,CAjCyD,EAiCtD,CAAC,CAjCqD,EAiClD,CAjCkD,EAiC/C,CAjC+C,EAkCzD,CAlCyD,EAkCtD,CAlCsD,EAkCnD,CAlCmD,EAkChD,CAlCgD,EAoCzD,CApCyD,EAoCtD,CAAC,CApCqD,EAoClD,CAAC,CApCiD,EAoC9C,CApC8C,EAqCzD,CAAC,CArCwD,EAqCrD,CAAC,CArCoD,EAqCjD,CAAC,CArCgD,EAqC7C,CArC6C,EAsCzD,CAAC,CAtCwD,EAsCrD,CAtCqD,EAsClD,CAAC,CAtCiD,EAsC9C,CAtC8C,EAuCzD,CAvCyD,EAuCtD,CAvCsD,EAuCnD,CAAC,CAvCkD,EAuC/C,CAvC+C,EAwCzD,CAxCyD,EAwCtD,CAAC,CAxCqD,EAwClD,CAAC,CAxCiD,EAwC9C,CAxC8C,EAyCzD,CAAC,CAzCwD,EAyCrD,CAzCqD,EAyClD,CAAC,CAzCiD,EAyC9C,CAzC8C,CAAjB,CAAnC;AA8CP,OAAO,MAAMI,2BAA2B,GAAG,IAAIJ,YAAJ,CAAiB,CAC1D,CAD0D,EACvD,CADuD,EAE1D,CAF0D,EAEvD,CAFuD,EAG1D,CAH0D,EAGvD,CAHuD,EAI1D,CAJ0D,EAIvD,CAJuD,EAK1D,CAL0D,EAKvD,CALuD,EAM1D,CAN0D,EAMvD,CANuD,EAQ1D,CAR0D,EAQvD,CARuD,EAS1D,CAT0D,EASvD,CATuD,EAU1D,CAV0D,EAUvD,CAVuD,EAW1D,CAX0D,EAWvD,CAXuD,EAY1D,CAZ0D,EAYvD,CAZuD,EAa1D,CAb0D,EAavD,CAbuD,EAe1D,CAf0D,EAevD,CAfuD,EAgB1D,CAhB0D,EAgBvD,CAhBuD,EAiB1D,CAjB0D,EAiBvD,CAjBuD,EAkB1D,CAlB0D,EAkBvD,CAlBuD,EAmB1D,CAnB0D,EAmBvD,CAnBuD,EAoB1D,CApB0D,EAoBvD,CApBuD,EAsB1D,CAtB0D,EAsBvD,CAtBuD,EAuB1D,CAvB0D,EAuBvD,CAvBuD,EAwB1D,CAxB0D,EAwBvD,CAxBuD,EAyB1D,CAzB0D,EAyBvD,CAzBuD,EA0B1D,CA1B0D,EA0BvD,CA1BuD,EA2B1D,CA3B0D,EA2BvD,CA3BuD,EA6B1D,CA7B0D,EA6BvD,CA7BuD,EA8B1D,CA9B0D,EA8BvD,CA9BuD,EA+B1D,CA/B0D,EA+BvD,CA/BuD,EAgC1D,CAhC0D,EAgCvD,CAhCuD,EAiC1D,CAjC0D,EAiCvD,CAjCuD,EAkC1D,CAlC0D,EAkCvD,CAlCuD,EAoC1D,CApC0D,EAoCvD,CApCuD,EAqC1D,CArC0D,EAqCvD,CArCuD,EAsC1D,CAtC0D,EAsCvD,CAtCuD,EAuC1D,CAvC0D,EAuCvD,CAvCuD,EAwC1D,CAxC0D,EAwCvD,CAxCuD,EAyC1D,CAzC0D,EAyCvD,CAzCuD,CAAjB,CAApC;AA8CP,OAAO,MAAMK,uBAAuB,GAAG,IAAIL,YAAJ,CAAiB,CACtD,CADsD,EACnD,CADmD,EAChD,CADgD,EAC7C,CAD6C,EAEtD,CAFsD,EAEnD,CAFmD,EAEhD,CAFgD,EAE7C,CAF6C,EAGtD,CAHsD,EAGnD,CAHmD,EAGhD,CAHgD,EAG7C,CAH6C,EAItD,CAJsD,EAInD,CAJmD,EAIhD,CAJgD,EAI7C,CAJ6C,EAKtD,CALsD,EAKnD,CALmD,EAKhD,CALgD,EAK7C,CAL6C,EAMtD,CANsD,EAMnD,CANmD,EAMhD,CANgD,EAM7C,CAN6C,EAQtD,CARsD,EAQnD,CARmD,EAQhD,CARgD,EAQ7C,CAR6C,EAStD,CATsD,EASnD,CATmD,EAShD,CATgD,EAS7C,CAT6C,EAUtD,CAVsD,EAUnD,CAVmD,EAUhD,CAVgD,EAU7C,CAV6C,EAWtD,CAXsD,EAWnD,CAXmD,EAWhD,CAXgD,EAW7C,CAX6C,EAYtD,CAZsD,EAYnD,CAZmD,EAYhD,CAZgD,EAY7C,CAZ6C,EAatD,CAbsD,EAanD,CAbmD,EAahD,CAbgD,EAa7C,CAb6C,EAetD,CAfsD,EAenD,CAfmD,EAehD,CAfgD,EAe7C,CAf6C,EAgBtD,CAhBsD,EAgBnD,CAhBmD,EAgBhD,CAhBgD,EAgB7C,CAhB6C,EAiBtD,CAjBsD,EAiBnD,CAjBmD,EAiBhD,CAjBgD,EAiB7C,CAjB6C,EAkBtD,CAlBsD,EAkBnD,CAlBmD,EAkBhD,CAlBgD,EAkB7C,CAlB6C,EAmBtD,CAnBsD,EAmBnD,CAnBmD,EAmBhD,CAnBgD,EAmB7C,CAnB6C,EAoBtD,CApBsD,EAoBnD,CApBmD,EAoBhD,CApBgD,EAoB7C,CApB6C,EAsBtD,CAtBsD,EAsBnD,CAtBmD,EAsBhD,CAtBgD,EAsB7C,CAtB6C,EAuBtD,CAvBsD,EAuBnD,CAvBmD,EAuBhD,CAvBgD,EAuB7C,CAvB6C,EAwBtD,CAxBsD,EAwBnD,CAxBmD,EAwBhD,CAxBgD,EAwB7C,CAxB6C,EAyBtD,CAzBsD,EAyBnD,CAzBmD,EAyBhD,CAzBgD,EAyB7C,CAzB6C,EA0BtD,CA1BsD,EA0BnD,CA1BmD,EA0BhD,CA1BgD,EA0B7C,CA1B6C,EA2BtD,CA3BsD,EA2BnD,CA3BmD,EA2BhD,CA3BgD,EA2B7C,CA3B6C,EA6BtD,CA7BsD,EA6BnD,CA7BmD,EA6BhD,CA7BgD,EA6B7C,CA7B6C,EA8BtD,CA9BsD,EA8BnD,CA9BmD,EA8BhD,CA9BgD,EA8B7C,CA9B6C,EA+BtD,CA/BsD,EA+BnD,CA/BmD,EA+BhD,CA/BgD,EA+B7C,CA/B6C,EAgCtD,CAhCsD,EAgCnD,CAhCmD,EAgChD,CAhCgD,EAgC7C,CAhC6C,EAiCtD,CAjCsD,EAiCnD,CAjCmD,EAiChD,CAjCgD,EAiC7C,CAjC6C,EAkCtD,CAlCsD,EAkCnD,CAlCmD,EAkChD,CAlCgD,EAkC7C,CAlC6C,EAoCtD,CApCsD,EAoCnD,CApCmD,EAoChD,CApCgD,EAoC7C,CApC6C,EAqCtD,CArCsD,EAqCnD,CArCmD,EAqChD,CArCgD,EAqC7C,CArC6C,EAsCtD,CAtCsD,EAsCnD,CAtCmD,EAsChD,CAtCgD,EAsC7C,CAtC6C,EAuCtD,CAvCsD,EAuCnD,CAvCmD,EAuChD,CAvCgD,EAuC7C,CAvC6C,EAwCtD,CAxCsD,EAwCnD,CAxCmD,EAwChD,CAxCgD,EAwC7C,CAxC6C,EAyCtD,CAzCsD,EAyCnD,CAzCmD,EAyChD,CAzCgD,EAyC7C,CAzC6C,CAAjB,CAAhC;AA4CP,MAAMJ,UAAU,GAAG;AACjBU,EAAAA,QAAQ,EAAE;AAACd,IAAAA,IAAI,EAAE,CAAP;AAAUC,IAAAA,KAAK,EAAEM;AAAjB,GADO;AAEjBQ,EAAAA,MAAM,EAAE;AAACf,IAAAA,IAAI,EAAE,CAAP;AAAUC,IAAAA,KAAK,EAAEQ;AAAjB,GAFS;AAGjBO,EAAAA,UAAU,EAAE;AAAChB,IAAAA,IAAI,EAAE,CAAP;AAAUC,IAAAA,KAAK,EAAES;AAAjB;AAHK,CAAnB;AAMA,MAAML,sBAAsB,GAAG;AAC7BS,EAAAA,QAAQ,EAAE;AAACd,IAAAA,IAAI,EAAE,CAAP;AAAUC,IAAAA,KAAK,EAAEU;AAAjB,GADmB;AAG7BK,EAAAA,UAAU,EAAE;AAAChB,IAAAA,IAAI,EAAE,CAAP;AAAUC,IAAAA,KAAK,EAAEW;AAAjB,GAHiB;AAI7BK,EAAAA,OAAO,EAAE;AAACjB,IAAAA,IAAI,EAAE,CAAP;AAAUC,IAAAA,KAAK,EAAEY;AAAjB;AAJoB,CAA/B","sourcesContent":["import {uid} from '@luma.gl/api';\nimport Geometry from '../geometry/geometry';\n// import type {GeometryType} from '../geometry/geometry-type';\n\nexport type CubeGeometryProps = {\n id?: string;\n indices?: boolean;\n attributes?;\n};\n\nexport class CubeGeometry extends Geometry {\n constructor(props: CubeGeometryProps = {}) {\n const {id = uid('cube-geometry'), indices = true} = props;\n super(indices ? {\n ...props,\n id,\n indices: {size: 1, value: CUBE_INDICES},\n attributes: {...ATTRIBUTES, ...props.attributes}\n } : {\n ...props,\n id,\n attributes: {...NON_INDEXED_ATTRIBUTES, ...props.attributes}\n });\n }\n}\n\n// prettier-ignore\nconst CUBE_INDICES = new Uint16Array([\n 0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13,\n 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23\n]);\n\n// prettier-ignore\nconst CUBE_POSITIONS = new Float32Array([\n -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1,\n -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1,\n -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1,\n -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1,\n 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1,\n -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1\n]);\n\n// TODO - could be Uint8\n// prettier-ignore\nconst CUBE_NORMALS = new Float32Array([\n // Front face\n 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1,\n // Back face\n 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1,\n // Top face\n 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0,\n // Bottom face\n 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0,\n // Right face\n 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0,\n // Left face\n -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0\n]);\n\n// prettier-ignore\nconst CUBE_TEX_COORDS = new Float32Array([\n // Front face\n 0, 0, 1, 0, 1, 1, 0, 1,\n // Back face\n 1, 0, 1, 1, 0, 1, 0, 0,\n // Top face\n 0, 1, 0, 0, 1, 0, 1, 1,\n // Bottom face\n 1, 1, 0, 1, 0, 0, 1, 0,\n // Right face\n 1, 0, 1, 1, 0, 1, 0, 0,\n // Left face\n 0, 0, 1, 0, 1, 1, 0, 1\n]);\n\n// float4 position\n// prettier-ignore\nexport const CUBE_NON_INDEXED_POSITIONS = new Float32Array([\n 1, -1, 1, 1,\n -1, -1, 1, 1,\n -1, -1, -1, 1,\n 1, -1, -1, 1,\n 1, -1, 1, 1,\n -1, -1, -1, 1,\n\n 1, 1, 1, 1,\n 1, -1, 1, 1,\n 1, -1, -1, 1,\n 1, 1, -1, 1,\n 1, 1, 1, 1,\n 1, -1, -1, 1,\n\n -1, 1, 1, 1,\n 1, 1, 1, 1,\n 1, 1, -1, 1,\n -1, 1, -1, 1,\n -1, 1, 1, 1,\n 1, 1, -1, 1,\n\n -1, -1, 1, 1,\n -1, 1, 1, 1,\n -1, 1, -1, 1,\n -1, -1, -1, 1,\n -1, -1, 1, 1,\n -1, 1, -1, 1,\n\n 1, 1, 1, 1,\n -1, 1, 1, 1,\n -1, -1, 1, 1,\n -1, -1, 1, 1,\n 1, -1, 1, 1,\n 1, 1, 1, 1,\n\n 1, -1, -1, 1,\n -1, -1, -1, 1,\n -1, 1, -1, 1,\n 1, 1, -1, 1,\n 1, -1, -1, 1,\n -1, 1, -1, 1,\n]);\n\n// float2 uv,\n// prettier-ignore\nexport const CUBE_NON_INDEXED_TEX_COORDS = new Float32Array([\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 0, 0,\n 1, 0,\n 1, 1,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n]);\n\n// float4 color\n// prettier-ignore\nexport const CUBE_NON_INDEXED_COLORS = new Float32Array([\n 1, 0, 1, 1,\n 0, 0, 1, 1,\n 0, 0, 0, 1,\n 1, 0, 0, 1,\n 1, 0, 1, 1,\n 0, 0, 0, 1,\n\n 1, 1, 1, 1,\n 1, 0, 1, 1,\n 1, 0, 0, 1,\n 1, 1, 0, 1,\n 1, 1, 1, 1,\n 1, 0, 0, 1,\n\n 0, 1, 1, 1,\n 1, 1, 1, 1,\n 1, 1, 0, 1,\n 0, 1, 0, 1,\n 0, 1, 1, 1,\n 1, 1, 0, 1,\n\n 0, 0, 1, 1,\n 0, 1, 1, 1,\n 0, 1, 0, 1,\n 0, 0, 0, 1,\n 0, 0, 1, 1,\n 0, 1, 0, 1,\n\n 1, 1, 1, 1,\n 0, 1, 1, 1,\n 0, 0, 1, 1,\n 0, 0, 1, 1,\n 1, 0, 1, 1,\n 1, 1, 1, 1,\n\n 1, 0, 0, 1,\n 0, 0, 0, 1,\n 0, 1, 0, 1,\n 1, 1, 0, 1,\n 1, 0, 0, 1,\n 0, 1, 0, 1,\n]);\n\nconst ATTRIBUTES = {\n POSITION: {size: 3, value: CUBE_POSITIONS},\n NORMAL: {size: 3, value: CUBE_NORMALS},\n TEXCOORD_0: {size: 2, value: CUBE_TEX_COORDS}\n};\n\nconst NON_INDEXED_ATTRIBUTES = {\n POSITION: {size: 4, value: CUBE_NON_INDEXED_POSITIONS},\n // NORMAL: {size: 3, value: CUBE_NON_INDEXED_NORMALS},\n TEXCOORD_0: {size: 2, value: CUBE_NON_INDEXED_TEX_COORDS},\n COLOR_0: {size: 3, value: CUBE_NON_INDEXED_COLORS}\n};\n"],"file":"cube-geometry.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/geometries/cube-geometry.ts"],"names":["uid","Geometry","CubeGeometry","constructor","props","id","indices","size","value","CUBE_INDICES","attributes","ATTRIBUTES","undefined","NON_INDEXED_ATTRIBUTES","Uint16Array","CUBE_POSITIONS","Float32Array","CUBE_NORMALS","CUBE_TEX_COORDS","CUBE_NON_INDEXED_POSITIONS","CUBE_NON_INDEXED_TEX_COORDS","CUBE_NON_INDEXED_COLORS","POSITION","NORMAL","TEXCOORD_0","COLOR_0"],"mappings":"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","sourcesContent":["import {uid} from '@luma.gl/api';\nimport Geometry from '../geometry/geometry';\n// import type {GeometryType} from '../geometry/geometry-type';\n\nexport type CubeGeometryProps = {\n id?: string;\n indices?: boolean;\n attributes?;\n};\n\nexport class CubeGeometry extends Geometry {\n constructor(props: CubeGeometryProps = {}) {\n const {id = uid('cube-geometry'), indices = true} = props;\n super(indices ? {\n ...props,\n id,\n indices: {size: 1, value: CUBE_INDICES},\n attributes: {...ATTRIBUTES, ...props.attributes}\n } : {\n ...props,\n id,\n indices: undefined,\n attributes: {...NON_INDEXED_ATTRIBUTES, ...props.attributes}\n });\n }\n}\n\n// prettier-ignore\nconst CUBE_INDICES = new Uint16Array([\n 0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13,\n 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23\n]);\n\n// prettier-ignore\nconst CUBE_POSITIONS = new Float32Array([\n -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1,\n -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1,\n -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1,\n -1, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1,\n 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1,\n -1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 1, -1\n]);\n\n// TODO - could be Uint8\n// prettier-ignore\nconst CUBE_NORMALS = new Float32Array([\n // Front face\n 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1,\n // Back face\n 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1,\n // Top face\n 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0,\n // Bottom face\n 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0,\n // Right face\n 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0,\n // Left face\n -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0\n]);\n\n// prettier-ignore\nconst CUBE_TEX_COORDS = new Float32Array([\n // Front face\n 0, 0, 1, 0, 1, 1, 0, 1,\n // Back face\n 1, 0, 1, 1, 0, 1, 0, 0,\n // Top face\n 0, 1, 0, 0, 1, 0, 1, 1,\n // Bottom face\n 1, 1, 0, 1, 0, 0, 1, 0,\n // Right face\n 1, 0, 1, 1, 0, 1, 0, 0,\n // Left face\n 0, 0, 1, 0, 1, 1, 0, 1\n]);\n\n// float4 position\n// prettier-ignore\nexport const CUBE_NON_INDEXED_POSITIONS = new Float32Array([\n 1, -1, 1, 1,\n -1, -1, 1, 1,\n -1, -1, -1, 1,\n 1, -1, -1, 1,\n 1, -1, 1, 1,\n -1, -1, -1, 1,\n\n 1, 1, 1, 1,\n 1, -1, 1, 1,\n 1, -1, -1, 1,\n 1, 1, -1, 1,\n 1, 1, 1, 1,\n 1, -1, -1, 1,\n\n -1, 1, 1, 1,\n 1, 1, 1, 1,\n 1, 1, -1, 1,\n -1, 1, -1, 1,\n -1, 1, 1, 1,\n 1, 1, -1, 1,\n\n -1, -1, 1, 1,\n -1, 1, 1, 1,\n -1, 1, -1, 1,\n -1, -1, -1, 1,\n -1, -1, 1, 1,\n -1, 1, -1, 1,\n\n 1, 1, 1, 1,\n -1, 1, 1, 1,\n -1, -1, 1, 1,\n -1, -1, 1, 1,\n 1, -1, 1, 1,\n 1, 1, 1, 1,\n\n 1, -1, -1, 1,\n -1, -1, -1, 1,\n -1, 1, -1, 1,\n 1, 1, -1, 1,\n 1, -1, -1, 1,\n -1, 1, -1, 1,\n]);\n\n// float2 uv,\n// prettier-ignore\nexport const CUBE_NON_INDEXED_TEX_COORDS = new Float32Array([\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 0, 0,\n 1, 0,\n 1, 1,\n\n 1, 1,\n 0, 1,\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 0,\n]);\n\n// float4 color\n// prettier-ignore\nexport const CUBE_NON_INDEXED_COLORS = new Float32Array([\n 1, 0, 1, 1,\n 0, 0, 1, 1,\n 0, 0, 0, 1,\n 1, 0, 0, 1,\n 1, 0, 1, 1,\n 0, 0, 0, 1,\n\n 1, 1, 1, 1,\n 1, 0, 1, 1,\n 1, 0, 0, 1,\n 1, 1, 0, 1,\n 1, 1, 1, 1,\n 1, 0, 0, 1,\n\n 0, 1, 1, 1,\n 1, 1, 1, 1,\n 1, 1, 0, 1,\n 0, 1, 0, 1,\n 0, 1, 1, 1,\n 1, 1, 0, 1,\n\n 0, 0, 1, 1,\n 0, 1, 1, 1,\n 0, 1, 0, 1,\n 0, 0, 0, 1,\n 0, 0, 1, 1,\n 0, 1, 0, 1,\n\n 1, 1, 1, 1,\n 0, 1, 1, 1,\n 0, 0, 1, 1,\n 0, 0, 1, 1,\n 1, 0, 1, 1,\n 1, 1, 1, 1,\n\n 1, 0, 0, 1,\n 0, 0, 0, 1,\n 0, 1, 0, 1,\n 1, 1, 0, 1,\n 1, 0, 0, 1,\n 0, 1, 0, 1,\n]);\n\nconst ATTRIBUTES = {\n POSITION: {size: 3, value: CUBE_POSITIONS},\n NORMAL: {size: 3, value: CUBE_NORMALS},\n TEXCOORD_0: {size: 2, value: CUBE_TEX_COORDS}\n};\n\nconst NON_INDEXED_ATTRIBUTES = {\n POSITION: {size: 4, value: CUBE_NON_INDEXED_POSITIONS},\n // NORMAL: {size: 3, value: CUBE_NON_INDEXED_NORMALS},\n TEXCOORD_0: {size: 2, value: CUBE_NON_INDEXED_TEX_COORDS},\n COLOR_0: {size: 3, value: CUBE_NON_INDEXED_COLORS}\n};\n"],"file":"cube-geometry.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/geometries/ico-sphere-geometry.ts"],"names":["uid","Vector3","Geometry","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 {uid} from '@luma.gl/api';\nimport {Vector3} from '@math.gl/core';\nimport Geometry from '../geometry/geometry';\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 type IcoSphereGeometryProps = {\n id?: string;\n radius?: number;\n iterations?: number;\n attributes?\n};\n\nexport class IcoSphereGeometry extends Geometry {\n constructor(props: IcoSphereGeometryProps = {}) {\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: IcoSphereGeometryProps) {\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
|
+
{"version":3,"sources":["../../src/geometries/ico-sphere-geometry.ts"],"names":["uid","Vector3","Geometry","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 {uid} from '@luma.gl/api';\nimport {Vector3} from '@math.gl/core';\nimport Geometry from '../geometry/geometry';\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 type IcoSphereGeometryProps = {\n id?: string;\n radius?: number;\n iterations?: number;\n attributes?\n};\n\nexport class IcoSphereGeometry extends Geometry {\n constructor(props: IcoSphereGeometryProps = {}) {\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: IcoSphereGeometryProps) {\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: number[] = [];\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"}
|
|
@@ -2,23 +2,29 @@ import type { TypedArray } from '@luma.gl/api';
|
|
|
2
2
|
import GL from '@luma.gl/constants';
|
|
3
3
|
/**
|
|
4
4
|
* Rendering primitives - "topology" specifies how to extract primitives from vertices.
|
|
5
|
+
* @deprecated - use string constants instead
|
|
5
6
|
*/
|
|
6
|
-
export declare type
|
|
7
|
+
export declare type GLTopology = GL.POINTS | // draw single points.
|
|
7
8
|
GL.LINES | // draw lines. Each vertex connects to the one after it.
|
|
8
9
|
GL.LINE_LOOP | // draw lines. Each set of two vertices is treated as a separate line segment.
|
|
9
10
|
GL.LINE_STRIP | // draw a connected group of line segments from the first vertex to the last
|
|
10
11
|
GL.TRIANGLES | // draw triangles. Each set of three vertices creates a separate triangle.
|
|
11
12
|
GL.TRIANGLE_STRIP | // draw a connected group of triangles.
|
|
12
13
|
GL.TRIANGLE_FAN;
|
|
14
|
+
export declare type GeometryAttribute = {
|
|
15
|
+
size?: number;
|
|
16
|
+
value: TypedArray;
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
};
|
|
13
19
|
export declare type GeometryProps = {
|
|
14
20
|
id?: string;
|
|
15
|
-
attributes?:
|
|
16
|
-
indices?:
|
|
21
|
+
attributes?: Record<string, GeometryAttribute | TypedArray>;
|
|
22
|
+
indices?: GeometryAttribute | TypedArray;
|
|
17
23
|
vertexCount?: number;
|
|
18
24
|
/** Determines how vertices are read from the 'vertex' attributes */
|
|
19
25
|
topology?: 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip';
|
|
20
26
|
/** @deprecated */
|
|
21
|
-
drawMode?:
|
|
27
|
+
drawMode?: GLTopology;
|
|
22
28
|
};
|
|
23
29
|
export default class Geometry {
|
|
24
30
|
/** @deprecated */
|
|
@@ -32,40 +38,25 @@ export default class Geometry {
|
|
|
32
38
|
TRIANGLE_FAN: GL;
|
|
33
39
|
};
|
|
34
40
|
readonly id: string;
|
|
35
|
-
userData: Record<string,
|
|
41
|
+
userData: Record<string, unknown>;
|
|
36
42
|
/** Determines how vertices are read from the 'vertex' attributes */
|
|
37
43
|
topology?: 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip';
|
|
38
44
|
/** @deprecated */
|
|
39
|
-
readonly drawMode:
|
|
45
|
+
readonly drawMode: GLTopology;
|
|
40
46
|
readonly vertexCount: number;
|
|
41
47
|
readonly attributes: {
|
|
42
|
-
POSITION:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
};
|
|
47
|
-
NORMAL: {
|
|
48
|
-
size: number;
|
|
49
|
-
value: TypedArray;
|
|
50
|
-
[key: string]: any;
|
|
51
|
-
};
|
|
52
|
-
TEXCOORD_0: {
|
|
53
|
-
size: number;
|
|
54
|
-
value: TypedArray;
|
|
55
|
-
[key: string]: any;
|
|
56
|
-
};
|
|
57
|
-
COLOR_0?: {
|
|
58
|
-
size: number;
|
|
59
|
-
value: TypedArray;
|
|
60
|
-
[key: string]: any;
|
|
61
|
-
};
|
|
48
|
+
POSITION: GeometryAttribute;
|
|
49
|
+
NORMAL: GeometryAttribute;
|
|
50
|
+
TEXCOORD_0: GeometryAttribute;
|
|
51
|
+
COLOR_0?: GeometryAttribute;
|
|
62
52
|
};
|
|
63
53
|
readonly indices?: Uint16Array | Uint32Array;
|
|
64
54
|
constructor(props?: GeometryProps);
|
|
65
|
-
|
|
55
|
+
/** @deprecated Use string topology constants instead */
|
|
56
|
+
get mode(): GLTopology;
|
|
66
57
|
getVertexCount(): number;
|
|
67
|
-
_print(attributeName:
|
|
68
|
-
_setAttributes(attributes:
|
|
58
|
+
_print(attributeName: string): string;
|
|
59
|
+
_setAttributes(attributes: Record<string, GeometryAttribute>, indices: any): this;
|
|
69
60
|
_calculateVertexCount(attributes: any, indices: any): number;
|
|
70
61
|
}
|
|
71
62
|
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/geometry/geometry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/geometry/geometry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC;;;GAGG;AACH,oBAAY,UAAU,GACpB,EAAE,CAAC,MAAM,GAAI,sBAAsB;AACnC,EAAE,CAAC,KAAK,GAAI,wDAAwD;AACpE,EAAE,CAAC,SAAS,GAAI,8EAA8E;AAC9F,EAAE,CAAC,UAAU,GAAI,4EAA4E;AAC7F,EAAE,CAAC,SAAS,GAAI,0EAA0E;AAC1F,EAAE,CAAC,cAAc,GAAI,uCAAuC;AAC5D,EAAE,CAAC,YAAY,CACd;AAEH,oBAAY,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,oBAAY,aAAa,GAAG;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,UAAU,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAC1F,kBAAkB;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB,CAAC;AAUF,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,kBAAkB;IAClB,MAAM,CAAC,SAAS;;;;;;;;MAQd;IAEF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAEvC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAC1F,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAgB;IAE7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,EAAE,iBAAiB,CAAC;QAC5B,MAAM,EAAE,iBAAiB,CAAC;QAC1B,UAAU,EAAE,iBAAiB,CAAC;QAC9B,OAAO,CAAC,EAAE,iBAAiB,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;gBAEjC,KAAK,GAAE,aAAkB;IAuDrC,wDAAwD;IACxD,IAAI,IAAI,eAEP;IAED,cAAc,IAAI,MAAM;IAWxB,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IASrC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,KAAA,GAAG,IAAI;IAK5E,qBAAqB,CAAC,UAAU,KAAA,EAAE,OAAO,KAAA,GAAG,MAAM;CAgBnD"}
|
|
@@ -28,24 +28,6 @@ export default class Geometry {
|
|
|
28
28
|
this.drawMode = drawMode;
|
|
29
29
|
this.topology = props.topology || convertToTopology(drawMode);
|
|
30
30
|
|
|
31
|
-
this._setAttributes(attributes, indices);
|
|
32
|
-
|
|
33
|
-
this.vertexCount = vertexCount || this._calculateVertexCount(this.attributes, this.indices);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
get mode() {
|
|
37
|
-
return this.drawMode;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
getVertexCount() {
|
|
41
|
-
return this.vertexCount;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
_print(attributeName) {
|
|
45
|
-
return "Geometry ".concat(this.id, " attribute ").concat(attributeName);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
_setAttributes(attributes, indices) {
|
|
49
31
|
if (indices) {
|
|
50
32
|
this.indices = ArrayBuffer.isView(indices) ? {
|
|
51
33
|
value: indices,
|
|
@@ -55,11 +37,10 @@ export default class Geometry {
|
|
|
55
37
|
|
|
56
38
|
this.attributes = {};
|
|
57
39
|
|
|
58
|
-
for (const attributeName
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
} : attribute;
|
|
40
|
+
for (const [attributeName, attributeValue] of Object.entries(attributes)) {
|
|
41
|
+
const attribute = ArrayBuffer.isView(attributeValue) ? {
|
|
42
|
+
value: attributeValue
|
|
43
|
+
} : attributeValue;
|
|
63
44
|
assert(ArrayBuffer.isView(attribute.value), "".concat(this._print(attributeName), ": must be typed array or object with value as typed array"));
|
|
64
45
|
|
|
65
46
|
if ((attributeName === 'POSITION' || attributeName === 'positions') && !attribute.size) {
|
|
@@ -79,6 +60,22 @@ export default class Geometry {
|
|
|
79
60
|
delete this.indices.isIndexed;
|
|
80
61
|
}
|
|
81
62
|
|
|
63
|
+
this.vertexCount = vertexCount || this._calculateVertexCount(this.attributes, this.indices);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
get mode() {
|
|
67
|
+
return this.drawMode;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
getVertexCount() {
|
|
71
|
+
return this.vertexCount;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
_print(attributeName) {
|
|
75
|
+
return "Geometry ".concat(this.id, " attribute ").concat(attributeName);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
_setAttributes(attributes, indices) {
|
|
82
79
|
return this;
|
|
83
80
|
}
|
|
84
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/geometry/geometry.ts"],"names":["uid","assert","GL","Geometry","constructor","props","TRIANGLES","id","drawMode","attributes","indices","vertexCount","topology","convertToTopology","_setAttributes","_calculateVertexCount","mode","getVertexCount","_print","attributeName","ArrayBuffer","isView","value","size","attribute","isIndexed","undefined","Object","assign","length","Infinity","constant","Math","min","Number","isFinite","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLE_STRIP","TRIANGLE_FAN","Error","String"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport type {TypedArray} from '@luma.gl/api';\nimport {uid, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\n\n/**\n * Rendering primitives - \"topology\" specifies how to extract primitives from vertices.\n */\nexport type Topology =\n GL.POINTS | // draw single points.\n GL.LINES | // draw lines. Each vertex connects to the one after it.\n GL.LINE_LOOP | // draw lines. Each set of two vertices is treated as a separate line segment.\n GL.LINE_STRIP | // draw a connected group of line segments from the first vertex to the last\n GL.TRIANGLES | // draw triangles. Each set of three vertices creates a separate triangle.\n GL.TRIANGLE_STRIP | // draw a connected group of triangles.\n GL.TRIANGLE_FAN // draw a connected group of triangles.\n ;\n\nexport type GeometryProps = {\n id?: string;\n attributes?: {},\n indices?;\n vertexCount?: number;\n /** Determines how vertices are read from the 'vertex' attributes */\n topology?: 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip';\n /** @deprecated */\n drawMode?: Topology;\n};\n\ntype GeometryAttributes = {\n POSITION: {size: number, value: TypedArray, [key: string]: any},\n NORMAL: {size: number, value: TypedArray, [key: string]: any},\n TEXCOORD_0: {size: number, value: TypedArray, [key: string]: any},\n COLOR_0?: {size: number, value: TypedArray, [key: string]: any},\n indices?: {size?: number, value: Uint32Array | Uint16Array};\n};\n\nexport default class Geometry {\n /** @deprecated */\n static DRAW_MODE = {\n POINTS: GL.POINTS, // draw single points.\n LINES: GL.LINES, // draw lines. Each vertex connects to the one after it.\n LINE_LOOP: GL.LINE_LOOP, // draw lines. Each set of two vertices is treated as a separate line segment.\n LINE_STRIP: GL.LINE_STRIP, // draw a connected group of line segments from the first vertex to the last\n TRIANGLES: GL.TRIANGLES, // draw triangles. Each set of three vertices creates a separate triangle.\n TRIANGLE_STRIP: GL.TRIANGLE_STRIP, // draw a connected group of triangles.\n TRIANGLE_FAN: GL.TRIANGLE_FAN // draw a connected group of triangles.\n };\n\n readonly id: string;\n userData: Record<string, any> = {};\n\n /** Determines how vertices are read from the 'vertex' attributes */\n topology?: 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip';\n /** @deprecated */\n readonly drawMode: Topology = GL.TRIANGLES;\n\n readonly vertexCount: number;\n readonly attributes: {\n POSITION: {size: number, value: TypedArray, [key: string]: any},\n NORMAL: {size: number, value: TypedArray, [key: string]: any},\n TEXCOORD_0: {size: number, value: TypedArray, [key: string]: any},\n COLOR_0?: {size: number, value: TypedArray, [key: string]: any},\n };\n readonly indices?: Uint16Array | Uint32Array;\n\n constructor(props: GeometryProps = {}) {\n const {\n id = uid('geometry'),\n drawMode = GL.TRIANGLES,\n attributes = {},\n indices = null,\n vertexCount = null\n } = props;\n\n this.id = id;\n this.drawMode = drawMode;\n this.topology = props.topology || convertToTopology(drawMode);\n\n this._setAttributes(attributes, indices);\n\n this.vertexCount = vertexCount || this._calculateVertexCount(this.attributes, this.indices);\n }\n\n get mode() {\n return this.drawMode;\n }\n\n getVertexCount(): number {\n return this.vertexCount;\n }\n\n // Return an object with all attributes plus indices added as a field.\n // getAttributes(): GeometryAttributes {\n // return this.indices ? {indices: this.indices, ...this.attributes} : this.attributes;\n // }\n\n // PRIVATE\n\n _print(attributeName): string {\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): this {\n if (indices) {\n // @ts-expect-error\n this.indices = ArrayBuffer.isView(indices) ? {value: indices, size: 1} : indices;\n }\n\n // @ts-expect-error\n this.attributes = {};\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 // @ts-expect-error\n this.indices = attribute;\n } else {\n this.attributes[attributeName] = attribute;\n }\n }\n\n // @ts-expect-error\n if (this.indices && this.indices.isIndexed !== undefined) {\n // @ts-expect-error\n this.indices = Object.assign({}, this.indices);\n // @ts-expect-error\n delete this.indices.isIndexed;\n }\n\n return this;\n }\n\n _calculateVertexCount(attributes, indices): number {\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\nfunction convertToTopology(drawMode: GL): 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip' {\n switch (drawMode) {\n case GL.POINTS: return 'point-list'; // draw single points.\n case GL.LINES: return 'line-list'; // draw lines. Each vertex connects to the one after it.\n case GL.LINE_STRIP: return 'line-strip'; // draw a connected group of line segments from the first vertex to the last\n case GL.TRIANGLES: return 'triangle-list'; // draw triangles. Each set of three vertices creates a separate triangle.\n case GL.TRIANGLE_STRIP: return 'triangle-strip'; // draw a connected group of triangles.\n\n case GL.TRIANGLE_FAN: // draw a connected group of triangles.\n case GL.LINE_LOOP: // draw lines. Each set of two vertices is treated as a separate line segment.\n default:\n throw new Error(String(drawMode));\n }\n}\n"],"file":"geometry.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/geometry/geometry.ts"],"names":["uid","assert","GL","Geometry","constructor","props","TRIANGLES","id","drawMode","attributes","indices","vertexCount","topology","convertToTopology","ArrayBuffer","isView","value","size","attributeName","attributeValue","Object","entries","attribute","_print","isIndexed","undefined","assign","_calculateVertexCount","mode","getVertexCount","_setAttributes","length","Infinity","constant","Math","min","Number","isFinite","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLE_STRIP","TRIANGLE_FAN","Error","String"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport type {TypedArray} from '@luma.gl/api';\nimport {uid, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\n\n/**\n * Rendering primitives - \"topology\" specifies how to extract primitives from vertices.\n * @deprecated - use string constants instead\n */\nexport type GLTopology =\n GL.POINTS | // draw single points.\n GL.LINES | // draw lines. Each vertex connects to the one after it.\n GL.LINE_LOOP | // draw lines. Each set of two vertices is treated as a separate line segment.\n GL.LINE_STRIP | // draw a connected group of line segments from the first vertex to the last\n GL.TRIANGLES | // draw triangles. Each set of three vertices creates a separate triangle.\n GL.TRIANGLE_STRIP | // draw a connected group of triangles.\n GL.TRIANGLE_FAN // draw a connected group of triangles.\n ;\n\nexport type GeometryAttribute = {\n size?: number;\n value: TypedArray;\n [key: string]: any\n}\n\nexport type GeometryProps = {\n id?: string;\n attributes?: Record<string, GeometryAttribute | TypedArray>,\n indices?: GeometryAttribute | TypedArray;\n vertexCount?: number;\n /** Determines how vertices are read from the 'vertex' attributes */\n topology?: 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip';\n /** @deprecated */\n drawMode?: GLTopology;\n};\n\ntype GeometryAttributes = {\n POSITION: GeometryAttribute,\n NORMAL: GeometryAttribute,\n TEXCOORD_0: GeometryAttribute,\n COLOR_0?: GeometryAttribute,\n indices?: {size?: number, value: Uint32Array | Uint16Array};\n};\n\nexport default class Geometry {\n /** @deprecated */\n static DRAW_MODE = {\n POINTS: GL.POINTS, // draw single points.\n LINES: GL.LINES, // draw lines. Each vertex connects to the one after it.\n LINE_LOOP: GL.LINE_LOOP, // draw lines. Each set of two vertices is treated as a separate line segment.\n LINE_STRIP: GL.LINE_STRIP, // draw a connected group of line segments from the first vertex to the last\n TRIANGLES: GL.TRIANGLES, // draw triangles. Each set of three vertices creates a separate triangle.\n TRIANGLE_STRIP: GL.TRIANGLE_STRIP, // draw a connected group of triangles.\n TRIANGLE_FAN: GL.TRIANGLE_FAN // draw a connected group of triangles.\n };\n\n readonly id: string;\n userData: Record<string, unknown> = {};\n\n /** Determines how vertices are read from the 'vertex' attributes */\n topology?: 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip';\n /** @deprecated */\n readonly drawMode: GLTopology = GL.TRIANGLES;\n\n readonly vertexCount: number;\n readonly attributes: {\n POSITION: GeometryAttribute,\n NORMAL: GeometryAttribute,\n TEXCOORD_0: GeometryAttribute,\n COLOR_0?: GeometryAttribute,\n };\n readonly indices?: Uint16Array | Uint32Array;\n\n constructor(props: GeometryProps = {}) {\n const {\n id = uid('geometry'),\n drawMode = GL.TRIANGLES,\n attributes = {},\n indices = null,\n vertexCount = null\n } = props;\n\n this.id = id;\n this.drawMode = drawMode;\n this.topology = props.topology || convertToTopology(drawMode);\n\n if (indices) {\n // @ts-expect-error\n this.indices = ArrayBuffer.isView(indices) ? {value: indices, size: 1} : indices;\n }\n\n // @ts-expect-error\n this.attributes = {};\n\n for (const [attributeName, attributeValue] of Object.entries(attributes)) {\n\n // Wrap \"unwrapped\" arrays and try to autodetect their type\n const attribute: GeometryAttribute = ArrayBuffer.isView(attributeValue) ? {value: attributeValue} : attributeValue;\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 // @ts-expect-error\n this.indices = attribute;\n } else {\n this.attributes[attributeName] = attribute;\n }\n }\n\n // @ts-expect-error\n if (this.indices && this.indices.isIndexed !== undefined) {\n this.indices = Object.assign({}, this.indices);\n // @ts-expect-error\n delete this.indices.isIndexed;\n }\n\n this.vertexCount = vertexCount || this._calculateVertexCount(this.attributes, this.indices);\n }\n\n /** @deprecated Use string topology constants instead */\n get mode() {\n return this.drawMode;\n }\n\n getVertexCount(): number {\n return this.vertexCount;\n }\n\n // Return an object with all attributes plus indices added as a field.\n // getAttributes(): GeometryAttributes {\n // return this.indices ? {indices: this.indices, ...this.attributes} : this.attributes;\n // }\n\n // PRIVATE\n\n _print(attributeName: string): string {\n return `Geometry ${this.id} attribute ${attributeName}`;\n }\n\n // GeometryAttribute\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: Record<string, GeometryAttribute>, indices): this {\n\n return this;\n }\n\n _calculateVertexCount(attributes, indices): number {\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\nfunction convertToTopology(drawMode: GLTopology): 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip' {\n switch (drawMode) {\n case GL.POINTS: return 'point-list'; // draw single points.\n case GL.LINES: return 'line-list'; // draw lines. Each vertex connects to the one after it.\n case GL.LINE_STRIP: return 'line-strip'; // draw a connected group of line segments from the first vertex to the last\n case GL.TRIANGLES: return 'triangle-list'; // draw triangles. Each set of three vertices creates a separate triangle.\n case GL.TRIANGLE_STRIP: return 'triangle-strip'; // draw a connected group of triangles.\n\n case GL.TRIANGLE_FAN: // draw a connected group of triangles.\n case GL.LINE_LOOP: // draw lines. Each set of two vertices is treated as a separate line segment.\n default:\n throw new Error(String(drawMode));\n }\n}\n"],"file":"geometry.js"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export type { AnimationProps } from './lib/animation-props';
|
|
2
|
+
export type { AnimationLoopProps } from './lib/animation-loop';
|
|
3
|
+
export { AnimationLoop } from './lib/animation-loop';
|
|
2
4
|
export { RenderLoop } from './lib/render-loop';
|
|
3
5
|
export type { ModelProps } from './lib/model';
|
|
4
6
|
export { default as Model } from './lib/model';
|
|
5
|
-
export
|
|
6
|
-
export {
|
|
7
|
+
export { PipelineFactory } from './lib/pipeline-factory';
|
|
8
|
+
export { Timeline } from './animation/timeline';
|
|
9
|
+
export { KeyFrames } from './animation/key-frames';
|
|
7
10
|
export { default as Geometry } from './geometry/geometry';
|
|
8
11
|
export type { ConeGeometryProps } from './geometries/cone-geometry';
|
|
9
12
|
export { ConeGeometry } from './geometries/cone-geometry';
|
|
@@ -19,6 +22,4 @@ export type { SphereGeometryProps } from './geometries/sphere-geometry';
|
|
|
19
22
|
export { SphereGeometry } from './geometries/sphere-geometry';
|
|
20
23
|
export type { TruncatedConeGeometryProps } from './geometries/truncated-cone-geometry';
|
|
21
24
|
export { TruncatedConeGeometry } from './geometries/truncated-cone-geometry';
|
|
22
|
-
export { Timeline } from './animation/timeline';
|
|
23
|
-
export { KeyFrames } from './animation/key-frames';
|
|
24
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAMjD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAGxD,YAAY,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,YAAY,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,YAAY,EAAC,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAC,sBAAsB,EAAC,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,YAAY,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAC,0BAA0B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
export { AnimationLoop } from './lib/animation-loop';
|
|
1
2
|
export { RenderLoop } from './lib/render-loop';
|
|
2
3
|
export { default as Model } from './lib/model';
|
|
3
|
-
export {
|
|
4
|
+
export { PipelineFactory } from './lib/pipeline-factory';
|
|
5
|
+
export { Timeline } from './animation/timeline';
|
|
6
|
+
export { KeyFrames } from './animation/key-frames';
|
|
4
7
|
export { default as Geometry } from './geometry/geometry';
|
|
5
8
|
export { ConeGeometry } from './geometries/cone-geometry';
|
|
6
9
|
export { CubeGeometry } from './geometries/cube-geometry';
|
|
@@ -9,6 +12,4 @@ export { IcoSphereGeometry } from './geometries/ico-sphere-geometry';
|
|
|
9
12
|
export { PlaneGeometry } from './geometries/plane-geometry';
|
|
10
13
|
export { SphereGeometry } from './geometries/sphere-geometry';
|
|
11
14
|
export { TruncatedConeGeometry } from './geometries/truncated-cone-geometry';
|
|
12
|
-
export { Timeline } from './animation/timeline';
|
|
13
|
-
export { KeyFrames } from './animation/key-frames';
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["RenderLoop","default","Model","
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["AnimationLoop","RenderLoop","default","Model","PipelineFactory","Timeline","KeyFrames","Geometry","ConeGeometry","CubeGeometry","CylinderGeometry","IcoSphereGeometry","PlaneGeometry","SphereGeometry","TruncatedConeGeometry"],"mappings":"AAGA,SAAQA,aAAR,QAA4B,sBAA5B;AACA,SAAQC,UAAR,QAAyB,mBAAzB;AAEA,SAAQC,OAAO,IAAIC,KAAnB,QAA+B,aAA/B;AAEA,SAAQC,eAAR,QAA8B,wBAA9B;AAGA,SAAQC,QAAR,QAAuB,sBAAvB;AACA,SAAQC,SAAR,QAAwB,wBAAxB;AAMA,SAAQJ,OAAO,IAAIK,QAAnB,QAAkC,qBAAlC;AAIA,SAAQC,YAAR,QAA2B,4BAA3B;AAEA,SAAQC,YAAR,QAA2B,4BAA3B;AAEA,SAAQC,gBAAR,QAA+B,gCAA/B;AAEA,SAAQC,iBAAR,QAAgC,kCAAhC;AAEA,SAAQC,aAAR,QAA4B,6BAA5B;AAEA,SAAQC,cAAR,QAA6B,8BAA7B;AAEA,SAAQC,qBAAR,QAAoC,sCAApC","sourcesContent":["// luma.gl Engine API\nexport type {AnimationProps} from './lib/animation-props';\nexport type {AnimationLoopProps} from './lib/animation-loop';\nexport {AnimationLoop} from './lib/animation-loop';\nexport {RenderLoop} from './lib/render-loop';\nexport type {ModelProps} from './lib/model';\nexport {default as Model} from './lib/model';\n\nexport {PipelineFactory} from './lib/pipeline-factory';\n\n// Animation\nexport {Timeline} from './animation/timeline';\nexport {KeyFrames} from './animation/key-frames';\n\n// Utils\n// export {default as ClipSpace} from './lib/clip-space';\n\n// Geometries\nexport {default as Geometry} from './geometry/geometry';\n\n// Primitives\nexport type {ConeGeometryProps} from './geometries/cone-geometry';\nexport {ConeGeometry} from './geometries/cone-geometry';\nexport type {CubeGeometryProps} from './geometries/cube-geometry';\nexport {CubeGeometry} from './geometries/cube-geometry';\nexport type {CylinderGeometryProps} from './geometries/cylinder-geometry';\nexport {CylinderGeometry} from './geometries/cylinder-geometry';\nexport type {IcoSphereGeometryProps} from './geometries/ico-sphere-geometry';\nexport {IcoSphereGeometry} from './geometries/ico-sphere-geometry';\nexport type {PlaneGeometryProps} from './geometries/plane-geometry';\nexport {PlaneGeometry} from './geometries/plane-geometry';\nexport type {SphereGeometryProps} from './geometries/sphere-geometry';\nexport {SphereGeometry} from './geometries/sphere-geometry';\nexport type {TruncatedConeGeometryProps} from './geometries/truncated-cone-geometry';\nexport {TruncatedConeGeometry} from './geometries/truncated-cone-geometry';\n\n"],"file":"index.js"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="offscreencanvas" />
|
|
1
2
|
import { Device, DeviceProps } from '@luma.gl/api';
|
|
2
3
|
import { Timeline } from '../animation/timeline';
|
|
3
4
|
import { AnimationProps } from '../lib/animation-props';
|
|
@@ -10,7 +11,7 @@ export declare type AnimationLoopProps = {
|
|
|
10
11
|
onRender?: (animationProps: AnimationProps) => void;
|
|
11
12
|
onFinalize?: (animationProps: AnimationProps) => void;
|
|
12
13
|
onError?: (reason: Error) => void;
|
|
13
|
-
device?: Device;
|
|
14
|
+
device?: Device | null;
|
|
14
15
|
deviceProps?: DeviceProps;
|
|
15
16
|
stats?: Stats;
|
|
16
17
|
debug?: boolean;
|
|
@@ -19,18 +20,18 @@ export declare type AnimationLoopProps = {
|
|
|
19
20
|
useDevicePixels?: number | boolean;
|
|
20
21
|
};
|
|
21
22
|
/** Convenient animation loop */
|
|
22
|
-
export
|
|
23
|
-
device: Device;
|
|
24
|
-
canvas: HTMLCanvasElement;
|
|
23
|
+
export declare class AnimationLoop {
|
|
24
|
+
device: Device | null;
|
|
25
|
+
canvas: HTMLCanvasElement | OffscreenCanvas | null;
|
|
25
26
|
props: Required<AnimationLoopProps>;
|
|
26
|
-
animationProps: AnimationProps;
|
|
27
|
-
timeline: Timeline;
|
|
27
|
+
animationProps: AnimationProps | null;
|
|
28
|
+
timeline: Timeline | null;
|
|
28
29
|
stats: Stats;
|
|
29
30
|
cpuTime: Stat;
|
|
30
31
|
gpuTime: Stat;
|
|
31
32
|
frameRate: Stat;
|
|
32
33
|
display: any;
|
|
33
|
-
needsRedraw: string |
|
|
34
|
+
needsRedraw: string | false;
|
|
34
35
|
_initialized: boolean;
|
|
35
36
|
_running: boolean;
|
|
36
37
|
_animationFrameId: any;
|
|
@@ -44,7 +45,7 @@ export default class AnimationLoop {
|
|
|
44
45
|
setNeedsRedraw(reason: string): this;
|
|
45
46
|
setProps(props: AnimationLoopProps): this;
|
|
46
47
|
/** Starts a render loop if not already running */
|
|
47
|
-
start(): Promise<this>;
|
|
48
|
+
start(): Promise<this | null>;
|
|
48
49
|
/** Explicitly draw a frame */
|
|
49
50
|
redraw(): this;
|
|
50
51
|
stop(): this;
|
|
@@ -52,10 +53,6 @@ export default class AnimationLoop {
|
|
|
52
53
|
detachTimeline(): void;
|
|
53
54
|
waitForRender(): Promise<AnimationLoop>;
|
|
54
55
|
toDataURL(): Promise<string>;
|
|
55
|
-
onCreateDevice(deviceProps: DeviceProps): Promise<Device>;
|
|
56
|
-
onInitialize(animationProps: AnimationProps): {} | void;
|
|
57
|
-
onRender(animationProps: AnimationProps): void;
|
|
58
|
-
onFinalize(animationProps: AnimationProps): void;
|
|
59
56
|
_initialize(): void;
|
|
60
57
|
_setDisplay(display: any): void;
|
|
61
58
|
_requestAnimationFrame(): void;
|
|
@@ -64,8 +61,9 @@ export default class AnimationLoop {
|
|
|
64
61
|
_renderFrame(props: AnimationProps): void;
|
|
65
62
|
_clearNeedsRedraw(): void;
|
|
66
63
|
_setupFrame(): void;
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
_initializeAnimationProps(): void;
|
|
65
|
+
_getAnimationProps(): AnimationProps;
|
|
66
|
+
_updateAnimationProps(): void;
|
|
69
67
|
/** Either uses supplied or existing context, or calls provided callback to create one */
|
|
70
68
|
_createDevice(): Promise<void>;
|
|
71
69
|
_createInfoDiv(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animation-loop.d.ts","sourceRoot":"","sources":["../../src/lib/animation-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,MAAM,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAS5C,+BAA+B;AAC/B,oBAAY,kBAAkB,GAAG;IAC/B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,IAAI,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC;IAElC,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"animation-loop.d.ts","sourceRoot":"","sources":["../../src/lib/animation-loop.ts"],"names":[],"mappings":"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"}
|