X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=engine%2Fpolygons.js;h=a52305c79846ffc41cc4a24f6640b53b048553e4;hb=89391b0cb321beedeefb3b879599089fb1188bd7;hp=ae53bc0cdfd7903180e23e5282ce82a90de1e8ab;hpb=b48adf666c08e22e6e0f754a541e718d607da155;p=chise%2Fkage.git diff --git a/engine/polygons.js b/engine/polygons.js index ae53bc0..a52305c 100755 --- a/engine/polygons.js +++ b/engine/polygons.js @@ -1,16 +1,58 @@ function Polygons(){ // method - function push(_polygon){ // void - this.array.push(_polygon); + function clear(){ // void + this.array = new Array(); + } + Polygons.prototype.clear = clear; + + function push(polygon){ // void + // only a simple check + var minx = 200; + var maxx = 0; + var miny = 200; + var maxy = 0; + var error = 0; + for(var i = 0; i < polygon.array.length; i++){ + if(polygon.array[i].x < minx){ + minx = polygon.array[i].x; + } + if(polygon.array[i].x > maxx){ + maxx = polygon.array[i].x; + } + if(polygon.array[i].y < miny){ + miny = polygon.array[i].y; + } + if(polygon.array[i].y > maxy){ + maxy = polygon.array[i].y; + } + if(isNaN(polygon.array[i].x) || isNaN(polygon.array[i].y)){ + error++; + } + } + if(error == 0 && minx != maxx && miny != maxy && polygon.array.length >= 3){ + var newArray = new Array(); + newArray.push(polygon.array.shift()); + while(polygon.array.length != 0){ + var temp = polygon.array.shift(); + if(newArray[newArray.length - 1].x != temp.x || + newArray[newArray.length - 1].y != temp.y){ + newArray.push(temp); + } + } + if(newArray.length >= 3){ + polygon.array = newArray; + this.array.push(polygon); + } + } } Polygons.prototype.push = push; function generateSVG(){ // string var buffer = ""; - buffer += "\n"; - buffer += "\n"; + buffer += "\n"; + buffer += "\n"; for(var i = 0; i < this.array.length; i++){ - buffer += "