import { AmmoWorld } from '.'; import { Vec3, Vec4, AnyObject } from '../physics'; import { AmmoRigidBodyOptions } from './interface'; export declare class AmmoRigidBody { private _world; protected _body: AnyObject; get instance(): AnyObject; private get _ammo(); private get _tempTransform(); private get _tempVector(); private get _tempVector2(); private _mass; private get _tempQuaternion(); constructor(ammoWorld: AmmoWorld, options: AmmoRigidBodyOptions); private _createSphereShape; private _createBoxShape; private _createCylinderShape; private _createShape; private _init; getTransform(): { position: Vec3; rotation: Vec4; }; /** * 施加力,产生加速度,F=ma,是持续的力,一帧产生一次 * https://developer.apple.com/documentation/spritekit/skphysicsbody/making_physics_bodies_move * @param body * @param force 施加的力,单位是N(kg*m/s^2) * @param relPoint 使用的是相对中心的坐标 */ applyForce(force: Vec3, relPoint?: Vec3): void; /** * 施加脉冲,直接影响刚体速度,与原有速度叠加,是立即且一次性行为 * https://developer.apple.com/documentation/spritekit/skphysicsbody/making_physics_bodies_move * @param body * @param impulse 施加的冲量,单位是N*s(kg*m/s) * @param relPoint 使用的是相对中心的坐标 */ applyImpulse(impulse: Vec3, relPoint?: Vec3): void; clearForces(): void; private _updateTransform; setTransform(position: Vec3, rotation: Vec4): void; setPosition(x: number, y: number, z: number): void; setRotation(x: number, y: number, z: number, w: number): void; setAngularVelocity(value: Vec3): void; setLinearVelocity(value: Vec3): void; setMass(value: number): void; setFriction(value: number): void; setRestitution(value: number): void; /** * Sleeps the physics body and stops it from being active * @param impostor impostor to sleep */ sleep(): void; /** * Activates the physics body * @param impostor impostor to activate */ awake(): void; }