/** * Point movement instructions * * These are the core hinting operations that actually move glyph points. */ import { type ExecContext, type F26Dot6, type GlyphZone, type Point } from "../types.ts"; /** * Project a point onto the projection vector */ export declare function project(ctx: ExecContext, p: Point): F26Dot6; /** * Project using dual vector (for original positions) */ export declare function dualProject(ctx: ExecContext, p: Point): F26Dot6; /** * Move a point along the freedom vector */ export declare function movePoint(ctx: ExecContext, zone: GlyphZone, pointIndex: number, distance: F26Dot6): void; /** * Get current position of a point projected onto projection vector */ export declare function getCurrent(ctx: ExecContext, zone: GlyphZone, pointIndex: number): F26Dot6; /** * Get original position of a point projected onto dual vector */ export declare function getOriginal(ctx: ExecContext, zone: GlyphZone, pointIndex: number): F26Dot6; /** * Mark point as touched in the current direction */ export declare function touchPoint(ctx: ExecContext, zone: GlyphZone, pointIndex: number): void; /** MDAP - Move Direct Absolute Point */ export declare function MDAP(ctx: ExecContext, doRound: boolean): void; /** MIAP - Move Indirect Absolute Point (uses CVT) */ export declare function MIAP(ctx: ExecContext, doRound: boolean): void; /** MDRP - Move Direct Relative Point */ export declare function MDRP(ctx: ExecContext, flags: number): void; /** MIRP - Move Indirect Relative Point (uses CVT) */ export declare function MIRP(ctx: ExecContext, flags: number): void; /** SHP - Shift Point using reference point */ export declare function SHP(ctx: ExecContext, useRp1: boolean): void; /** SHC - Shift Contour using reference point */ export declare function SHC(ctx: ExecContext, useRp1: boolean): void; /** SHZ - Shift Zone using reference point */ export declare function SHZ(ctx: ExecContext, useRp1: boolean): void; /** SHPIX - Shift Point by Pixel Amount */ export declare function SHPIX(ctx: ExecContext): void; /** IP - Interpolate Point */ export declare function IP(ctx: ExecContext): void; /** ALIGNRP - Align to Reference Point */ export declare function ALIGNRP(ctx: ExecContext): void; /** MSIRP - Move Stack Indirect Relative Point */ export declare function MSIRP(ctx: ExecContext, setRp0: boolean): void; /** ISECT - Move Point to Intersection of two lines */ export declare function ISECT(ctx: ExecContext): void; /** ALIGNPTS - Align two points */ export declare function ALIGNPTS(ctx: ExecContext): void; /** GC - Get Coordinate projected onto projection vector */ export declare function GC(ctx: ExecContext, useOriginal: boolean): void; /** SCFS - Set Coordinate From Stack */ export declare function SCFS(ctx: ExecContext): void; /** MD - Measure Distance between two points */ export declare function MD(ctx: ExecContext, useOriginal: boolean): void; /** MPPEM - Measure Pixels Per EM */ export declare function MPPEM(ctx: ExecContext): void; /** MPS - Measure Point Size */ export declare function MPS(ctx: ExecContext): void; /** FLIPPT - Flip on-curve/off-curve flag */ export declare function FLIPPT(ctx: ExecContext): void; /** FLIPRGON - Set on-curve flag for range */ export declare function FLIPRGON(ctx: ExecContext): void; /** FLIPRGOFF - Clear on-curve flag for range */ export declare function FLIPRGOFF(ctx: ExecContext): void; /** ROUND - Round value */ export declare function ROUND(ctx: ExecContext, _colorIndex: number): void; /** NROUND - No-round (just applies engine compensation) */ export declare function NROUND(ctx: ExecContext, _colorIndex: number): void;