Module: math

Mathematical utilities.

License:
  • MIT
Source:

Methods

(static) getMatrix(elem) → {SVGMatrix}

Get the matrix object for a given element.

Parameters:
Name Type Description
elem Element

The DOM element to check

Source:
Returns:

The matrix object associated with the element's transformlist

Type
SVGMatrix

(static) hasMatrixTransform(tlistopt) → {boolean}

See if the given transformlist includes a non-indentity matrix transform.

Parameters:
Name Type Attributes Description
tlist SVGTransformList <optional>

The transformlist to check

Source:
Returns:

Whether or not a matrix transform was found

Type
boolean

(static) isIdentity(m) → {boolean}

Helper function to check if the matrix performs no actual transform (i.e. exists for identity purposes).

Parameters:
Name Type Description
m SVGMatrix

The matrix object to check

Source:
Returns:

Indicates whether or not the matrix is 1,0,0,1,0,0

Type
boolean

(static) matrixMultiply(…args) → {SVGMatrix}

This function tries to return a SVGMatrix that is the multiplication m1 * m2. We also round to zero when it's near zero.

Parameters:
Name Type Attributes Description
args SVGMatrix <repeatable>

Matrix objects to multiply

Source:
Returns:

The matrix object resulting from the calculation

Type
SVGMatrix

(static) rectsIntersect(r1, r2) → {boolean}

Check if two rectangles (BBoxes objects) intersect each other.

Parameters:
Name Type Description
r1 SVGRect

The first BBox-like object

r2 SVGRect

The second BBox-like object

Source:
Returns:

True if rectangles intersect

Type
boolean

(static) snapToAngle(x1, y1, x2, y2) → {module:math.AngleCoord45}

Returns a 45 degree angle coordinate associated with the two given coordinates.

Parameters:
Name Type Description
x1 Integer

First coordinate's x value

y1 Integer

First coordinate's y value

x2 Integer

Second coordinate's x value

y2 Integer

Second coordinate's y value

Source:
Returns:
Type
module:math.AngleCoord45

(static) transformBox(l, t, w, h, m) → {module:math.TransformedBox}

Transforms a rectangle based on the given matrix.

Parameters:
Name Type Description
l Float

Float with the box's left coordinate

t Float

Float with the box's top coordinate

w Float

Float with the box width

h Float

Float with the box height

m SVGMatrix

Matrix object to transform the box by

Source:
Returns:
Type
module:math.TransformedBox

(static) transformListToTransform(tlist, minopt, maxopt) → {SVGTransform}

This returns a single matrix Transform for a given Transform List (this is the equivalent of SVGTransformList.consolidate() but unlike that method, this one does not modify the actual SVGTransformList). This function is very liberal with its min, max arguments.

Parameters:
Name Type Attributes Default Description
tlist SVGTransformList

The transformlist object

min Integer <optional>
0

Optional integer indicating start transform position

max Integer <optional>

Optional integer indicating end transform position; defaults to one less than the tlist's numberOfItems

Source:
Returns:

A single matrix transform object

Type
SVGTransform

(static) transformPoint(x, y, m) → {module:math.XYObject}

A (hopefully) quicker function to transform a point by a matrix (this function avoids any DOM calls and just does the math).

Parameters:
Name Type Description
x Float

Float representing the x coordinate

y Float

Float representing the y coordinate

m SVGMatrix

Matrix object to transform the point with

Source:
Returns:

An x, y object representing the transformed point

Type
module:math.XYObject

Type Definitions

AngleCoord45

Type:
Properties:
Name Type Description
x Float

The angle-snapped x value

y Float

The angle-snapped y value

a Integer

The angle at which to snap

Source:

TransformedBox

An object with the following values

Type:
Properties:
Name Type Description
tl module:math.XYObject

The top left coordinate

tr module:math.XYObject

The top right coordinate

bl module:math.XYObject

The bottom left coordinate

br module:math.XYObject

The bottom right coordinate

aabox PlainObject

Object with the following values:

Properties
Name Type Description
x Float

Float with the axis-aligned x coordinate

y Float

Float with the axis-aligned y coordinate

width Float

Float with the axis-aligned width coordinate

height Float

Float with the axis-aligned height coordinate

Source:

XYObject

Type:
Properties:
Name Type Description
x Float
y Float
Source: