6e95331d8418426b84625de7a1cf38850793e7d4
[chise/kage.git] / engine / polygons.js
1 function Polygons(){\r
2   // method\r
3   function push(polygon){ // void\r
4     // only a simple check\r
5     var minx = 200;\r
6     var maxx = 0;\r
7     var miny = 200;\r
8     var maxy = 0;\r
9     for(var i = 0; i < polygon.array.length; i++){\r
10       if(polygon.array[i].x < minx){\r
11         minx = polygon.array[i].x;\r
12       }\r
13       if(polygon.array[i].x > maxx){\r
14         maxx = polygon.array[i].x;\r
15       }\r
16       if(polygon.array[i].y < miny){\r
17         miny = polygon.array[i].y;\r
18       }\r
19       if(polygon.array[i].y > maxy){\r
20         maxy = polygon.array[i].y;\r
21       }\r
22     }\r
23     if(minx != maxx && miny != maxy && polygon.array.length >= 3){\r
24       var newArray = new Array();\r
25       newArray.push(polygon.array.shift());\r
26       while(polygon.array.length != 0){\r
27         var temp = polygon.array.shift();\r
28         if(newArray[newArray.length - 1].x != temp.x ||\r
29            newArray[newArray.length - 1].y != temp.y){\r
30           newArray.push(temp);\r
31         }\r
32       }\r
33       if(newArray.length >= 3){\r
34         polygon.array = newArray;\r
35         this.array.push(polygon);\r
36       }\r
37     }\r
38   }\r
39   Polygons.prototype.push = push;\r
40   \r
41   function generateSVG(){ // string\r
42     var buffer = "";\r
43     buffer += "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" baseProfile=\"full\">\n";\r
44     buffer += "<g fill=\"black\">\n";\r
45     for(var i = 0; i < this.array.length; i++){\r
46       buffer += "<polygon points=\"";\r
47       for(var j = 0; j < this.array[i].array.length; j++){\r
48         buffer += this.array[i].array[j].x + "," + this.array[i].array[j].y + " ";\r
49       }\r
50       buffer += "\" />\n";\r
51     }\r
52     buffer += "</g>\n";\r
53     buffer += "</svg>\n";\r
54     return buffer;\r
55   }\r
56   Polygons.prototype.generateSVG = generateSVG;\r
57   \r
58   // property\r
59   this.array = new Array();\r
60   \r
61   return this;\r
62 }\r