angular-three-rapier
Version:
Physics Rapier for Angular Three
107 lines (106 loc) • 6.96 kB
TypeScript
import { ElementRef } from '@angular/core';
import { RigidBody } from '@dimforge/rapier3d-compat';
import { NgtEuler, NgtQuaternion, NgtVector3 } from 'angular-three';
import { Object3D, Vector3 } from 'three';
import { NgtrColliderOptions, NgtrColliderShape, NgtrCollisionEnterPayload, NgtrCollisionExitPayload, NgtrContactForcePayload, NgtrIntersectionEnterPayload, NgtrIntersectionExitPayload, NgtrRigidBodyOptions, NgtrRigidBodyType } from './types';
import * as i0 from "@angular/core";
export declare class NgtrAnyCollider {
position: import("@angular/core").InputSignal<NgtVector3 | undefined>;
rotation: import("@angular/core").InputSignal<NgtEuler | undefined>;
scale: import("@angular/core").InputSignal<NgtVector3 | undefined>;
quaternion: import("@angular/core").InputSignal<NgtQuaternion | undefined>;
userData: import("@angular/core").InputSignal<Record<string, any> | undefined>;
name: import("@angular/core").InputSignal<string | undefined>;
options: import("@angular/core").InputSignalWithTransform<NgtrColliderOptions, "" | Partial<NgtrRigidBodyOptions>>;
private object3DParameters;
shape: import("@angular/core").ModelSignal<NgtrColliderShape | undefined>;
args: import("@angular/core").ModelSignal<unknown[]>;
collisionEnter: import("@angular/core").OutputEmitterRef<NgtrCollisionEnterPayload>;
collisionExit: import("@angular/core").OutputEmitterRef<NgtrCollisionExitPayload>;
intersectionEnter: import("@angular/core").OutputEmitterRef<NgtrIntersectionEnterPayload>;
intersectionExit: import("@angular/core").OutputEmitterRef<NgtrIntersectionExitPayload>;
contactForce: import("@angular/core").OutputEmitterRef<NgtrContactForcePayload>;
private sensor;
private collisionGroups;
private solverGroups;
private friction;
private frictionCombineRule;
private restitution;
private restitutionCombineRule;
private activeCollisionTypes;
private contactSkin;
private mass;
private massProperties;
private density;
private rigidBody;
private physics;
private objectRef;
private scaledArgs;
private collider;
constructor();
get worldScale(): Vector3;
setShape(shape: NgtrColliderShape): void;
setArgs(args: unknown[]): void;
private createColliderStateEffect;
private createColliderEventsEffect;
private updateColliderEffect;
private updateMassPropertiesEffect;
private createColliderState;
private scaleVertices;
static ɵfac: i0.ɵɵFactoryDeclaration<NgtrAnyCollider, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<NgtrAnyCollider, "ngt-object3D[ngtrCollider]", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "quaternion": { "alias": "quaternion"; "required": false; "isSignal": true; }; "userData": { "alias": "userData"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "shape": { "alias": "ngtrCollider"; "required": false; "isSignal": true; }; "args": { "alias": "args"; "required": false; "isSignal": true; }; }, { "shape": "ngtrColliderChange"; "args": "argsChange"; "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }, never, never, true, never>;
}
export declare const rigidBodyDefaultOptions: NgtrRigidBodyOptions;
export declare class NgtrRigidBody {
type: import("@angular/core").InputSignalWithTransform<NgtrRigidBodyType, "" | NgtrRigidBodyType | undefined>;
position: import("@angular/core").InputSignal<NgtVector3 | undefined>;
rotation: import("@angular/core").InputSignal<NgtEuler | undefined>;
scale: import("@angular/core").InputSignal<NgtVector3 | undefined>;
quaternion: import("@angular/core").InputSignal<NgtQuaternion | undefined>;
userData: import("@angular/core").InputSignal<Record<string, any> | undefined>;
options: import("@angular/core").InputSignalWithTransform<NgtrRigidBodyOptions, "" | Partial<NgtrRigidBodyOptions>>;
private object3DParameters;
wake: import("@angular/core").OutputEmitterRef<void>;
sleep: import("@angular/core").OutputEmitterRef<void>;
collisionEnter: import("@angular/core").OutputEmitterRef<NgtrCollisionEnterPayload>;
collisionExit: import("@angular/core").OutputEmitterRef<NgtrCollisionExitPayload>;
intersectionEnter: import("@angular/core").OutputEmitterRef<NgtrIntersectionEnterPayload>;
intersectionExit: import("@angular/core").OutputEmitterRef<NgtrIntersectionExitPayload>;
contactForce: import("@angular/core").OutputEmitterRef<NgtrContactForcePayload>;
private canSleep;
private colliders;
private transformState;
private gravityScale;
private dominanceGroup;
private ccd;
private softCcdPrediction;
private additionalSolverIterations;
private linearDamping;
private angularDamping;
private lockRotations;
private lockTranslations;
private enabledRotations;
private enabledTranslations;
private angularVelocity;
private linearVelocity;
objectRef: ElementRef<Object3D<import("three").Object3DEventMap>>;
private physics;
private bodyType;
private bodyDesc;
rigidBody: import("@angular/core").Signal<RigidBody | null>;
protected childColliderOptions: import("@angular/core").Signal<{
colliderOptions: NgtrColliderOptions;
args: unknown[];
shape: NgtrColliderShape;
rotation: NgtEuler;
position: NgtVector3;
scale: NgtVector3;
}[]>;
constructor();
private createRigidBodyStateEffect;
private createRigidBodyEventsEffect;
private updateRigidBodyEffect;
private createRigidBodyState;
static ɵfac: i0.ɵɵFactoryDeclaration<NgtrRigidBody, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgtrRigidBody, "ngt-object3D[ngtrRigidBody]", ["rigidBody"], { "type": { "alias": "ngtrRigidBody"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "quaternion": { "alias": "quaternion"; "required": false; "isSignal": true; }; "userData": { "alias": "userData"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "wake": "wake"; "sleep": "sleep"; "collisionEnter": "collisionEnter"; "collisionExit": "collisionExit"; "intersectionEnter": "intersectionEnter"; "intersectionExit": "intersectionExit"; "contactForce": "contactForce"; }, never, ["*"], true, never>;
}