import { AcGeMatrix3d, AcGePoint3dLike } from '@mlightcad/data-model'; import { AcApContext } from '../../app'; import { AcEdCommand } from '../../editor'; /** * Command to rotate selected entities around a base point. * * Supported workflow: * 1) Select entities (or reuse preselection), * 2) Specify base point, * 3) Specify rotation angle, or choose `Copy` / `Reference`, * 4) Apply rotation to originals or append rotated copies. */ export declare class AcApRotateCmd extends AcEdCommand { /** * Creates the ROTATE command and marks it as a review-mode command. */ constructor(); /** * Builds a world-space rotation matrix around a given base point. * * @param basePoint - Rotation origin. * @param angleRad - Rotation angle in radians. * @returns Composite transform that rotates around `basePoint`. */ static createRotationMatrix(basePoint: AcGePoint3dLike, angleRad: number): AcGeMatrix3d; /** * Adds one localized ROTATE keyword to an angle prompt. * * @param prompt - Angle prompt that should expose the keyword. * @param key - Translation key suffix describing which keyword to add. */ private addKeyword; /** * Shows a localized warning for invalid reference-point input. * * @param key - Warning message key suffix. */ private warnInvalidInput; /** * Computes the planar direction angle from one point to another. * * @param start - Start/reference point. * @param end - End/target point. * @returns Direction angle in degrees, or `undefined` when points are coincident. */ private computeAngleDeg; /** * Prompts for a reference angle used by the ROTATE `Reference` option. * * The user can either enter the angle directly or define it from two points. * When the point-based definition is degenerate, the command warns and asks again. * * @param context - Current application/document context. * @param sourceEntities - Entities used to build transient preview geometry. * @param basePoint - Rotation base point shared by subsequent angle prompts. * @returns Reference angle in degrees, or `undefined` when input is canceled. */ private promptReferenceAngle; /** * Prompts for the final rotation angle and optional ROTATE sub-modes. * * The prompt supports `Copy` to preserve originals and `Reference` to derive * the final rotation from an existing angle and a new target angle. * * @param context - Current application/document context. * @param sourceEntities - Entities selected for rotation. * @param basePoint - Rotation base point. * @returns Rotation settings, or `undefined` when input is canceled. */ private promptRotationAngle; /** * Executes ROTATE using selection reuse, base-point input, and angle prompts. * * The command rotates the original entities in place unless the user chooses * `Copy`, in which case rotated clones are appended to model space instead. * * @param context - Current application/document context. */ execute(context: AcApContext): Promise; } //# sourceMappingURL=AcApRotateCmd.d.ts.map