import type { Matrix } from "@babylonjs/core/Maths/math.vector"; import { Vector3 } from "@babylonjs/core/Maths/math.vector"; import type { DeepImmutable, Nullable } from "@babylonjs/core/types"; import type { IBulletWasmInstance } from "./bulletWasmInstance"; import { MotionType } from "./motionType"; import type { PhysicsShape } from "./physicsShape"; /** * RigidBodyConstructionInfo is used to create a rigid body in the physics engine * * it contains all the information needed to create a rigid body, such as the shape, mass, inertia, damping, etc. */ export declare class RigidBodyConstructionInfo { private readonly _wasmInstance; private readonly _uint32Ptr; private readonly _float32Ptr; private readonly _uint8Ptr; private readonly _uint16Ptr; private readonly _inner; /** * Creates a new RigidBodyConstructionInfo * @param wasmInstance The BulletWasmInstance to use */ constructor(wasmInstance: IBulletWasmInstance); /** * Disposes the RigidBodyConstructionInfo */ dispose(): void; /** * @internal */ get ptr(): number; private _nullCheck; /** * The shape of the rigid body */ get shape(): Nullable; set shape(value: Nullable); /** * Gets the initial transform of the rigid body * @param result The matrix to store the result * @returns The initial transform of the rigid body */ getInitialTransformToRef(result: Matrix): Matrix; /** * Sets the initial transform of the rigid body * @param value The initial transform of the rigid body */ setInitialTransform(value: DeepImmutable): void; /** * The motion type of the rigid body */ get motionType(): MotionType; set motionType(value: MotionType); /** * The mass of the rigid body */ get mass(): number; set mass(value: number); /** * The local inertia of the rigid body * * If the local inertia is not set, it will be calculated from the shape */ get localInertia(): Nullable; set localInertia(value: Nullable>); /** * The linear damping of the rigid body */ get linearDamping(): number; set linearDamping(value: number); /** * The angular damping of the rigid body */ get angularDamping(): number; set angularDamping(value: number); /** * The friction of the rigid body */ get friction(): number; set friction(value: number); /** * The restitution of the rigid body */ get restitution(): number; set restitution(value: number); /** * The linear sleeping threshold of the rigid body */ get linearSleepingThreshold(): number; set linearSleepingThreshold(value: number); /** * The angular sleeping threshold of the rigid body */ get angularSleepingThreshold(): number; set angularSleepingThreshold(value: number); /** * The collision group of the rigid body * * collision group is stored as 16-bit unsigned integer */ get collisionGroup(): number; set collisionGroup(value: number); /** * The collision mask of the rigid body * * collision mask is stored as 16-bit unsigned integer */ get collisionMask(): number; set collisionMask(value: number); /** * The additional damping of the rigid body */ get additionalDamping(): boolean; set additionalDamping(value: boolean); /** * The no contact response of the rigid body */ get noContactResponse(): boolean; set noContactResponse(value: boolean); /** * The disable deactivation of the rigid body */ get disableDeactivation(): boolean; set disableDeactivation(value: boolean); }