gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/trunk r9763: Try hitTest with the transfor


From: Sandro Santilli
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r9763: Try hitTest with the transformed characters. Gnash succeeds.
Date: Wed, 17 Sep 2008 13:21:56 +0200
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9763
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Wed 2008-09-17 13:21:56 +0200
message:
  Try hitTest with the transformed characters. Gnash succeeds.
  Note that this is with shapeFlag off (only checking boundaries).
  Dunno why, when trying shapeFlag on (check actual shape hit) the pp
  gives odd results.
modified:
  testsuite/misc-ming.all/matrix_test.c
    ------------------------------------------------------------
    revno: 9760.1.5
    committer: Sandro Santilli <address@hidden>
    branch nick: mybranch
    timestamp: Wed 2008-09-17 13:20:40 +0200
    message:
      Add hitTest tests with shape flag off for each constructed object
    modified:
      testsuite/misc-ming.all/matrix_test.c
=== modified file 'testsuite/misc-ming.all/matrix_test.c'
--- a/testsuite/misc-ming.all/matrix_test.c     2008-09-17 09:29:45 +0000
+++ b/testsuite/misc-ming.all/matrix_test.c     2008-09-17 11:20:40 +0000
@@ -85,7 +85,8 @@
        Ming_init();
        mo = newSWFMovieWithVersion(OUTPUT_VERSION);
        SWFMovie_setDimension(mo, 800, 600);
-       SWFMovie_setRate (mo, 2);
+       //SWFMovie_setRate (mo, 2);
+       SWFMovie_setRate (mo, 12);
 
        dejagnuclip = get_dejagnu_clip((SWFBlock)get_default_font(srcdir), 10, 
0, 0, 800, 600);
        SWFMovie_add(mo, (SWFBlock)dejagnuclip);
@@ -113,19 +114,15 @@
        // X:  19.95 ..  80.05
        // Y: 269.95 .. 330.05
 
-       check(mo, "staticmc.hitTest(30, 300, true)");    // in hittable shape 
-       xcheck(mo, "!staticmc.hitTest(20, 300, true)");  //  rounding makes 20 
be too on the left for a shape test
-       check(mo, "staticmc.hitTest(20, 300, false)");   //  but is fine for a 
boundary test
-
-       check(mo, "staticmc.hitTest(75, 300, true)");   // in hittable shape 
-       xcheck(mo, "!staticmc.hitTest(80, 300, true)");  //   rounding makes 80 
be too on the right for a shape test
-       check(mo, "staticmc.hitTest(80, 300, false)");  //   but is fine for a 
boundary test
-
-       check(mo, "staticmc.hitTest(25, 330, true)");  // in hittable shape 
-       check(mo, "staticmc.hitTest(75, 330, true)");  // in hittable shape 
-
-       check(mo, "staticmc.hitTest(25, 270, true)");  // in hittable shape 
-       check(mo, "staticmc.hitTest(75, 270, true)");  // in hittable shape 
+       check(mo, "staticmc.hitTest(21, 270, false)");  // top-left
+       check(mo, "staticmc.hitTest(79, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(21, 329, false)");  // bottom-left
+       check(mo, "staticmc.hitTest(79, 329, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(18, 300, false)");  // overleft
+       check(mo, "!staticmc.hitTest(82, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 260, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 331, false)");  // overdown
 
        SWFMovie_nextFrame(mo);        
 
@@ -141,6 +138,20 @@
        check_equals(mo, "staticmc._width", "85");
        check_equals(mo, "staticmc._height", "85");
 
+       // X:   7.5  ..  92.5 
+       // Y: 257.5  .. 342.5
+
+       check(mo, "staticmc.hitTest(8, 258, false)");   // top-left
+       check(mo, "staticmc.hitTest(90, 258, false)");  // top-right
+       check(mo, "staticmc.hitTest(8, 340, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(90, 340, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(6, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(95, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 250, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 345, false)");  // overdown
+
+
        SWFMovie_nextFrame(mo);        
 
        SWFDisplayItem_scaleTo(it, 2, 3);
@@ -155,25 +166,18 @@
        check_equals(mo, "staticmc._width", "212.5");
        check_equals(mo, "staticmc._height", "212.5");
 
-       check(mo, "staticmc.hitTest(-56, 194, false)");  // in boundaries
-       check(mo, "staticmc.hitTest(-56, 406, false)");  // in boundaries
-       check(mo, "staticmc.hitTest(156, 194, false)");  // in boundaries
-       check(mo, "staticmc.hitTest(156, 406, false)");  // in boundaries
-
-    // X: -56.25  156.25
-    // Y: 193.75  406.25
-       //check(mo, "staticmc.hitTest(0, 300, true)");  // in hittable shape 
(why no hit?)
-       //check(mo, "staticmc.hitTest(0, 0, true)");  // in hittable shape (why 
no hit?)
-
-       check(mo, "!staticmc.hitTest(-57, 194, true)"); 
-       check(mo, "!staticmc.hitTest(-57, 406, true)"); 
-       check(mo, "!staticmc.hitTest(157, 194, true)"); 
-       check(mo, "!staticmc.hitTest(157, 406, true)"); 
-       check(mo, "!staticmc.hitTest(-56, 193, true)"); 
-       check(mo, "!staticmc.hitTest(-56, 407, true)"); 
-       check(mo, "!staticmc.hitTest(156, 193, true)"); 
-       check(mo, "!staticmc.hitTest(156, 407, true)"); 
-
+       // X: -56.25  156.25
+       // Y: 193.75  406.25
+
+       check(mo, "staticmc.hitTest(-56, 194, false)");   // top-left
+       check(mo, "staticmc.hitTest(156, 194, false)");  // top-right
+       check(mo, "staticmc.hitTest(-56, 406, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(156, 406, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-57, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(157, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 193, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 407, false)");  // overdown
 
        SWFMovie_nextFrame(mo);        
 
@@ -189,6 +193,19 @@
        check_equals(mo, "staticmc._width", "382.5");
        check_equals(mo, "staticmc._height", "212.5");
 
+       // X: -141.25  241.25
+       // Y:  193.75  406.25
+
+       check(mo, "staticmc.hitTest(-141, 194, false)");   // top-left
+       check(mo, "staticmc.hitTest(241, 194, false)");  // top-right
+       check(mo, "staticmc.hitTest(-141, 406, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(241, 406, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-142, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(242, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 193, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 407, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
 
        SWFDisplayItem_scaleTo(it, 2, -3);
@@ -203,6 +220,19 @@
        check_equals(mo, "staticmc._width", "382.5");
        check_equals(mo, "staticmc._height", "212.5");
 
+       // X: -141.25  241.25
+       // Y:  193.75  406.25
+
+       check(mo, "staticmc.hitTest(-141, 194, false)");   // top-left
+       check(mo, "staticmc.hitTest(241, 194, false)");  // top-right
+       check(mo, "staticmc.hitTest(-141, 406, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(241, 406, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-142, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(242, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 193, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 407, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
 
        SWFDisplayItem_skewXTo(it, 0);
@@ -217,6 +247,20 @@
        check_equals(mo, "staticmc._width", "212.5");
        check_equals(mo, "staticmc._height", "212.5");
 
+       // X: -56.25  156.25
+       // Y:  193.75  406.25
+
+       check(mo, "staticmc.hitTest(-56, 194, false)");   // top-left
+       check(mo, "staticmc.hitTest(156, 194, false)");  // top-right
+       check(mo, "staticmc.hitTest(-56, 406, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(156, 406, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-57, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(157, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 193, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 407, false)");  // overdown
+
+
        SWFMovie_nextFrame(mo);        
 
        SWFDisplayItem_scaleTo(it, -2, 2);
@@ -231,6 +275,19 @@
        check_equals(mo, "staticmc._width", "170");
        check_equals(mo, "staticmc._height", "170");
 
+       // X:  -35     135   
+       // Y:  215     385
+
+       check(mo, "staticmc.hitTest(-34, 216, false)");   // top-left
+       check(mo, "staticmc.hitTest(134, 216, false)");  // top-right
+       check(mo, "staticmc.hitTest(-34, 384, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(134, 384, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-36, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(136, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 214, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 386, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
 
        SWFDisplayItem_scaleTo(it, 1, 1);
@@ -246,6 +303,19 @@
        check_equals(mo, "staticmc._width", "170");
        check_equals(mo, "staticmc._height", "85");
 
+       // X:  -35     135   
+       // Y:  257.5   342.5
+
+       check(mo, "staticmc.hitTest(-34, 258, false)");   // top-left
+       check(mo, "staticmc.hitTest(134, 258, false)");  // top-right
+       check(mo, "staticmc.hitTest(-34, 342, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(134, 342, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-36, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(136, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 257, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 343, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, 1, 0, 0, 1, 50, 300); // reset to 
near-identity
 
@@ -259,6 +329,19 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X:   19.95   80.05
+       // Y:  269.95  330.05
+
+       check(mo, "staticmc.hitTest(20, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 331, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, 0, 0, 1, 50, 300); // negative x scale 
gets interpreted as 180 degrees rotation
 
@@ -272,6 +355,19 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X:   19.95   80.05
+       // Y:  269.95  330.05
+
+       check(mo, "staticmc.hitTest(20, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 331, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, 1, 0, 0, -1, 50, 300); // negative y scale 
(discarded ?)
 
@@ -285,6 +381,19 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X:   19.95   80.05
+       // Y:  269.95  330.05
+
+       check(mo, "staticmc.hitTest(20, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 331, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, 0, 0, -1, 50, 300); // negative x and 
y scales
 
@@ -298,6 +407,19 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X:   19.95   80.05
+       // Y:  269.95  330.05
+
+       check(mo, "staticmc.hitTest(20, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 331, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, -45, 0, 1, 50, 300); // negative x 
scale and some negative skew
 
@@ -311,6 +433,19 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "2764.6");
 
+       // X:    19.95   80.05
+       // Y: -1082.3  1682.3
+
+       check(mo, "staticmc.hitTest(20, -1082, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, -1082, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 1682, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 1682, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 0, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 0, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, -1083, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 1683, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, 45, 0, 1, 50, 300); // negative x 
scale and some positive skew
 
@@ -324,6 +459,19 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "2764.6");
 
+       // X:    19.95   80.05
+       // Y: -1082.3  1682.3
+
+       check(mo, "staticmc.hitTest(20, -1082, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, -1082, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 1682, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 1682, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 0, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 0, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, -1083, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 1683, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, 1, -45, 0, -1, 50, 300); // negative x 
scale and some negative skew
 
@@ -337,6 +485,19 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "2764.6");
 
+       // X:    19.95   80.05
+       // Y: -1082.3  1682.3
+
+       check(mo, "staticmc.hitTest(20, -1082, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, -1082, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 1682, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 1682, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 0, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 0, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, -1083, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 1683, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, 1, 45, 0, -1, 50, 300); // negative x 
scale and some positive skew
 
@@ -350,6 +511,19 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "2764.6");
 
+       // X:    19.95   80.05
+       // Y: -1082.3  1682.3
+
+       check(mo, "staticmc.hitTest(20, -1082, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, -1082, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 1682, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 1682, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 0, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 0, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, -1083, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 1683, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, 45, 0, -1, 50, 300); // negative x 
scale and some positive skew
 
@@ -363,6 +537,19 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "2764.6");
 
+       // X:    19.95   80.05
+       // Y: -1082.3  1682.3
+
+       check(mo, "staticmc.hitTest(20, -1082, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, -1082, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 1682, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 1682, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 0, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 0, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, -1083, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 1683, false)");  // overdown
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, -45, 0, -1, 50, 300); // negative x 
scale and some positive skew
 
@@ -376,6 +563,20 @@
        check_equals(mo, "staticmc._width", "60.1");
        check_equals(mo, "staticmc._height", "2764.6");
 
+       // X:    19.95   80.05
+       // Y: -1082.3  1682.3
+
+       check(mo, "staticmc.hitTest(20, -1082, false)");   // top-left
+       check(mo, "staticmc.hitTest(80, -1082, false)");  // top-right
+       check(mo, "staticmc.hitTest(20, 1682, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(80, 1682, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(19, 0, false)");   // overleft
+       check(mo, "!staticmc.hitTest(81, 0, false)");  // overright
+       check(mo, "!staticmc.hitTest(50, -1083, false)");  // overup
+       check(mo, "!staticmc.hitTest(50, 1683, false)");  // overdown
+
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, 0, -45, 1, 50, 300); // negative x 
scale and some negative skew
 
@@ -389,6 +590,20 @@
        check_equals(mo, "staticmc._width", "2764.6");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X: -1332.3  1432.3 
+       // Y:   269.95  330.05
+
+       check(mo, "staticmc.hitTest(-1332, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(1432, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(-1332, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(1432, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-1333, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(1433, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(0, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(0, 331, false)");  // overdown
+
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, 0, 45, 1, 50, 300); // negative x 
scale and some positive skew
 
@@ -402,6 +617,20 @@
        check_equals(mo, "staticmc._width", "2764.6");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X: -1332.3  1432.3 
+       // Y:   269.95  330.05
+
+       check(mo, "staticmc.hitTest(-1332, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(1432, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(-1332, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(1432, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-1333, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(1433, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(0, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(0, 331, false)");  // overdown
+
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, 1, 0, -45, -1, 50, 300); // negative x 
scale and some negative skew
 
@@ -415,6 +644,20 @@
        check_equals(mo, "staticmc._width", "2764.6");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X: -1332.3  1432.3 
+       // Y:   269.95  330.05
+
+       check(mo, "staticmc.hitTest(-1332, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(1432, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(-1332, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(1432, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-1333, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(1433, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(0, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(0, 331, false)");  // overdown
+
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, 1, 0, 45, -1, 50, 300); // negative x 
scale and some positive skew
 
@@ -428,6 +671,20 @@
        check_equals(mo, "staticmc._width", "2764.6");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X: -1332.3  1432.3 
+       // Y:   269.95  330.05
+
+       check(mo, "staticmc.hitTest(-1332, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(1432, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(-1332, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(1432, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-1333, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(1433, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(0, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(0, 331, false)");  // overdown
+
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, 0, 45, -1, 50, 300); // negative x 
scale and some positive skew
 
@@ -441,6 +698,20 @@
        check_equals(mo, "staticmc._width", "2764.6");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X: -1332.3  1432.3 
+       // Y:   269.95  330.05
+
+       check(mo, "staticmc.hitTest(-1332, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(1432, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(-1332, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(1432, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-1333, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(1433, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(0, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(0, 331, false)");  // overdown
+
+
        SWFMovie_nextFrame(mo);        
        SWFDisplayItem_setMatrix(it, -1, 0, -45, -1, 50, 300); // negative x 
scale and some positive skew
 
@@ -454,6 +725,20 @@
        check_equals(mo, "staticmc._width", "2764.6");
        check_equals(mo, "staticmc._height", "60.1");
 
+       // X: -1332.3  1432.3 
+       // Y:   269.95  330.05
+
+       check(mo, "staticmc.hitTest(-1332, 270, false)");   // top-left
+       check(mo, "staticmc.hitTest(1432, 270, false)");  // top-right
+       check(mo, "staticmc.hitTest(-1332, 330, false)");   // bottom-left
+       check(mo, "staticmc.hitTest(1432, 330, false)");  // bottom-right
+
+       check(mo, "!staticmc.hitTest(-1333, 300, false)");   // overleft
+       check(mo, "!staticmc.hitTest(1433, 300, false)");  // overright
+       check(mo, "!staticmc.hitTest(0, 269, false)");  // overup
+       check(mo, "!staticmc.hitTest(0, 331, false)");  // overdown
+
+
 
        // TODO:
        // - test more rotations and scales (corner cases too!)
@@ -461,7 +746,7 @@
 
        SWFMovie_nextFrame(mo);
 
-       add_actions(mo, "_root.totals(238); stop();");
+       add_actions(mo, "_root.totals(408); stop();");
        SWFMovie_nextFrame(mo);        
 
        //Output movie


reply via email to

[Prev in Thread] Current Thread [Next in Thread]