@needle-tools/engine 3.37.3-alpha → 3.37.5-alpha
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 +10 -0
- package/README.md +5 -3
- package/dist/needle-engine.js +325 -248
- package/dist/needle-engine.light.js +1614 -1537
- package/dist/needle-engine.light.min.js +111 -98
- package/dist/needle-engine.light.umd.cjs +146 -133
- package/dist/needle-engine.min.js +43 -30
- package/dist/needle-engine.umd.cjs +64 -51
- package/lib/engine/engine_physics.d.ts +2 -2
- package/lib/engine/engine_physics.js +4 -4
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_physics_rapier.d.ts +24 -4
- package/lib/engine/engine_physics_rapier.js +33 -12
- package/lib/engine/engine_physics_rapier.js.map +1 -1
- package/lib/engine/engine_types.d.ts +27 -4
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_lighting_settings.d.ts +0 -1
- package/lib/engine/extensions/NEEDLE_lighting_settings.js +0 -6
- package/lib/engine/extensions/NEEDLE_lighting_settings.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.js +14 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
- package/lib/engine-components/Collider.d.ts +25 -0
- package/lib/engine-components/Collider.js +25 -0
- package/lib/engine-components/Collider.js.map +1 -1
- package/lib/engine-components/OrbitControls.d.ts +16 -3
- package/lib/engine-components/OrbitControls.js +25 -9
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/ParticleSystem.d.ts +31 -1
- package/lib/engine-components/ParticleSystem.js +42 -1
- package/lib/engine-components/ParticleSystem.js.map +1 -1
- package/lib/engine-components/RigidBody.d.ts +3 -0
- package/lib/engine-components/RigidBody.js +5 -2
- package/lib/engine-components/RigidBody.js.map +1 -1
- package/lib/engine-components/SceneSwitcher.d.ts +22 -2
- package/lib/engine-components/SceneSwitcher.js +29 -3
- package/lib/engine-components/SceneSwitcher.js.map +1 -1
- package/lib/engine-components/SyncedTransform.js +3 -15
- package/lib/engine-components/SyncedTransform.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/codegen/register_types.ts +2 -2
- package/src/engine/engine_physics.ts +4 -4
- package/src/engine/engine_physics_rapier.ts +48 -14
- package/src/engine/engine_types.ts +29 -6
- package/src/engine/extensions/NEEDLE_lighting_settings.ts +0 -5
- package/src/engine/webcomponents/needle menu/needle-menu.ts +14 -1
- package/src/engine-components/Collider.ts +27 -4
- package/src/engine-components/OrbitControls.ts +29 -11
- package/src/engine-components/ParticleSystem.ts +44 -4
- package/src/engine-components/RigidBody.ts +5 -2
- package/src/engine-components/SceneSwitcher.ts +45 -5
- package/src/engine-components/SyncedTransform.ts +4 -17
|
@@ -241,17 +241,10 @@ export class SyncedTransform extends Behaviour {
|
|
|
241
241
|
this.receivedUpdate = false;
|
|
242
242
|
this.lastWorldPos.copy(wp);
|
|
243
243
|
this.lastWorldRotation.copy(wr);
|
|
244
|
-
// if (this._model.isOwned === false && this.autoOwnership) {
|
|
245
|
-
// this.requestOwnership();
|
|
246
|
-
// }
|
|
247
244
|
if (!this._model)
|
|
248
245
|
return;
|
|
249
|
-
// only run if we are the owner
|
|
250
246
|
if (!this._model || this._model.hasOwnership === undefined || !this._model.hasOwnership) {
|
|
251
|
-
if
|
|
252
|
-
this.rb.isKinematic = this._model.isOwned ?? false;
|
|
253
|
-
this.rb.setVelocity(0, 0, 0);
|
|
254
|
-
}
|
|
247
|
+
// if we're not the owner of this synced transform then don't send any data
|
|
255
248
|
return;
|
|
256
249
|
}
|
|
257
250
|
// local user is owner:
|
|
@@ -261,13 +254,8 @@ export class SyncedTransform extends Behaviour {
|
|
|
261
254
|
console.log("reset kinematic", this.rb.name, this._wasKinematic);
|
|
262
255
|
this.rb.isKinematic = this._wasKinematic;
|
|
263
256
|
}
|
|
264
|
-
//
|
|
265
|
-
|
|
266
|
-
if (debug)
|
|
267
|
-
console.log("RESET", this.name);
|
|
268
|
-
this.gameObject.position.set(0, 1, 0);
|
|
269
|
-
this.rb.setVelocity(0, 0, 0);
|
|
270
|
-
}
|
|
257
|
+
// TODO: if the SyncedTransform has a dynamic rigidbody we should probably synchronize the Rigidbody's properties (velocity etc)
|
|
258
|
+
// Or the Rigidbody should be synchronized separately in which case the SyncedTransform should be passive
|
|
271
259
|
}
|
|
272
260
|
const updateInterval = 10;
|
|
273
261
|
const fastUpdate = this.rb || this.fastMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncedTransform.js","sourceRoot":"","sources":["../../src/engine-components/SyncedTransform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SyncedTransform.js","sourceRoot":"","sources":["../../src/engine-components/SyncedTransform.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.37.
|
|
3
|
+
"version": "3.37.5-alpha",
|
|
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",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import { TypeStore } from "./../engine_typestore.js"
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
// Import types
|
|
5
5
|
import { __Ignore } from "../../engine-components/codegen/components.js";
|
|
6
6
|
import { ActionBuilder } from "../../engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js";
|
|
@@ -220,7 +220,7 @@ import { XRControllerMovement } from "../../engine-components/webxr/controllers/
|
|
|
220
220
|
import { XRFlag } from "../../engine-components/webxr/XRFlag.js";
|
|
221
221
|
import { XRRig } from "../../engine-components/webxr/WebXRRig.js";
|
|
222
222
|
import { XRState } from "../../engine-components/webxr/XRFlag.js";
|
|
223
|
-
|
|
223
|
+
|
|
224
224
|
// Register types
|
|
225
225
|
TypeStore.add("__Ignore", __Ignore);
|
|
226
226
|
TypeStore.add("ActionBuilder", ActionBuilder);
|
|
@@ -125,14 +125,14 @@ export class SphereIntersection implements Intersection {
|
|
|
125
125
|
|
|
126
126
|
export class Physics {
|
|
127
127
|
|
|
128
|
-
/**@deprecated use this.context.physics.engine.raycast */
|
|
128
|
+
/**@deprecated use `this.context.physics.engine.raycast` {@link IPhysicsEngine.raycast} */
|
|
129
129
|
public raycastPhysicsFast(origin: Vec2 | Vec3, direction: Vec3 | undefined = undefined, maxDistance: number = Infinity, solid: boolean = true) {
|
|
130
|
-
return this.context.physics.engine?.raycast(origin, direction, maxDistance, solid) ?? null;
|
|
130
|
+
return this.context.physics.engine?.raycast(origin, direction, { maxDistance, solid }) ?? null;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
/**@deprecated use this.context.physics.engine.raycastAndGetNormal */
|
|
133
|
+
/**@deprecated use `this.context.physics.engine.raycastAndGetNormal` {@link IPhysicsEngine.raycastAndGetNormal} */
|
|
134
134
|
public raycastPhysicsFastAndGetNormal(origin: Vec2 | Vec3, direction: Vec3 | undefined = undefined, maxDistance: number = Infinity, solid: boolean = true) {
|
|
135
|
-
return this.context.physics.engine?.raycastAndGetNormal(origin, direction, maxDistance, solid) ?? null;
|
|
135
|
+
return this.context.physics.engine?.raycastAndGetNormal(origin, direction, { maxDistance, solid }) ?? null;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
/**@deprecated use this.context.physics.engine.sphereOverlap */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActiveCollisionTypes, ActiveEvents, Ball, CoefficientCombineRule, Collider, ColliderDesc, Cuboid, EventQueue, JointData, QueryFilterFlags, Ray, RigidBody, RigidBodyType, ShapeColliderTOI, ShapeType, World } from '@dimforge/rapier3d-compat';
|
|
1
|
+
import { ActiveCollisionTypes, ActiveEvents, Ball, CoefficientCombineRule, Collider, ColliderDesc, Cuboid, EventQueue, JointData, QueryFilterFlags, Ray, RigidBody, RigidBodyDesc, RigidBodyType, ShapeColliderTOI, ShapeType, World } from '@dimforge/rapier3d-compat';
|
|
2
2
|
import { BufferAttribute, BufferGeometry, LineBasicMaterial, LineSegments, Matrix4, Mesh, Object3D, Quaternion, Vector3 } from 'three'
|
|
3
3
|
import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js'
|
|
4
4
|
|
|
@@ -295,9 +295,20 @@ export class RapierPhysics implements IPhysicsEngine {
|
|
|
295
295
|
|
|
296
296
|
private rapierRay = new Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: 0, z: 1 });
|
|
297
297
|
private raycastVectorsBuffer = new CircularBuffer(() => new Vector3(), 10);
|
|
298
|
-
public raycast(origin?: Vec2 | Vec3, direction?: Vec3,
|
|
298
|
+
public raycast(origin?: Vec2 | Vec3, direction?: Vec3, options?: {
|
|
299
|
+
maxDistance?: number,
|
|
300
|
+
/** True if you want to also hit objects when the raycast starts from inside a collider */
|
|
301
|
+
solid?: boolean,
|
|
302
|
+
queryFilterFlags?: QueryFilterFlags,
|
|
303
|
+
filterGroups?: number,
|
|
304
|
+
/** Return false to ignore this collider */
|
|
305
|
+
filterPredicate?: (c: ICollider) => boolean,
|
|
306
|
+
})
|
|
299
307
|
: null | { point: Vector3, collider: ICollider } {
|
|
300
308
|
|
|
309
|
+
let maxDistance = options?.maxDistance;
|
|
310
|
+
let solid = options?.solid;
|
|
311
|
+
|
|
301
312
|
if (maxDistance === undefined) maxDistance = Infinity;
|
|
302
313
|
if (solid === undefined) solid = true;
|
|
303
314
|
|
|
@@ -306,9 +317,12 @@ export class RapierPhysics implements IPhysicsEngine {
|
|
|
306
317
|
|
|
307
318
|
if (this.debugRenderRaycasts || showPhysicsRaycasts) Gizmos.DrawRay(ray.origin, ray.dir, 0x0000ff, 1);
|
|
308
319
|
|
|
309
|
-
const hit = this.world?.castRay(ray, maxDistance, solid,
|
|
320
|
+
const hit = this.world?.castRay(ray, maxDistance, solid, options?.queryFilterFlags, options?.filterGroups, undefined, undefined, (c) => {
|
|
321
|
+
const component = c[$componentKey];
|
|
322
|
+
if (options?.filterPredicate) return options.filterPredicate(component);
|
|
323
|
+
|
|
310
324
|
// ignore objects in the IgnoreRaycast=2 layer
|
|
311
|
-
return !
|
|
325
|
+
return !component?.gameObject.layers.isEnabled(2);
|
|
312
326
|
});
|
|
313
327
|
if (hit) {
|
|
314
328
|
const point = ray.pointAt(hit.toi);
|
|
@@ -320,9 +334,20 @@ export class RapierPhysics implements IPhysicsEngine {
|
|
|
320
334
|
return null;
|
|
321
335
|
}
|
|
322
336
|
|
|
323
|
-
public raycastAndGetNormal(origin?: Vec2 | Vec3, direction?: Vec3,
|
|
337
|
+
public raycastAndGetNormal(origin?: Vec2 | Vec3, direction?: Vec3, options?: {
|
|
338
|
+
maxDistance?: number,
|
|
339
|
+
/** True if you want to also hit objects when the raycast starts from inside a collider */
|
|
340
|
+
solid?: boolean,
|
|
341
|
+
queryFilterFlags?: QueryFilterFlags,
|
|
342
|
+
filterGroups?: number,
|
|
343
|
+
/** Return false to ignore this collider */
|
|
344
|
+
filterPredicate?: (c: ICollider) => boolean,
|
|
345
|
+
})
|
|
324
346
|
: null | { point: Vector3, normal: Vector3, collider: ICollider } {
|
|
325
347
|
|
|
348
|
+
let maxDistance = options?.maxDistance;
|
|
349
|
+
let solid = options?.solid;
|
|
350
|
+
|
|
326
351
|
if (maxDistance === undefined) maxDistance = Infinity;
|
|
327
352
|
if (solid === undefined) solid = true;
|
|
328
353
|
|
|
@@ -331,9 +356,11 @@ export class RapierPhysics implements IPhysicsEngine {
|
|
|
331
356
|
|
|
332
357
|
if (this.debugRenderRaycasts || showPhysicsRaycasts) Gizmos.DrawRay(ray.origin, ray.dir, 0x0000ff, 1);
|
|
333
358
|
|
|
334
|
-
const hit = this.world?.castRayAndGetNormal(ray, maxDistance, solid,
|
|
359
|
+
const hit = this.world?.castRayAndGetNormal(ray, maxDistance, solid, options?.queryFilterFlags, options?.filterGroups, undefined, undefined, (c) => {
|
|
360
|
+
const component = c[$componentKey];
|
|
361
|
+
if (options?.filterPredicate) return options.filterPredicate(component);
|
|
335
362
|
// ignore objects in the IgnoreRaycast=2 layer
|
|
336
|
-
return !
|
|
363
|
+
return !component?.gameObject.layers.isEnabled(2);
|
|
337
364
|
});
|
|
338
365
|
if (hit) {
|
|
339
366
|
const point = ray.pointAt(hit.toi);
|
|
@@ -802,30 +829,36 @@ export class RapierPhysics implements IPhysicsEngine {
|
|
|
802
829
|
}
|
|
803
830
|
}
|
|
804
831
|
|
|
805
|
-
/**
|
|
832
|
+
/**
|
|
833
|
+
* Updates the collision groups of a collider.
|
|
834
|
+
*
|
|
835
|
+
* @param collider - The collider to update.
|
|
836
|
+
*/
|
|
806
837
|
private updateColliderCollisionGroups(collider: ICollider) {
|
|
807
|
-
const body = collider[$bodyKey];
|
|
838
|
+
const body = collider[$bodyKey] as Collider;
|
|
808
839
|
const members = collider.membership;
|
|
809
840
|
let memberMask = 0;
|
|
810
841
|
if (members == undefined) {
|
|
811
|
-
memberMask =
|
|
842
|
+
memberMask = 0xffff;
|
|
812
843
|
}
|
|
813
844
|
else {
|
|
814
845
|
for (let i = 0; i < members.length; i++) {
|
|
815
846
|
const member = members[i];
|
|
816
|
-
|
|
847
|
+
if (member > 31) console.error(`Rapier only supports 32 layers, layer ${member} is not supported`);
|
|
848
|
+
else memberMask |= 1 << Math.floor(member);
|
|
817
849
|
}
|
|
818
850
|
}
|
|
819
851
|
|
|
820
852
|
const mask = collider.filter;
|
|
821
853
|
let filterMask = 0;
|
|
822
854
|
if (mask == undefined) {
|
|
823
|
-
filterMask =
|
|
855
|
+
filterMask = 0xffff;
|
|
824
856
|
}
|
|
825
857
|
else {
|
|
826
858
|
for (let i = 0; i < mask.length; i++) {
|
|
827
859
|
const member = mask[i];
|
|
828
|
-
|
|
860
|
+
if (member > 31) console.error(`Rapier only supports 32 layers, layer ${member} is not supported`);
|
|
861
|
+
else filterMask |= 1 << Math.floor(member);
|
|
829
862
|
}
|
|
830
863
|
}
|
|
831
864
|
body.setCollisionGroups((memberMask << 16) | filterMask);
|
|
@@ -843,10 +876,11 @@ export class RapierPhysics implements IPhysicsEngine {
|
|
|
843
876
|
const kinematic = rb.isKinematic && !debugColliderPlacement;
|
|
844
877
|
if (debugPhysics)
|
|
845
878
|
console.log("Create rigidbody", kinematic);
|
|
846
|
-
const rigidBodyDesc = kinematic ? RAPIER.RigidBodyDesc.kinematicPositionBased() : RAPIER.RigidBodyDesc.dynamic();
|
|
879
|
+
const rigidBodyDesc = (kinematic ? RAPIER.RigidBodyDesc.kinematicPositionBased() : RAPIER.RigidBodyDesc.dynamic()) as RigidBodyDesc;
|
|
847
880
|
const pos = getWorldPosition(collider.attachedRigidbody.gameObject);
|
|
848
881
|
rigidBodyDesc.setTranslation(pos.x, pos.y, pos.z);
|
|
849
882
|
rigidBodyDesc.setRotation(getWorldQuaternion(collider.attachedRigidbody.gameObject));
|
|
883
|
+
rigidBodyDesc.centerOfMass = new RAPIER.Vector3(rb.centerOfMass.x, rb.centerOfMass.y, rb.centerOfMass.z);
|
|
850
884
|
rigidBody = this.world.createRigidBody(rigidBodyDesc);
|
|
851
885
|
this.bodies.push(rigidBody);
|
|
852
886
|
this.objects.push(rb);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { QueryFilterFlags } from "@dimforge/rapier3d-compat";
|
|
1
2
|
import { Camera, Color, Material, Mesh, Object3D, Quaternion, Ray, Scene, WebGLRenderer } from "three";
|
|
2
3
|
import { Vector3 } from "three";
|
|
3
4
|
import { type GLTF as GLTF3 } from "three/examples/jsm/loaders/GLTFLoader.js";
|
|
@@ -251,12 +252,14 @@ export declare interface ICollider extends IComponent {
|
|
|
251
252
|
updatePhysicsMaterial(): void;
|
|
252
253
|
/** The collider membership indicates what groups the collider is part of (e.g. group 2 and 3)
|
|
253
254
|
* An `undefined` array indicates that the collider is part of all groups
|
|
254
|
-
* Note: Make sure to call updateProperties after having changed this property
|
|
255
|
+
* Note: Make sure to call updateProperties after having changed this property
|
|
256
|
+
* Default: [0]
|
|
255
257
|
*/
|
|
256
258
|
membership?: number[];
|
|
257
259
|
/** The collider filter indicates what groups the collider can interact with (e.g. group 3 and 4)
|
|
258
260
|
* An `undefined` array indicates that the collider can interact with all groups
|
|
259
|
-
* Note: Make sure to call updateProperties after having changed this property
|
|
261
|
+
* Note: Make sure to call updateProperties after having changed this property
|
|
262
|
+
* Default: undefined
|
|
260
263
|
*/
|
|
261
264
|
filter?: number[];
|
|
262
265
|
}
|
|
@@ -278,6 +281,7 @@ export declare interface IRigidbody extends IComponent {
|
|
|
278
281
|
drag: number;
|
|
279
282
|
angularDrag: number;
|
|
280
283
|
useGravity: boolean;
|
|
284
|
+
centerOfMass: Vec3;
|
|
281
285
|
gravityScale: number;
|
|
282
286
|
dominanceGroup: number;
|
|
283
287
|
|
|
@@ -436,12 +440,31 @@ export interface IPhysicsEngine {
|
|
|
436
440
|
/** Fast raycast against physics colliders
|
|
437
441
|
* @param origin ray origin in screen or worldspace
|
|
438
442
|
* @param direction ray direction in worldspace
|
|
439
|
-
* @param
|
|
440
|
-
* @param solid if true it will also hit the collider if origin is already inside it
|
|
443
|
+
* @param options additional options
|
|
441
444
|
*/
|
|
442
|
-
raycast(origin?: Vec2 | Vec3, direction?: Vec3,
|
|
445
|
+
raycast(origin?: Vec2 | Vec3, direction?: Vec3, options?: {
|
|
446
|
+
maxDistance?: number,
|
|
447
|
+
/** True if you want to also hit objects when the raycast starts from inside a collider */
|
|
448
|
+
solid?: boolean,
|
|
449
|
+
queryFilterFlags?: QueryFilterFlags,
|
|
450
|
+
/** Raycast filter groups. Groups are used to apply the collision group rules for the scene query. The scene query will only consider hits with colliders with collision groups compatible with this collision group (using the bitwise test described in the collision groups section). See https://rapier.rs/docs/user_guides/javascript/colliders#collision-groups-and-solver-groups
|
|
451
|
+
* For example membership 0x0001 and filter 0x0002 should be 0x00010002 */
|
|
452
|
+
filterGroups?: number,
|
|
453
|
+
/** Return false to ignore this collider */
|
|
454
|
+
filterPredicate?: (collider: ICollider) => boolean
|
|
455
|
+
}): RaycastResult;
|
|
443
456
|
/** raycast that also gets the normal vector. If you don't need it use raycast() */
|
|
444
|
-
raycastAndGetNormal(origin?: Vec2 | Vec3, direction?: Vec3,
|
|
457
|
+
raycastAndGetNormal(origin?: Vec2 | Vec3, direction?: Vec3, options?: {
|
|
458
|
+
maxDistance?: number,
|
|
459
|
+
/** True if you want to also hit objects when the raycast starts from inside a collider */
|
|
460
|
+
solid?: boolean,
|
|
461
|
+
queryFilterFlags?: QueryFilterFlags,
|
|
462
|
+
/** Raycast filter groups. Groups are used to apply the collision group rules for the scene query. The scene query will only consider hits with colliders with collision groups compatible with this collision group (using the bitwise test described in the collision groups section). See https://rapier.rs/docs/user_guides/javascript/colliders#collision-groups-and-solver-groups
|
|
463
|
+
* For example membership 0x0001 and filter 0x0002 should be 0x00010002 */
|
|
464
|
+
filterGroups?: number,
|
|
465
|
+
/** Return false to ignore this collider */
|
|
466
|
+
filterPredicate?: (collider: ICollider) => boolean
|
|
467
|
+
}): RaycastResult;
|
|
445
468
|
sphereOverlap(point: Vector3, radius: number): Array<SphereOverlapResult>;
|
|
446
469
|
|
|
447
470
|
// Collider methods
|
|
@@ -94,8 +94,6 @@ export class SceneLightSettings extends Behaviour {
|
|
|
94
94
|
private _hasReflection: boolean = false;
|
|
95
95
|
private _ambientLightObj?: AmbientLight;
|
|
96
96
|
private _hemisphereLightObj?: HemisphereLight;
|
|
97
|
-
// used when skybox is used to support ambient intensity for "non custom shaders"
|
|
98
|
-
private _lightProbeObj?: LightProbe;
|
|
99
97
|
|
|
100
98
|
awake() {
|
|
101
99
|
if (this.sourceId) {
|
|
@@ -154,7 +152,6 @@ export class SceneLightSettings extends Behaviour {
|
|
|
154
152
|
if (this._ambientLightObj) {
|
|
155
153
|
this.gameObject.add(this._ambientLightObj)
|
|
156
154
|
}
|
|
157
|
-
if (this._lightProbeObj) this._lightProbeObj.removeFromParent();
|
|
158
155
|
}
|
|
159
156
|
else if (this.ambientMode === AmbientMode.Trilight) {
|
|
160
157
|
if (this.ambientTrilight) {
|
|
@@ -180,8 +177,6 @@ export class SceneLightSettings extends Behaviour {
|
|
|
180
177
|
onDisable() {
|
|
181
178
|
if (debug)
|
|
182
179
|
console.warn("💡⚫ <<< Disable lighting:", this.sourceId, this);
|
|
183
|
-
if (this._lightProbeObj)
|
|
184
|
-
this._lightProbeObj.removeFromParent();
|
|
185
180
|
if (this._ambientLightObj)
|
|
186
181
|
this._ambientLightObj.removeFromParent();
|
|
187
182
|
if (this._hemisphereLightObj)
|
|
@@ -371,7 +371,20 @@ export class NeedleMenuElement extends HTMLElement {
|
|
|
371
371
|
width: 100%;
|
|
372
372
|
}
|
|
373
373
|
|
|
374
|
-
|
|
374
|
+
@media (max-width: 300px) or (max-height: 350px){
|
|
375
|
+
.options {
|
|
376
|
+
display: none;
|
|
377
|
+
padding: 0;
|
|
378
|
+
margin: 0;
|
|
379
|
+
border: none;
|
|
380
|
+
}
|
|
381
|
+
.logo.any-options {
|
|
382
|
+
border: none !important;
|
|
383
|
+
padding: 0;
|
|
384
|
+
margin-bottom: 0 !important;
|
|
385
|
+
padding-bottom: 0 !important;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
375
388
|
|
|
376
389
|
/* dark mode */
|
|
377
390
|
/*
|
|
@@ -15,45 +15,65 @@ import { Rigidbody } from "./RigidBody.js";
|
|
|
15
15
|
* Collider is the base class for all colliders. A collider is a physical shape that is used to detect collisions with other objects in the scene.
|
|
16
16
|
* Colliders are used in combination with a Rigidbody to create physical interactions between objects.
|
|
17
17
|
* Colliders are registered with the physics engine when they are enabled and removed when they are disabled.
|
|
18
|
-
* @category Physics
|
|
18
|
+
* @category Physics
|
|
19
|
+
* @inheritdoc
|
|
19
20
|
*/
|
|
20
21
|
export class Collider extends Behaviour implements ICollider {
|
|
21
22
|
|
|
23
|
+
/** @internal */
|
|
22
24
|
get isCollider(): any {
|
|
23
25
|
return true;
|
|
24
26
|
}
|
|
25
27
|
|
|
28
|
+
/**
|
|
29
|
+
* The Rigidbody that this collider is attached to.
|
|
30
|
+
*/
|
|
26
31
|
@serializable(Rigidbody)
|
|
27
32
|
attachedRigidbody: Rigidbody | null = null;
|
|
28
33
|
|
|
34
|
+
/**
|
|
35
|
+
* When `true` the collider will not be used for collision detection but will still trigger events.
|
|
36
|
+
*/
|
|
29
37
|
@serializable()
|
|
30
38
|
isTrigger: boolean = false;
|
|
31
39
|
|
|
40
|
+
/**
|
|
41
|
+
* The physics material that is used for the collider. This material defines physical properties of the collider such as friction and bounciness.
|
|
42
|
+
*/
|
|
32
43
|
@serializable()
|
|
33
44
|
sharedMaterial?: PhysicsMaterial;
|
|
34
45
|
|
|
46
|
+
/**
|
|
47
|
+
* The layers that the collider is assigned to.
|
|
48
|
+
*/
|
|
35
49
|
@serializable()
|
|
36
50
|
membership: number[] = [0];
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The layers that the collider will interact with.
|
|
54
|
+
* @inheritdoc
|
|
55
|
+
*/
|
|
37
56
|
@serializable()
|
|
38
57
|
filter?: number[];
|
|
39
58
|
|
|
59
|
+
/** @internal */
|
|
40
60
|
awake() {
|
|
41
61
|
super.awake();
|
|
42
62
|
if (!this.attachedRigidbody)
|
|
43
63
|
this.attachedRigidbody = this.gameObject.getComponentInParent(Rigidbody);
|
|
44
64
|
}
|
|
45
|
-
|
|
65
|
+
/** @internal */
|
|
46
66
|
start() {
|
|
47
67
|
if (!this.attachedRigidbody)
|
|
48
68
|
this.attachedRigidbody = this.gameObject.getComponentInParent(Rigidbody);
|
|
49
69
|
}
|
|
50
|
-
|
|
70
|
+
/** @internal */
|
|
51
71
|
onEnable() {
|
|
52
72
|
// a rigidbody is not assigned if we export an asset
|
|
53
73
|
if (!this.attachedRigidbody)
|
|
54
74
|
this.attachedRigidbody = this.gameObject.getComponentInParent(Rigidbody);
|
|
55
75
|
}
|
|
56
|
-
|
|
76
|
+
/** @internal */
|
|
57
77
|
onDisable() {
|
|
58
78
|
this.context.physics.engine?.removeBody(this);
|
|
59
79
|
}
|
|
@@ -63,6 +83,9 @@ export class Collider extends Behaviour implements ICollider {
|
|
|
63
83
|
return this.context.physics.engine?.getBody(this);
|
|
64
84
|
}
|
|
65
85
|
|
|
86
|
+
/**
|
|
87
|
+
* Apply the collider properties to the physics engine.
|
|
88
|
+
*/
|
|
66
89
|
updateProperties = () => {
|
|
67
90
|
this.context.physics.engine?.updateProperties(this);
|
|
68
91
|
}
|
|
@@ -185,12 +185,14 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
185
185
|
|
|
186
186
|
targetElement: HTMLElement | null = null;
|
|
187
187
|
|
|
188
|
+
/** @internal */
|
|
188
189
|
awake(): void {
|
|
189
190
|
this._didStart = false;
|
|
190
191
|
this._didSetTarget = false;
|
|
191
192
|
this._startedListeningToKeyEvents = false;
|
|
192
193
|
}
|
|
193
194
|
|
|
195
|
+
/** @internal */
|
|
194
196
|
start() {
|
|
195
197
|
this._didStart = true;
|
|
196
198
|
this._eventSystem = EventSystem.get(this.context) ?? undefined;
|
|
@@ -200,11 +202,13 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
200
202
|
}
|
|
201
203
|
}
|
|
202
204
|
|
|
205
|
+
/** @internal */
|
|
203
206
|
onDestroy() {
|
|
204
207
|
this._controls?.dispose();
|
|
205
208
|
this._eventSystem?.removeEventListener(EventSystemEvents.AfterHandleInput, this._afterHandleInputFn!);
|
|
206
209
|
}
|
|
207
210
|
|
|
211
|
+
/** @internal */
|
|
208
212
|
onEnable() {
|
|
209
213
|
this._enableTime = this.context.time.time;
|
|
210
214
|
const cameraComponent = GameObject.getComponent(this.gameObject, Camera);
|
|
@@ -266,6 +270,7 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
266
270
|
// }
|
|
267
271
|
}
|
|
268
272
|
|
|
273
|
+
/** @internal */
|
|
269
274
|
onDisable() {
|
|
270
275
|
if (this._camera?.cam) {
|
|
271
276
|
setCameraController(this._camera.cam, this, false);
|
|
@@ -299,10 +304,16 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
299
304
|
}
|
|
300
305
|
|
|
301
306
|
|
|
307
|
+
/** @internal */
|
|
302
308
|
onBeforeRender() {
|
|
303
309
|
if (!this._controls) return;
|
|
304
|
-
if (this._cameraObject !== this.context.mainCamera)
|
|
305
|
-
|
|
310
|
+
if (this._cameraObject !== this.context.mainCamera) {
|
|
311
|
+
this._controls.enabled = false;
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
this._controls.enabled = true;
|
|
315
|
+
|
|
316
|
+
|
|
306
317
|
this.__handleSetTargetWhenBecomingActiveTheFirstTime();
|
|
307
318
|
|
|
308
319
|
if (this.context.input.getPointerDown(1) || this.context.input.getPointerDown(2) || this.context.input.mouseWheelChanged || (this.context.input.getPointerPressed(0) && this.context.input.getPointerPositionDelta(0)?.length() || 0 > .1)) {
|
|
@@ -448,6 +459,7 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
448
459
|
|
|
449
460
|
/** Moves the camera to position smoothly.
|
|
450
461
|
* @param position The position in local space of the controllerObject to move the camera to. If null the camera will stop lerping to the target.
|
|
462
|
+
* @param immediateOrDuration If true the camera will move immediately to the new position, otherwise it will lerp. If a number is passed in it will be used as the duration of the lerp.
|
|
451
463
|
*/
|
|
452
464
|
public setCameraTargetPosition(position?: Object3D | Vector3 | null, immediateOrDuration: boolean | number = false) {
|
|
453
465
|
if (!position) return;
|
|
@@ -477,8 +489,11 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
477
489
|
this._cameraLerpActive = false;
|
|
478
490
|
}
|
|
479
491
|
|
|
480
|
-
/** Moves the camera look-at target to a position smoothly.
|
|
481
|
-
|
|
492
|
+
/** Moves the camera look-at target to a position smoothly.
|
|
493
|
+
* @param position The position in world space to move the camera target to. If null the camera will stop lerping to the target.
|
|
494
|
+
* @param immediateOrDuration If true the camera target will move immediately to the new position, otherwise it will lerp. If a number is passed in it will be used as the duration of the lerp.
|
|
495
|
+
*/
|
|
496
|
+
public setLookTargetPosition(position: Object3D | Vector3 | null = null, immediateOrDuration: boolean | number = false) {
|
|
482
497
|
if (!this._controls) return;
|
|
483
498
|
if (!position) return
|
|
484
499
|
if (position instanceof Object3D) {
|
|
@@ -506,7 +521,10 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
506
521
|
this._lookTargetLerpActive = false;
|
|
507
522
|
}
|
|
508
523
|
|
|
509
|
-
/** Sets the look at target from an assigned lookAtConstraint source by index
|
|
524
|
+
/** Sets the look at target from an assigned lookAtConstraint source by index
|
|
525
|
+
* @param index The index of the source to use
|
|
526
|
+
* @param t The interpolation factor between the current look at target and the new target
|
|
527
|
+
*/
|
|
510
528
|
private setLookTargetFromConstraint(index: number = 0, t: number = 1): boolean {
|
|
511
529
|
if (!this._controls) return false;
|
|
512
530
|
const sources = this.lookAtConstraint?.sources;
|
|
@@ -546,12 +564,12 @@ export class OrbitControls extends Behaviour implements ICameraController {
|
|
|
546
564
|
|
|
547
565
|
this.setLookTargetPosition(hit.point);
|
|
548
566
|
|
|
549
|
-
if (this.context.mainCamera) {
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
}
|
|
567
|
+
// if (this.context.mainCamera) {
|
|
568
|
+
// const pos = getWorldPosition(this.context.mainCamera);
|
|
569
|
+
// const cameraTarget = pos.clone().sub(this.controls.target).add(this._lookTargetEndPosition);
|
|
570
|
+
// this._cameraObject?.parent?.worldToLocal(cameraTarget);
|
|
571
|
+
// this.setCameraTargetPosition(cameraTarget);
|
|
572
|
+
// }
|
|
555
573
|
break;
|
|
556
574
|
}
|
|
557
575
|
}
|