API > @blocksuite/blocks > Vec
Class: Vec ​
Constructors ​
constructor ​
new Vec():
Vec
Returns ​
Methods ​
abs ​
staticabs(A):number[]
Absolute value of a vector.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:352
add ​
staticadd(A,B):number[]
Add vectors.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:42
addScalar ​
staticaddScalar(A,n):number[]
Add scalar to vector.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
n | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:51
ang ​
staticang(A,B):number
Angle between vector A and vector B in radians
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:241
ang3 ​
staticang3(p1,pc,p2):number
Get the angle between the three vectors A, B, and C.
Parameters ​
| Parameter | Type |
|---|---|
p1 | number[] |
pc | number[] |
p2 | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:340
angle ​
staticangle(A,B):number
Angle between vector A and vector B in radians
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:250
clamp ​
staticclamp(n,min):number
Clamp a value into a range.
Parameters ​
| Parameter | Type |
|---|---|
n | number |
min | number |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:12
staticclamp(n,min,max):number
Parameters ​
| Parameter | Type |
|---|---|
n | number |
min | number |
max | number |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:13
clampV ​
staticclampV(A,min):number[]
Clamp a value into a range.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
min | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:23
staticclampV(A,min,max):number[]
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
min | number |
max | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:24
clockwise ​
staticclockwise(p1,pc,p2):boolean
Get whether p1 is left of p2, relative to pc.
Parameters ​
| Parameter | Type |
|---|---|
p1 | number[] |
pc | number[] |
p2 | number[] |
Returns ​
boolean
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:382
cpr ​
staticcpr(A,B):number
Cross product (outer product) | A X B |
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:141
cross ​
staticcross(x,y,z):number
Cross (for point in polygon)
Parameters ​
| Parameter | Type |
|---|---|
x | number[] |
y | number[] |
z | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:149
dist ​
staticdist(A,B):number
Dist length from A to B
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:218
dist2 ​
staticdist2(A,B):number
Dist length from A to B squared.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:209
distanceToBounds ​
staticdistanceToBounds(bounds,P):number
Distance between a point and the nearest point on a bounding box.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
bounds | object | The bounding box. |
bounds.maxX | number | - |
bounds.maxY | number | - |
bounds.minX | number | - |
bounds.minY | number | - |
P | number[] | The point |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:508
distanceToLineSegment ​
staticdistanceToLineSegment(A,B,P,clamp=true):number
Distance between a point and the nearest point on a line segment between A and B
Parameters ​
| Parameter | Type | Default value | Description |
|---|---|---|---|
A | number[] | undefined | The start of the line segment |
B | number[] | undefined | The end of the line segment |
P | number[] | undefined | The off-line point |
clamp | boolean | true | Whether to clamp the point between A and B. |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:472
distanceToLineThroughPoint ​
staticdistanceToLineThroughPoint(A,u,P):number
Distance between a point and a line with a known unit vector that passes through a point.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
A | number[] | Any point on the line |
u | number[] | The unit vector for the line. |
P | number[] | A point not on the line to test. |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:429
div ​
staticdiv(A,n):number[]
Vector division by scalar.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
n | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:106
divV ​
staticdivV(A,B):number[]
Vector division by vector.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:115
dpr ​
staticdpr(A,B):number
Dot product
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:132
fastDist ​
staticfastDist(A,B):number[]
A faster, though less accurate method for testing distances. Maybe faster?
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:228
int ​
staticint(A,B,from,to,s=1):number[]
Interpolate from A to B when curVAL goes fromVAL: number[] => to
Parameters ​
| Parameter | Type | Default value | Description |
|---|---|---|---|
A | number[] | undefined | - |
B | number[] | undefined | - |
from | number | undefined | Starting value |
to | number | undefined | Ending value |
s | number | 1 | Strength |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:323
isEqual ​
staticisEqual(A,B):boolean
Check of two vectors are identical.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
boolean
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:301
isLeft ​
staticisLeft(p1,pc,p2):number
Get whether p1 is left of p2, relative to pc.
Parameters ​
| Parameter | Type |
|---|---|
p1 | number[] |
pc | number[] |
p2 | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:367
len ​
staticlen(A):number
Length of the vector
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:165
len2 ​
staticlen2(A):number
Length of the vector squared
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:157
lrp ​
staticlrp(A,B,t):number[]
Interpolate vector A to B with a scalar t
Parameters ​
| Parameter | Type | Description |
|---|---|---|
A | number[] | - |
B | number[] | - |
t | number | scalar |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:311
max ​
staticmax(...v):number[]
Get a vector comprised of the maximum of two or more vectors.
Parameters ​
| Parameter | Type |
|---|---|
...v | number[][] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:583
med ​
staticmed(A,B):number[]
Mean between two vectors or mid vector between two vectors
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:259
min ​
staticmin(...v):number[]
Get a vector comprised of the minimum of two or more vectors.
Parameters ​
| Parameter | Type |
|---|---|
...v | number[][] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:590
mul ​
staticmul(A,n):number[]
Vector multiplication by scalar
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
n | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:88
mulV ​
staticmulV(A,B):number[]
Multiple two vectors.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:97
nearestPointOnBounds ​
staticnearestPointOnBounds(bounds,P):number[]
Get the nearest point on a bounding box to a point P.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
bounds | object | The bounding box |
bounds.maxX | number | - |
bounds.maxY | number | - |
bounds.minX | number | - |
bounds.minY | number | - |
P | number[] | The point point |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:487
nearestPointOnLineSegment ​
staticnearestPointOnLineSegment(A,B,P,clamp=true):number[]
Get the nearest point on a line segment between A and B
Parameters ​
| Parameter | Type | Default value | Description |
|---|---|---|---|
A | number[] | undefined | The start of the line segment |
B | number[] | undefined | The end of the line segment |
P | number[] | undefined | The off-line point |
clamp | boolean | true | Whether to clamp the point between A and B. |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:445
nearestPointOnLineThroughPoint ​
staticnearestPointOnLineThroughPoint(A,u,P):number[]
Get the nearest point on a line with a known unit vector that passes through point A
Parameters ​
| Parameter | Type | Description |
|---|---|---|
A | number[] | Any point on the line |
u | number[] | The unit vector for the line. |
P | number[] | A point not on the line to test. |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:414
neg ​
staticneg(A):number[]
Negate a vector.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:33
normalize ​
staticnormalize(A):number[]
Get normalized / unit vector.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:190
nudge ​
staticnudge(A,B,d):number[]
Push a point A towards point B by a given distance.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
d | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:527
nudgeAtAngle ​
staticnudgeAtAngle(A,a,d):number[]
Push a point in a given angle by a given distance.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
a | number |
d | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:538
per ​
staticper(A):number[]
Perpendicular rotation of a vector A
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:123
pointOffset ​
staticpointOffset(A,B,offset):IVec
Parameters ​
| Parameter | Type |
|---|---|
A | IVec |
B | IVec |
offset | number |
Returns ​
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:565
pointsBetween ​
staticpointsBetween(A,B,steps=6):number[][]
Get an array of points between two points.
Parameters ​
| Parameter | Type | Default value | Description |
|---|---|---|---|
A | number[] | undefined | The first point. |
B | number[] | undefined | The second point. |
steps | number | 6 | The number of points to return. |
Returns ​
number[][]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:557
pry ​
staticpry(A,B):number
Project A over B
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:174
rescale ​
staticrescale(a,n):number[]
Parameters ​
| Parameter | Type |
|---|---|
a | number[] |
n | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:356
rot ​
staticrot(A,r=0):number[]
Vector rotation by r (radians)
Parameters ​
| Parameter | Type | Default value | Description |
|---|---|---|---|
A | number[] | undefined | - |
r | number | 0 | rotation in radians |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:268
rotWith ​
staticrotWith(A,C,r=0):number[]
Rotate a vector around another vector by r (radians)
Parameters ​
| Parameter | Type | Default value | Description |
|---|---|---|---|
A | number[] | undefined | vector |
C | number[] | undefined | center |
r | number | 0 | rotation in radians |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:281
slope ​
staticslope(A,B):number
Get the slope between two points.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:575
snap ​
staticsnap(a,step=1):number[]
Snap vector to nearest step.
Parameters ​
| Parameter | Type | Default value |
|---|---|---|
a | number[] | undefined |
step | number | 1 |
Returns ​
number[]
Example ​
Vec.snap([10.5, 28], 10) // [10, 30]Vec.snap([10.5, 28], 10) // [10, 30]Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:403
sub ​
staticsub(A,B):number[]
Subtract vectors.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:60
subScalar ​
staticsubScalar(A,n):number[]
Subtract scalar from vector.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
n | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:69
tangent ​
statictangent(A,B):number[]
Get the tangent between two vectors.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:200
toFixed ​
statictoFixed(a):number[]
Round a vector to two decimal places.
Parameters ​
| Parameter | Type |
|---|---|
a | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:390
toPoint ​
statictoPoint(v):object
Parameters ​
| Parameter | Type |
|---|---|
v | IVec |
Returns ​
x ​
x:
number
y ​
y:
number
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:596
toPrecision ​
statictoPrecision(a,n=4):number[]
Round a vector to a precision length.
Parameters ​
| Parameter | Type | Default value |
|---|---|---|
a | number[] | undefined |
n | number | 4 |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:547
toVec ​
statictoVec(v):number[]
Parameters ​
| Parameter | Type |
|---|---|
v | object |
v.x | number |
v.y | number |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:594
uni ​
staticuni(A):number[]
Get normalized / unit vector.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:182
vec ​
staticvec(A,B):number[]
Get the vector from vectors A to B.
Parameters ​
| Parameter | Type |
|---|---|
A | number[] |
B | number[] |
Returns ​
number[]
Defined In ​
packages/blocks/src/surface-block/utils/vec.ts:78