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 | { pressure: number; x: number; y: number; })[]

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