Fixed SVG header.
[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 += "<?xml version=\"1.0\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n";\r
44     buffer += "<svg width=\"200\" height=\"200\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" baseProfile=\"full\">\n";\r
45     buffer += "<g fill=\"black\">\n";\r
46     for(var i = 0; i < this.array.length; i++){\r
47       buffer += "<polygon points=\"";\r
48       for(var j = 0; j < this.array[i].array.length; j++){\r
49         buffer += this.array[i].array[j].x + "," + this.array[i].array[j].y + " ";\r
50       }\r
51       buffer += "\" />\n";\r
52     }\r
53     buffer += "</g>\n";\r
54     buffer += "</svg>\n";\r
55     return buffer;\r
56   }\r
57   Polygons.prototype.generateSVG = generateSVG;\r
58   \r
59   // property\r
60   this.array = new Array();\r
61   \r
62   return this;\r
63 }\r