import RAPIER from '@dimforge/rapier3d-compat'; import { Component } from '@certe/atmos-core'; import type { PhysicsWorld } from './physics-world.js'; import { RigidBody } from './rigid-body.js'; export type ColliderShape = { type: 'box'; halfExtents: { x: number; y: number; z: number; }; center?: { x: number; y: number; z: number; }; } | { type: 'sphere'; radius: number; } | { type: 'capsule'; halfHeight: number; radius: number; } | { type: 'cylinder'; halfHeight: number; radius: number; } | { type: 'convexHull'; vertices: Float32Array; }; export interface ColliderOptions { shape: ColliderShape; friction?: number; restitution?: number; density?: number; isSensor?: boolean; } export declare class Collider extends Component { collider: RAPIER.Collider | null; /** Unscaled base shape dimensions, stored at init time */ private _baseShape; private _pendingShape; private _options; private _world; /** The RigidBody this collider is attached to (may be on an ancestor) */ private _bodyRb; /** The GameObject that owns the RigidBody */ private _bodyGo; private _friction; private _restitution; private _density; private _isSensor; get friction(): number; set friction(v: number); get restitution(): number; set restitution(v: number); get density(): number; set density(v: number); get isSensor(): boolean; set isSensor(v: boolean); get attachedBody(): RigidBody | null; get shape(): ColliderShape | null; set shape(s: ColliderShape); get isChildCollider(): boolean; init(world: PhysicsWorld, options: ColliderOptions): void; /** Recompute this child collider's offset from the current transform hierarchy. */ syncOffset(): void; /** Auto-initialize if not already initialized (called by PhysicsSystem). */ autoInit(world: PhysicsWorld): void; /** Destroy and re-create the collider (e.g. after reparenting). */ reattach(world: PhysicsWorld): void; applyScale(sx: number, sy: number, sz: number): void; /** Apply shape center offset (scaled), e.g. for plane collider where top face = visual surface. */ private _applyCenterOffset; onDestroy(): void; private _createDesc; } //# sourceMappingURL=collider.d.ts.map