aboutsummaryrefslogtreecommitdiffstats
path: root/extlib/leaflet/src/geometry/Transformation.js
diff options
context:
space:
mode:
authorAditi <aditi.iitr@gmail.com>2013-06-21 23:09:22 +0530
committerAditi <aditi.iitr@gmail.com>2013-06-21 23:09:22 +0530
commit2719d546a57c2332e36cc056ac80ec5d79672c1a (patch)
tree1f62ab8f761026d4faa5442032df133fc90d47f2 /extlib/leaflet/src/geometry/Transformation.js
parent1a6f065419290b3f4234ce4a89bb2c46b13e8a12 (diff)
parent92b22e7deac547835f69168f97012b52e87b6de4 (diff)
downloadmediagoblin-2719d546a57c2332e36cc056ac80ec5d79672c1a.tar.lz
mediagoblin-2719d546a57c2332e36cc056ac80ec5d79672c1a.tar.xz
mediagoblin-2719d546a57c2332e36cc056ac80ec5d79672c1a.zip
Merge remote-tracking branch 'cweb/master'
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