Code coverage report for src/geometry/Transformation.js

Statements: 100% (13 / 13)      Branches: 100% (4 / 4)      Functions: 100% (4 / 4)      Lines: 100% (13 / 13)     

All files » src/geometry/ » Transformation.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32        1 8 8 8 8     1   4         44 44 44 44       4 4          
/*
 * L.Transformation is an utility class to perform simple point transformations through a 2d-matrix.
 */
 
L.Transformation = function (a, b, c, d) {
	this._a = a;
	this._b = b;
	this._c = c;
	this._d = d;
};
 
L.Transformation.prototype = {
	transform: function (point, scale) { // (Point, Number) -> Point
		return this._transform(point.clone(), scale);
	},
 
	// destructive transform (faster)
	_transform: function (point, scale) {
		scale = scale || 1;
		point.x = scale * (this._a * point.x + this._b);
		point.y = scale * (this._c * point.y + this._d);
		return point;
	},
 
	untransform: function (point, scale) {
		scale = scale || 1;
		return new L.Point(
		        (point.x / scale - this._b) / this._a,
		        (point.y / scale - this._d) / this._c);
	}
};