/** * Vertex snapping operations * Core logic for snapping elements to vertices */ import { OutlinerElement } from '../geometry/outliner_element'; import { Cube } from '../geometry/cube'; import { Mesh } from '../geometry/mesh'; import { Vector3 } from './transform'; export interface VertexSnapOptions { mode: 'move' | 'scale' | 'rotate'; ignoreAxis?: { x?: boolean; y?: boolean; z?: boolean; }; align?: 'longest' | 'direction' | 'x' | 'y' | 'z'; } /** * Get global vertex position from element */ export declare function getGlobalVertexPosition(element: OutlinerElement, vertex: Vector3 | string, worldMatrix?: any): Vector3; /** * Calculate distance between two vertices */ export declare function getVertexDistance(vertex1: Vector3, vertex2: Vector3): number; /** * Snap element origin to target vertex (move mode) */ export declare function snapElementOrigin(element: OutlinerElement, targetVertex: Vector3, options?: VertexSnapOptions): void; /** * Snap mesh vertices to target vertex */ export declare function snapMeshVertices(mesh: Mesh, selectedVertices: string[], targetVertex: Vector3, options?: VertexSnapOptions): void; /** * Snap cube to target vertex (scale mode) * Scales cube by moving from/to points */ export declare function snapCubeScale(cube: Cube, targetVertex: Vector3, vertexIndex: number, options?: VertexSnapOptions): void; /** * Snap element rotation (rotate mode) */ export declare function snapElementRotation(element: OutlinerElement, startVertex: Vector3, targetVertex: Vector3, options?: VertexSnapOptions): void; //# sourceMappingURL=vertex_snap.d.ts.map