aboutsummaryrefslogtreecommitdiffstats
path: root/extlib/leaflet/src/geometry/Transformation.js
diff options
context:
space:
mode:
authorJoar Wandborg <git@wandborg.com>2012-01-10 01:54:37 +0100
committerJoar Wandborg <git@wandborg.com>2012-01-25 23:42:04 +0100
commitc5ba5b0456a711d157e317f220e9c739226e7f50 (patch)
tree2800568ac8e484649a978e0fe7e682a8bcfe20d4 /extlib/leaflet/src/geometry/Transformation.js
parentc47a03b909ecd97cab5b144d0cab007b62b92a90 (diff)
downloadmediagoblin-c5ba5b0456a711d157e317f220e9c739226e7f50.tar.lz
mediagoblin-c5ba5b0456a711d157e317f220e9c739226e7f50.tar.xz
mediagoblin-c5ba5b0456a711d157e317f220e9c739226e7f50.zip
Installed leaflet in extlib
Diffstat (limited to 'extlib/leaflet/src/geometry/Transformation.js')
-rw-r--r--extlib/leaflet/src/geometry/Transformation.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/extlib/leaflet/src/geometry/Transformation.js b/extlib/leaflet/src/geometry/Transformation.js
new file mode 100644
index 00000000..37f40968
--- /dev/null
+++ b/extlib/leaflet/src/geometry/Transformation.js
@@ -0,0 +1,31 @@
+/*
+ * L.Transformation is an utility class to perform simple point transformations through a 2d-matrix.
+ */
+
+L.Transformation = L.Class.extend({
+ initialize: function(/*Number*/ a, /*Number*/ b, /*Number*/ c, /*Number*/ d) {
+ this._a = a;
+ this._b = b;
+ this._c = c;
+ this._d = d;
+ },
+
+ transform: function(point, scale) {
+ return this._transform(point.clone(), scale);
+ },
+
+ // destructive transform (faster)
+ _transform: function(/*Point*/ point, /*Number*/ scale) /*-> Point*/ {
+ 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*/ point, /*Number*/ scale) /*-> Point*/ {
+ scale = scale || 1;
+ return new L.Point(
+ (point.x/scale - this._b) / this._a,
+ (point.y/scale - this._d) / this._c);
+ }
+}); \ No newline at end of file