Skip to content

BlockSuite API Documentation / @blocksuite/affine-block-surface / CommonUtils

Variable: CommonUtils

const CommonUtils: object

Type declaration

almostEqual()

almostEqual: (a, b, epsilon?) => boolean

Parameters

a: number

b: number

epsilon?: number

Returns

boolean

clamp()

clamp: (n, min, max?) => number

Parameters

n: number

min: number

max?: number

Returns

number

generateElementId()

generateElementId: () => string

Returns

string

generateKeyBetween()

generateKeyBetween: (a, b, digits?) => string

Parameters

a: undefined | null | string

b: undefined | null | string

digits?: string

Returns

string

getPointFromBoundsWithRotation()

getPointFromBoundsWithRotation: (bounds, point) => IVec

Parameters

bounds: IBound

point: IVec

Returns

IVec

getStroke()

getStroke: (points, options?) => IVec[]

getStroke

Parameters

points: (IVec | IVec3 | object)[]

An array of points (as [x, y, pressure] or {x, y, pressure}). Pressure is optional in both cases.

options?: StrokeOptions

(optional) An object with options.

Returns

IVec[]

Description

Get an array of points describing a polygon that surrounds the input points.

getSvgPathFromStroke()

getSvgPathFromStroke: (points, closed?) => string

Parameters

points: IVec[]

closed?: boolean

Returns

string

intersects()

intersects: (a, b) => boolean

Parameters

a: IBound

b: IBound

Returns

boolean

isOverlap()

isOverlap: (line1, line2, axis, strict?) => boolean

Parameters

line1: IVec[]

line2: IVec[]

axis: 0 | 1

strict?: boolean

Returns

boolean

isPointIn()

isPointIn: (a, x, y) => boolean

Parameters

a: IBound

x: number

y: number

Returns

boolean

lineIntersects()

lineIntersects: (sp, ep, sp2, ep2, infinite?) => IVec | null

Parameters

sp: IVec

ep: IVec

sp2: IVec

ep2: IVec

infinite?: boolean

Returns

IVec | null

linePolygonIntersects()

linePolygonIntersects: (sp, ep, points) => PointLocation[] | null

Parameters

sp: IVec

ep: IVec

points: IVec[]

Returns

PointLocation[] | null

normalizeDegAngle()

normalizeDegAngle: (angle) => number

Parameters

angle: number

Returns

number

normalizeWheelDeltaY()

normalizeWheelDeltaY: (delta, zoom) => number

Normalizes wheel delta.

See https://stackoverflow.com/a/13650579

From https://github.com/excalidraw/excalidraw/blob/master/src/components/App.tsx MIT License

Parameters

delta: number

zoom: number = 1

Returns

number

polygonGetPointTangent()

polygonGetPointTangent: (points, point) => IVec

Parameters

points: IVec[]

point: IVec

Returns

IVec

polygonNearestPoint()

polygonNearestPoint: (points, point) => IVec

Parameters

points: IVec[]

point: IVec

Returns

IVec

polygonPointDistance()

polygonPointDistance: (points, point) => number

Parameters

points: IVec[]

point: IVec

Returns

number

polyLineNearestPoint()

polyLineNearestPoint: (points, point) => IVec

Parameters

points: IVec[]

point: IVec

Returns

IVec

rotatePoints()

rotatePoints: <T>(points, center, rotate) => T[]

Type Parameters

T extends IVec

Parameters

points: T[]

center: IVec

rotate: number

Returns

T[]

sign()

sign: (number) => 1 | -1

Parameters

number: number

Returns

1 | -1

toDegree()

toDegree: (radian) => number

Parameters

radian: number

Returns

number

toRadian()

toRadian: (angle) => number

Parameters

angle: number

Returns

number

Defined in

packages/affine/block-surface/src/index.ts:120