@needle-tools/engine 2.30.0-pre → 2.31.0-pre

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 (34) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/needle-engine.d.ts +807 -753
  3. package/dist/needle-engine.js +336 -336
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +16 -16
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/engine_physics.d.ts +19 -8
  8. package/lib/engine/engine_physics.js +57 -48
  9. package/lib/engine/engine_physics.js.map +1 -1
  10. package/lib/engine-components/Camera.js +0 -1
  11. package/lib/engine-components/Camera.js.map +1 -1
  12. package/lib/engine-components/Component.d.ts +10 -0
  13. package/lib/engine-components/Component.js +53 -0
  14. package/lib/engine-components/Component.js.map +1 -1
  15. package/lib/engine-components/Rigidbody.d.ts +1 -1
  16. package/lib/engine-components/Rigidbody.js +3 -3
  17. package/lib/engine-components/Rigidbody.js.map +1 -1
  18. package/lib/engine-components/ScreenCapture.d.ts +35 -6
  19. package/lib/engine-components/ScreenCapture.js +356 -103
  20. package/lib/engine-components/ScreenCapture.js.map +1 -1
  21. package/lib/engine-components/VideoPlayer.d.ts +4 -0
  22. package/lib/engine-components/VideoPlayer.js +22 -1
  23. package/lib/engine-components/VideoPlayer.js.map +1 -1
  24. package/lib/needle-engine.d.ts +1 -0
  25. package/lib/needle-engine.js +1 -0
  26. package/lib/needle-engine.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/engine/engine_physics.ts +74 -57
  29. package/src/engine-components/Camera.ts +0 -1
  30. package/src/engine-components/Component.ts +58 -0
  31. package/src/engine-components/RigidBody.ts +2 -2
  32. package/src/engine-components/ScreenCapture.ts +386 -114
  33. package/src/engine-components/VideoPlayer.ts +26 -2
  34. package/src/needle-engine.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenCapture.js","sourceRoot":"","sources":["../../../engine-components/ScreenCapture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScreenCapture.js","sourceRoot":"","sources":["../../../engine-components/ScreenCapture.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,IAAI,MAAM,QAAQ,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAiB,MAAM,8BAA8B,CAAC;AAG5E,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC3B,iEAAU,CAAA;IACV,iEAAU,CAAA;AACd,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,yDAAQ,CAAA;IACR,+DAAW,CAAA;IACX,mEAAa,CAAA;AACjB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,2CAAQ,CAAA;IACR,2DAAgB,CAAA;IAChB,yDAAe,CAAA;AACnB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED,SAAS,aAAa,CAAC,GAAmC;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE;QAC7B,GAAG,CAAC,IAAI,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAExC,cAAc;QACV,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO;SACV;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAMD,MAAM,GAAwB,mBAAmB,CAAC,MAAM,CAAC;IAGzD,UAAU,GAAe,UAAU,CAAC,YAAY,CAAC;IAGjD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,KAAK,iBAAiB,CAAC,OAAO,CAAC;IAClF,CAAC;IACD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,KAAK,iBAAiB,CAAC,SAAS,CAAC;IACpF,CAAC;IAEO,IAAI,CAAkB;IACtB,MAAM,CAAe;IACrB,YAAY,GAAY,KAAK,CAAC;IAC9B,cAAc,GAAuB,IAAI,CAAC;IAC1C,YAAY,GAAsB,iBAAiB,CAAC,IAAI,CAAC;IAEjE,KAAK;QACD,WAAW,CAAC,yBAAyB,CAAC,GAAG,EAAE;YACvC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,KAAK,iBAAiB,CAAC,SAAS,EAAE;gBACzF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC7C;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC;QAC3F,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO;SACV;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,YAAY;QACZ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI;YACA,IAAI,IAAI,CAAC,MAAM,EAAE;gBAEb,MAAM,QAAQ,GAA0B;oBACpC,gBAAgB,EAAE,IAAI;oBACtB,eAAe,EAAE,KAAK;iBACzB,CAAC;gBACF,MAAM,mBAAmB,GAAkC;oBACvD,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,QAAQ;iBAClB,CAAC;gBAEF,QAAQ,IAAI,CAAC,MAAM,EAAE;oBACjB,KAAK,mBAAmB,CAAC,MAAM;wBAC3B,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;wBAC7C,MAAM;oBAEV,KAAK,mBAAmB,CAAC,MAAM;wBAC3B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,EAAE;4BACzC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;4BAC5C,OAAO;yBACV;wBACD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;wBAClF,IAAI,IAAI,CAAC,YAAY,EAAE;4BACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;yBACrD;;4BACI,aAAa,CAAC,OAAO,CAAC,CAAC;wBAC5B,MAAM;iBACb;aACJ;SACJ;QAAC,OAAO,GAAQ,EAAE;YACf,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE;gBAChC,kCAAkC;gBAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,OAAO;aACV;YACD,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;SAC7C;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC3D,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC;YAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B;IACL,CAAC;IAEO,QAAQ,CAAC,MAAmB,EAAE,IAAuB;QACzD,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc;YAAE,OAAO;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,IAAI,KAAK,iBAAiB,CAAC,OAAO;YAClC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc,CAAC,GAAsB;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAKO,KAAK,CAAC,kBAAkB,CAAC,IAAmC;QAEhE,+DAA+D;QAC/D,gBAAgB;QAChB,gGAAgG;QAChG,IAAI;QAEJ,oCAAoC;QACpC,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;YACvB,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,YAAY;oBAAE,MAAM;gBAC9B,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;oBAAE,SAAS;gBACxC,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;gBACxB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;oBACtB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;wBACtE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;qBACnB;oBACD,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;iBAC5B;gBACD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAClE,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;iBACvD;;oBACI,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBACpC,MAAM;aACT;YACD,OAAO,GAAG,EAAE;gBACR,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACrB;SACJ;IACL,CAAC;IACD,yDAAyD;IACzD,sCAAsC;IAEtC,IAAI;IAKI,cAAc,CAAyB;IAEvC,YAAY;QAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,sBAAsB,GAAW,CAAC,CAAC,CAAC;IACpC,CAAC,gBAAgB;QACrB,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACzC,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,KAAK,IAAI,CAAC,sBAAsB,EAAE;YACrG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;YACnC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,IAAI,MAAM,GAAuB,SAAS,CAAC;YAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE;gBACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrC,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACnC,MAAM,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAC1C,MAAM;iBACT;aACJ;YACD,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;YACjC,IAAI,CAAC,IAAI,CAAC,cAAc;gBACpB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACnD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE;gBACnC,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,MAAM,EAAE;oBACZ,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC9C,WAAW,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;iBAC/C;gBACD,QAAQ,IAAI,CAAC,UAAU,EAAE;oBACrB,KAAK,UAAU,CAAC,YAAY;wBACxB,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC;wBACrD,MAAM;oBACV,KAAK,UAAU,CAAC,WAAW;wBACvB,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC;wBACjD,MAAM;iBACb;aACJ;YACD,KAAK,CAAC;SACT;IACL,CAAC;CACJ;AAzMG;IADC,aAAa,EAAE;6CACyC;AAGzD;IADC,aAAa,EAAE;iDACiC;AAyMrD,YAAY;AAEZ,IAAK,SAIJ;AAJD,WAAK,SAAS;IACV,8CAAiC,CAAA;IACjC,2CAA8B,CAAA;IAC9B,oDAAuC,CAAA;AAC3C,CAAC,EAJI,SAAS,KAAT,SAAS,QAIb;AAED,MAAM,iBAAiB;IACV,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC;IAC9B,MAAM,CAAc;IACpB,MAAM,CAAa;IAC5B,YAAY,MAAmB,EAAE,MAAkB;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAED,MAAM,sBAAsB;IACxB,yBAAyB;IAChB,IAAI,CAAS;IACb,MAAM,CAAS;IACxB,0DAA0D;IACjD,QAAQ,GAAY,IAAI,CAAC;IAClC,YAAY,MAAkB,EAAE,MAAc;QAC1C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAED,IAAK,aAGJ;AAHD,WAAK,aAAa;IACd,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAHI,aAAa,KAAb,aAAa,QAGjB;AAED,MAAM,UAAW,SAAQ,eAAe;IAC3B,MAAM,CAAS;IACf,SAAS,CAAgB;IACzB,IAAI,CAAuB;IACpC,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAAA,CAAC;IAE9B,OAAO,GAAuB,IAAI,CAAC;IACnC,WAAW,GAAY,KAAK,CAAC;IAErC,KAAK;QACD,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,KAAK,WAAW,CAAC,CAAA,2BAA2B;IAChG,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,YAAY,MAAc,EAAE,IAA0B,EAAE,SAAwB;QAC5E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,SAAS,KAAK,aAAa,CAAC,QAAQ,EAAE;gBACtC,MAAM,IAAI,GAAsB,IAAI,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACpE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC5B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,MAAM,UAAW,SAAQ,eAAe;IAE5B,MAAM,CAAU,SAAS,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEvE,MAAM,CAAC,WAAW,CAAC,OAAgB,EAAE,IAAY;QAC7C,0BAA0B;QAC1B,kBAAkB;QAClB,qCAAqC;QACrC,IAAI;QACJ,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9B,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY;YACpC,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,mBAAmB,CAAC,gBAAwB;QACxC,+EAA+E;QAC/E,OAAO,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,mBAAmB,CAAC,MAAc;QAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,MAAmB;QACxC,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI;YACJ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3D,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,IAAI,KAAuB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1C,EAAE,CAAS;IACX,OAAO,CAAU;IAClB,KAAK,CAAmB;IACxB,cAAc,GAAiB,EAAE,CAAC;IAClC,cAAc,GAAiB,EAAE,CAAC;IAE1C,YAAoB,OAAgB,EAAE,EAAU;QAC5C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,SAAS,CAAC,cAAc,CAAC,GAAG,CACxB,SAAS,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,oBAAoB,CAAC;YAC5D,SAAS,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,gBAAgB,CAAC,CAC9D,CAAC;IACN,CAAC;IAEO,QAAQ,GAAY,KAAK,CAAC;IAC1B,YAAY,GAAY,KAAK,CAAC;IAC9B,eAAe,GAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,wBAAwB,GAAa,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,eAAe,GAAiB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,mBAAmB,GAAmB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,kEAAkE;IAElE,MAAM;QACF,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9F,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC5F,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAChG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9F,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAAA,CAAC;IAEM,sBAAsB,CAAC,CAA4B;IAC3D,CAAC;IAAA,CAAC;IAEM,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY;YAAE,OAAO;QAClD,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACnC,CAAC;IAEO,mBAAmB;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChD,iGAAiG;IACrG,CAAC;IAEO,qBAAqB;QACzB,oBAAoB;IACxB,CAAC;IAEO,aAAa,CAAC,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAEO,mBAAmB,CAAC,IAA0B;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEO,YAAY,CAAC,IAA0B,EAAE,SAAwB;QAErE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACvB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;SAChD;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,SAAS,KAAK,aAAa,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;;YACrF,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,GAAG,GAAG,SAAS,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAC7F,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,KAAK,KAAK,CAAC,CAAC;gBACZ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,KAAK,aAAa,CAAC,QAAQ,EAAE;YAEtC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;gBAChD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACnB,4DAA4D;gBAC5D,IAAI,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;oBACjC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;wBAChB,aAAa,CAAC,aAAa,CAAC,CAAC;wBAC7B,MAAM,CAAC,KAAK,EAAE,CAAC;qBAClB;gBACL,CAAC,EAAE,IAAI,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAQL,yBAAyB;AACzB,kCAAkC;AAClC,2BAA2B;AAC3B,sBAAsB;AACtB,IAAI;AAEJ,8BAA8B;AAC9B,2BAA2B;AAC3B,sBAAsB;AACtB,IAAI;AAEJ,MAAM,cAAe,SAAQ,eAAe;IAEvB,OAAO,CAAU;IACjB,IAAI,CAAa;IAElC,wFAAwF;IAChF,oBAAoB,GAAmC,IAAI,GAAG,EAAE,CAAC;IAEzE,YAAY,OAAgB,EAAE,IAAgB;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,iBAAiB,CAAC,MAAmB;QACjC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACxC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;QAAA,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,MAAsC;QACnD,IAAI,MAAM,EAAE;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,KAAK,EAAE;gBACP,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;oBACtB,IAAI,CAAC,KAAK,EAAE,CAAC;iBAChB;aACJ;YACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,KAAK;gBACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACnE;IACL,CAAC;IAEO,eAAe,GAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,iBAAiB,GAAa,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,YAAY,GAAa,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5D,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,4FAA4F;QAC5F,qFAAqF;IACzF,CAAC;IAEO,cAAc,CAAC,GAAG;QACtB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACxG,CAAC;IAEO,aAAa;IAErB,CAAC;IAEO,eAAe,CAAC,IAA4B;QAChD,uCAAuC;QACvC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3C;IACL,CAAC;IAEO,UAAU,CAAC,CAA4B;QAC3C,IAAI,CAAC,0CAA0C,EAAE,CAAC;IACtD,CAAC;IAEO,kBAAkB;QACtB,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;gBACxD,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY;oBAAE,SAAS;gBAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;gBACtD,IAAI,CAAC,QAAQ,EAAE;oBACX,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;oBACjF,IAAI,MAAM,EAAE;wBACR,cAAc,GAAG,IAAI,CAAC;wBACtB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACtB;iBACJ;aACJ;YAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SAChD;QACD,IAAI,CAAC,0CAA0C,EAAE,CAAC;QAClD,IAAI,cAAc,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC/D;IACL,CAAC;IAEO,0CAA0C;QAC9C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACpD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACtB;aACJ;SACJ;IACL,CAAC;CAGJ"}
@@ -1,5 +1,6 @@
1
1
  import { Behaviour } from "./Component";
2
2
  import * as THREE from "three";
3
+ import { Object3D } from "three";
3
4
  export declare enum VideoSource {
4
5
  VideoClip = 0,
5
6
  Url = 1
@@ -46,6 +47,7 @@ export declare class VideoPlayer extends Behaviour {
46
47
  private videoMaterial;
47
48
  private _isPlaying;
48
49
  private wasPlaying;
50
+ setVideo(video: MediaStream): void;
49
51
  setClipURL(url: string): void;
50
52
  awake(): void;
51
53
  onEnable(): void;
@@ -57,6 +59,8 @@ export declare class VideoPlayer extends Behaviour {
57
59
  stop(): void;
58
60
  pause(): void;
59
61
  create(playAutomatically: boolean): void;
62
+ private _targetObjects;
63
+ getTargetObjects(): Array<Object3D>;
60
64
  private createVideoElement;
61
65
  private handleBeginPlaying;
62
66
  private updateVideoElementSettings;
@@ -104,6 +104,18 @@ export class VideoPlayer extends Behaviour {
104
104
  videoMaterial = null;
105
105
  _isPlaying = false;
106
106
  wasPlaying = false;
107
+ setVideo(video) {
108
+ this.clip = video;
109
+ this.source = VideoSource.VideoClip;
110
+ if (!this.videoElement)
111
+ this.create(true);
112
+ else {
113
+ // TODO: how to prevent interruption error when another video is already playing
114
+ this.videoElement.srcObject = video;
115
+ if (this._isPlaying)
116
+ this.videoElement.play();
117
+ }
118
+ }
107
119
  setClipURL(url) {
108
120
  if (this.url === url)
109
121
  return;
@@ -112,7 +124,9 @@ export class VideoPlayer extends Behaviour {
112
124
  this.source = VideoSource.Url;
113
125
  if (debug)
114
126
  console.log("set url", url);
115
- if (this.videoElement) {
127
+ if (!this.videoElement)
128
+ this.create(true);
129
+ else {
116
130
  this.videoElement.src = url;
117
131
  if (this._isPlaying)
118
132
  this.videoElement.play();
@@ -158,6 +172,7 @@ export class VideoPlayer extends Behaviour {
158
172
  this._receivedInput = true;
159
173
  this.updateVideoElementSettings();
160
174
  });
175
+ this._targetObjects = [];
161
176
  }
162
177
  play() {
163
178
  if (!this.videoElement)
@@ -214,6 +229,10 @@ export class VideoPlayer extends Behaviour {
214
229
  this.videoTexture.encoding = THREE.sRGBEncoding;
215
230
  this.handleBeginPlaying(playAutomatically);
216
231
  }
232
+ _targetObjects;
233
+ getTargetObjects() {
234
+ return Array.from(this._targetObjects);
235
+ }
217
236
  createVideoElement() {
218
237
  const video = document.createElement("video");
219
238
  if (this._crossOrigin)
@@ -227,6 +246,7 @@ export class VideoPlayer extends Behaviour {
227
246
  return;
228
247
  if (!this.videoElement)
229
248
  return;
249
+ this._targetObjects.length = 0;
230
250
  let target = this.gameObject;
231
251
  switch (this.renderMode) {
232
252
  case VideoRenderMode.MaterialOverride:
@@ -242,6 +262,7 @@ export class VideoPlayer extends Behaviour {
242
262
  }
243
263
  const mat = target["material"];
244
264
  if (mat) {
265
+ this._targetObjects.push(target);
245
266
  if (mat !== this.videoMaterial) {
246
267
  this.videoMaterial = mat.clone();
247
268
  target["material"] = this.videoMaterial;
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../engine-components/VideoPlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../engine-components/VideoPlayer.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ import "./engine/engine_element";
2
2
  import "./engine/engine_setup";
3
3
  export { GameObject, Behaviour } from "./engine-components/Component";
4
4
  export { serializeable } from "./engine/engine_serialization_decorator";
5
+ export { Collision } from "./engine/engine_physics";
5
6
  export * from "./engine-components/codegen/exports";
@@ -4,6 +4,7 @@ import "./engine/engine_setup";
4
4
  // import "./engine-components/DomOverlay";
5
5
  export { GameObject, Behaviour } from "./engine-components/Component";
6
6
  export { serializeable } from "./engine/engine_serialization_decorator";
7
+ export { Collision } from "./engine/engine_physics";
7
8
  export * from "./engine-components/codegen/exports";
8
9
  // make accessible for external javascript
9
10
  import { Context } from "./engine/engine_setup";
@@ -1 +1 @@
1
- {"version":3,"file":"needle-engine.js","sourceRoot":"","sources":["../../needle-engine.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,uBAAuB,CAAC;AAC/B,qCAAqC;AACrC,2CAA2C;AAE3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,cAAc,qCAAqC,CAAC;AAKpD,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpC,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC9B,SAAS,cAAc,CAAC,GAAW;IAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1B;AACL,CAAC;AACD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,qCAAqC,CAAC;AAClE,cAAc,CAAC,SAAS,CAAC,CAAC;AAC1B,cAAc,CAAC,UAAU,CAAC,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;IACzD,QAAQ,MAAM,EAAE;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACP,SAAS;QACb;YACI,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM;KACb;CACJ;AAED,wBAAwB;AACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,IAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IACrB,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;CAC/B;;IACI,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC"}
1
+ {"version":3,"file":"needle-engine.js","sourceRoot":"","sources":["../../needle-engine.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,uBAAuB,CAAC;AAC/B,qCAAqC;AACrC,2CAA2C;AAE3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,cAAc,qCAAqC,CAAC;AAKpD,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpC,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC9B,SAAS,cAAc,CAAC,GAAW;IAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1B;AACL,CAAC;AACD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,qCAAqC,CAAC;AAClE,cAAc,CAAC,SAAS,CAAC,CAAC;AAC1B,cAAc,CAAC,UAAU,CAAC,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;IACzD,QAAQ,MAAM,EAAE;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACP,SAAS;QACb;YACI,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM;KACb;CACJ;AAED,wBAAwB;AACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,IAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IACrB,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;CAC/B;;IACI,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "2.30.0-pre",
3
+ "version": "2.31.0-pre",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development, and can be deployed anywhere. It is flexible, extensible, and collaboration and XR come naturally.",
5
5
  "main": "dist/needle-engine.js",
6
6
  "module": "lib/needle-engine.js",
@@ -7,15 +7,13 @@ import * as utils from "./engine_utils"
7
7
  import * as threeutils from "./engine_three_utils"
8
8
  import { InstancingUtil } from '../engine-components/Renderer';
9
9
  import { GameObject } from '../engine-components/Component';
10
- import { Shape } from 'cannon-es';
10
+ import { Body, RigidVehicle, Shape, Vec3 } from 'cannon-es';
11
+ import { Object3D, Vector3 } from 'three';
12
+ import { Collider } from '../engine-components/Collider';
11
13
 
12
14
  const debugPhysics = utils.getParam("debugphysics");
13
15
  const debugCollisions = utils.getParam("debugcollisions");
14
16
 
15
- export interface ICollisionEventReceiver {
16
- onCollision(data: CollisionData);
17
- }
18
-
19
17
  export class BodyOptions {
20
18
  mass: number = 1;
21
19
  kinematic: boolean = false;
@@ -25,6 +23,8 @@ export class BodyOptions {
25
23
  sleepThreshold: number = .01;
26
24
  }
27
25
 
26
+ const bodyObjectKey = Symbol("object");
27
+
28
28
  // TODO: refactor to return some kind of handle for adding/removing
29
29
  class PhysicsObject {
30
30
  obj: THREE.Object3D;
@@ -40,38 +40,21 @@ class PhysicsObject {
40
40
  this.obj = obj;
41
41
  this.parent = obj.parent;
42
42
  this.body = body;
43
+ if (this.body)
44
+ this.body[bodyObjectKey] = obj;
43
45
  }
44
46
  }
45
47
 
46
- export class CollisionData {
47
- obj: THREE.Object3D | null;
48
- contact: CANNON.ContactEquation;
49
- target: THREE.Object3D | null;
50
- type: string;
51
-
52
- constructor(contact: CANNON.ContactEquation, type: string) {
53
- this.contact = contact;
54
- this.type = type;
55
- this.obj = null;
56
- this.target = null;
57
- }
58
- }
59
- class CannonCollision {
48
+ declare type CannonCollision = {
60
49
  body: CANNON.Body;
61
50
  contact: CANNON.ContactEquation;
62
51
  target: CANNON.Body;
63
52
  type: string;
64
- constructor(body: CANNON.Body, contact: CANNON.ContactEquation, target: CANNON.Body, type: string) {
65
- this.body = body;
66
- this.contact = contact;
67
- this.target = target;
68
- this.type = type;
69
- }
70
53
  }
71
54
 
72
55
  export class RaycastOptions {
73
56
  ray: THREE.Ray | undefined = undefined;
74
- cam : THREE.Camera | undefined | null = undefined;
57
+ cam: THREE.Camera | undefined | null = undefined;
75
58
  screenPoint: THREE.Vector2 | undefined = undefined;
76
59
  raycaster: THREE.Raycaster | undefined = undefined;
77
60
  results: Array<THREE.Intersection> | undefined = undefined;
@@ -246,9 +229,9 @@ export class Physics {
246
229
 
247
230
  // physics simulation
248
231
 
249
- get isUpdating() : boolean { return this._isUpdatingPhysicsWorld; }
232
+ get isUpdating(): boolean { return this._isUpdatingPhysicsWorld; }
250
233
 
251
- private _isUpdatingPhysicsWorld : boolean = false;
234
+ private _isUpdatingPhysicsWorld: boolean = false;
252
235
 
253
236
  private context: Context;
254
237
 
@@ -270,6 +253,9 @@ export class Physics {
270
253
  };
271
254
  cannonDebugger(context.scene, this.world.bodies, opts);
272
255
  }
256
+
257
+ this.world.addEventListener("beginContact", this.onBeginContact.bind(this));
258
+ this.world.addEventListener("endContact", this.onEndContact.bind(this))
273
259
  }
274
260
 
275
261
  public addPreStepListener(listener: (evt) => void) {
@@ -492,13 +478,13 @@ export class Physics {
492
478
  deltaTime = Math.min(deltaTime, 1 / 30);
493
479
  this.world.step(deltaTime);
494
480
  this._isUpdatingPhysicsWorld = false;
495
- if(debugPhysics && this.context.time.frameCount % 60 === 0){
481
+ if (debugPhysics && this.context.time.frameCount % 60 === 0) {
496
482
  console.log("physics world has " + this.world.bodies.length + " bodies", this.world);
497
483
  }
498
484
  }
499
485
 
500
- private temp : THREE.Vector3 = new THREE.Vector3();
501
- private tempQuat : THREE.Quaternion = new THREE.Quaternion();
486
+ private temp: THREE.Vector3 = new THREE.Vector3();
487
+ private tempQuat: THREE.Quaternion = new THREE.Quaternion();
502
488
 
503
489
  public postStep() {
504
490
  this._isUpdatingPhysicsWorld = true;
@@ -614,40 +600,71 @@ export class Physics {
614
600
  obj.body.removeEventListener("collide", obj.collisonCallback);
615
601
  }
616
602
 
617
- private raiseCollisionEvents(obj: THREE.Object3D, event: CannonCollision) {
618
-
619
- const resolved = new CollisionData(event.contact, event.type);
620
-
621
- let addedData = 0;
622
- const objs = this.objects;
623
- function requestData() {
624
- if (addedData > 0) return;
625
- for (let i = 0; i < objs.length; i++) {
626
- if (addedData == 2) return;
627
- const entry = objs[i];
628
- if (entry.body == event.body) {
629
- resolved.obj = entry.obj;
630
- ++addedData;
631
- }
632
- else if (entry.body == event.target) {
633
- resolved.target = entry.obj;
634
- ++addedData;
635
- }
636
- }
637
- }
603
+ private onBeginContact(_) {
604
+ // this is called after the object collide event so we dont really need it
605
+ // console.log("START", args);
606
+ }
638
607
 
608
+ private raiseCollisionEvents(obj: THREE.Object3D, event: CannonCollision) {
609
+ const collision = new Collision(obj, event);
639
610
  if (debugCollisions)
640
611
  console.log("collision between", event.contact.bi, event.contact.bj, obj, event);
641
-
642
612
  for (let i = 0; i < obj.userData?.components?.length; i++) {
643
613
  const component = obj.userData.components[i];
644
- if (component.onCollision) {
645
- requestData();
646
- component.onCollision(resolved);
647
- }
614
+ component.__internalHandleCollision(collision);
615
+ }
616
+ }
617
+
618
+ private onEndContact(args: { bodyA: CANNON.Body, bodyB: CANNON.Body }) {
619
+ // console.log("END", args.bodyA, args.bodyB);
620
+ const obj1 = args.bodyA[bodyObjectKey];
621
+ const obj2 = args.bodyB[bodyObjectKey];
622
+ for (let i = 0; i < obj2.userData?.components?.length; i++) {
623
+ const component = obj2.userData.components[i];
624
+ component.sendExitCollisionEvent(obj1);
648
625
  }
649
626
  }
650
627
 
651
628
  }
652
629
 
653
630
 
631
+ export class Collision {
632
+ private readonly collision: CannonCollision;
633
+
634
+ readonly me: Object3D;
635
+
636
+ private _normal?: Vector3;
637
+ get normal(): Vector3 {
638
+ if (!this._normal) {
639
+ this._normal = new Vector3(this.collision.contact.ni.x, this.collision.contact.ni.y, this.collision.contact.ni.z);
640
+ }
641
+ return this._normal;
642
+ }
643
+
644
+ private _collider?: Collider;
645
+ get collider(): Collider {
646
+ if (this._collider === undefined) {
647
+ this._collider = GameObject.getComponent(this.gameObject, Collider)!;
648
+ }
649
+ return this._collider;
650
+ }
651
+
652
+ get gameObject(): Object3D {
653
+ return this.collision.body[bodyObjectKey];
654
+ }
655
+
656
+ // private _point?: Vector3;
657
+ // get point(): Vector3 {
658
+ // if (!this._point) {
659
+ // const c = this.collision.contact;
660
+ // const point = c.bi.position.clone().vadd(c.ri);
661
+ // this._point = new Vector3(point.x, point.y, point.z);
662
+ // }
663
+ // return this._point;
664
+ // }
665
+
666
+ constructor(obj: Object3D, collision: CannonCollision) {
667
+ this.me = obj;
668
+ this.collision = collision;
669
+ }
670
+ }
@@ -160,7 +160,6 @@ export class Camera extends Behaviour {
160
160
  }
161
161
 
162
162
  applyClearFlagsIfIsActiveCamera() {
163
- // TODO: need to differentiate between what kind of XR (set skybox in VR but not in mobile AR for example!?)
164
163
  if (this._cam && this.context.mainCameraComponent === this) {
165
164
  switch (this._clearFlags) {
166
165
  case ClearFlags.Skybox:
@@ -9,6 +9,7 @@ import * as main from "../engine/engine_mainloop_utils";
9
9
  import { Object3D } from "three";
10
10
  import { InstantiateIdProvider, syncDestroy, syncInstantiate } from "../engine/engine_networking_instantiate";
11
11
  import { SourceIdentifier } from "../engine/engine_gltf";
12
+ import { Collision } from "../engine/engine_physics";
12
13
 
13
14
  export interface UIDProvider {
14
15
  seed: number;
@@ -835,6 +836,10 @@ class Component implements EventTarget {
835
836
  onBeforeRender?(frame: THREE.XRFrame | null): void;
836
837
  onAfterRender?(): void;
837
838
 
839
+ onCollisionEnter?(col: Collision);
840
+ onCollisionExit?(col: Collision);
841
+ onCollisionStay?(col: Collision);
842
+
838
843
  startCoroutine(routine: Generator, evt: FrameEvent = FrameEvent.Update): Generator {
839
844
  return this.context.registerCoroutineUpdate(this, routine, evt);
840
845
  }
@@ -865,6 +870,7 @@ class Component implements EventTarget {
865
870
  this.__didEnable = false;
866
871
  this.__isEnabled = undefined;
867
872
  this.__destroyed = false;
873
+ this.__internalResetsCachedPhysicsData();
868
874
  }
869
875
 
870
876
  __internalAwake() {
@@ -892,6 +898,7 @@ class Component implements EventTarget {
892
898
  __internalDisable() {
893
899
  if (!this.__didEnable) return;
894
900
  this.__didEnable = false;
901
+ this._collisionExitRoutine = undefined;
895
902
  this.onDisable();
896
903
  }
897
904
 
@@ -899,6 +906,57 @@ class Component implements EventTarget {
899
906
  this.__internalNewInstanceCreated();
900
907
  }
901
908
 
909
+ private _collisionExitRoutine: any;
910
+ private _collisions: Map<Object3D, { col: Collision, frame: number }> | null = null;
911
+
912
+ private __internalResetsCachedPhysicsData() {
913
+ this._collisionExitRoutine = null;
914
+ this._collisions = null;
915
+ }
916
+
917
+ __internalHandleCollision(col: Collision) {
918
+ if (this.onCollisionEnter || this.onCollisionExit || this.onCollisionStay) {
919
+ const otherObject = col.gameObject;
920
+ if (!this._collisions) this._collisions = new Map();
921
+ if (this._collisions.has(otherObject)) {
922
+ const cur = this._collisions.get(otherObject)!;
923
+ cur.frame = this.context.time.frameCount;
924
+ cur.col = col;
925
+ this.onCollisionStay?.call(this, col);
926
+ }
927
+ else {
928
+ const entry = { col, frame: this.context.time.frameCount };
929
+ this._collisions.set(otherObject, entry);
930
+ this.onCollisionEnter?.call(this, col);
931
+ }
932
+ }
933
+ }
934
+
935
+ sendExitCollisionEvent(obj : Object3D) {
936
+ if(!this._collisions) return;
937
+ const col = this._collisions.get(obj);
938
+ if(!col) return;
939
+ this.onCollisionExit?.call(this, col.col);
940
+ this._collisions.delete(obj);
941
+ }
942
+
943
+ private __waitForCollisionExit() {
944
+ if (this._collisionExitRoutine) return;
945
+ // const self = this;
946
+ // function* routine() {
947
+ // while (self._collisions && self._collisions.size > 0) {
948
+ // for (let ob of self._collisions.keys()) {
949
+ // const entry = self._collisions!.get(ob)!;
950
+ // if (self.context.time.frameCount - entry.frame > 1) {
951
+ // self._collisions!.delete(ob);
952
+ // self.onCollisionExit?.call(self, entry.col);
953
+ // }
954
+ // }
955
+ // yield;
956
+ // }
957
+ // }
958
+ // this._collisionExitRoutine = this.startCoroutine(routine(), FrameEvent.EarlyUpdate);
959
+ }
902
960
 
903
961
 
904
962
  // TODO move this to threeutils
@@ -29,7 +29,7 @@ export class Rigidbody extends Behaviour {
29
29
  @serializeable()
30
30
  angularDrag: number = 1;
31
31
  @serializeable()
32
- detectCollision: boolean = true;
32
+ detectCollisions: boolean = true;
33
33
  @serializeable()
34
34
  sleepThreshold: number = 0.01;
35
35
 
@@ -106,7 +106,7 @@ export class Rigidbody extends Behaviour {
106
106
  options.angularDrag = this.angularDrag;
107
107
  options.mass = this.mass;
108
108
  options.kinematic = this.isKinematic;
109
- options.physicsEvents = this.detectCollision;
109
+ options.physicsEvents = this.detectCollisions;
110
110
  options.sleepThreshold = this.sleepThreshold;
111
111
  this._body = this.context.physics.createBody(this.gameObject, options);
112
112
  }