/** * Geometry Utilities * * 3D geometry calculations for galaxy visualization. */ import * as THREE from 'three'; import type { Vector3D } from '../types/index.js'; /** * Convert Vector3D to THREE.Vector3 */ export declare function toThreeVector(v: Vector3D): THREE.Vector3; /** * Convert THREE.Vector3 to Vector3D */ export declare function fromThreeVector(v: THREE.Vector3): Vector3D; /** * Calculate distance between two points */ export declare function distance(a: Vector3D, b: Vector3D): number; /** * Calculate midpoint between two points */ export declare function midpoint(a: Vector3D, b: Vector3D): Vector3D; /** * Normalize a vector */ export declare function normalize(v: Vector3D): Vector3D; /** * Scale a vector */ export declare function scale(v: Vector3D, s: number): Vector3D; /** * Add two vectors */ export declare function add(a: Vector3D, b: Vector3D): Vector3D; /** * Subtract two vectors */ export declare function subtract(a: Vector3D, b: Vector3D): Vector3D; /** * Linear interpolation between two vectors */ export declare function lerp(a: Vector3D, b: Vector3D, t: number): Vector3D; /** * Generate a curved path between two points (for hyperspace lanes) */ export declare function generateCurvedPath(start: Vector3D, end: Vector3D, _segments?: number, curvature?: number): THREE.CatmullRomCurve3; /** * Generate points along a curve */ export declare function getCurvePoints(curve: THREE.CatmullRomCurve3, segments: number): THREE.Vector3[]; /** * Calculate position on orbit */ export declare function getOrbitPosition(center: Vector3D, radius: number, angle: number, tilt?: number): Vector3D; /** * Generate orbit path points */ export declare function generateOrbitPath(center: Vector3D, radius: number, segments?: number, tilt?: number): Vector3D[]; /** * Calculate bounding sphere for a set of points */ export declare function calculateBoundingSphere(points: Vector3D[]): { center: Vector3D; radius: number; }; /** * Check if a point is within camera frustum */ export declare function isInFrustum(point: Vector3D, camera: THREE.Camera, margin?: number): boolean; /** * Calculate table size based on metrics */ export declare function calculateTableSize(rowCount: number, accessCount: number, minSize?: number, maxSize?: number): number; /** * Calculate field size based on access count */ export declare function calculateFieldSize(accessCount: number, isSensitive: boolean, baseSize?: number): number; /** * Calculate path width based on frequency */ export declare function calculatePathWidth(frequency: number, minWidth?: number, maxWidth?: number): number; /** * Calculate camera position to frame a set of points */ export declare function calculateFramingPosition(points: Vector3D[], fov: number, _aspectRatio: number): { position: Vector3D; target: Vector3D; }; /** * Smooth camera transition parameters */ export declare function calculateCameraTransition(currentPos: Vector3D, targetPos: Vector3D, currentTarget: Vector3D, newTarget: Vector3D, progress: number): { position: Vector3D; target: Vector3D; }; //# sourceMappingURL=geometry-utils.d.ts.map