@needle-tools/engine 3.5.9-beta.2 → 3.5.11-beta
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/CHANGELOG.md +17 -0
- package/dist/needle-engine.js +6859 -6813
- package/dist/needle-engine.light.js +8139 -7916
- package/dist/needle-engine.light.min.js +282 -281
- package/dist/needle-engine.light.umd.cjs +265 -264
- package/dist/needle-engine.min.js +288 -287
- package/dist/needle-engine.umd.cjs +262 -261
- package/lib/engine/api.d.ts +1 -1
- package/lib/engine/api.js +1 -1
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/debug/debug_overlay.js +4 -1
- package/lib/engine/debug/debug_overlay.js.map +1 -1
- package/lib/engine/engine_context.js +9 -4
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_element.d.ts +1 -0
- package/lib/engine/engine_element.js +9 -2
- package/lib/engine/engine_element.js.map +1 -1
- package/lib/engine/engine_element_loading.js +9 -10
- package/lib/engine/engine_element_loading.js.map +1 -1
- package/lib/engine/engine_hot_reload.d.ts +3 -3
- package/lib/engine/engine_hot_reload.js +6 -4
- package/lib/engine/engine_hot_reload.js.map +1 -1
- package/lib/engine/engine_license.js +6 -4
- package/lib/engine/engine_license.js.map +1 -1
- package/lib/engine/engine_physics_rapier.js +33 -30
- package/lib/engine/engine_physics_rapier.js.map +1 -1
- package/lib/engine/engine_typestore.d.ts +8 -0
- package/lib/engine/engine_typestore.js +11 -0
- package/lib/engine/engine_typestore.js.map +1 -1
- package/lib/engine-components/CameraUtils.js +5 -2
- package/lib/engine-components/CameraUtils.js.map +1 -1
- package/lib/engine-components/Component.d.ts +12 -12
- package/lib/engine-components/Component.js +4 -1
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/OrbitControls.js +1 -1
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/SpriteRenderer.d.ts +3 -0
- package/lib/engine-components/SpriteRenderer.js +18 -0
- package/lib/engine-components/SpriteRenderer.js.map +1 -1
- package/lib/engine-components/TransformGizmo.js +1 -1
- package/lib/engine-components/TransformGizmo.js.map +1 -1
- package/package.json +1 -1
- package/plugins/vite/config.js +8 -1
- package/plugins/vite/defines.js +1 -1
- package/plugins/vite/license.js +4 -1
- package/plugins/vite/reload.js +4 -4
- package/src/engine/api.ts +1 -1
- package/src/engine/debug/debug_overlay.ts +5 -2
- package/src/engine/engine_context.ts +11 -5
- package/src/engine/engine_element.ts +8 -3
- package/src/engine/engine_element_loading.ts +9 -10
- package/src/engine/engine_hot_reload.ts +5 -5
- package/src/engine/engine_license.ts +6 -4
- package/src/engine/engine_physics_rapier.ts +33 -31
- package/src/engine/engine_typestore.ts +14 -1
- package/src/engine-components/CameraUtils.ts +7 -3
- package/src/engine-components/Component.ts +16 -13
- package/src/engine-components/OrbitControls.ts +1 -1
- package/src/engine-components/SpriteRenderer.ts +13 -0
- package/src/engine-components/TransformGizmo.ts +1 -1
|
@@ -159,6 +159,10 @@ export class SpriteRenderer extends Behaviour {
|
|
|
159
159
|
}
|
|
160
160
|
_spriteSheet;
|
|
161
161
|
_currentSprite;
|
|
162
|
+
// additional data
|
|
163
|
+
transparent = true;
|
|
164
|
+
cutoutThreshold = 0;
|
|
165
|
+
castShadows = false;
|
|
162
166
|
awake() {
|
|
163
167
|
this._currentSprite = undefined;
|
|
164
168
|
if (debug) {
|
|
@@ -217,6 +221,11 @@ export class SpriteRenderer extends Behaviour {
|
|
|
217
221
|
if (this._currentSprite) {
|
|
218
222
|
this._currentSprite.layers.set(this.layer);
|
|
219
223
|
}
|
|
224
|
+
if (this.sharedMaterial) {
|
|
225
|
+
this.sharedMaterial.alphaTest = this.cutoutThreshold;
|
|
226
|
+
this.sharedMaterial.transparent = this.transparent;
|
|
227
|
+
}
|
|
228
|
+
this._currentSprite.castShadow = this.castShadows;
|
|
220
229
|
this._spriteSheet?.update();
|
|
221
230
|
}
|
|
222
231
|
}
|
|
@@ -232,4 +241,13 @@ __decorate([
|
|
|
232
241
|
__decorate([
|
|
233
242
|
serializable(SpriteData)
|
|
234
243
|
], SpriteRenderer.prototype, "sprite", null);
|
|
244
|
+
__decorate([
|
|
245
|
+
serializable()
|
|
246
|
+
], SpriteRenderer.prototype, "transparent", void 0);
|
|
247
|
+
__decorate([
|
|
248
|
+
serializable()
|
|
249
|
+
], SpriteRenderer.prototype, "cutoutThreshold", void 0);
|
|
250
|
+
__decorate([
|
|
251
|
+
serializable()
|
|
252
|
+
], SpriteRenderer.prototype, "castShadows", void 0);
|
|
235
253
|
//# sourceMappingURL=SpriteRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpriteRenderer.js","sourceRoot":"","sources":["../../src/engine-components/SpriteRenderer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SpriteRenderer.js","sourceRoot":"","sources":["../../src/engine-components/SpriteRenderer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAS,QAAQ,EAAE,aAAa,EAAE,OAAO,EAA0B,MAAM,OAAO,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAC9C,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE5C,MAAM,WAAW;IAEb,MAAM,CAAC,KAAK,GAA4C,EAAE,CAAC;IAE3D,MAAM,CAAC,mBAAmB,CAAC,MAAc;QACrC,IAAI,MAAM,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC,SAAS,CAAC;QAC9C,IAAI,MAAM,CAAC,IAAI,EAAE;YACb,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAChC,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvE,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACzC;SACJ;QACD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACjD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAElC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5C,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE/C,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAClB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SAC7B;QACD,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,IAAI;YACX,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAClC,IAAI,KAAK;YACL,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC;IACf,CAAC;;AAGL,aAAa;AACb,4CAA4C;AAC5C,cAAc;AACd,MAAM,CAAN,IAAY,cAaX;AAbD,WAAY,cAAc;IACtB,aAAa;IACb,4CAA4C;IAC5C,cAAc;IACd,uDAAU,CAAA;IACV,aAAa;IACb,yJAAyJ;IACzJ,cAAc;IACd,uDAAU,CAAA;IACV,aAAa;IACb,wJAAwJ;IACxJ,cAAc;IACd,qDAAS,CAAA;AACb,CAAC,EAbW,cAAc,KAAd,cAAc,QAazB;AAED,MAAM,IAAI;IACN,CAAC,CAAU;IACX,CAAC,CAAU;CACd;AAED,MAAM,OAAO,MAAM;IAGf,IAAI,CAAU;IAEd,OAAO,CAAiB;IAExB,SAAS,CAAiB;IAE1B,EAAE,CAAe;IAEjB,QAAQ,CAAe;IAEvB,SAAS,CAAwB;CACpC;AAXG;IADC,YAAY,EAAE;oCACD;AAEd;IADC,YAAY,CAAC,OAAO,CAAC;uCACE;AAExB;IADC,aAAa,EAAE;yCACU;AAE1B;IADC,aAAa,EAAE;kCACC;AAEjB;IADC,aAAa,EAAE;wCACO;AAK3B,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAE9C,MAAM,OAAO,WAAW;IAGpB,OAAO,CAAY;CACtB;AADG;IADC,YAAY,CAAC,MAAM,CAAC;4CACF;AAGvB,MAAM,OAAO,UAAU;IAGnB,WAAW,CAAe;IAG1B,KAAK,GAAW,CAAC,CAAC;IAElB,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;YACrD,OAAO;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,GAAG,GAAG,KAAK,EAAE,OAAO,CAAC;QACzB,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;QAClC,IAAI,GAAG,CAAC,SAAS,IAAI,aAAa,IAAI,GAAG,CAAC,SAAS,IAAI,aAAa;YAChE,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;QACvB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IAC3B,CAAC;CACJ;AAlBG;IADC,YAAY,CAAC,WAAW,CAAC;+CACA;AAG1B;IADC,YAAY,EAAE;yCACG;AAiBtB,MAAM,OAAO,cAAe,SAAQ,SAAS;IAGzC,QAAQ,GAAmB,cAAc,CAAC,MAAM,CAAC;IAEjD,IAAI,GAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAG5B,KAAK,CAAa;IAGlB,cAAc,CAAkB;IAGhC,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM,CAAC,KAAsC;QAC7C,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY;YAAE,OAAO;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,KAAK;gBACf,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAC7B,OAAO;SACV;aACI;YACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;IACL,CAAC;IAED,IAAI,WAAW,CAAC,KAAa;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAC/D,CAAC;IAEO,YAAY,CAAc;IAC1B,cAAc,CAAc;IAEpC,kBAAkB;IAElB,WAAW,GAAY,IAAI,CAAC;IAE5B,eAAe,GAAW,CAAC,CAAC;IAE5B,WAAW,GAAY,KAAK,CAAC;IAE7B,KAAK;QACD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAG,KAAK,EAAE;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACtD;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,cAAc;YACpB,IAAI,CAAC,YAAY,EAAE,CAAC;aACnB,IAAI,IAAI,CAAC,UAAU;YACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAEO,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO;YAAE,OAAO;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,IAAI,aAAa;gBACb,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACpD,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;aACrC;YACD,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;YAEvB,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAClC,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;gBACzB,kDAAkD;gBAClD,mCAAmC;gBACnC,6CAA6C;gBAC7C,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;oBAC9F,GAAG,GAAG,MAAO,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;iBACvC;gBACD,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;gBAC5B,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;aACpB;YACD,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;SACtF;aACI;YACD,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;SACxD;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;YAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,cAAc,CAAC,KAAK;gBACtC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAChD;QAED,IAAG,IAAI,CAAC,cAAc,EAAC;YACnB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAC7C;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;SACtD;QACD,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QAClD,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,CAAC;CACJ;AAtHG;IADC,YAAY,EAAE;gDACkC;AAKjD;IADC,YAAY,CAAC,SAAS,CAAC;6CACN;AAGlB;IADC,YAAY,CAAC,QAAQ,CAAC;sDACS;AAGhC;IADC,YAAY,CAAC,UAAU,CAAC;4CAGxB;AAgCD;IADC,YAAY,EAAE;mDACa;AAE5B;IADC,YAAY,EAAE;uDACa;AAE5B;IADC,YAAY,EAAE;mDACc"}
|
|
@@ -10,7 +10,7 @@ import { serializable } from "../engine/engine_serialization_decorator";
|
|
|
10
10
|
import * as params from "../engine/engine_default_parameters";
|
|
11
11
|
import { MathUtils } from "three";
|
|
12
12
|
import { TransformControls } from "three/examples/jsm/controls/TransformControls";
|
|
13
|
-
import { OrbitControls } from "
|
|
13
|
+
import { OrbitControls } from "./OrbitControls";
|
|
14
14
|
export class TransformGizmo extends Behaviour {
|
|
15
15
|
isGizmo = false;
|
|
16
16
|
translationSnap = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransformGizmo.js","sourceRoot":"","sources":["../../src/engine-components/TransformGizmo.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAQ,SAAS,EAAiB,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"TransformGizmo.js","sourceRoot":"","sources":["../../src/engine-components/TransformGizmo.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.11-beta",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
|
|
5
5
|
"main": "dist/needle-engine.umd.cjs",
|
|
6
6
|
"type": "module",
|
package/plugins/vite/config.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'fs';
|
|
2
2
|
|
|
3
|
+
let didLogCanNotFindConfig = false;
|
|
4
|
+
|
|
3
5
|
/** the codegen meta file */
|
|
4
6
|
export async function loadConfig(path) {
|
|
5
7
|
try {
|
|
@@ -21,7 +23,12 @@ export async function loadConfig(path) {
|
|
|
21
23
|
const meta = JSON.parse(text);
|
|
22
24
|
return meta;
|
|
23
25
|
}
|
|
24
|
-
else
|
|
26
|
+
else {
|
|
27
|
+
if(!didLogCanNotFindConfig){
|
|
28
|
+
didLogCanNotFindConfig = true;
|
|
29
|
+
console.error("Could not find config file at " + path);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
25
32
|
return null;
|
|
26
33
|
}
|
|
27
34
|
catch (err) {
|
package/plugins/vite/defines.js
CHANGED
|
@@ -27,7 +27,7 @@ export const needleDefines = (command, needleEngineConfig, userSettings) => {
|
|
|
27
27
|
if (!viteConfig.define) viteConfig.define = {};
|
|
28
28
|
viteConfig.define.NEEDLE_ENGINE_META = {
|
|
29
29
|
version: tryGetNeedleEngineVersion(),
|
|
30
|
-
generator: needleEngineConfig
|
|
30
|
+
generator: needleEngineConfig?.generator,
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
if (useRapier && userSettings?.useRapier !== true) {
|
package/plugins/vite/license.js
CHANGED
|
@@ -32,7 +32,10 @@ export const needleLicense = (command, config, userSettings) => {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
|
-
|
|
35
|
+
if (!didLog) {
|
|
36
|
+
didLog = true;
|
|
37
|
+
console.log("No config found - can not apply license");
|
|
38
|
+
}
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
}
|
package/plugins/vite/reload.js
CHANGED
|
@@ -274,7 +274,7 @@ function insertScriptRegisterHotReloadCode(src, filePath) {
|
|
|
274
274
|
// this code injects a register call into the component method
|
|
275
275
|
const code = `
|
|
276
276
|
|
|
277
|
-
import { register, unregister } from "./engine/engine_hot_reload";
|
|
277
|
+
import { registerHotReloadType as register, unregisterHotReloadType as unregister } from "./engine/engine_hot_reload";
|
|
278
278
|
import { Component as ComponentType } from "./engine-components/Component";
|
|
279
279
|
|
|
280
280
|
const prototype = ComponentType.prototype;
|
|
@@ -334,14 +334,14 @@ function insertScriptHotReloadCode(src, filePath) {
|
|
|
334
334
|
|
|
335
335
|
// ${HOT_RELOAD_START_MARKER}
|
|
336
336
|
// Inserted by needle reload plugin (vite)
|
|
337
|
-
import {
|
|
337
|
+
import { applyHMRChanges } from "${importPath}";
|
|
338
338
|
//@ts-ignore
|
|
339
339
|
if (import.meta.hot) {
|
|
340
340
|
//@ts-ignore
|
|
341
|
-
import.meta.hot.accept((newModule) => {
|
|
341
|
+
import.meta.hot.accept((newModule, oldModule) => {
|
|
342
342
|
if (newModule) {
|
|
343
343
|
|
|
344
|
-
const success =
|
|
344
|
+
const success = applyHMRChanges(newModule, oldModule);
|
|
345
345
|
if(success === false){
|
|
346
346
|
//@ts-ignore
|
|
347
347
|
import.meta.hot.invalidate()
|
package/src/engine/api.ts
CHANGED
|
@@ -44,7 +44,7 @@ export * from "./engine_utils_screenshot";
|
|
|
44
44
|
export * from "./engine_web_api";
|
|
45
45
|
export * from "./engine_utils";
|
|
46
46
|
|
|
47
|
-
export { TypeStore } from "./engine_typestore";
|
|
47
|
+
export { TypeStore, registerType } from "./engine_typestore";
|
|
48
48
|
|
|
49
49
|
export { InstancingUtil } from "./engine_instancing";
|
|
50
50
|
export { validate, prefix } from "./engine_util_decorator"
|
|
@@ -104,7 +104,9 @@ export function addLog(type: LogType, message: string | any[], _file?: string |
|
|
|
104
104
|
|
|
105
105
|
const currentMessages = new Set<string>();
|
|
106
106
|
|
|
107
|
-
function showMessage(type: LogType, element: HTMLElement, msg: string) {
|
|
107
|
+
function showMessage(type: LogType, element: HTMLElement, msg: string | null | undefined) {
|
|
108
|
+
if (msg === null || msg === undefined) return;
|
|
109
|
+
|
|
108
110
|
const container = getLogsContainer(element);
|
|
109
111
|
if (container.childElementCount >= 20) {
|
|
110
112
|
const last = container.lastElementChild;
|
|
@@ -117,8 +119,9 @@ function showMessage(type: LogType, element: HTMLElement, msg: string) {
|
|
|
117
119
|
const msgcontainer = getMessageContainer(type, msg);
|
|
118
120
|
container.prepend(msgcontainer);
|
|
119
121
|
|
|
122
|
+
const _msg = msg;
|
|
120
123
|
setTimeout(() => {
|
|
121
|
-
currentMessages.delete(
|
|
124
|
+
currentMessages.delete(_msg);
|
|
122
125
|
returnMessageContainer(msgcontainer);
|
|
123
126
|
}, 10000);
|
|
124
127
|
}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
BufferGeometry, Camera, Clock, Color, DepthTexture, Group,
|
|
3
3
|
Material, NearestFilter, NoToneMapping, Object3D, PCFSoftShadowMap,
|
|
4
4
|
PerspectiveCamera, RGBAFormat, Scene, sRGBEncoding,
|
|
5
|
-
Texture, WebGLRenderer, WebGLRenderTarget
|
|
5
|
+
Texture, WebGLRenderer, WebGLRendererParameters, WebGLRenderTarget
|
|
6
6
|
} from 'three'
|
|
7
7
|
import { Input } from './engine_input';
|
|
8
8
|
import { Physics } from './engine_physics';
|
|
@@ -259,9 +259,15 @@ export class Context implements IContext {
|
|
|
259
259
|
this.isManagedExternally = true;
|
|
260
260
|
}
|
|
261
261
|
else {
|
|
262
|
-
|
|
263
|
-
antialias: true
|
|
264
|
-
}
|
|
262
|
+
const params: WebGLRendererParameters = {
|
|
263
|
+
antialias: true,
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
// get canvas already configured in the Needle Engine Web Component
|
|
267
|
+
const canvas = args?.domElement?.shadowRoot?.querySelector("canvas");
|
|
268
|
+
if (canvas) params.canvas = canvas;
|
|
269
|
+
|
|
270
|
+
this.renderer = new WebGLRenderer(params);
|
|
265
271
|
|
|
266
272
|
// some tonemapping other than "NONE" is required for adjusting exposure with EXR environments
|
|
267
273
|
this.renderer.toneMappingExposure = 1; // range [0...inf] instead of the usual -15..15
|
|
@@ -551,7 +557,7 @@ export class Context implements IContext {
|
|
|
551
557
|
|
|
552
558
|
// console.log(prepare_succeeded);
|
|
553
559
|
|
|
554
|
-
if (!this.isManagedExternally)
|
|
560
|
+
if (!this.isManagedExternally && !this.domElement.shadowRoot)
|
|
555
561
|
this.domElement.prepend(this.renderer.domElement);
|
|
556
562
|
|
|
557
563
|
Context.Current = this;
|
|
@@ -276,18 +276,22 @@ export class NeedleEngineHTMLElement extends HTMLElement implements INeedleEngin
|
|
|
276
276
|
if (currentHash !== null && currentHash !== undefined)
|
|
277
277
|
this._context.hash = currentHash;
|
|
278
278
|
this._context.alias = alias;
|
|
279
|
-
|
|
279
|
+
const contextWasCreated = this._context.isCreated;
|
|
280
|
+
if (!contextWasCreated) {
|
|
280
281
|
await this._context.onCreate(loadFunction);
|
|
282
|
+
}
|
|
281
283
|
else {
|
|
282
284
|
await loadFunction(this._context);
|
|
283
285
|
}
|
|
284
286
|
|
|
285
287
|
|
|
286
288
|
|
|
287
|
-
|
|
289
|
+
console.log("Needle Engine: finished loading", alias ?? "")
|
|
288
290
|
this._loadingProgress01 = 1;
|
|
289
|
-
if (useDefaultLoading)
|
|
291
|
+
if (useDefaultLoading) {
|
|
290
292
|
this._loadingView?.onLoadingUpdate(1, "creating scene");
|
|
293
|
+
if (contextWasCreated) this.onReady();
|
|
294
|
+
}
|
|
291
295
|
this.classList.remove("loading");
|
|
292
296
|
this.classList.add("loading-finished");
|
|
293
297
|
if (debug)
|
|
@@ -301,6 +305,7 @@ export class NeedleEngineHTMLElement extends HTMLElement implements INeedleEngin
|
|
|
301
305
|
|
|
302
306
|
}
|
|
303
307
|
|
|
308
|
+
/** called by the context when the first frame has been rendered */
|
|
304
309
|
private onReady = () => this._loadingView?.onLoadingFinished();
|
|
305
310
|
|
|
306
311
|
|
|
@@ -73,14 +73,15 @@ export class EngineLoadingView implements ILoadingViewHandler {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
onLoadingBegin(message?: string) {
|
|
76
|
+
const _element = this._element.shadowRoot || this._element;
|
|
76
77
|
if (debug) console.warn("Begin Loading")
|
|
77
78
|
if (!this._loadingElement) {
|
|
78
|
-
for (let i = 0; i <
|
|
79
|
-
const el =
|
|
79
|
+
for (let i = 0; i < _element.children.length; i++) {
|
|
80
|
+
const el = _element.children[i] as HTMLElement;
|
|
80
81
|
if (el.classList.contains(EngineLoadingView.LoadingContainerClassName)) {
|
|
81
82
|
if (!this._allowCustomLoadingElement) {
|
|
82
83
|
if (debug) console.warn("Remove custom loading container")
|
|
83
|
-
|
|
84
|
+
_element.removeChild(el);
|
|
84
85
|
continue;
|
|
85
86
|
}
|
|
86
87
|
this._loadingElement = this.createLoadingElement(el);
|
|
@@ -92,7 +93,7 @@ export class EngineLoadingView implements ILoadingViewHandler {
|
|
|
92
93
|
this._progress = 0;
|
|
93
94
|
this.loadingProgress = 0;
|
|
94
95
|
this._loadingElement.style.display = "flex";
|
|
95
|
-
|
|
96
|
+
_element.appendChild(this._loadingElement);
|
|
96
97
|
this.smoothProgressLoop();
|
|
97
98
|
this.setMessage(message ?? "");
|
|
98
99
|
}
|
|
@@ -141,7 +142,7 @@ export class EngineLoadingView implements ILoadingViewHandler {
|
|
|
141
142
|
if (typeof debugRendering === "number") dt *= debugRendering;
|
|
142
143
|
}
|
|
143
144
|
this._progressLoop = setInterval(() => {
|
|
144
|
-
//
|
|
145
|
+
// increase loading speed when almost done
|
|
145
146
|
if (this.loadingProgress >= .95 && !debugRendering) dt = .9;
|
|
146
147
|
this._progress = Mathf.lerp(this._progress, this.loadingProgress, dt * this.loadingProgress);
|
|
147
148
|
this.updateDisplay();
|
|
@@ -229,15 +230,12 @@ export class EngineLoadingView implements ILoadingViewHandler {
|
|
|
229
230
|
else
|
|
230
231
|
loadingBarContainer.style.backgroundColor = "rgba(255,255,255,.2)"
|
|
231
232
|
// loadingBarContainer.style.alignItems = "center";
|
|
232
|
-
this._loadingElement.appendChild(loadingBarContainer);
|
|
233
233
|
|
|
234
234
|
const logo = document.createElement("img");
|
|
235
235
|
const logoSize = 64;
|
|
236
236
|
logo.style.width = `${logoSize}px`;
|
|
237
237
|
logo.style.height = `${logoSize}px`;
|
|
238
|
-
logo.style.
|
|
239
|
-
logo.style.left = "50%";
|
|
240
|
-
logo.style.transform = `translate(-${logoSize * .5}px, -${logoSize + 32}px)`;
|
|
238
|
+
logo.style.marginBottom = "20px";
|
|
241
239
|
logo.addEventListener("click", () => window.open("https://needle.tools", "_blank"));
|
|
242
240
|
logo.style.cursor = "pointer";
|
|
243
241
|
logo.style.userSelect = "none";
|
|
@@ -250,7 +248,8 @@ export class EngineLoadingView implements ILoadingViewHandler {
|
|
|
250
248
|
logo.src = customLogo;
|
|
251
249
|
}
|
|
252
250
|
}
|
|
253
|
-
|
|
251
|
+
this._loadingElement.appendChild(logo);
|
|
252
|
+
this._loadingElement.appendChild(loadingBarContainer);
|
|
254
253
|
|
|
255
254
|
|
|
256
255
|
this._loadingBar = document.createElement("div");
|
|
@@ -33,7 +33,7 @@ export function isHotReloading() {
|
|
|
33
33
|
return isApplyingChanges;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
export function
|
|
36
|
+
export function registerHotReloadType(instance: object) {
|
|
37
37
|
if (isApplyingChanges) return;
|
|
38
38
|
const type = instance.constructor;
|
|
39
39
|
const name = type.name;
|
|
@@ -45,7 +45,7 @@ export function register(instance: object) {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
export function
|
|
48
|
+
export function unregisterHotReloadType(instance: object) {
|
|
49
49
|
if (isApplyingChanges) return;
|
|
50
50
|
const type = instance.constructor;
|
|
51
51
|
const name = type.name;
|
|
@@ -81,10 +81,10 @@ function reloadPageOnHotReloadError() {
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
|
|
84
|
-
export function
|
|
84
|
+
export function applyHMRChanges(newModule): boolean {
|
|
85
85
|
|
|
86
86
|
if (debug)
|
|
87
|
-
console.log("
|
|
87
|
+
console.log("[HMR] Apply changes", newModule, Object.keys(newModule));
|
|
88
88
|
|
|
89
89
|
reloadPageOnHotReloadError();
|
|
90
90
|
|
|
@@ -96,6 +96,7 @@ export function applyChanges(newModule): boolean {
|
|
|
96
96
|
|
|
97
97
|
const typeToUpdate = TypeStore.get(key);
|
|
98
98
|
if (!typeToUpdate) {
|
|
99
|
+
if(debug) console.log("[HMR] Type not found: " + key)
|
|
99
100
|
continue;
|
|
100
101
|
}
|
|
101
102
|
const newType = newModule[key];
|
|
@@ -194,4 +195,3 @@ export function applyChanges(newModule): boolean {
|
|
|
194
195
|
return true;
|
|
195
196
|
}
|
|
196
197
|
|
|
197
|
-
|
|
@@ -64,9 +64,10 @@ function insertNonCommercialUseHint(ctx: IContext) {
|
|
|
64
64
|
|
|
65
65
|
const interval = setInterval(() => {
|
|
66
66
|
if (!licenseElement) return;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
const parent = ctx.domElement.shadowRoot || ctx.domElement;
|
|
68
|
+
if (licenseElement.parentNode !== parent) {
|
|
69
|
+
parent.appendChild(licenseElement);
|
|
70
|
+
if (style) parent.appendChild(style);
|
|
70
71
|
}
|
|
71
72
|
}, 100);
|
|
72
73
|
|
|
@@ -121,7 +122,7 @@ async function logNonCommercialUse(_logo?: string) {
|
|
|
121
122
|
function createLicenseElement() {
|
|
122
123
|
const licenseElement = document.createElement("div");
|
|
123
124
|
licenseElement.setAttribute(licenseElementIdentifier, "");
|
|
124
|
-
licenseElement.style.position = "
|
|
125
|
+
licenseElement.style.position = "absolute";
|
|
125
126
|
licenseElement.style.bottom = "12px";
|
|
126
127
|
licenseElement.style.right = "15px";
|
|
127
128
|
|
|
@@ -141,6 +142,7 @@ function createLicenseStyle() {
|
|
|
141
142
|
font-weight: 300;
|
|
142
143
|
transition: all 0.1s ease-in-out !important;
|
|
143
144
|
pointer-events: all;
|
|
145
|
+
overflow: hidden;
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
${selector}:hover {
|
|
@@ -21,6 +21,7 @@ import { Gizmos } from './engine_gizmos';
|
|
|
21
21
|
import { Mathf } from './engine_math';
|
|
22
22
|
import { SphereOverlapResult } from './engine_types';
|
|
23
23
|
import { ContextEvent, ContextRegistry } from './engine_context_registry';
|
|
24
|
+
import { isDevEnvironment } from './debug/debug';
|
|
24
25
|
|
|
25
26
|
const debugPhysics = getParam("debugphysics");
|
|
26
27
|
const debugColliderPlacement = getParam("debugphysicscolliders");
|
|
@@ -61,48 +62,49 @@ declare type PhysicsBody = {
|
|
|
61
62
|
export class RapierPhysics implements IPhysicsEngine {
|
|
62
63
|
|
|
63
64
|
removeBody(obj: IComponent) {
|
|
65
|
+
if (!obj) return;
|
|
64
66
|
this.validate();
|
|
65
67
|
const body = obj[$bodyKey];
|
|
66
68
|
obj[$bodyKey] = null;
|
|
67
69
|
if (body && this.world) {
|
|
68
70
|
const index = this.objects.findIndex(o => o === obj);
|
|
69
71
|
if (index >= 0) {
|
|
70
|
-
const
|
|
72
|
+
const rapierBody = this.bodies[index];
|
|
73
|
+
// Remove references
|
|
71
74
|
this.bodies.splice(index, 1);
|
|
72
75
|
this.objects.splice(index, 1);
|
|
73
76
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
// Remove the collider from the physics world
|
|
78
|
+
if (rapierBody instanceof Collider) {
|
|
79
|
+
const rapierCollider = rapierBody as Collider;
|
|
80
|
+
this.world?.removeCollider(rapierCollider, true);
|
|
77
81
|
|
|
78
|
-
// remove the rigidbody if it doesnt have colliders anymore
|
|
79
|
-
const
|
|
80
|
-
if (
|
|
81
|
-
|
|
82
|
+
// also remove the rigidbody if it doesnt have colliders anymore
|
|
83
|
+
const rapierRigidbody: RigidBody | null = rapierCollider.parent();
|
|
84
|
+
if (rapierRigidbody && rapierRigidbody.numColliders() <= 0) {
|
|
85
|
+
const rigidbody = rapierRigidbody[$componentKey] as IRigidbody;
|
|
86
|
+
this.removeBody(rigidbody);
|
|
82
87
|
}
|
|
83
88
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
89
|
+
// Remove the rigidbody from the physics world
|
|
90
|
+
else if (rapierBody instanceof RigidBody) {
|
|
91
|
+
if (rapierBody.numColliders() <= 0) {
|
|
92
|
+
this.world?.removeRigidBody(rapierBody);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
if (isDevEnvironment()) {
|
|
96
|
+
if (!rapierBody["did_log_removing"]) {
|
|
97
|
+
setTimeout(() => {
|
|
98
|
+
if (rapierBody.numColliders() > 0) {
|
|
99
|
+
rapierBody["did_log_removing"] = true;
|
|
100
|
+
console.warn("RapierPhysics: removing rigidbody with colliders from the physics world is not possible right now, please remove the colliders first");
|
|
101
|
+
}
|
|
102
|
+
}, 1);
|
|
97
103
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
// if (rb && rb.numColliders() <= 0) {
|
|
103
|
-
// // this.world?.removeRigidBody(rb);
|
|
104
|
-
// }
|
|
105
|
-
// }
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
106
108
|
}
|
|
107
109
|
}
|
|
108
110
|
}
|
|
@@ -128,7 +130,7 @@ export class RapierPhysics implements IPhysicsEngine {
|
|
|
128
130
|
|
|
129
131
|
updateProperties(rigidbody: IRigidbody) {
|
|
130
132
|
this.validate();
|
|
131
|
-
const physicsBody = rigidbody
|
|
133
|
+
const physicsBody = this.internal_getRigidbody(rigidbody);
|
|
132
134
|
if (physicsBody) {
|
|
133
135
|
this.internalUpdateProperties(rigidbody, physicsBody);
|
|
134
136
|
}
|
|
@@ -206,7 +208,7 @@ export class RapierPhysics implements IPhysicsEngine {
|
|
|
206
208
|
|
|
207
209
|
private async internalInitialization() {
|
|
208
210
|
// NEEDLE_PHYSICS_INIT_START
|
|
209
|
-
// use .env file with VITE_NEEDLE_USE_RAPIER=false to
|
|
211
|
+
// use .env file with VITE_NEEDLE_USE_RAPIER=false to treeshake rapier
|
|
210
212
|
// @ts-ignore
|
|
211
213
|
if ("env" in import.meta && import.meta.env.VITE_NEEDLE_USE_RAPIER === "false") {
|
|
212
214
|
return false;
|
|
@@ -20,4 +20,17 @@ class _TypeStore {
|
|
|
20
20
|
|
|
21
21
|
export const $BuiltInTypeFlag = Symbol("BuiltInType");
|
|
22
22
|
|
|
23
|
-
export const TypeStore = new _TypeStore();
|
|
23
|
+
export const TypeStore = new _TypeStore();
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* add to a class declaration to automatically register it to the TypeStore (required for HMR right now)
|
|
28
|
+
*
|
|
29
|
+
* `@registerType`
|
|
30
|
+
*
|
|
31
|
+
* `export class MyType extends Behaviour { ... }`
|
|
32
|
+
*/
|
|
33
|
+
export const registerType = function (constructor: Function) {
|
|
34
|
+
if (!TypeStore.get(constructor.name))
|
|
35
|
+
TypeStore.add(constructor.name, constructor);
|
|
36
|
+
}
|
|
@@ -16,14 +16,15 @@ ContextRegistry.registerCallback(ContextEvent.MissingCamera, (evt) => {
|
|
|
16
16
|
scene.add(cameraObject);
|
|
17
17
|
|
|
18
18
|
const camInstance = new Camera();
|
|
19
|
-
const cam = addNewComponent(cameraObject, camInstance, true) as ICamera
|
|
19
|
+
const cam = addNewComponent(cameraObject, camInstance, true) as ICamera;
|
|
20
20
|
cam.sourceId = srcId;
|
|
21
21
|
cam.clearFlags = 2;
|
|
22
22
|
cam.backgroundColor = new RGBAColor(0.5, 0.5, 0.5, 1);
|
|
23
23
|
|
|
24
|
-
cameraObject.position.x =
|
|
25
|
-
cameraObject.position.y =
|
|
24
|
+
cameraObject.position.x = 0;
|
|
25
|
+
cameraObject.position.y = 1;
|
|
26
26
|
cameraObject.position.z = 2;
|
|
27
|
+
|
|
27
28
|
return cam;
|
|
28
29
|
});
|
|
29
30
|
|
|
@@ -46,6 +47,9 @@ ContextRegistry.registerCallback(ContextEvent.ContextCreated, (evt) => {
|
|
|
46
47
|
if (cameraObject) {
|
|
47
48
|
const orbit = addNewComponent(cameraObject, new OrbitControls(), false) as OrbitControls;
|
|
48
49
|
orbit.sourceId = "unknown";
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
orbit.fitCameraToObjects(evt.context.scene.children, 1);
|
|
52
|
+
}, 100);
|
|
49
53
|
}
|
|
50
54
|
else {
|
|
51
55
|
console.warn("Missing camera object, can not add orbit controls")
|