set polygons to counter-clockwise
[chise/kage.git] / engine / kagecd.js
index a7dedb5..a6e4bbf 100755 (executable)
@@ -400,6 +400,9 @@ function cdDrawCurveU(kage, polygons, x1, y1, sx1, sy1, sx2, sy2, x2, y2, ta1, t
           poly.push(x1 - kMinWidthT, y1 + 1);\r
           poly.push(x1 + kMinWidthT, y1);\r
           poly.push(x1 - kMinWidthT * pm, y1 - kage.kMinWidthY * type * pm);\r
+          //if(x1 > x2){\r
+          //  poly.reverse();\r
+          //}\r
           polygons.push(poly);\r
         }\r
         else{\r
@@ -407,6 +410,9 @@ function cdDrawCurveU(kage, polygons, x1, y1, sx1, sy1, sx2, sy2, x2, y2, ta1, t
           poly.push(x1 - kMinWidthT * XX + 1 * YX, y1 - kMinWidthT * XY + 1 * YY);\r
           poly.push(x1 + kMinWidthT * XX, y1 + kMinWidthT * XY);\r
           poly.push(x1 - kMinWidthT * pm * XX - kage.kMinWidthY * type * pm * YX, y1 - kMinWidthT * pm * XY - kage.kMinWidthY * type * pm * YY);\r
+          //if(x1 > x2){\r
+          //  poly.reverse();\r
+          //}\r
           polygons.push(poly);\r
         }\r
       }\r
@@ -423,6 +429,9 @@ function cdDrawCurveU(kage, polygons, x1, y1, sx1, sy1, sx2, sy2, x2, y2, ta1, t
           poly.push(x1 - kMinWidthT * XX, y1 - kMinWidthT * XY);\r
           poly.push(x1 + kMinWidthT * XX, y1 + kMinWidthT * XY);\r
           poly.push(x1 + kMinWidthT * XX - kage.kMinWidthY * YX, y1 + kMinWidthT * XY - kage.kMinWidthY * YY);\r
+          //if(x1 < x2){\r
+          //  poly.reverse();\r
+          //}\r
           polygons.push(poly);\r
         }\r
       }\r
@@ -459,6 +468,9 @@ function cdDrawCurveU(kage, polygons, x1, y1, sx1, sy1, sx2, sy2, x2, y2, ta1, t
                     y1 + kMinWidthT * 1.5 * XY + (kage.kMinWidthY - move * 1.2) * YY);\r
           poly.push(x1 + (kMinWidthT - 2) * XX + (kage.kMinWidthY * 2 - move * 0.8 + 1) * YX,\r
                     y1 + (kMinWidthT - 2) * XY + (kage.kMinWidthY * 2 - move * 0.8 + 1) * YY);\r
+          //if(x1 < x2){\r
+          //  poly.reverse();\r
+          //}\r
           polygons.push(poly);\r
         }\r
       }\r
@@ -475,6 +487,9 @@ function cdDrawCurveU(kage, polygons, x1, y1, sx1, sy1, sx2, sy2, x2, y2, ta1, t
           poly.push(x1 - kMinWidthT * XX, y1 - kMinWidthT * XY);\r
           poly.push(x1 - kMinWidthT * 1.5 * XX + kage.kMinWidthY * YX, y1 + kage.kMinWidthY * YY - kMinWidthT * 1.5 * XY);\r
           poly.push(x1 - kMinWidthT * 0.5 * XX + kage.kMinWidthY * 3 * YX, y1 + kage.kMinWidthY * 3 * YY - kMinWidthT * 0.5 * XY);\r
+          //if(x1 < x2){\r
+          //  poly.reverse();\r
+          //}\r
           polygons.push(poly);\r
         }\r
       }\r
@@ -583,10 +598,17 @@ function cdDrawCurveU(kage, polygons, x1, y1, sx1, sy1, sx2, sy2, x2, y2, ta1, t
     if(a2 == 15){ //jump up ... it can change 15->5\r
       // anytime same degree\r
       poly = new Polygon();\r
-      poly.push(x2, y2 - kMinWidthT + 1);\r
-      poly.push(x2 + 2, y2 - kMinWidthT - kage.kWidth * 5);\r
-      poly.push(x2, y2 - kMinWidthT - kage.kWidth * 5);\r
-      poly.push(x2 - kMinWidthT, y2 - kMinWidthT + 1);\r
+      if(y1 < y2){\r
+        poly.push(x2, y2 - kMinWidthT + 1);\r
+        poly.push(x2 + 2, y2 - kMinWidthT - kage.kWidth * 5);\r
+        poly.push(x2, y2 - kMinWidthT - kage.kWidth * 5);\r
+        poly.push(x2 - kMinWidthT, y2 - kMinWidthT + 1);\r
+      } else {\r
+        poly.push(x2, y2 + kMinWidthT - 1);\r
+        poly.push(x2 - 2, y2 + kMinWidthT + kage.kWidth * 5);\r
+        poly.push(x2, y2 + kMinWidthT + kage.kWidth * 5);\r
+        poly.push(x2 + kMinWidthT, y2 + kMinWidthT - 1);\r
+      }\r
       polygons.push(poly);\r
     }\r
     \r
@@ -596,6 +618,7 @@ function cdDrawCurveU(kage, polygons, x1, y1, sx1, sy1, sx2, sy2, x2, y2, ta1, t
       poly.push(x2, y2 - kMinWidthT);\r
       poly.push(x2 - kage.kWidth * 4 * Math.pow(kMinWidthT / kage.kMinWidthT, 3), y2 - kMinWidthT);\r
       poly.push(x2 - kage.kWidth * 4 * Math.pow(kMinWidthT / kage.kMinWidthT, 3), y2 - kMinWidthT * 0.5);\r
+      //poly.reverse();\r
       polygons.push(poly);\r
     }\r
   }\r
@@ -861,7 +884,7 @@ function cdDrawLine(kage, polygons, tx1, ty1, tx2, ty2, ta1, ta2){
           poly.push(x2 + kMinWidthT * 0.6, y2 + kMinWidthT * 0.6);\r
           poly.push(x2 + kMinWidthT, y2);\r
         }\r
-        poly.reverse(); // for fill-rule\r
+        //poly.reverse(); // for fill-rule\r
         polygons.push(poly);\r
       }\r
     }\r
@@ -923,7 +946,7 @@ function cdDrawLine(kage, polygons, tx1, ty1, tx2, ty2, ta1, ta2){
             poly.push(x2, y2 - kMinWidthT - kage.kWidth * (4 * (1 - opt1 / kage.kAdjustMageStep) + 1));\r
             poly.push(x2 + kMinWidthT, y2 - kMinWidthT + 1);\r
           }\r
-          poly.reverse(); // for fill-rule\r
+          //poly.reverse(); // for fill-rule\r
           polygons.push(poly);\r
         }\r
       }\r
@@ -1139,7 +1162,7 @@ function cdDrawLine(kage, polygons, tx1, ty1, tx2, ty2, ta1, ta2){
       poly.push(x2 - kage.kWidth, y2);\r
       poly.push(x2 + kage.kWidth, y2);\r
       poly.push(x1 + kage.kWidth, y1);\r
-      poly.reverse(); // for fill-rule\r
+      //poly.reverse(); // for fill-rule\r
       \r
       polygons.push(poly);\r
     }\r