angular-three-rapier 3.7.0 → 4.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, viewChild, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, effect, Directive, contentChild, TemplateRef, signal, computed, untracked, inject, DestroyRef, model, output, ElementRef, viewChildren } from '@angular/core';
3
- import { Vector3 as Vector3$1, Quaternion as Quaternion$1, EventQueue, ColliderDesc, ActiveEvents, RigidBodyDesc } from '@dimforge/rapier3d-compat';
4
- import { extend, injectBeforeRender, injectStore, pick, vector3, applyProps, getLocalState, getEmitter, hasListener, resolveRef } from 'angular-three';
3
+ import { Vector3, Quaternion, EventQueue, ColliderDesc, ActiveEvents, RigidBodyDesc } from '@dimforge/rapier3d-compat';
4
+ import { extend, injectBeforeRender, injectStore, is, pick, vector3, applyProps, getInstanceState, getEmitter, hasListener, resolveRef } from 'angular-three';
5
5
  import { mergeInputs } from 'ngxtension/inject-inputs';
6
- import { Group, LineSegments, LineBasicMaterial, BufferAttribute, Quaternion, Euler, Vector3, Object3D, Matrix4, MathUtils, DynamicDrawUsage } from 'three';
6
+ import * as THREE from 'three';
7
+ import { Group, LineSegments, LineBasicMaterial, BufferAttribute, Object3D } from 'three';
7
8
  import { NgTemplateOutlet } from '@angular/common';
8
9
  import { mergeVertices } from 'three-stdlib';
9
10
  import { assertInjector } from 'ngxtension/assert-injector';
@@ -90,14 +91,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
90
91
  args: [{ selector: 'ngtr-frame-stepper' }]
91
92
  }], ctorParameters: () => [] });
92
93
 
93
- const _quaternion = new Quaternion();
94
- const _euler = new Euler();
95
- const _vector3 = new Vector3();
96
- const _object3d = new Object3D();
97
- const _matrix4 = new Matrix4();
98
- const _position = new Vector3();
99
- const _rotation = new Quaternion();
100
- const _scale = new Vector3();
94
+ const _quaternion = new THREE.Quaternion();
95
+ const _euler = new THREE.Euler();
96
+ const _vector3 = new THREE.Vector3();
97
+ const _object3d = new THREE.Object3D();
98
+ const _matrix4 = new THREE.Matrix4();
99
+ const _position = new THREE.Vector3();
100
+ const _rotation = new THREE.Quaternion();
101
+ const _scale = new THREE.Vector3();
101
102
 
102
103
  /**
103
104
  * Creates a proxy that will create a singleton instance of the given class
@@ -142,19 +143,18 @@ function rapierQuaternionToQuaternion({ x, y, z, w }) {
142
143
  }
143
144
  function vector3ToRapierVector(v) {
144
145
  if (Array.isArray(v)) {
145
- return new Vector3$1(v[0], v[1], v[2]);
146
+ return new Vector3(v[0], v[1], v[2]);
146
147
  }
147
148
  if (typeof v === 'number') {
148
- return new Vector3$1(v, v, v);
149
+ return new Vector3(v, v, v);
149
150
  }
150
- const vector = v;
151
- return new Vector3$1(vector.x, vector.y, vector.z);
151
+ return new Vector3(v.x, v.y, v.z);
152
152
  }
153
153
  function quaternionToRapierQuaternion(v) {
154
154
  if (Array.isArray(v)) {
155
- return new Quaternion$1(v[0], v[1], v[2], v[3]);
155
+ return new Quaternion(v[0], v[1], v[2], v[3]);
156
156
  }
157
- return new Quaternion$1(v.x, v.y, v.z, v.w);
157
+ return new Quaternion(v.x, v.y, v.z, v.w);
158
158
  }
159
159
  function isChildOfMeshCollider(child) {
160
160
  let flag = false;
@@ -175,10 +175,10 @@ function getColliderArgsFromGeometry(geometry, colliders) {
175
175
  case 'cuboid': {
176
176
  geometry.computeBoundingBox();
177
177
  const { boundingBox } = geometry;
178
- const size = boundingBox.getSize(new Vector3());
178
+ const size = boundingBox.getSize(new THREE.Vector3());
179
179
  return {
180
180
  args: [size.x / 2, size.y / 2, size.z / 2],
181
- offset: boundingBox.getCenter(new Vector3()),
181
+ offset: boundingBox.getCenter(new THREE.Vector3()),
182
182
  };
183
183
  }
184
184
  case 'ball': {
@@ -194,34 +194,33 @@ function getColliderArgsFromGeometry(geometry, colliders) {
194
194
  const clonedGeometry = geometry.index ? geometry.clone() : mergeVertices(geometry);
195
195
  return {
196
196
  args: [clonedGeometry.attributes['position'].array, clonedGeometry.index?.array],
197
- offset: new Vector3(),
197
+ offset: new THREE.Vector3(),
198
198
  };
199
199
  }
200
200
  case 'hull': {
201
201
  const clonedGeometry = geometry.clone();
202
202
  return {
203
203
  args: [clonedGeometry.attributes['position'].array],
204
- offset: new Vector3(),
204
+ offset: new THREE.Vector3(),
205
205
  };
206
206
  }
207
207
  }
208
- return { args: [], offset: new Vector3() };
208
+ return { args: [], offset: new THREE.Vector3() };
209
209
  }
210
210
  function createColliderOptions(object, options, ignoreMeshColliders = true) {
211
211
  const childColliderOptions = [];
212
212
  object.updateWorldMatrix(true, false);
213
213
  const invertedParentMatrixWorld = object.matrixWorld.clone().invert();
214
214
  const colliderFromChild = (child) => {
215
- if (child.isMesh) {
215
+ if (is.three(child, 'isMesh')) {
216
216
  if (ignoreMeshColliders && isChildOfMeshCollider(child))
217
217
  return;
218
218
  const worldScale = child.getWorldScale(_scale);
219
219
  const shape = autoColliderMap[options.colliders || 'cuboid'];
220
220
  child.updateWorldMatrix(true, false);
221
221
  _matrix4.copy(child.matrixWorld).premultiply(invertedParentMatrixWorld).decompose(_position, _rotation, _scale);
222
- const rotationEuler = new Euler().setFromQuaternion(_rotation, 'XYZ');
223
- const { geometry } = child;
224
- const { args, offset } = getColliderArgsFromGeometry(geometry, options.colliders || 'cuboid');
222
+ const rotationEuler = new THREE.Euler().setFromQuaternion(_rotation, 'XYZ');
223
+ const { args, offset } = getColliderArgsFromGeometry(child.geometry, options.colliders || 'cuboid');
225
224
  const { mass, linearDamping, angularDamping, canSleep, ccd, gravityScale, softCcdPrediction, ...rest } = options;
226
225
  childColliderOptions.push({
227
226
  colliderOptions: rest,
@@ -375,7 +374,7 @@ class NgtrPhysics {
375
374
  * Fixed timeStep simulation progression.
376
375
  * @see https://gafferongames.com/post/fix_your_timestep/
377
376
  */
378
- const clampedDelta = MathUtils.clamp(delta, 0, 0.5);
377
+ const clampedDelta = THREE.MathUtils.clamp(delta, 0, 0.5);
379
378
  const stepWorld = (innerDelta) => {
380
379
  // Trigger beforeStep callbacks
381
380
  this.beforeStepCallbacks.forEach((callback) => {
@@ -629,24 +628,35 @@ const colliderDefaultOptions = {
629
628
  };
630
629
  class NgtrAnyCollider {
631
630
  position = input([0, 0, 0]);
632
- rotation = input([0, 0, 0]);
631
+ rotation = input();
633
632
  scale = input([1, 1, 1]);
634
- quaternion = input([0, 0, 0, 1]);
635
- userData = input({});
636
- name = input();
633
+ quaternion = input();
634
+ userData = input(undefined);
635
+ name = input(undefined);
637
636
  options = input(colliderDefaultOptions, { transform: mergeInputs(rigidBodyDefaultOptions) });
638
637
  object3DParameters = computed(() => {
639
- return {
640
- position: this.position(),
641
- rotation: this.rotation(),
642
- scale: this.scale(),
643
- quaternion: this.quaternion(),
644
- userData: this.userData(),
645
- name: this.name(),
646
- };
638
+ const [position, rotation, scale, quaternion, userData, name] = [
639
+ this.position(),
640
+ this.rotation(),
641
+ this.scale(),
642
+ this.quaternion(),
643
+ this.userData(),
644
+ this.name(),
645
+ ];
646
+ const parameters = { position, scale, userData, name };
647
+ if (quaternion) {
648
+ Object.assign(parameters, { quaternion });
649
+ }
650
+ else if (rotation) {
651
+ Object.assign(parameters, { rotation });
652
+ }
653
+ else {
654
+ Object.assign(parameters, { rotation: [0, 0, 0] });
655
+ }
656
+ return parameters;
647
657
  });
648
658
  // TODO: change this to input required when Angular allows setting hostDirective input
649
- shape = model(undefined, { alias: 'ngtrCollider' });
659
+ shape = model(undefined, { alias: 'collider' });
650
660
  args = model([]);
651
661
  collisionEnter = output();
652
662
  collisionExit = output();
@@ -722,7 +732,7 @@ class NgtrAnyCollider {
722
732
  });
723
733
  }
724
734
  get worldScale() {
725
- return this.objectRef.nativeElement.getWorldScale(new Vector3());
735
+ return this.objectRef.nativeElement.getWorldScale(new THREE.Vector3());
726
736
  }
727
737
  setShape(shape) {
728
738
  this.shape.set(shape);
@@ -737,11 +747,11 @@ class NgtrAnyCollider {
737
747
  const worldSingleton = this.physics.worldSingleton();
738
748
  if (!worldSingleton)
739
749
  return;
740
- const localState = getLocalState(this.objectRef.nativeElement);
741
- if (!localState)
750
+ const instanceState = getInstanceState(this.objectRef.nativeElement);
751
+ if (!instanceState)
742
752
  return;
743
- const parent = localState.parent();
744
- if (!parent || !parent.isObject3D)
753
+ const parent = instanceState.parent();
754
+ if (!parent || !is.three(parent, 'isObject3D'))
745
755
  return;
746
756
  const state = this.createColliderState(collider, this.objectRef.nativeElement, this.rigidBody?.objectRef.nativeElement);
747
757
  this.physics.colliderStates.set(collider.handle, state);
@@ -888,11 +898,11 @@ class NgtrAnyCollider {
888
898
  return scaledVerts;
889
899
  }
890
900
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrAnyCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
891
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrAnyCollider, isStandalone: true, selector: "ngt-object3D[ngtrCollider]", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, quaternion: { classPropertyName: "quaternion", publicName: "quaternion", isSignal: true, isRequired: false, transformFunction: null }, userData: { classPropertyName: "userData", publicName: "userData", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "ngtrCollider", isSignal: true, isRequired: false, transformFunction: null }, args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { shape: "ngtrColliderChange", args: "argsChange", collisionEnter: "collisionEnter", collisionExit: "collisionExit", intersectionEnter: "intersectionEnter", intersectionExit: "intersectionExit", contactForce: "contactForce" }, ngImport: i0 });
901
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrAnyCollider, isStandalone: true, selector: "ngt-object3D[collider]", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, quaternion: { classPropertyName: "quaternion", publicName: "quaternion", isSignal: true, isRequired: false, transformFunction: null }, userData: { classPropertyName: "userData", publicName: "userData", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "collider", isSignal: true, isRequired: false, transformFunction: null }, args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { shape: "colliderChange", args: "argsChange", collisionEnter: "collisionEnter", collisionExit: "collisionExit", intersectionEnter: "intersectionEnter", intersectionExit: "intersectionExit", contactForce: "contactForce" }, ngImport: i0 });
892
902
  }
893
903
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrAnyCollider, decorators: [{
894
904
  type: Directive,
895
- args: [{ selector: 'ngt-object3D[ngtrCollider]' }]
905
+ args: [{ selector: 'ngt-object3D[collider]' }]
896
906
  }], ctorParameters: () => [] });
897
907
  const RIGID_BODY_TYPE_MAP = {
898
908
  fixed: 1,
@@ -912,7 +922,7 @@ const rigidBodyDefaultOptions = {
912
922
  };
913
923
  class NgtrRigidBody {
914
924
  type = input('dynamic', {
915
- alias: 'ngtrRigidBody',
925
+ alias: 'rigidBody',
916
926
  transform: (value) => {
917
927
  if (value === '' || value === undefined)
918
928
  return 'dynamic';
@@ -923,16 +933,27 @@ class NgtrRigidBody {
923
933
  rotation = input([0, 0, 0]);
924
934
  scale = input([1, 1, 1]);
925
935
  quaternion = input([0, 0, 0, 1]);
926
- userData = input({});
936
+ userData = input(undefined);
927
937
  options = input(rigidBodyDefaultOptions, { transform: mergeInputs(rigidBodyDefaultOptions) });
928
938
  object3DParameters = computed(() => {
929
- return {
930
- position: this.position(),
931
- rotation: this.rotation(),
932
- scale: this.scale(),
933
- quaternion: this.quaternion(),
934
- userData: this.userData(),
935
- };
939
+ const [position, rotation, scale, quaternion, userData] = [
940
+ this.position(),
941
+ this.rotation(),
942
+ this.scale(),
943
+ this.quaternion(),
944
+ this.userData(),
945
+ ];
946
+ const parameters = { position, scale, userData };
947
+ if (quaternion) {
948
+ Object.assign(parameters, { quaternion });
949
+ }
950
+ else if (rotation) {
951
+ Object.assign(parameters, { rotation });
952
+ }
953
+ else {
954
+ Object.assign(parameters, { rotation: [0, 0, 0] });
955
+ }
956
+ return parameters;
936
957
  });
937
958
  wake = output();
938
959
  sleep = output();
@@ -983,12 +1004,12 @@ class NgtrRigidBody {
983
1004
  // if colliders on object is not set, use physics colliders
984
1005
  if (!options.colliders)
985
1006
  options.colliders = physicsColliders;
986
- const objectLocalState = getLocalState(this.objectRef.nativeElement);
987
- if (!objectLocalState)
1007
+ const objectInstanceState = getInstanceState(this.objectRef.nativeElement);
1008
+ if (!objectInstanceState)
988
1009
  return [];
989
1010
  // track object's parent and non-object children
990
- const [parent] = [objectLocalState.parent(), objectLocalState.nonObjects()];
991
- if (!parent || !parent.isObject3D)
1011
+ const [parent] = [objectInstanceState.parent(), objectInstanceState.nonObjects()];
1012
+ if (!parent || !is.three(parent, 'isObject3D'))
992
1013
  return [];
993
1014
  return createColliderOptions(this.objectRef.nativeElement, options, true);
994
1015
  });
@@ -1018,11 +1039,11 @@ class NgtrRigidBody {
1018
1039
  if (!body)
1019
1040
  return;
1020
1041
  const transformState = untracked(this.transformState);
1021
- const localState = getLocalState(this.objectRef.nativeElement);
1022
- if (!localState)
1042
+ const instanceState = getInstanceState(this.objectRef.nativeElement);
1043
+ if (!instanceState)
1023
1044
  return;
1024
- const parent = localState.parent();
1025
- if (!parent || !parent.isObject3D)
1045
+ const parent = instanceState.parent();
1046
+ if (!parent || !is.three(parent, 'isObject3D'))
1026
1047
  return;
1027
1048
  const state = this.createRigidBodyState(body, this.objectRef.nativeElement);
1028
1049
  this.physics.rigidBodyStates.set(body.handle, transformState ? transformState(state) : state);
@@ -1135,11 +1156,11 @@ class NgtrRigidBody {
1135
1156
  };
1136
1157
  }
1137
1158
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRigidBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
1138
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: NgtrRigidBody, isStandalone: true, selector: "ngt-object3D[ngtrRigidBody]", inputs: { type: { classPropertyName: "type", publicName: "ngtrRigidBody", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, quaternion: { classPropertyName: "quaternion", publicName: "quaternion", isSignal: true, isRequired: false, transformFunction: null }, userData: { classPropertyName: "userData", publicName: "userData", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wake: "wake", sleep: "sleep", collisionEnter: "collisionEnter", collisionExit: "collisionExit", intersectionEnter: "intersectionEnter", intersectionExit: "intersectionExit", contactForce: "contactForce" }, exportAs: ["rigidBody"], ngImport: i0, template: `
1159
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: NgtrRigidBody, isStandalone: true, selector: "ngt-object3D[rigidBody]", inputs: { type: { classPropertyName: "type", publicName: "rigidBody", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, quaternion: { classPropertyName: "quaternion", publicName: "quaternion", isSignal: true, isRequired: false, transformFunction: null }, userData: { classPropertyName: "userData", publicName: "userData", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wake: "wake", sleep: "sleep", collisionEnter: "collisionEnter", collisionExit: "collisionExit", intersectionEnter: "intersectionEnter", intersectionExit: "intersectionExit", contactForce: "contactForce" }, exportAs: ["rigidBody"], ngImport: i0, template: `
1139
1160
  <ng-content />
1140
1161
  @for (childColliderOption of childColliderOptions(); track $index) {
1141
1162
  <ngt-object3D
1142
- [ngtrCollider]="childColliderOption.shape"
1163
+ [collider]="childColliderOption.shape"
1143
1164
  [args]="childColliderOption.args"
1144
1165
  [position]="childColliderOption.position"
1145
1166
  [rotation]="childColliderOption.rotation"
@@ -1148,18 +1169,18 @@ class NgtrRigidBody {
1148
1169
  [options]="childColliderOption.colliderOptions"
1149
1170
  />
1150
1171
  }
1151
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtrAnyCollider, selector: "ngt-object3D[ngtrCollider]", inputs: ["position", "rotation", "scale", "quaternion", "userData", "name", "options", "ngtrCollider", "args"], outputs: ["ngtrColliderChange", "argsChange", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1172
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtrAnyCollider, selector: "ngt-object3D[collider]", inputs: ["position", "rotation", "scale", "quaternion", "userData", "name", "options", "collider", "args"], outputs: ["colliderChange", "argsChange", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1152
1173
  }
1153
1174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRigidBody, decorators: [{
1154
1175
  type: Component,
1155
1176
  args: [{
1156
- selector: 'ngt-object3D[ngtrRigidBody]',
1177
+ selector: 'ngt-object3D[rigidBody]',
1157
1178
  exportAs: 'rigidBody',
1158
1179
  template: `
1159
1180
  <ng-content />
1160
1181
  @for (childColliderOption of childColliderOptions(); track $index) {
1161
1182
  <ngt-object3D
1162
- [ngtrCollider]="childColliderOption.shape"
1183
+ [collider]="childColliderOption.shape"
1163
1184
  [args]="childColliderOption.args"
1164
1185
  [position]="childColliderOption.position"
1165
1186
  [rotation]="childColliderOption.rotation"
@@ -1191,11 +1212,11 @@ class NgtrCuboidCollider {
1191
1212
  });
1192
1213
  }
1193
1214
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrCuboidCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1194
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrCuboidCollider, isStandalone: true, selector: "ngt-object3D[ngtrCuboidCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1215
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrCuboidCollider, isStandalone: true, selector: "ngt-object3D[cuboidCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1195
1216
  }
1196
1217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrCuboidCollider, decorators: [{
1197
1218
  type: Directive,
1198
- args: [{ selector: 'ngt-object3D[ngtrCuboidCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1219
+ args: [{ selector: 'ngt-object3D[cuboidCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1199
1220
  }], ctorParameters: () => [] });
1200
1221
  class NgtrCapsuleCollider {
1201
1222
  args = input.required();
@@ -1207,11 +1228,11 @@ class NgtrCapsuleCollider {
1207
1228
  });
1208
1229
  }
1209
1230
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrCapsuleCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1210
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrCapsuleCollider, isStandalone: true, selector: "ngt-object3D[ngtrCapsuleCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1231
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrCapsuleCollider, isStandalone: true, selector: "ngt-object3D[capsuleCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1211
1232
  }
1212
1233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrCapsuleCollider, decorators: [{
1213
1234
  type: Directive,
1214
- args: [{ selector: 'ngt-object3D[ngtrCapsuleCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1235
+ args: [{ selector: 'ngt-object3D[capsuleCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1215
1236
  }], ctorParameters: () => [] });
1216
1237
  class NgtrBallCollider {
1217
1238
  args = input.required();
@@ -1223,11 +1244,11 @@ class NgtrBallCollider {
1223
1244
  });
1224
1245
  }
1225
1246
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrBallCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1226
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrBallCollider, isStandalone: true, selector: "ngt-object3D[ngtrBallCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1247
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrBallCollider, isStandalone: true, selector: "ngt-object3D[ballCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1227
1248
  }
1228
1249
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrBallCollider, decorators: [{
1229
1250
  type: Directive,
1230
- args: [{ selector: 'ngt-object3D[ngtrBallCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1251
+ args: [{ selector: 'ngt-object3D[ballCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1231
1252
  }], ctorParameters: () => [] });
1232
1253
  class NgtrConvexHullCollider {
1233
1254
  args = input.required();
@@ -1239,11 +1260,11 @@ class NgtrConvexHullCollider {
1239
1260
  });
1240
1261
  }
1241
1262
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrConvexHullCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1242
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrConvexHullCollider, isStandalone: true, selector: "ngt-object3D[ngtrConvexHullCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1263
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrConvexHullCollider, isStandalone: true, selector: "ngt-object3D[convexHullCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1243
1264
  }
1244
1265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrConvexHullCollider, decorators: [{
1245
1266
  type: Directive,
1246
- args: [{ selector: 'ngt-object3D[ngtrConvexHullCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1267
+ args: [{ selector: 'ngt-object3D[convexHullCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1247
1268
  }], ctorParameters: () => [] });
1248
1269
  class NgtrHeightfieldCollider {
1249
1270
  args = input.required();
@@ -1255,11 +1276,11 @@ class NgtrHeightfieldCollider {
1255
1276
  });
1256
1277
  }
1257
1278
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrHeightfieldCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1258
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrHeightfieldCollider, isStandalone: true, selector: "ngt-object3D[ngtrHeightfieldCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1279
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrHeightfieldCollider, isStandalone: true, selector: "ngt-object3D[heightfieldCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1259
1280
  }
1260
1281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrHeightfieldCollider, decorators: [{
1261
1282
  type: Directive,
1262
- args: [{ selector: 'ngt-object3D[ngtrHeightfieldCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1283
+ args: [{ selector: 'ngt-object3D[heightfieldCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1263
1284
  }], ctorParameters: () => [] });
1264
1285
  class NgtrTrimeshCollider {
1265
1286
  args = input.required();
@@ -1271,11 +1292,11 @@ class NgtrTrimeshCollider {
1271
1292
  });
1272
1293
  }
1273
1294
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrTrimeshCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1274
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrTrimeshCollider, isStandalone: true, selector: "ngt-object3D[ngtrTrimeshCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1295
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrTrimeshCollider, isStandalone: true, selector: "ngt-object3D[trimeshCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1275
1296
  }
1276
1297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrTrimeshCollider, decorators: [{
1277
1298
  type: Directive,
1278
- args: [{ selector: 'ngt-object3D[ngtrTrimeshCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1299
+ args: [{ selector: 'ngt-object3D[trimeshCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1279
1300
  }], ctorParameters: () => [] });
1280
1301
  class NgtrPolylineCollider {
1281
1302
  args = input.required();
@@ -1287,11 +1308,11 @@ class NgtrPolylineCollider {
1287
1308
  });
1288
1309
  }
1289
1310
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrPolylineCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1290
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrPolylineCollider, isStandalone: true, selector: "ngt-object3D[ngtrPolylineCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1311
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrPolylineCollider, isStandalone: true, selector: "ngt-object3D[polylineCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1291
1312
  }
1292
1313
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrPolylineCollider, decorators: [{
1293
1314
  type: Directive,
1294
- args: [{ selector: 'ngt-object3D[ngtrPolylineCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1315
+ args: [{ selector: 'ngt-object3D[polylineCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1295
1316
  }], ctorParameters: () => [] });
1296
1317
  class NgtrRoundCuboidCollider {
1297
1318
  args = input.required();
@@ -1303,11 +1324,11 @@ class NgtrRoundCuboidCollider {
1303
1324
  });
1304
1325
  }
1305
1326
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundCuboidCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1306
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundCuboidCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundCuboidCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1327
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundCuboidCollider, isStandalone: true, selector: "ngt-object3D[roundCuboidCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1307
1328
  }
1308
1329
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundCuboidCollider, decorators: [{
1309
1330
  type: Directive,
1310
- args: [{ selector: 'ngt-object3D[ngtrRoundCuboidCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1331
+ args: [{ selector: 'ngt-object3D[roundCuboidCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1311
1332
  }], ctorParameters: () => [] });
1312
1333
  class NgtrCylinderCollider {
1313
1334
  args = input.required();
@@ -1319,11 +1340,11 @@ class NgtrCylinderCollider {
1319
1340
  });
1320
1341
  }
1321
1342
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrCylinderCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1322
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrCylinderCollider, isStandalone: true, selector: "ngt-object3D[ngtrCylinderCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1343
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrCylinderCollider, isStandalone: true, selector: "ngt-object3D[cylinderCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1323
1344
  }
1324
1345
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrCylinderCollider, decorators: [{
1325
1346
  type: Directive,
1326
- args: [{ selector: 'ngt-object3D[ngtrCylinderCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1347
+ args: [{ selector: 'ngt-object3D[cylinderCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1327
1348
  }], ctorParameters: () => [] });
1328
1349
  class NgtrRoundCylinderCollider {
1329
1350
  args = input.required();
@@ -1335,11 +1356,11 @@ class NgtrRoundCylinderCollider {
1335
1356
  });
1336
1357
  }
1337
1358
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundCylinderCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1338
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundCylinderCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundCylinderCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1359
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundCylinderCollider, isStandalone: true, selector: "ngt-object3D[roundCylinderCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1339
1360
  }
1340
1361
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundCylinderCollider, decorators: [{
1341
1362
  type: Directive,
1342
- args: [{ selector: 'ngt-object3D[ngtrRoundCylinderCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1363
+ args: [{ selector: 'ngt-object3D[roundCylinderCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1343
1364
  }], ctorParameters: () => [] });
1344
1365
  class NgtrConeCollider {
1345
1366
  args = input.required();
@@ -1351,11 +1372,11 @@ class NgtrConeCollider {
1351
1372
  });
1352
1373
  }
1353
1374
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrConeCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1354
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrConeCollider, isStandalone: true, selector: "ngt-object3D[ngtrConeCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1375
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrConeCollider, isStandalone: true, selector: "ngt-object3D[coneCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1355
1376
  }
1356
1377
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrConeCollider, decorators: [{
1357
1378
  type: Directive,
1358
- args: [{ selector: 'ngt-object3D[ngtrConeCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1379
+ args: [{ selector: 'ngt-object3D[coneCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1359
1380
  }], ctorParameters: () => [] });
1360
1381
  class NgtrRoundConeCollider {
1361
1382
  args = input.required();
@@ -1367,11 +1388,11 @@ class NgtrRoundConeCollider {
1367
1388
  });
1368
1389
  }
1369
1390
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundConeCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1370
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundConeCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundConeCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1391
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundConeCollider, isStandalone: true, selector: "ngt-object3D[roundConeCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1371
1392
  }
1372
1393
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundConeCollider, decorators: [{
1373
1394
  type: Directive,
1374
- args: [{ selector: 'ngt-object3D[ngtrRoundConeCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1395
+ args: [{ selector: 'ngt-object3D[roundConeCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1375
1396
  }], ctorParameters: () => [] });
1376
1397
  class NgtrConvexMeshCollider {
1377
1398
  args = input.required();
@@ -1383,11 +1404,11 @@ class NgtrConvexMeshCollider {
1383
1404
  });
1384
1405
  }
1385
1406
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrConvexMeshCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1386
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrConvexMeshCollider, isStandalone: true, selector: "ngt-object3D[ngtrConvexMeshCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1407
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrConvexMeshCollider, isStandalone: true, selector: "ngt-object3D[convexMeshCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1387
1408
  }
1388
1409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrConvexMeshCollider, decorators: [{
1389
1410
  type: Directive,
1390
- args: [{ selector: 'ngt-object3D[ngtrConvexMeshCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1411
+ args: [{ selector: 'ngt-object3D[convexMeshCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1391
1412
  }], ctorParameters: () => [] });
1392
1413
  class NgtrRoundConvexHullCollider {
1393
1414
  args = input.required();
@@ -1399,11 +1420,11 @@ class NgtrRoundConvexHullCollider {
1399
1420
  });
1400
1421
  }
1401
1422
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundConvexHullCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1402
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundConvexHullCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundConvexHullCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1423
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundConvexHullCollider, isStandalone: true, selector: "ngt-object3D[roundConvexHullCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1403
1424
  }
1404
1425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundConvexHullCollider, decorators: [{
1405
1426
  type: Directive,
1406
- args: [{ selector: 'ngt-object3D[ngtrRoundConvexHullCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1427
+ args: [{ selector: 'ngt-object3D[roundConvexHullCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1407
1428
  }], ctorParameters: () => [] });
1408
1429
  class NgtrRoundConvexMeshCollider {
1409
1430
  args = input.required();
@@ -1415,11 +1436,11 @@ class NgtrRoundConvexMeshCollider {
1415
1436
  });
1416
1437
  }
1417
1438
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundConvexMeshCollider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1418
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundConvexMeshCollider, isStandalone: true, selector: "ngt-object3D[ngtrRoundConvexMeshCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1439
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", type: NgtrRoundConvexMeshCollider, isStandalone: true, selector: "ngt-object3D[roundConvexMeshCollider]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: NgtrAnyCollider, inputs: ["options", "options", "name", "name", "scale", "scale", "position", "position", "quaternion", "quaternion", "rotation", "rotation", "userData", "userData"], outputs: ["collisionEnter", "collisionEnter", "collisionExit", "collisionExit", "intersectionEnter", "intersectionEnter", "intersectionExit", "intersectionExit", "contactForce", "contactForce"] }], ngImport: i0 });
1419
1440
  }
1420
1441
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrRoundConvexMeshCollider, decorators: [{
1421
1442
  type: Directive,
1422
- args: [{ selector: 'ngt-object3D[ngtrRoundConvexMeshCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1443
+ args: [{ selector: 'ngt-object3D[roundConvexMeshCollider]', hostDirectives: [ANY_COLLIDER_HOST_DIRECTIVE] }]
1423
1444
  }], ctorParameters: () => [] });
1424
1445
 
1425
1446
  const defaultOptions = rigidBodyDefaultOptions;
@@ -1430,7 +1451,7 @@ class NgtrInstancedRigidBodies {
1430
1451
  quaternion = input([0, 0, 0, 1]);
1431
1452
  userData = input({});
1432
1453
  instances = input([], {
1433
- alias: 'ngtrInstancedRigidBodies',
1454
+ alias: 'instancedRigidBodies',
1434
1455
  transform: (value) => {
1435
1456
  if (value === '')
1436
1457
  return [];
@@ -1456,11 +1477,11 @@ class NgtrInstancedRigidBodies {
1456
1477
  const instanceWrapper = this.instanceWrapperRef().nativeElement;
1457
1478
  if (!instanceWrapper)
1458
1479
  return null;
1459
- const localState = getLocalState(instanceWrapper);
1460
- if (!localState)
1480
+ const instanceState = getInstanceState(instanceWrapper);
1481
+ if (!instanceState)
1461
1482
  return null;
1462
1483
  // track object's children
1463
- localState.objects();
1484
+ instanceState.objects();
1464
1485
  const firstChild = instanceWrapper.children[0];
1465
1486
  if (!firstChild || !firstChild.isInstancedMesh)
1466
1487
  return null;
@@ -1506,12 +1527,12 @@ class NgtrInstancedRigidBodies {
1506
1527
  // if colliders on object is not set, use physics colliders
1507
1528
  if (!options.colliders)
1508
1529
  options.colliders = physicsColliders;
1509
- const objectLocalState = getLocalState(this.objectRef.nativeElement);
1510
- if (!objectLocalState)
1530
+ const objectInstanceState = getInstanceState(this.objectRef.nativeElement);
1531
+ if (!objectInstanceState)
1511
1532
  return [];
1512
1533
  // track object's parent and non-object children
1513
- const [parent] = [objectLocalState.parent(), objectLocalState.nonObjects()];
1514
- if (!parent || !parent.isObject3D)
1534
+ const [parent] = [objectInstanceState.parent(), objectInstanceState.nonObjects()];
1535
+ if (!parent || !is.three(parent, 'isObject3D'))
1515
1536
  return [];
1516
1537
  return createColliderOptions(this.objectRef.nativeElement, options);
1517
1538
  });
@@ -1525,18 +1546,18 @@ class NgtrInstancedRigidBodies {
1525
1546
  const instancedMesh = this.instancedMesh();
1526
1547
  if (!instancedMesh)
1527
1548
  return;
1528
- instancedMesh.instanceMatrix.setUsage(DynamicDrawUsage);
1549
+ instancedMesh.instanceMatrix.setUsage(THREE.DynamicDrawUsage);
1529
1550
  });
1530
1551
  }
1531
1552
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrInstancedRigidBodies, deps: [], target: i0.ɵɵFactoryTarget.Component });
1532
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: NgtrInstancedRigidBodies, isStandalone: true, selector: "ngt-object3D[ngtrInstancedRigidBodies]", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, quaternion: { classPropertyName: "quaternion", publicName: "quaternion", isSignal: true, isRequired: false, transformFunction: null }, userData: { classPropertyName: "userData", publicName: "userData", isSignal: true, isRequired: false, transformFunction: null }, instances: { classPropertyName: "instances", publicName: "ngtrInstancedRigidBodies", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "instanceWrapperRef", first: true, predicate: ["instanceWrapper"], descendants: true, isSignal: true }, { propertyName: "rigidBodyRefs", predicate: NgtrRigidBody, descendants: true, isSignal: true }], exportAs: ["instancedRigidBodies"], ngImport: i0, template: `
1553
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: NgtrInstancedRigidBodies, isStandalone: true, selector: "ngt-object3D[instancedRigidBodies]", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, rotation: { classPropertyName: "rotation", publicName: "rotation", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, quaternion: { classPropertyName: "quaternion", publicName: "quaternion", isSignal: true, isRequired: false, transformFunction: null }, userData: { classPropertyName: "userData", publicName: "userData", isSignal: true, isRequired: false, transformFunction: null }, instances: { classPropertyName: "instances", publicName: "instancedRigidBodies", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "instanceWrapperRef", first: true, predicate: ["instanceWrapper"], descendants: true, isSignal: true }, { propertyName: "rigidBodyRefs", predicate: NgtrRigidBody, descendants: true, isSignal: true }], exportAs: ["instancedRigidBodies"], ngImport: i0, template: `
1533
1554
  <ngt-object3D #instanceWrapper>
1534
1555
  <ng-content />
1535
1556
  </ngt-object3D>
1536
1557
 
1537
1558
  @for (instance of instancesOptions(); track instance.key) {
1538
1559
  <ngt-object3D
1539
- [ngtrRigidBody]="instance.type"
1560
+ [rigidBody]="instance.type"
1540
1561
  [options]="instance.options"
1541
1562
  [position]="instance.position"
1542
1563
  [rotation]="instance.rotation"
@@ -1549,7 +1570,7 @@ class NgtrInstancedRigidBodies {
1549
1570
 
1550
1571
  @for (childColliderOption of childColliderOptions(); track $index) {
1551
1572
  <ngt-object3D
1552
- [ngtrCollider]="childColliderOption.shape"
1573
+ [collider]="childColliderOption.shape"
1553
1574
  [args]="childColliderOption.args"
1554
1575
  [position]="childColliderOption.position"
1555
1576
  [rotation]="childColliderOption.rotation"
@@ -1560,12 +1581,12 @@ class NgtrInstancedRigidBodies {
1560
1581
  }
1561
1582
  </ngt-object3D>
1562
1583
  }
1563
- `, isInline: true, dependencies: [{ kind: "component", type: NgtrRigidBody, selector: "ngt-object3D[ngtrRigidBody]", inputs: ["ngtrRigidBody", "position", "rotation", "scale", "quaternion", "userData", "options"], outputs: ["wake", "sleep", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"], exportAs: ["rigidBody"] }, { kind: "directive", type: NgtrAnyCollider, selector: "ngt-object3D[ngtrCollider]", inputs: ["position", "rotation", "scale", "quaternion", "userData", "name", "options", "ngtrCollider", "args"], outputs: ["ngtrColliderChange", "argsChange", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1584
+ `, isInline: true, dependencies: [{ kind: "component", type: NgtrRigidBody, selector: "ngt-object3D[rigidBody]", inputs: ["rigidBody", "position", "rotation", "scale", "quaternion", "userData", "options"], outputs: ["wake", "sleep", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"], exportAs: ["rigidBody"] }, { kind: "directive", type: NgtrAnyCollider, selector: "ngt-object3D[collider]", inputs: ["position", "rotation", "scale", "quaternion", "userData", "name", "options", "collider", "args"], outputs: ["colliderChange", "argsChange", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1564
1585
  }
1565
1586
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrInstancedRigidBodies, decorators: [{
1566
1587
  type: Component,
1567
1588
  args: [{
1568
- selector: 'ngt-object3D[ngtrInstancedRigidBodies]',
1589
+ selector: 'ngt-object3D[instancedRigidBodies]',
1569
1590
  exportAs: 'instancedRigidBodies',
1570
1591
  template: `
1571
1592
  <ngt-object3D #instanceWrapper>
@@ -1574,7 +1595,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1574
1595
 
1575
1596
  @for (instance of instancesOptions(); track instance.key) {
1576
1597
  <ngt-object3D
1577
- [ngtrRigidBody]="instance.type"
1598
+ [rigidBody]="instance.type"
1578
1599
  [options]="instance.options"
1579
1600
  [position]="instance.position"
1580
1601
  [rotation]="instance.rotation"
@@ -1587,7 +1608,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1587
1608
 
1588
1609
  @for (childColliderOption of childColliderOptions(); track $index) {
1589
1610
  <ngt-object3D
1590
- [ngtrCollider]="childColliderOption.shape"
1611
+ [collider]="childColliderOption.shape"
1591
1612
  [args]="childColliderOption.args"
1592
1613
  [position]="childColliderOption.position"
1593
1614
  [rotation]="childColliderOption.rotation"
@@ -1718,12 +1739,12 @@ class NgtrMeshCollider {
1718
1739
  childColliderOptions = computed(() => {
1719
1740
  const rigidBodyOptions = this.rigidBody.options();
1720
1741
  rigidBodyOptions.colliders = this.colliders();
1721
- const objectLocalState = getLocalState(this.objectRef.nativeElement);
1722
- if (!objectLocalState)
1742
+ const objectInstaceState = getInstanceState(this.objectRef.nativeElement);
1743
+ if (!objectInstaceState)
1723
1744
  return [];
1724
1745
  // track object's children
1725
- objectLocalState.nonObjects();
1726
- objectLocalState.objects();
1746
+ objectInstaceState.nonObjects();
1747
+ objectInstaceState.objects();
1727
1748
  return createColliderOptions(this.objectRef.nativeElement, rigidBodyOptions, false);
1728
1749
  });
1729
1750
  constructor() {
@@ -1732,11 +1753,11 @@ class NgtrMeshCollider {
1732
1753
  this.objectRef.nativeElement.userData['ngtrRapierType'] = 'MeshCollider';
1733
1754
  }
1734
1755
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrMeshCollider, deps: [], target: i0.ɵɵFactoryTarget.Component });
1735
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: NgtrMeshCollider, isStandalone: true, selector: "ngt-object3D[ngtrMeshCollider]", inputs: { colliders: { classPropertyName: "colliders", publicName: "ngtrMeshCollider", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
1756
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: NgtrMeshCollider, isStandalone: true, selector: "ngt-object3D[meshCollider]", inputs: { colliders: { classPropertyName: "colliders", publicName: "ngtrMeshCollider", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
1736
1757
  <ng-content />
1737
1758
  @for (childColliderOption of childColliderOptions(); track $index) {
1738
1759
  <ngt-object3D
1739
- [ngtrCollider]="childColliderOption.shape"
1760
+ [collider]="childColliderOption.shape"
1740
1761
  [args]="childColliderOption.args"
1741
1762
  [position]="childColliderOption.position"
1742
1763
  [rotation]="childColliderOption.rotation"
@@ -1745,17 +1766,17 @@ class NgtrMeshCollider {
1745
1766
  [options]="childColliderOption.colliderOptions"
1746
1767
  />
1747
1768
  }
1748
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtrAnyCollider, selector: "ngt-object3D[ngtrCollider]", inputs: ["position", "rotation", "scale", "quaternion", "userData", "name", "options", "ngtrCollider", "args"], outputs: ["ngtrColliderChange", "argsChange", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1769
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtrAnyCollider, selector: "ngt-object3D[collider]", inputs: ["position", "rotation", "scale", "quaternion", "userData", "name", "options", "collider", "args"], outputs: ["colliderChange", "argsChange", "collisionEnter", "collisionExit", "intersectionEnter", "intersectionExit", "contactForce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1749
1770
  }
1750
1771
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtrMeshCollider, decorators: [{
1751
1772
  type: Component,
1752
1773
  args: [{
1753
- selector: 'ngt-object3D[ngtrMeshCollider]',
1774
+ selector: 'ngt-object3D[meshCollider]',
1754
1775
  template: `
1755
1776
  <ng-content />
1756
1777
  @for (childColliderOption of childColliderOptions(); track $index) {
1757
1778
  <ngt-object3D
1758
- [ngtrCollider]="childColliderOption.shape"
1779
+ [collider]="childColliderOption.shape"
1759
1780
  [args]="childColliderOption.args"
1760
1781
  [position]="childColliderOption.position"
1761
1782
  [rotation]="childColliderOption.rotation"