[OpenLayers-Commits] r1775 - in sandbox/bertil: examples lib lib/OpenLayers/Control lib/OpenLayers/Control/Edition lib/OpenLayers/Feature/Geometry lib/OpenLayers/Layer lib/OpenLayers/Renderer

commits at openlayers.org commits at openlayers.org
Wed Nov 8 09:54:33 EST 2006


Author: bertil
Date: 2006-11-08 09:54:31 -0500 (Wed, 08 Nov 2006)
New Revision: 1775

Added:
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/Aggregate.js
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/Curve.js
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/Surface.js
Removed:
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/Component.js
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/CubicBezierSurface.js
Modified:
   sandbox/bertil/examples/vector.html
   sandbox/bertil/lib/OpenLayers.js
   sandbox/bertil/lib/OpenLayers/Control/Edition.js
   sandbox/bertil/lib/OpenLayers/Control/Edition/DrawCurvePath.js
   sandbox/bertil/lib/OpenLayers/Control/Edition/DrawLinearPath.js
   sandbox/bertil/lib/OpenLayers/Control/Edition/Selection.js
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/CubicBezierCurve.js
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/LineSegment.js
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/LineString.js
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/LinearRing.js
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/Point.js
   sandbox/bertil/lib/OpenLayers/Feature/Geometry/Polygon.js
   sandbox/bertil/lib/OpenLayers/Layer/Vector.js
   sandbox/bertil/lib/OpenLayers/Renderer/Svg.js
   sandbox/bertil/lib/OpenLayers/Renderer/Vml.js
Log:
update

Modified: sandbox/bertil/examples/vector.html
===================================================================
--- sandbox/bertil/examples/vector.html	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/examples/vector.html	2006-11-08 14:54:31 UTC (rev 1775)
@@ -40,32 +40,30 @@
             
             
             
-            var lineString = new OpenLayers.Feature.Geometry.LineString(
-            	[new OpenLayers.Feature.Geometry.Point(-10,-10),
-            	 new OpenLayers.Feature.Geometry.Point(-20,-20),
-            	 new OpenLayers.Feature.Geometry.Point(-30,-40)
-            	 /*
-            	 new OpenLayers.Feature.Geometry.Point(-30,-50),
-            	 new OpenLayers.Feature.Geometry.Point(-40,-40),
-            	 new OpenLayers.Feature.Geometry.Point(-10,-80),
-            	 new OpenLayers.Feature.Geometry.Point(-90,-20)
-            	 */
-            	 ]);
-           	
-            	 
-            var bezier = new OpenLayers.Feature.Geometry.CubicBezierSurface(
-            	[new OpenLayers.Feature.Geometry.Point(10,10),
-            	 new OpenLayers.Feature.Geometry.Point(20,20),
-            	 new OpenLayers.Feature.Geometry.Point(30,40),
-            	 new OpenLayers.Feature.Geometry.Point(50,80),
-            	 new OpenLayers.Feature.Geometry.Point(60,20),
-            	 new OpenLayers.Feature.Geometry.Point(100,60),
-            	 new OpenLayers.Feature.Geometry.Point(30,40)]);
-		
-            
-            
-            vector.addFeatures(lineString);
-			vector.addFeatures(bezier);
+			var lineString = new OpenLayers.Feature.Geometry.LineString([
+				new OpenLayers.Feature.Geometry.Point(-117.422,15.4688),
+				new OpenLayers.Feature.Geometry.Point(-119.531,25.3125),
+				new OpenLayers.Feature.Geometry.Point(-114.609,30.9375),
+				new OpenLayers.Feature.Geometry.Point(-111.797,37.9688),
+				new OpenLayers.Feature.Geometry.Point(-107.578,37.2656),
+				new OpenLayers.Feature.Geometry.Point(-101.25,31.6406),
+				new OpenLayers.Feature.Geometry.Point(-96.3281,34.4531),
+				new OpenLayers.Feature.Geometry.Point(-91.4062,30.2344),
+				new OpenLayers.Feature.Geometry.Point(-90,23.9062),
+				new OpenLayers.Feature.Geometry.Point(-76.6406,21.0938),
+				new OpenLayers.Feature.Geometry.Point(-75.2344,14.0625),
+				new OpenLayers.Feature.Geometry.Point(-77.3438,8.4375),
+				new OpenLayers.Feature.Geometry.Point(-74.5312,3.51562),
+				new OpenLayers.Feature.Geometry.Point(-78.75,0.703125),
+				new OpenLayers.Feature.Geometry.Point(-86.4844,4.92188),
+				new OpenLayers.Feature.Geometry.Point(-90.7031,2.8125),
+				new OpenLayers.Feature.Geometry.Point(-95.625,8.4375),
+				new OpenLayers.Feature.Geometry.Point(-100.547,4.21875),
+				new OpenLayers.Feature.Geometry.Point(-106.875,0.703125)
+			]);
+			
+			vector.addFeatures(lineString);
+			
 			vector.renderer.observe();
 			
 			map.events.register("draw", map, function(e) {

Modified: sandbox/bertil/lib/OpenLayers/Control/Edition/DrawCurvePath.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Control/Edition/DrawCurvePath.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Control/Edition/DrawCurvePath.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -146,18 +146,3 @@
     CLASS_NAME: "OpenLayers.Control.DrawLinearPath"
     });
 
-OpenLayers.Control.DrawCubicBezierCurve = OpenLayers.Class.create();
-OpenLayers.Control.DrawCubicBezierCurve.prototype =
-    OpenLayers.Class.inherit( OpenLayers.Control.DrawCurvePath, {
-
-    image: "stock_draw-curve.png",
-
-    size: new OpenLayers.Size(24,24),
-
-    initialize: function() {
-        OpenLayers.Control.DrawCurvePath.prototype.initialize.apply(this, [OpenLayers.Feature.Geometry.CubicBezierCurve].concat(arguments));
-    }
-    });
-
-
-

Modified: sandbox/bertil/lib/OpenLayers/Control/Edition/DrawLinearPath.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Control/Edition/DrawLinearPath.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Control/Edition/DrawLinearPath.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -26,6 +26,7 @@
     
     turnOn: function(){
         OpenLayers.Control.Edition.prototype.turnOn.apply(this, arguments);
+        this.geometry = null;
         this.geometry = new OpenLayers.Feature.Geometry.LineString();
     },
     
@@ -36,6 +37,7 @@
     },
 
     finalizeGeometry: function(){
+        console.log(this.geometry);
         this.layer.addFeatures(this.geometry);
         this.geometry = new OpenLayers.Feature.Geometry.LineString();
     },
@@ -69,7 +71,7 @@
         this.lastDown = evt.xy;
         this.mouseDown = true;
         
-        this.geometry.path.push(evt.point);
+        this.geometry.addPoint(evt.point);
         this.layer.renderer.drawGeometry(evt.point);
         this.layer.renderer.drawGeometry(this.geometry, "tmpPath");
     },
@@ -114,4 +116,5 @@
 
     /** @final @type String */
     CLASS_NAME: "OpenLayers.Control.DrawLinearPath"
+    
 });

Modified: sandbox/bertil/lib/OpenLayers/Control/Edition/Selection.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Control/Edition/Selection.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Control/Edition/Selection.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -44,7 +44,6 @@
     },
 
     editionMouseDown: function(evt) {
-        
         if (evt.geometry && evt.geometry.isControlPoint){
             if (this.shiftDown) {
                 if (this.controlPoints.indexOf(evt.geometry) < 0){
@@ -85,8 +84,6 @@
             }
         }
         
-        console.log(this.controlPoints);
-        
         this.lastTranslationPoint = evt.point;
     },
 

Modified: sandbox/bertil/lib/OpenLayers/Control/Edition.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Control/Edition.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Control/Edition.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -92,22 +92,18 @@
                 
         this.map.events.unregister("edition", map, this.defaultEdition);
     },
-    
-    calculatePoint: function(px){
-        
-        
-        return point;
-    },
 
     /**
      * @param {Event} evt
      */
     defaultEdition: function (evt) {
-        this.snappingModeP = true;
-        this.snappingModeB = true;   
         
+        //this.snappingModeB = true;
+        this.snappingModeP = false;
+        this.snappingModeB = false;   
+        
         var lonlat = this.map.getLonLatFromLayerPx(evt.xy);
-        evt.point = new OpenLayers.Feature.Geometry.Point(lonlat.lon, lonlat.lat);
+        var tmpPoint = new OpenLayers.Feature.Geometry.Point(lonlat.lon, lonlat.lat);
         
         if (this.snappingModeP) {
             var closestVertex = null;
@@ -127,19 +123,19 @@
             if (closestVertex != null) {
                 evt.point = new OpenLayers.Feature.Geometry.Point(closestVertex.lon, closestVertex.lat);
             }
-        }
+        
         //calculate snapping point
-        else if (this.snappingModeB) {
+         } else if (this.snappingModeB) {
             
             if (evt.geometry && evt.geometry.isSnappingElement) {
                 // return calculated point
-                console.log("test");
                 
             } else if (evt.geometry) {
                 // draw snapping element and return calculated point
                 var snappingElement = evt.geometry;
                 
-                if (snappingElement.CLASS_NAME != "OpenLayers.Feature.Geometry.Point") {
+                if (snappingElement && snappingElement.CLASS_NAME != "OpenLayers.Feature.Geometry.Point") {
+
                     for(var i = 0; i < snappingElement.path.length - 1; i++ ){
                         
                         var segPoint1 = snappingElement.path[i];
@@ -149,9 +145,13 @@
                         var segPixel2 = this.layer.map.getPixelFromLonLat(segPoint2);
                         
                         if (evt.xy.x - segPixel1.x < 5 && evt.xy.y - segPixel1.y < 5) {
+
                             snappingElement = segPoint1;
+                            evt.point = segPoint1;
                         } else if (evt.xy.x - segPixel2.x < 5 && evt.xy.y - segPixel2.y < 5) {
+
                             snappingElement = segPoint2;
+                            evt.point = segPoint2;
                         } else {
                             var m1 = (segPoint2.y - segPoint1.y) / (segPoint2.x - segPoint1.x);
                             var p1 = segPoint1.y - m1 * segPoint1.x;
@@ -162,26 +162,33 @@
                             var x = (p2 - p1) / (2 * m1);
                             var y = (m1 * x + p1);
                             
-                            evt.point = new OpenLayers.Feature.Geometry.Point(x, y);
+                            var segPoint3 = new OpenLayers.Feature.Geometry.Point(x, y);
                             
-                            var tmpDelta = Math.sqrt(Math.pow((evt.point.x - tmpPoint.x), 2) + Math.pow((evt.point.y - tmpPoint.y), 2));
+                            var tmpDelta = Math.sqrt(Math.pow((segPoint3.x - tmpPoint.x), 2) + Math.pow((segPoint3.y - tmpPoint.y), 2));
                             
-                            if((tmpDelta < delta || !delta) && Math.min(segPoint1.x, segPoint2.x) < evt.point.x && evt.point.x < Math.max(segPoint1.x, segPoint2.x)){
+                            if((tmpDelta < delta || !delta) && Math.min(segPoint1.x, segPoint2.x) < segPoint3.x && segPoint3.x < Math.max(segPoint1.x, segPoint2.x)){
                                 var delta = tmpDelta;
                                 snappingElement = new OpenLayers.Feature.Geometry.LineSegment(segPoint1, segPoint2);
                                 snappingElement.m = m1;
                                 snappingElement.p = p1;
+                                evt.point = segPoint3;
                             }
                         }           
                     }
                 }
                 
                 snappingElement.isSnappingElement = true;
-                snappingElement.style = {fillColor: "yellow", fillOpacity: 0.2, strokeColor: "blue", strokeWidth: 5, strokeUnit: "%", strokeOpacity: 0.5}
+                snappingElement.style = {fillColor: "yellow", fillOpacity: 0.2, strokeColor: "white", strokeWidth: 3, strokeUnit: "%", strokeOpacity: 0.5, pointRadius: 0.1, pointUnit: "%"}
                 this.layer.renderer.drawGeometry(snappingElement, "tmpSnappingElement");
+                evt.point.isSnappingPoint = true;
+                evt.point.isSnappingElement = true;
+                evt.point.style = {fillColor: "red", fillOpacity: 0.2, strokeColor: "white", strokeWidth: 3, strokeUnit: "%", strokeOpacity: 0.5, pointRadius: 0.1, pointUnit: "%"}   
+                this.layer.renderer.drawGeometry(evt.point, "tmpSnappingPoint");
             } else {
                 // return mouse point
                 this.layer.renderer.eraseElement("tmpSnappingElement");
+                this.layer.renderer.eraseElement("tmpSnappingPoint");
+                evt.point = tmpPoint;
             }
         //calculate controlled point
         } else if (this.controlledMode) {
@@ -189,8 +196,8 @@
                 var lastPoint = this.geometry.path.last();
                 
     
-                var width = evt.point.x-lastPoint.x;
-                var height = evt.point.y-lastPoint.y;
+                var width = tmpPoint.x-lastPoint.x;
+                var height = tmpPoint.y-lastPoint.y;
                 var hyp = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
                 var alpha = Math.acos(width/(hyp)) * 180.0/Math.PI;
     
@@ -209,6 +216,8 @@
             evt.point = new OpenLayers.Feature.Geometry.Point(lonlat.lon, lonlat.lat);
         }
         
+        
+        
         switch (evt.type){
             case "mouseout":
                 this.editionMouseOut(evt);
@@ -348,6 +357,6 @@
     editionMouseOut: function (evt) {},
 
     /** @final @type String */
-    CLASS_NAME: "OpenLayers.Control.Selection"
+    CLASS_NAME: "OpenLayers.Control.Edition"
 });
 

Added: sandbox/bertil/lib/OpenLayers/Feature/Geometry/Aggregate.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/Aggregate.js	                        (rev 0)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/Aggregate.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -0,0 +1,51 @@
+/* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
+
+OpenLayers.Feature.Geometry.Aggregate = function() {}
+OpenLayers.Feature.Geometry.Aggregate.prototype = {
+
+    getComponents: function(){
+        return this.components?this.components:null;
+    },
+
+    addComponents: function(components){
+	if(!(components instanceof Array)) {
+	    components = [components];
+	}
+
+	if(this.components) {
+	    this.components = this.components.concat(components);
+	} else {
+	    this.components = [].concat(components);
+	}
+    },
+
+    removeComponents: function(components){
+	if(!(components instanceof Array))
+	components = [components];
+
+	for (var i = 0; i < components.length; i++) {
+	    this.components = this.components.without(components[i]);
+	}
+    },
+
+    addSupportedComponents: function(classes){
+        if(!(classes instanceof Array))
+	classes = [classes];
+
+        if(this.SupportedComponents)
+	this.SupportedComponents = this.SupportedComponents.concat(classes);
+        else
+	this.SupportedComponents = [].concat(classes);
+    },
+
+    removeSupportedComponents: function(classes){
+	if(!(classes instanceof Array))
+	classes = [classes];
+
+	for (var i = 0; i < classes.length; i++) {
+	    this.SupportedComponents = this.SupportedComponents.without(classes[i]);
+	}
+    },
+
+    CLASS_NAME: "OpenLayers.Component"
+}

Deleted: sandbox/bertil/lib/OpenLayers/Feature/Geometry/Component.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/Component.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/Component.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -1,51 +0,0 @@
-/* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
-
-OpenLayers.Feature.Geometry.Component = function() {}
-OpenLayers.Feature.Geometry.Component.prototype = {
-
-    getComponents: function(){
-        return this.components?this.components:null;
-    },
-
-    addComponents: function(components){
-	if(!(components instanceof Array)) {
-	    components = [components];
-	}
-
-	if(this.components) {
-	    this.components = this.components.concat(components);
-	} else {
-	    this.components = [].concat(components);
-	}
-    },
-
-    removeComponents: function(components){
-	if(!(components instanceof Array))
-	components = [components];
-
-	for (var i = 0; i < components.length; i++) {
-	    this.components = this.components.without(components[i]);
-	}
-    },
-
-    addSupportedComponents: function(classes){
-        if(!(classes instanceof Array))
-	classes = [classes];
-
-        if(this.SupportedComponents)
-	this.SupportedComponents = this.SupportedComponents.concat(classes);
-        else
-	this.SupportedComponents = [].concat(classes);
-    },
-
-    removeSupportedComponents: function(classes){
-	if(!(classes instanceof Array))
-	classes = [classes];
-
-	for (var i = 0; i < classes.length; i++) {
-	    this.SupportedComponents = this.SupportedComponents.without(classes[i]);
-	}
-    },
-
-    CLASS_NAME: "OpenLayers.Component"
-}

Modified: sandbox/bertil/lib/OpenLayers/Feature/Geometry/CubicBezierCurve.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/CubicBezierCurve.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/CubicBezierCurve.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -1,17 +0,0 @@
-/* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
-
-OpenLayers.Feature.Geometry.CubicBezierCurve = OpenLayers.Class.create();
-OpenLayers.Feature.Geometry.CubicBezierCurve.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.CubicBezierCurve.prototype, OpenLayers.Feature.Geometry.prototype);
-OpenLayers.Feature.Geometry.CubicBezierCurve.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.CubicBezierCurve.prototype, {
-
-    initialize: function(points) {
-        OpenLayers.Feature.Geometry.prototype.initialize.apply(this, arguments);
-        if (!(points instanceof Array))
-           points = [points];
-           
-        this.path = [].concat(points);
-        this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME+ "_");
-    },
-    
-    CLASS_NAME: "OpenLayers.Feature.Geometry.CubicBezierCurve"
-});
\ No newline at end of file

Deleted: sandbox/bertil/lib/OpenLayers/Feature/Geometry/CubicBezierSurface.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/CubicBezierSurface.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/CubicBezierSurface.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -1,18 +0,0 @@
-/* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
-
-OpenLayers.Feature.Geometry.CubicBezierSurface = OpenLayers.Class.create();
-OpenLayers.Feature.Geometry.CubicBezierSurface.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.CubicBezierSurface.prototype, 
-                                      OpenLayers.Feature.Geometry.prototype);
-OpenLayers.Feature.Geometry.CubicBezierSurface.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.CubicBezierSurface.prototype, {
-
-    initialize: function(points) {
-        OpenLayers.Feature.Geometry.prototype.initialize.apply(this, arguments);
-        if (!(points instanceof Array)) {
-            points = [points];
-        }
-    
-        this.path = [].concat(points);
-    },
-
-    CLASS_NAME: "OpenLayers.Feature.Geometry.CubicBezierSurface"
-});

Added: sandbox/bertil/lib/OpenLayers/Feature/Geometry/Curve.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/Curve.js	                        (rev 0)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/Curve.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -0,0 +1,61 @@
+/* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
+
+OpenLayers.Feature.Geometry.Curve = OpenLayers.Class.create();
+OpenLayers.Feature.Geometry.Curve.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Curve.prototype, OpenLayers.Feature.Geometry.prototype);
+OpenLayers.Feature.Geometry.Curve.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Curve.prototype, {
+
+    initialize: function(points) {
+        OpenLayers.Feature.Geometry.prototype.initialize.apply(this, arguments);
+        
+        this.path = [];
+        
+        if (points && points instanceof Array) {
+            for (var i = 0; i < points.length; i++) {
+                this.addPoint(points[i]);
+            }
+        }
+        
+        this.getBoundingBox();
+    },
+    
+    getBoundingBox: function(){
+        if (this.path.length > 0) {
+        // compute the extent of the geometry
+            var xmin, ymin, xmax, ymax = null;
+            this.path.each(function(point) {
+                if (point.lon < xmin || xmin == null) {
+                    xmin = point.lon;
+                }
+                if (point.lon > xmax || xmax == null) {
+                    xmax = point.lon;
+                }
+                if (point.lat < ymin || ymin == null) {
+                    ymin = point.lat;
+                }
+                if (point.lat > ymax || ymax == null) {
+                    ymax = point.lat;
+                }
+            });
+            
+            this.extent = new OpenLayers.Bounds(xmin, ymin, xmax, ymax);
+            
+            return this.extent;
+        }        
+    },
+    
+    addPoint: function(point, index) {
+        if(point.CLASS_NAME == "OpenLayers.Feature.Geometry.Point"){
+            if (index) {
+                this.path = this.path.slice(0, index).concat([point]).concat(this.path.slice(index, (this.path.length - 1)));
+            } else {
+                this.path.push(point);
+            }
+        }
+    },
+    
+    removePoint: function(point){
+        this.path = this.path.without(point);
+    },
+    
+    CLASS_NAME: "OpenLayers.Feature.Geometry.Curve"
+});
\ No newline at end of file

Modified: sandbox/bertil/lib/OpenLayers/Feature/Geometry/LineSegment.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/LineSegment.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/LineSegment.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -5,15 +5,10 @@
 OpenLayers.Feature.Geometry.LineSegment.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.LineSegment.prototype, {
 
     initialize: function(point1, point2) {
-        OpenLayers.Feature.Geometry.prototype.initialize.apply(this, arguments);
-        if (point1 && point2) {
-            this.path = new Array(point1, point2);
-        }
+        arguments = [[point1, point2]]
+        OpenLayers.Feature.Geometry.LineString.prototype.initialize.apply(this, arguments);
     },
 
-    toString: function() {
-    return this.path.toString();
-    },
-
     CLASS_NAME: "OpenLayers.Feature.Geometry.LineSegment"
+    
 });

Modified: sandbox/bertil/lib/OpenLayers/Feature/Geometry/LineString.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/LineString.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/LineString.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -1,43 +1,14 @@
 /* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
 
 OpenLayers.Feature.Geometry.LineString = OpenLayers.Class.create();
-OpenLayers.Feature.Geometry.LineString.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.LineString.prototype, 
-                                  OpenLayers.Feature.Geometry.prototype);
+OpenLayers.Feature.Geometry.LineString.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.LineString.prototype, OpenLayers.Feature.Geometry.Curve.prototype);
 OpenLayers.Feature.Geometry.LineString.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.LineString.prototype, {
 
-    initialize: function(points) {
-        OpenLayers.Feature.Geometry.prototype.initialize.apply(this, arguments);
-        if (points && points instanceof Array) {
-            this.path = points;
-        } else {
-            this.path = [];
-        }
-        
-        if (this.path.length > 0) {
-        // compute the extent of the geometry
-            var xmin, ymin, xmax, ymax = null;
-            this.path.each(function(point) {
-                if (point.lon < xmin || xmin == null) {
-                    xmin = point.lon;
-                }
-                if (point.lon > xmax || xmax == null) {
-                    xmax = point.lon;
-                }
-                if (point.lat < ymin || ymin == null) {
-                    ymin = point.lat;
-                }
-                if (point.lat > ymax || ymax == null) {
-                    ymax = point.lat;
-                }
-            });
-            
-            this.extent = new OpenLayers.Bounds(xmin, ymin, xmax, ymax);
-        }
-    },
 
     toString: function() {
         return this.path.toString();
     },
 
     CLASS_NAME: "OpenLayers.Feature.Geometry.LineString"
+    
 });

Modified: sandbox/bertil/lib/OpenLayers/Feature/Geometry/LinearRing.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/LinearRing.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/LinearRing.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -1,18 +1,25 @@
 /* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
 
 OpenLayers.Feature.Geometry.LinearRing = OpenLayers.Class.create();
-OpenLayers.Feature.Geometry.LinearRing.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.LinearRing.prototype, OpenLayers.Feature.Geometry.prototype);
+
+OpenLayers.Feature.Geometry.LinearRing.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.LinearRing.prototype, OpenLayers.Feature.Geometry.LineString.prototype);
 OpenLayers.Feature.Geometry.LinearRing.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.LinearRing.prototype, {
 
     initialize: function(points) {
-        OpenLayers.Feature.Geometry.prototype.initialize.apply(this, arguments);
-        if (!(points instanceof Array)) {
-            points = [points];
-        }
+        OpenLayers.Feature.Geometry.LineString.prototype.initialize.apply(this, arguments);
+    },
     
-        this.path = [].concat(points);
-        this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME+ "_");
+    addPoint: function() {
+        this.path.pop();
+        OpenLayers.Feature.Geometry.LineString.prototype.addPoint.apply(this, arguments);
+        this.path.push(this.path.first());
     },
+    
+    removePoint: function() {
+        this.path.pop();
+        OpenLayers.Feature.Geometry.LineString.prototype.removePoint.apply(this, arguments);
+        this.path.push(this.path.first());
+    },
 
     toString: function() {
         return this.path.toString();

Modified: sandbox/bertil/lib/OpenLayers/Feature/Geometry/Point.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/Point.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/Point.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -1,6 +1,7 @@
 /* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
 
 OpenLayers.Feature.Geometry.Point = OpenLayers.Class.create();
+
 OpenLayers.Feature.Geometry.Point.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Point.prototype, OpenLayers.Feature.Geometry.prototype);
 OpenLayers.Feature.Geometry.Point.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Point.prototype, OpenLayers.LonLat.prototype);
 OpenLayers.Feature.Geometry.Point.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Point.prototype, {

Modified: sandbox/bertil/lib/OpenLayers/Feature/Geometry/Polygon.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/Polygon.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/Polygon.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -1,18 +1,17 @@
 /* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
 
 OpenLayers.Feature.Geometry.Polygon = OpenLayers.Class.create();
-OpenLayers.Feature.Geometry.Polygon.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Polygon.prototype, 
-                                   OpenLayers.Feature.Geometry.prototype);
+OpenLayers.Feature.Geometry.Polygon.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Polygon.prototype, OpenLayers.Feature.Geometry.Surface.prototype);
 OpenLayers.Feature.Geometry.Polygon.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Polygon.prototype, {
-
-    initialize: function(points) {
-        OpenLayers.Feature.Geometry.prototype.initialize.apply(this, arguments);
-        if (!(points instanceof Array)) {
-            points = [points];
-        }
     
-        this.path = [].concat(points);
-
+    initialize: function(linearRings) {
+        OpenLayers.Feature.Geometry.Surface.prototype.initialize.apply(this, arguments);
+        
+        this.linearRings = [];
+        
+        if (linearRings instanceof Array) {
+            this.linearRings = linearRings;
+        }
     },
 
     toString: function() {

Added: sandbox/bertil/lib/OpenLayers/Feature/Geometry/Surface.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Feature/Geometry/Surface.js	                        (rev 0)
+++ sandbox/bertil/lib/OpenLayers/Feature/Geometry/Surface.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -0,0 +1,9 @@
+/* Copyright (c) 2006 CampToCamp SA, Bertil Chapuis, published under the BSD license. */
+
+OpenLayers.Feature.Geometry.Surface = OpenLayers.Class.create();
+OpenLayers.Feature.Geometry.Surface.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Surface.prototype, OpenLayers.Feature.Geometry.prototype);
+OpenLayers.Feature.Geometry.Surface.prototype = OpenLayers.Util.extend(OpenLayers.Feature.Geometry.Surface.prototype, {
+
+    CLASS_NAME: "OpenLayers.Feature.Geometry.Surface"
+    
+});

Modified: sandbox/bertil/lib/OpenLayers/Layer/Vector.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Layer/Vector.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Layer/Vector.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -56,14 +56,10 @@
            features = [features];
         }
 
-        if (this.features) {
-            this.features = this.features.concat(features);
-        } else {
-            this.features = [].concat(features);
-        }
+        this.features = this.features.concat(features);
         
         for (var i = 0; i < features.length; i++) {
-            this.renderer.drawGeometry(features[i]);
+            var feature = this.renderer.drawGeometry(features[i]);
         }
     },
 

Modified: sandbox/bertil/lib/OpenLayers/Renderer/Svg.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Renderer/Svg.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Renderer/Svg.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -113,17 +113,17 @@
         }
         
         if (geometry.style){            
-            var style = geometry.style;
+            style = OpenLayers.Util.extend(this.style, geometry.style);
         } else {
-            var style = this.style;
+            style = this.style;
         }
 
         switch (geometry.CLASS_NAME) {
             case "OpenLayers.Feature.Geometry.Point":
                 var node = this.drawPoint(geometry, geometry.id, style, true);
                 break;
-            case "OpenLayers.Feature.Geometry.CubicBezierCurve":
-                var node = this.drawCubicBezierCurve(geometry.path, geometry.id, style, true);
+            case "OpenLayers.Feature.Geometry.Curve":
+                var node = this.drawCurve(geometry.path, geometry.id, style, true);
                 break;
             case "OpenLayers.Feature.Geometry.LineSegment":
             case "OpenLayers.Feature.Geometry.LineString":
@@ -135,8 +135,8 @@
             case "OpenLayers.Feature.Geometry.Polygon":
                 var node = this.drawPolygon(geometry.path, geometry.id, style, true);
                 break;
-            case "OpenLayers.Feature.Geometry.CubicBezierSurface":
-                var node = this.drawCubicBezierSurface(geometry.path, geometry.id, style, true);
+            case "OpenLayers.Feature.Geometry.Surface":
+                var node = this.drawSurface(geometry.path, geometry.id, style, true);
                 break;
             case "OpenLayers.Feature.Geometry.Rectangle":
                 var node = this.drawRectangle(geometry.x, geometry.y, geometry.width, geometry.height, geometry.id, style, true);
@@ -259,7 +259,7 @@
         return node;
     },
 
-    drawCubicBezierCurve: function(points, id, style, parent) {
+    drawCurve: function(points, id, style, parent) {
         var node = this._nodeFactory("path", id);
     
         var d = null;
@@ -283,7 +283,7 @@
         return node;
     },
 
-    drawCubicBezierSurface: function(points, id, style, parent) {
+    drawSurface: function(points, id, style, parent) {
         var node = this._nodeFactory("path", id);
     
         var d = null;

Modified: sandbox/bertil/lib/OpenLayers/Renderer/Vml.js
===================================================================
--- sandbox/bertil/lib/OpenLayers/Renderer/Vml.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers/Renderer/Vml.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -147,8 +147,8 @@
     case "OpenLayers.Feature.Geometry.Point":
         var node = this.drawPoint(geometry.x, geometry.y, geometry.id, true);
         break;
-    case "OpenLayers.Feature.Geometry.CubicBezierCurve":
-        var node = this.drawCubicBezierCurve(geometry.path, geometry.id, true);
+    case "OpenLayers.Feature.Geometry.Curve":
+        var node = this.drawCurve(geometry.path, geometry.id, true);
         break;
     case "OpenLayers.Feature.Geometry.LineString":
         var node = this.drawLineString(geometry.path, geometry.id, true);
@@ -159,8 +159,8 @@
     case "OpenLayers.Feature.Geometry.Polygon":
         var node = this.drawPolygon(geometry.path, geometry.id, true);
         break;
-    case "OpenLayers.Feature.Geometry.CubicBezierSurface":
-        var node = this.drawCubicBezierSurface(geometry.path, geometry.id, true);
+    case "OpenLayers.Feature.Geometry.Surface":
+        var node = this.drawSurface(geometry.path, geometry.id, true);
         break;
     case "OpenLayers.Feature.Geometry.Rectangle":
         var node = this.drawRectangle(geometry.x, geometry.y, geometry.width, geometry.height, geometry.id, true);
@@ -325,7 +325,7 @@
     return node;
     },
 
-    drawCubicBezierCurve: function(points, id, parent, predecessor) {
+    drawCurve: function(points, id, parent, predecessor) {
         var bbox = this._getVmlBoundingBox(points);
         var node = this._nodeFactory("v:shape", id);
 
@@ -361,7 +361,7 @@
     return node;
     },
 
-    drawCubicBezierSurface: function(points, id, parent, predecessor) {
+    drawSurface: function(points, id, parent, predecessor) {
         var bbox = this._getVmlBoundingBox(points);
         var node = this._nodeFactory("v:shape", id);
 

Modified: sandbox/bertil/lib/OpenLayers.js
===================================================================
--- sandbox/bertil/lib/OpenLayers.js	2006-11-08 11:48:59 UTC (rev 1774)
+++ sandbox/bertil/lib/OpenLayers.js	2006-11-08 14:54:31 UTC (rev 1775)
@@ -103,17 +103,16 @@
         "OpenLayers/Control/Edition.js",
         "OpenLayers/Control/EditionToolbar.js",
         "OpenLayers/Control/Edition/DrawLinearPath.js",
-        "OpenLayers/Control/Edition/DrawCurvePath.js",
         "OpenLayers/Control/Edition/Selection.js",
         "OpenLayers/Feature/Geometry.js",
-        "OpenLayers/Feature/Geometry/Component.js",
-        "OpenLayers/Feature/Geometry/CubicBezierCurve.js",
-        "OpenLayers/Feature/Geometry/CubicBezierSurface.js",
-        "OpenLayers/Feature/Geometry/LinearRing.js",
+        "OpenLayers/Feature/Geometry/Point.js",
+        "OpenLayers/Feature/Geometry/Curve.js",
         "OpenLayers/Feature/Geometry/LineString.js",
         "OpenLayers/Feature/Geometry/LineSegment.js",
-        "OpenLayers/Feature/Geometry/Point.js",
+        "OpenLayers/Feature/Geometry/LinearRing.js",        
+        "OpenLayers/Feature/Geometry/Surface.js",
         "OpenLayers/Feature/Geometry/Polygon.js",
+        "OpenLayers/Feature/Geometry/Aggregate.js",
         "OpenLayers/Renderer.js",
         "OpenLayers/Renderer/Svg.js",
         "OpenLayers/Renderer/Vml.js",



More information about the Commits mailing list