// transform
// Functions for transformation matrices, and to be exact,
// affine non-reflective similarity transformation matrices.
//

// ### Constants ###

exports.EPSILON = require('./epsilon')

// Identity transform, a kind of multiplication by 1.
exports.IDENTITY = {
  a: 1,
  b: 0,
  x: 0,
  y: 0
}

// Useful transformations
const isqrt2 = 1 / Math.sqrt(2)
exports.ROT45 = { a: isqrt2, b: isqrt2, x: 0, y: 0 }
exports.ROT90 = { a: 0, b: 1, x: 0, y: 0 }
exports.ROT180 = { a: -1, b: 0, x: 0, y: 0 }
exports.ROT270 = { a: 0, b: -1, x: 0, y: 0 }
exports.HALF = { a: 0.5, b: 0, x: 0, y: 0 }
exports.X2 = { a: 2, b: 0, x: 0, y: 0 }

// ### Functions ###

exports.almostEqual =
exports.almostEquals = require('./almostEqual')

exports.create = require('./create')

exports.createFromPolar = require('./createFromPolar')

exports.createFromArray = require('./createFromArray')

exports.equal =
exports.equals = require('./equal')

exports.getRotation = require('./getRotation')

exports.getScale = require('./getScale')

exports.getTranslation = require('./getTranslation')

exports.toArray = require('./toArray')

exports.toMatrix = require('./toMatrix')

exports.toString = require('./toString')

// point
// transform
// transformPoint
// projectPoint
exports.mapPoint = require('./mapPoint')

exports.mapPoints = require('./mapPoints')

exports.mapVector = require('./mapVector')

exports.inverse = require('./inverse')

// exports.addVector = ?
// exports.translate =
exports.translateBy = require('./translateBy')

exports.scaleBy = require('./scaleBy')

exports.rotateBy = require('./rotateBy')

exports.compose =
exports.multiply = require('./multiply')

exports.validate = require('./validate')

@@ -1388,23 +1388,42 @@
 exports.
-inverse
+compose =%0Aexports.multiply
  = requi
@@ -1432,30 +1432,28 @@
 ('./
-inverse
+multiply
 ')%0A%0A
-// 
 exports.
 addV
@@ -1452,64 +1452,15 @@
 rts.
-addVector = ?%0A// exports.translate =%0Aexports.translateBy
+inverse
  = r
@@ -1473,19 +1473,15 @@
 ('./
-translateBy
+inverse
 ')%0A%0A
@@ -1558,32 +1558,35 @@
 rotateBy')%0A%0A
+// 
 exports.
 compose =%0Aex
@@ -1565,38 +1565,65 @@
 y')%0A%0A// exports.
-compos
+addVector = ?%0A// exports.translat
 e =%0Aexports.mult
@@ -1610,39 +1610,42 @@
 slate =%0Aexports.
-multipl
+translateB
 y = require('./m
@@ -1635,39 +1635,42 @@
 By = require('./
-multipl
+translateB
 y')%0A%0Aexports.val

Reorder transform functions