 		
 		private function reorderEdges():void
 		{
+			//trace("_edges:", _edges);
 			var reorderer:EdgeReorderer = new EdgeReorderer(_edges, Vertex);
 			_edges = reorderer.edges;
+			//trace("reordered:", _edges);
 			_edgeOrientations = reorderer.edgeOrientations;
 			reorderer.dispose();
 		}

				}
				connect(points, j, bounds);
			}
			// close up the polygon:
			connect(points, i, bounds, true);
			return points;
		}
		
		private function connect(points:Vector.<Point>, j:int, bounds:Rectangle, closingUp:Boolean = false):void
		{
			var rightPoint:Point = points[points.length - 1] as Point;
			var newEdge:Edge = _edges[j] as Edge;
			var newOrientation:LR = _edgeOrientations[j];
			// the point that  must be connected to rightPoint:

				}
				points.push(newPoint);
			}
			var newRightPoint:Point = newEdge.clippedEnds[LR.other(newOrientation)];
			if (!closeEnough(points[0], newRightPoint))
			{
				points.push(newRightPoint);
			}
		}
								
		internal function get x():Number
