import * as THREE from "three"; import { BodyResolved } from "../modules/body"; import { ECSContext } from "../core/ecs"; export declare class Transform { position: THREE.Vector3; rotation: THREE.Quaternion; scale: THREE.Vector3; constructor(position?: THREE.Vector3, rotation?: THREE.Quaternion | THREE.Euler, scale?: THREE.Vector3); setRotationFromEuler(euler: THREE.Euler): void; get xAxis(): THREE.Vector3; get yAxis(): THREE.Vector3; get zAxis(): THREE.Vector3; } /** * Calculate bounding box from body parts recursively in local space */ export declare function calculateLocalBodyBounds(parts: BodyResolved["parts"]): THREE.Box3; /** * Calculate bounding box from body parts recursively */ export declare function calculateBodyBounds(parts: BodyResolved["parts"], parentTransform?: THREE.Matrix4): THREE.Box3; export interface Vec3 { x: number; y: number; z: number; } /** * Yaw in XZ plane (rotation around Y axis). * Returns radians. */ export declare function yawXZ(from: Vec3, to: Vec3): number; /** * Pitch (tilt up/down around X axis). * Returns radians. */ export declare function pitchY(from: Vec3, to: Vec3): number; /** * Get world space bounds center for an entity with a Body component * @param ctx - ECS context * @param eid - Entity ID * @returns World space bounds center, or null if entity has no body */ export declare function getWorldSpaceBoundsCenter(ctx: ECSContext, eid: number): Vec3 | null; export declare function setWorldRotationFromEuler(object: THREE.Object3D, x: number, y: number, z: number): void; //# sourceMappingURL=geometry.d.ts.map