UNPKG

@aurigma/design-atoms

Version:

Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.

66 lines (65 loc) 4.28 kB
import { PointF, IPoint, RectangleF } from "@aurigma/design-atoms-model/Math"; import { IWorkspaceContext } from "../IWorkspaceContext"; import { IViewportContext } from "../IViewportContext"; export interface IRulersContext { rulerEnabled: boolean; rulerWidth: number; } export interface IViewer { element: HTMLElement; } export declare class CoordinatesConvertUtils { static workspaceToContentPoint(point: PointF, context: IViewportContext): PointF; static controlToContentPoint(point: PointF, context: IViewportContext): PointF; static controlToPagePoint(point: PointF | IPoint, viewerElement: HTMLElement): PointF; static contentToControlPoint(point: PointF, context: IViewportContext): PointF; static controlToContentRectangle(rect: RectangleF, context: IViewportContext): RectangleF; static contentToControlRectangle(rect: RectangleF, context: IViewportContext): RectangleF; static workspaceToControlPoint(point: PointF, context: IViewportContext): PointF; static productToControlPoint(point: PointF, context: IViewportContext, offset: PointF): PointF; static workspaceToWhiteSpacePoint(point: PointF, context: IViewportContext & IRulersContext): PointF; static workspaceToWhiteSpacePointCorrect(point: PointF, context: IViewportContext & IWorkspaceContext & IRulersContext): PointF; static whitespaceToWorkspacePoint(point: PointF, context: IViewportContext & IRulersContext): PointF; static whitespaceToWorkspacePointCorrect(point: PointF, context: IViewportContext & IWorkspaceContext & IRulersContext): PointF; /** * Translates coordinates from the control-related coordinate system to the workspace-related one * @param point Coordinates in the control coordinate system * @returns Coordinates in the workspace coordinate system */ static controlToWorkspacePoint(point: PointF, context: IViewportContext): PointF; /** * Translates coordinates from the control-related coordinate system to the workspace-related one. * @param point - Coordinates in the control coordinate system (PointF). * @returns Coordinates in the workspace coordinate system (PointF). */ static controlToWorkspacePointCorrect(point: PointF, context: IViewportContext & IWorkspaceContext): PointF; static workspaceToControlRectangle(rect: RectangleF, context: IViewportContext): RectangleF; /** * Translates coordinates from the page-related coordinate system to the control-related one * @param pagePoint Coordinates in the page coordinate system. */ static pageToControlPoint(pagePoint: PointF, viewer: IViewer): PointF; /** * Translates coordinates from the page-related coordinate system to the workspace-related one * @param pagePoint Coordinates in the page coordinate system */ static pageToWorkspacePoint(pagePoint: PointF, viewer: IViewer & IViewportContext & IWorkspaceContext, dontRotate?: boolean): PointF; static pageToWhitespace(pagePoint: PointF, viewer: IViewer & IViewportContext & IWorkspaceContext & IRulersContext): PointF; static workspaceToPagePoint(source: PointF, viewer: IViewer & IViewportContext & IWorkspaceContext): PointF; private static _transformByContentAnglePageToWs; private static _transformByContentAngleWsToPage; static workspaceToControlPointCorrect(source: PointF, context: IViewportContext & IWorkspaceContext): PointF; /** * Translates rectangle coordinates from the control-related coordinate system to the workspace-related one. * @param rect - Rectangle coordinates in the control coordinate system (Rectangle). * @returns Rectangle coordinates in the workspace coordinate system (Rectangle). */ static controlToWorkspaceRectangle(rectangle: RectangleF, context: IViewportContext): RectangleF; static contentToWhitespaceRectangle(rect: RectangleF, context: IRulersContext & IViewportContext): RectangleF; static workspaceToProduct(workspacePoint: PointF, offset?: PointF): PointF; static productToWorkspace(product: PointF, offset?: PointF): PointF; static getElementPageCoord(domElement: HTMLElement): { left: number; top: number; }; }