/** * UV Wrapping & Edge Cases * * Handles UV wrapping, mirrored UVs, per-face UV mode, and edge cases * for painting across UV boundaries. */ import { Texture } from './texture'; import { CubeFace } from '../geometry/cube_face'; import { MeshFace } from '../geometry/mesh_face'; export interface UVWrapOptions { wrapX?: boolean; wrapY?: boolean; mirrorX?: boolean; mirrorY?: boolean; } /** * Wrap UV coordinates for tiled textures */ export declare function wrapUVCoordinates(uv: [number, number], texture: Texture, options?: UVWrapOptions): [number, number]; /** * Check if UV coordinates are within face bounds */ export declare function isUVInFaceBounds(uv: [number, number], face: CubeFace | MeshFace): boolean; /** * Get face UV bounds */ export declare function getFaceUVBounds(face: CubeFace | MeshFace): { minU: number; maxU: number; minV: number; maxV: number; } | null; /** * Handle UV wrapping when painting across edges */ export declare function handleUVWrapping(uv: [number, number], texture: Texture, face: CubeFace | MeshFace, options?: UVWrapOptions): [number, number]; /** * Check if painting should wrap across UV boundaries */ export declare function shouldWrapUV(uv1: [number, number], uv2: [number, number], texture: Texture): { wrapX: boolean; wrapY: boolean; }; //# sourceMappingURL=uv_wrapping.d.ts.map