1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 // MARKER(update_precomp.py): autogen include statement, do not remove 29 #include "precompiled_slideshow.hxx" 30 31 #include <boost/current_function.hpp> 32 #include <basegfx/numeric/ftools.hxx> 33 #include <com/sun/star/animations/TransitionType.hpp> 34 #include <com/sun/star/animations/TransitionSubType.hpp> 35 36 #include "transitionfactory.hxx" 37 #include "tools.hxx" 38 39 #include <algorithm> 40 41 using namespace ::com::sun::star; 42 43 namespace slideshow { 44 namespace internal { 45 46 namespace { 47 48 static const TransitionInfo lcl_transitionInfo[] = 49 { 50 { 51 0, 52 0, 53 TransitionInfo::TRANSITION_INVALID, 54 0.0, 55 0.0, 56 0.0, 57 TransitionInfo::REVERSEMETHOD_IGNORE, 58 false, 59 false 60 }, 61 { 62 // mapped to BarWipePolyPolygon: 63 animations::TransitionType::BARWIPE, 64 animations::TransitionSubType::LEFTTORIGHT, // (1) 65 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 66 0.0, // no rotation 67 1.0, // no scaling 68 1.0, // no scaling 69 TransitionInfo::REVERSEMETHOD_FLIP_X, 70 false, // 'out' by subtraction 71 false // scale isotrophically to target size 72 }, 73 { 74 // mapped to BarWipePolyPolygon: 75 animations::TransitionType::BARWIPE, 76 animations::TransitionSubType::TOPTOBOTTOM, // (2) 77 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 78 90.0, // rotation 79 1.0, // no scaling 80 1.0, // no scaling 81 TransitionInfo::REVERSEMETHOD_FLIP_Y, 82 false, // 'out' by subtraction 83 false // scale isotrophically to target size 84 }, 85 86 { 87 // mapped to BarWipePolyPolygon(nBars=5): 88 animations::TransitionType::BLINDSWIPE, 89 animations::TransitionSubType::VERTICAL, 90 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 91 0.0, // no rotation 92 1.0, // no scaling 93 1.0, // no scaling 94 TransitionInfo::REVERSEMETHOD_FLIP_Y, 95 true, // 'out' by parameter sweep inversion 96 false // scale isotrophically to target size 97 }, 98 { 99 // mapped to BarWipePolyPolygon(nBars=5): 100 animations::TransitionType::BLINDSWIPE, 101 animations::TransitionSubType::HORIZONTAL, 102 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 103 90.0, // rotation 104 1.0, // no scaling 105 1.0, // no scaling 106 TransitionInfo::REVERSEMETHOD_FLIP_X, 107 true, // 'out' by parameter sweep inversion 108 false // scale isotrophically to target size 109 }, 110 111 { 112 // mapped to BoxWipe: 113 animations::TransitionType::BOXWIPE, 114 animations::TransitionSubType::TOPLEFT, // (3) 115 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 116 0.0, // no rotation 117 1.0, // no scaling 118 1.0, // no scaling 119 TransitionInfo::REVERSEMETHOD_IGNORE, // possible via bottomRight 120 true, // 'out' by parameter sweep inversion 121 false // scale isotrophically to target size 122 }, 123 { 124 // mapped to BoxWipe: 125 animations::TransitionType::BOXWIPE, 126 animations::TransitionSubType::TOPRIGHT, // (4) 127 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 128 90.0, // rotation 129 1.0, // no scaling 130 1.0, // no scaling 131 TransitionInfo::REVERSEMETHOD_IGNORE, // possible via bottomLeft 132 true, // 'out' by parameter sweep inversion 133 false // scale isotrophically to target size 134 }, 135 { 136 // mapped to BoxWipe: 137 animations::TransitionType::BOXWIPE, 138 animations::TransitionSubType::BOTTOMRIGHT, // (5) 139 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 140 180.0, // rotation 141 1.0, // no scaling 142 1.0, // no scaling 143 TransitionInfo::REVERSEMETHOD_IGNORE, // possible via topLeft 144 true, // 'out' by parameter sweep inversion 145 false // scale isotrophically to target size 146 }, 147 { 148 // mapped to BoxWipe: 149 animations::TransitionType::BOXWIPE, 150 animations::TransitionSubType::BOTTOMLEFT, // (6) 151 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 152 -90.0, // rotation 153 1.0, // no scaling 154 1.0, // no scaling 155 TransitionInfo::REVERSEMETHOD_IGNORE, // possible via topRight 156 true, // 'out' by parameter sweep inversion 157 false // scale isotrophically to target size 158 }, 159 { 160 // mapped to BoxWipe: 161 animations::TransitionType::BOXWIPE, 162 animations::TransitionSubType::TOPCENTER, // (23) 163 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 164 0.0, // no rotation 165 1.0, // no scaling 166 1.0, // no scaling 167 TransitionInfo::REVERSEMETHOD_FLIP_Y, 168 true, // 'out' by parameter sweep inversion 169 false // scale isotrophically to target size 170 }, 171 { 172 // mapped to BoxWipe: 173 animations::TransitionType::BOXWIPE, 174 animations::TransitionSubType::RIGHTCENTER, // (24) 175 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 176 90.0, // rotation 177 1.0, // no scaling 178 1.0, // no scaling 179 TransitionInfo::REVERSEMETHOD_FLIP_X, 180 true, // 'out' by parameter sweep inversion 181 false // scale isotrophically to target size 182 }, 183 { 184 // mapped to BoxWipe: 185 animations::TransitionType::BOXWIPE, 186 animations::TransitionSubType::BOTTOMCENTER, // (25) 187 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 188 180.0, // rotation 189 1.0, // no scaling 190 1.0, // no scaling 191 TransitionInfo::REVERSEMETHOD_FLIP_Y, 192 true, // 'out' by parameter sweep inversion 193 false // scale isotrophically to target size 194 }, 195 { 196 // mapped to BoxWipe: 197 animations::TransitionType::BOXWIPE, 198 animations::TransitionSubType::LEFTCENTER, // (26) 199 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 200 -90.0, // rotation 201 1.0, // no scaling 202 1.0, // no scaling 203 TransitionInfo::REVERSEMETHOD_FLIP_X, 204 true, // 'out' by parameter sweep inversion 205 false // scale isotrophically to target size 206 }, 207 208 { 209 // mapped to FourBoxWipe: 210 animations::TransitionType::FOURBOXWIPE, 211 animations::TransitionSubType::CORNERSIN, // (7) 212 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 213 0.0, // no rotation 214 1.0, // no scaling 215 1.0, // no scaling 216 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 217 true, // 'out' by parameter sweep inversion 218 false // scale isotrophically to target size 219 }, 220 { 221 // mapped to FourBoxWipe: 222 animations::TransitionType::FOURBOXWIPE, 223 animations::TransitionSubType::CORNERSOUT, // (8) 224 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 225 0.0, // no rotation 226 1.0, // no scaling 227 1.0, // no scaling 228 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 229 true, // 'out' by parameter sweep inversion 230 false // scale isotrophically to target size 231 }, 232 233 { 234 // mapped to BarnDoorWipe: 235 animations::TransitionType::BARNDOORWIPE, 236 animations::TransitionSubType::VERTICAL, // (21) 237 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 238 0.0, // no rotation 239 1.0, // no scaling 240 1.0, // no scaling 241 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 242 true, // 'out' by parameter sweep inversion 243 false // scale isotrophically to target size 244 }, 245 { 246 // mapped to BarnDoorWipe: 247 animations::TransitionType::BARNDOORWIPE, 248 animations::TransitionSubType::HORIZONTAL, // (22) 249 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 250 90.0, // rotation 251 1.0, // no scaling 252 1.0, // no scaling 253 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 254 true, // 'out' by parameter sweep inversion 255 false // scale isotrophically to target size 256 }, 257 { 258 // mapped to BarnDoorWipe: 259 animations::TransitionType::BARNDOORWIPE, 260 animations::TransitionSubType::DIAGONALBOTTOMLEFT, // (45) 261 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 262 45.0, // rotation 263 M_SQRT2, // scaling 264 M_SQRT2, // scaling 265 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 266 true, // 'out' by parameter sweep inversion 267 false // scale isotrophically to target size 268 }, 269 { 270 // mapped to BarnDoorWipe: 271 animations::TransitionType::BARNDOORWIPE, 272 animations::TransitionSubType::DIAGONALTOPLEFT, // (46) 273 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 274 -45.0, // rotation 275 M_SQRT2, // scaling 276 M_SQRT2, // scaling 277 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 278 true, // 'out' by parameter sweep inversion 279 false // scale isotrophically to target size 280 }, 281 282 { 283 // mapped to BarWipePolyPolygon: 284 animations::TransitionType::DIAGONALWIPE, 285 animations::TransitionSubType::TOPLEFT, // (41) 286 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 287 45.0, // rotation 288 M_SQRT2, // scaling 289 M_SQRT2, // scaling 290 TransitionInfo::REVERSEMETHOD_IGNORE, 291 true, // 'out' by parameter sweep inversion 292 false // scale isotrophically to target size 293 }, 294 { 295 // mapped to BarWipePolyPolygon: 296 animations::TransitionType::DIAGONALWIPE, 297 animations::TransitionSubType::TOPRIGHT, // (42) 298 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 299 135.0, // rotation 300 M_SQRT2, // scaling 301 M_SQRT2, // scaling 302 TransitionInfo::REVERSEMETHOD_IGNORE, 303 true, // 'out' by parameter sweep inversion 304 false // scale isotrophically to target size 305 }, 306 307 308 { 309 animations::TransitionType::BOWTIEWIPE, 310 animations::TransitionSubType::VERTICAL, 311 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 312 // TODO(F2): Setup parameters 313 0.0, // no rotation 314 1.0, // no scaling 315 1.0, // no scaling 316 TransitionInfo::REVERSEMETHOD_IGNORE, 317 true, // 'out' by parameter sweep inversion 318 false // scale isotrophically to target size 319 }, 320 { 321 animations::TransitionType::BOWTIEWIPE, 322 animations::TransitionSubType::HORIZONTAL, 323 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 324 // TODO(F2): Setup parameters 325 0.0, // no rotation 326 1.0, // no scaling 327 1.0, // no scaling 328 TransitionInfo::REVERSEMETHOD_IGNORE, 329 true, // 'out' by parameter sweep inversion 330 false // scale isotrophically to target size 331 }, 332 333 { 334 // mapped to BarnDoorWipe (doubled=true): 335 animations::TransitionType::MISCDIAGONALWIPE, 336 animations::TransitionSubType::DOUBLEBARNDOOR, // (47) 337 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 338 45.0, // rotation 339 M_SQRT2, // scaling 340 M_SQRT2, // scaling 341 TransitionInfo::REVERSEMETHOD_IGNORE, 342 true, // 'out' by parameter sweep inversion 343 false // scale isotrophically to target size 344 }, 345 { 346 // mapped to DoubleDiamondWipe: 347 animations::TransitionType::MISCDIAGONALWIPE, 348 animations::TransitionSubType::DOUBLEDIAMOND, // (48) 349 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 350 0.0, // no rotation 351 1.0, // no scaling 352 1.0, // no scaling 353 TransitionInfo::REVERSEMETHOD_IGNORE, 354 true, // 'out' by parameter sweep inversion 355 false // scale isotrophically to target size 356 }, 357 358 { 359 // mapped to VeeWipe: 360 animations::TransitionType::VEEWIPE, 361 animations::TransitionSubType::DOWN, // (61) 362 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 363 0.0, // no rotation 364 1.0, // no scaling 365 1.0, // no scaling 366 TransitionInfo::REVERSEMETHOD_FLIP_Y, 367 true, // 'out' by parameter sweep inversion 368 false // scale isotrophically to target size 369 }, 370 { 371 // mapped to VeeWipe: 372 animations::TransitionType::VEEWIPE, 373 animations::TransitionSubType::LEFT, // (62) 374 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 375 90.0, // rotation 376 1.0, // no scaling 377 1.0, // no scaling 378 TransitionInfo::REVERSEMETHOD_FLIP_X, 379 true, // 'out' by parameter sweep inversion 380 false // scale isotrophically to target size 381 }, 382 { 383 animations::TransitionType::VEEWIPE, 384 animations::TransitionSubType::UP, // (63) 385 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 386 180.0, // rotation 387 1.0, // no scaling 388 1.0, // no scaling 389 TransitionInfo::REVERSEMETHOD_FLIP_Y, 390 true, // 'out' by parameter sweep inversion 391 false // scale isotrophically to target size 392 }, 393 { 394 animations::TransitionType::VEEWIPE, 395 animations::TransitionSubType::RIGHT, 396 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 397 -90.0, // rotation 398 1.0, // no scaling 399 1.0, // no scaling 400 TransitionInfo::REVERSEMETHOD_FLIP_X, 401 true, // 'out' by parameter sweep inversion 402 false // scale isotrophically to target size 403 }, 404 405 406 { 407 animations::TransitionType::BARNVEEWIPE, 408 animations::TransitionSubType::TOP, 409 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 410 // TODO(F2): Setup parameters 411 0.0, // no rotation 412 1.0, // no scaling 413 1.0, // no scaling 414 TransitionInfo::REVERSEMETHOD_IGNORE, 415 true, // 'out' by parameter sweep inversion 416 false // scale isotrophically to target size 417 }, 418 { 419 animations::TransitionType::BARNVEEWIPE, 420 animations::TransitionSubType::LEFT, 421 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 422 // TODO(F2): Setup parameters 423 0.0, // no rotation 424 1.0, // no scaling 425 1.0, // no scaling 426 TransitionInfo::REVERSEMETHOD_IGNORE, 427 true, // 'out' by parameter sweep inversion 428 false // scale isotrophically to target size 429 }, 430 { 431 animations::TransitionType::BARNVEEWIPE, 432 animations::TransitionSubType::UP, 433 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 434 // TODO(F2): Setup parameters 435 0.0, // no rotation 436 1.0, // no scaling 437 1.0, // no scaling 438 TransitionInfo::REVERSEMETHOD_IGNORE, 439 true, // 'out' by parameter sweep inversion 440 false // scale isotrophically to target size 441 }, 442 { 443 animations::TransitionType::BARNVEEWIPE, 444 animations::TransitionSubType::RIGHT, 445 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 446 // TODO(F2): Setup parameters 447 0.0, // no rotation 448 1.0, // no scaling 449 1.0, // no scaling 450 TransitionInfo::REVERSEMETHOD_IGNORE, 451 true, // 'out' by parameter sweep inversion 452 false // scale isotrophically to target size 453 }, 454 455 { 456 // mapped to ZigZagWipe: 457 animations::TransitionType::ZIGZAGWIPE, 458 animations::TransitionSubType::LEFTTORIGHT, // (71) 459 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 460 0.0, // no rotation 461 1.0, // no scaling 462 1.0, // no scaling 463 TransitionInfo::REVERSEMETHOD_FLIP_X, 464 true, // 'out' by parameter sweep inversion 465 false // scale isotrophically to target size 466 }, 467 { 468 // mapped to ZigZagWipe: 469 animations::TransitionType::ZIGZAGWIPE, 470 animations::TransitionSubType::TOPTOBOTTOM, // (72) 471 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 472 90.0, // rotation 473 1.0, // no scaling 474 1.0, // no scaling 475 TransitionInfo::REVERSEMETHOD_FLIP_Y, 476 true, // 'out' by parameter sweep inversion 477 false // scale isotrophically to target size 478 }, 479 { 480 // mapped to BarnZigZagWipe: 481 animations::TransitionType::BARNZIGZAGWIPE, 482 animations::TransitionSubType::VERTICAL, // (73) 483 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 484 0.0, // no rotation 485 1.0, // no scaling 486 1.0, // no scaling 487 TransitionInfo::REVERSEMETHOD_IGNORE, 488 true, // 'out' by parameter sweep inversion 489 false // scale isotrophically to target size 490 }, 491 { 492 // mapped to BarnZigZagWipe: 493 animations::TransitionType::BARNZIGZAGWIPE, 494 animations::TransitionSubType::HORIZONTAL, // (74) 495 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 496 90.0, // rotation 497 1.0, // no scaling 498 1.0, // no scaling 499 TransitionInfo::REVERSEMETHOD_IGNORE, 500 true, // 'out' by parameter sweep inversion 501 false // scale isotrophically to target size 502 }, 503 504 { 505 // mapped to IrisWipe: 506 animations::TransitionType::IRISWIPE, 507 animations::TransitionSubType::RECTANGLE, // (101) 508 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 509 0.0, // no rotation 510 1.0, // no scaling 511 1.0, // no scaling 512 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 513 true, // 'out' by parameter sweep inversion 514 false // scale isotrophically to target size 515 }, 516 { 517 // mapped to IrisWipe: 518 animations::TransitionType::IRISWIPE, 519 animations::TransitionSubType::DIAMOND, // (102) 520 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 521 45.0, // rotation 522 M_SQRT2, // scaling 523 M_SQRT2, // scaling 524 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 525 true, // 'out' by parameter sweep inversion 526 false // scale isotrophically to target size 527 }, 528 529 530 { 531 // mapped to FigureWipe(triangle): 532 animations::TransitionType::TRIANGLEWIPE, 533 animations::TransitionSubType::UP, // (103) 534 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 535 0.0, // no rotation 536 1.0, // no scaling 537 1.0, // no scaling 538 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 539 true, // 'out' by parameter sweep inversion 540 false // scale isotrophically to target size 541 }, 542 { 543 // mapped to FigureWipe(triangle): 544 animations::TransitionType::TRIANGLEWIPE, 545 animations::TransitionSubType::RIGHT, // (104) 546 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 547 90.0, // rotation 548 1.0, // no scaling 549 1.0, // no scaling 550 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 551 true, // 'out' by parameter sweep inversion 552 false // scale isotrophically to target size 553 }, 554 { 555 // mapped to FigureWipe(triangle): 556 animations::TransitionType::TRIANGLEWIPE, 557 animations::TransitionSubType::DOWN, // (105) 558 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 559 180.0, // rotation 560 1.0, // no scaling 561 1.0, // no scaling 562 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 563 true, // 'out' by parameter sweep inversion 564 false // scale isotrophically to target size 565 }, 566 { 567 // mapped to FigureWipe(triangle): 568 animations::TransitionType::TRIANGLEWIPE, 569 animations::TransitionSubType::LEFT, // (106) 570 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 571 270.0, // rotation 572 1.0, // no scaling 573 1.0, // no scaling 574 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 575 true, // 'out' by parameter sweep inversion 576 false // scale isotrophically to target size 577 }, 578 579 { 580 // mapped to FigureWipe(arrowHead): 581 animations::TransitionType::ARROWHEADWIPE, 582 animations::TransitionSubType::UP, // (107) 583 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 584 0.0, // no rotation 585 1.0, // no scaling 586 1.0, // no scaling 587 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 588 true, // 'out' by parameter sweep inversion 589 false // scale isotrophically to target size 590 }, 591 { 592 // mapped to FigureWipe(arrowHead): 593 animations::TransitionType::ARROWHEADWIPE, 594 animations::TransitionSubType::RIGHT, // (108) 595 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 596 90.0, // rotation 597 1.0, // no scaling 598 1.0, // no scaling 599 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 600 true, // 'out' by parameter sweep inversion 601 false // scale isotrophically to target size 602 }, 603 { 604 // mapped to FigureWipe(arrowHead): 605 animations::TransitionType::ARROWHEADWIPE, 606 animations::TransitionSubType::DOWN, // (109) 607 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 608 180.0, // rotation 609 1.0, // no scaling 610 1.0, // no scaling 611 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 612 true, // 'out' by parameter sweep inversion 613 false // scale isotrophically to target size 614 }, 615 { 616 // mapped to FigureWipe(arrowHead): 617 animations::TransitionType::ARROWHEADWIPE, 618 animations::TransitionSubType::LEFT, // (110) 619 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 620 270.0, // rotation 621 1.0, // no scaling 622 1.0, // no scaling 623 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 624 true, // 'out' by parameter sweep inversion 625 false // scale isotrophically to target size 626 }, 627 628 { 629 // mapped to FigureWipe(pentagon): 630 animations::TransitionType::PENTAGONWIPE, 631 animations::TransitionSubType::UP, // (111) 632 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 633 0.0, // no rotation 634 1.0, // no scaling 635 1.0, // no scaling 636 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 637 true, // 'out' by parameter sweep inversion 638 false // scale isotrophically to target size 639 }, 640 { 641 // mapped to FigureWipe(pentagon): 642 animations::TransitionType::PENTAGONWIPE, 643 animations::TransitionSubType::DOWN, // (112) 644 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 645 180.0, // rotation 646 1.0, // no scaling 647 1.0, // no scaling 648 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 649 true, // 'out' by parameter sweep inversion 650 false // scale isotrophically to target size 651 }, 652 653 { 654 // mapped to FigureWipe(hexagon): 655 animations::TransitionType::HEXAGONWIPE, 656 animations::TransitionSubType::HORIZONTAL, // (113) 657 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 658 0.0, // no rotation 659 1.0, // no scaling 660 1.0, // no scaling 661 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 662 true, // 'out' by parameter sweep inversion 663 false // scale isotrophically to target size 664 }, 665 { 666 // mapped to FigureWipe(hexagon): 667 animations::TransitionType::HEXAGONWIPE, 668 animations::TransitionSubType::VERTICAL, // (114) 669 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 670 90.0, // rotation 671 1.0, // no scaling 672 1.0, // no scaling 673 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 674 true, // 'out' by parameter sweep inversion 675 false // scale isotrophically to target size 676 }, 677 678 { 679 // mapped to EllipseWipe: 680 animations::TransitionType::ELLIPSEWIPE, 681 animations::TransitionSubType::CIRCLE, 682 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 683 0.0, // no rotation 684 1.0, // no scaling 685 1.0, // no scaling 686 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 687 true, // 'out' by parameter sweep inversion 688 true // scale isotrophically to target size 689 }, 690 { 691 // mapped to EllipseWipe: 692 animations::TransitionType::ELLIPSEWIPE, 693 animations::TransitionSubType::HORIZONTAL, 694 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 695 0.0, // no rotation 696 1.0, // no scaling 697 1.0, // no scaling 698 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 699 true, // 'out' by parameter sweep inversion 700 false // scale isotrophically to target size 701 }, 702 { 703 // mapped to EllipseWipe: 704 animations::TransitionType::ELLIPSEWIPE, 705 animations::TransitionSubType::VERTICAL, 706 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 707 90.0, // rotation 708 1.0, // no scaling 709 1.0, // no scaling 710 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 711 true, // 'out' by parameter sweep inversion 712 false // scale isotrophically to target size 713 }, 714 715 716 { 717 animations::TransitionType::EYEWIPE, 718 animations::TransitionSubType::HORIZONTAL, 719 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 720 // TODO(F2): Setup parameters 721 0.0, // no rotation 722 1.0, // no scaling 723 1.0, // no scaling 724 TransitionInfo::REVERSEMETHOD_IGNORE, 725 true, // 'out' by parameter sweep inversion 726 false // scale isotrophically to target size 727 }, 728 { 729 animations::TransitionType::EYEWIPE, 730 animations::TransitionSubType::VERTICAL, 731 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 732 // TODO(F2): Setup parameters 733 0.0, // no rotation 734 1.0, // no scaling 735 1.0, // no scaling 736 TransitionInfo::REVERSEMETHOD_IGNORE, 737 true, // 'out' by parameter sweep inversion 738 false // scale isotrophically to target size 739 }, 740 { 741 animations::TransitionType::ROUNDRECTWIPE, 742 animations::TransitionSubType::HORIZONTAL, 743 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 744 // TODO(F2): Setup parameters 745 0.0, // no rotation 746 1.0, // no scaling 747 1.0, // no scaling 748 TransitionInfo::REVERSEMETHOD_IGNORE, 749 true, // 'out' by parameter sweep inversion 750 false // scale isotrophically to target size 751 }, 752 { 753 animations::TransitionType::ROUNDRECTWIPE, 754 animations::TransitionSubType::VERTICAL, 755 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 756 // TODO(F2): Setup parameters 757 0.0, // no rotation 758 1.0, // no scaling 759 1.0, // no scaling 760 TransitionInfo::REVERSEMETHOD_IGNORE, 761 true, // 'out' by parameter sweep inversion 762 false // scale isotrophically to target size 763 }, 764 765 { 766 // mapped to FigureWipe(star, points=4): 767 animations::TransitionType::STARWIPE, 768 animations::TransitionSubType::FOURPOINT, // (127) 769 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 770 0.0, // no rotation 771 1.0, // no scaling 772 1.0, // no scaling 773 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 774 true, // 'out' by parameter sweep inversion 775 false // scale isotrophically to target size 776 }, 777 { 778 // mapped to FigureWipe(star, points=5): 779 animations::TransitionType::STARWIPE, 780 animations::TransitionSubType::FIVEPOINT, // (128) 781 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 782 0.0, // no rotation 783 1.0, // no scaling 784 1.0, // no scaling 785 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 786 true, // 'out' by parameter sweep inversion 787 false // scale isotrophically to target size 788 }, 789 { 790 // mapped to FigureWipe(star, points=6): 791 animations::TransitionType::STARWIPE, 792 animations::TransitionSubType::SIXPOINT, // (129) 793 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 794 0.0, // no rotation 795 1.0, // no scaling 796 1.0, // no scaling 797 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 798 true, // 'out' by parameter sweep inversion 799 false // scale isotrophically to target size 800 }, 801 802 { 803 animations::TransitionType::MISCSHAPEWIPE, 804 animations::TransitionSubType::HEART, 805 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 806 // TODO(F2): Setup parameters 807 0.0, // no rotation 808 1.0, // no scaling 809 1.0, // no scaling 810 TransitionInfo::REVERSEMETHOD_IGNORE, 811 true, // 'out' by parameter sweep inversion 812 false // scale isotrophically to target size 813 }, 814 { 815 animations::TransitionType::MISCSHAPEWIPE, 816 animations::TransitionSubType::KEYHOLE, 817 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 818 // TODO(F2): Setup parameters 819 0.0, // no rotation 820 1.0, // no scaling 821 1.0, // no scaling 822 TransitionInfo::REVERSEMETHOD_IGNORE, 823 true, // 'out' by parameter sweep inversion 824 false // scale isotrophically to target size 825 }, 826 827 { 828 // mapped to ClockWipe: 829 animations::TransitionType::CLOCKWIPE, 830 animations::TransitionSubType::CLOCKWISETWELVE, // (201) 831 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 832 0.0, // no rotation 833 1.0, // no scaling 834 1.0, // no scaling 835 TransitionInfo::REVERSEMETHOD_FLIP_X, 836 true, // 'out' by parameter sweep inversion 837 false // scale isotrophically to target size 838 }, 839 { 840 // mapped to ClockWipe: 841 animations::TransitionType::CLOCKWIPE, 842 animations::TransitionSubType::CLOCKWISETHREE, // (202) 843 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 844 90.0, // rotation 845 1.0, // no scaling 846 1.0, // no scaling 847 TransitionInfo::REVERSEMETHOD_ROTATE_180, 848 true, // 'out' by parameter sweep inversion 849 false // scale isotrophically to target size 850 }, 851 { 852 // mapped to ClockWipe: 853 animations::TransitionType::CLOCKWIPE, 854 animations::TransitionSubType::CLOCKWISESIX, // (203) 855 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 856 180.0, // rotation 857 1.0, // no scaling 858 1.0, // no scaling 859 TransitionInfo::REVERSEMETHOD_ROTATE_180, 860 true, // 'out' by parameter sweep inversion 861 false // scale isotrophically to target size 862 }, 863 { 864 // mapped to ClockWipe: 865 animations::TransitionType::CLOCKWIPE, 866 animations::TransitionSubType::CLOCKWISENINE, // (204) 867 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 868 270.0, // rotation 869 1.0, // no scaling 870 1.0, // no scaling 871 TransitionInfo::REVERSEMETHOD_ROTATE_180, 872 true, // 'out' by parameter sweep inversion 873 false // scale isotrophically to target size 874 }, 875 876 { 877 // mapped to PinWheelWipe: 878 animations::TransitionType::PINWHEELWIPE, 879 animations::TransitionSubType::ONEBLADE, 880 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 881 0.0, // no rotation 882 1.0, // no scaling 883 1.0, // no scaling 884 TransitionInfo::REVERSEMETHOD_FLIP_X, 885 true, // 'out' by parameter sweep inversion 886 true // scale isotrophically to target size, like ppt 887 }, 888 { 889 // mapped to PinWheelWipe: 890 animations::TransitionType::PINWHEELWIPE, 891 animations::TransitionSubType::TWOBLADEVERTICAL, // (205) 892 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 893 0.0, // no rotation 894 1.0, // no scaling 895 1.0, // no scaling 896 TransitionInfo::REVERSEMETHOD_FLIP_X, 897 true, // 'out' by parameter sweep inversion 898 true // scale isotrophically to target size, like ppt 899 }, 900 { 901 // mapped to PinWheelWipe: 902 animations::TransitionType::PINWHEELWIPE, 903 animations::TransitionSubType::TWOBLADEHORIZONTAL, // (206) 904 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 905 -90.0, // rotation 906 1.0, // no scaling 907 1.0, // no scaling 908 TransitionInfo::REVERSEMETHOD_FLIP_Y, 909 true, // 'out' by parameter sweep inversion 910 true // scale isotrophically to target size, like ppt 911 }, 912 { 913 // mapped to PinWheelWipe: 914 animations::TransitionType::PINWHEELWIPE, 915 animations::TransitionSubType::THREEBLADE, 916 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 917 0.0, // no rotation 918 1.0, // no scaling 919 1.0, // no scaling 920 TransitionInfo::REVERSEMETHOD_FLIP_X, 921 true, // 'out' by parameter sweep inversion 922 true // scale isotrophically to target size, like ppt 923 }, 924 { 925 // mapped to PinWheelWipe: 926 animations::TransitionType::PINWHEELWIPE, 927 animations::TransitionSubType::FOURBLADE, // (207) 928 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 929 0.0, // no rotation 930 1.0, // no scaling 931 1.0, // no scaling 932 TransitionInfo::REVERSEMETHOD_FLIP_X, 933 true, // 'out' by parameter sweep inversion 934 true // scale isotrophically to target size, like ppt 935 }, 936 { 937 // mapped to PinWheelWipe: 938 animations::TransitionType::PINWHEELWIPE, 939 animations::TransitionSubType::EIGHTBLADE, 940 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 941 0.0, // no rotation 942 1.0, // no scaling 943 1.0, // no scaling 944 TransitionInfo::REVERSEMETHOD_FLIP_X, 945 true, // 'out' by parameter sweep inversion 946 true // scale isotrophically to target size, like ppt 947 }, 948 949 { 950 // mapped to SweepWipe (center=true, single=true): 951 animations::TransitionType::SINGLESWEEPWIPE, 952 animations::TransitionSubType::CLOCKWISETOP, // (221) 953 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 954 0.0, // no rotation 955 1.0, // no scaling 956 1.0, // no scaling 957 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 958 true, // 'out' by parameter sweep inversion 959 false // scale isotrophically to target size 960 }, 961 { 962 // mapped to SweepWipe (center=true, single=true): 963 animations::TransitionType::SINGLESWEEPWIPE, 964 animations::TransitionSubType::CLOCKWISERIGHT, // (222) 965 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 966 90.0, // rotation 967 1.0, // no scaling 968 1.0, // no scaling 969 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 970 true, // 'out' by parameter sweep inversion 971 false // scale isotrophically to target size 972 }, 973 { 974 // mapped to SweepWipe (center=true, single=true): 975 animations::TransitionType::SINGLESWEEPWIPE, 976 animations::TransitionSubType::CLOCKWISEBOTTOM, // (223) 977 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 978 180.0, // rotation 979 1.0, // no scaling 980 1.0, // no scaling 981 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 982 true, // 'out' by parameter sweep inversion 983 false // scale isotrophically to target size 984 }, 985 { 986 // mapped to SweepWipe (center=true, single=true): 987 animations::TransitionType::SINGLESWEEPWIPE, 988 animations::TransitionSubType::CLOCKWISELEFT, // (224) 989 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 990 270.0, // rotation 991 1.0, // no scaling 992 1.0, // no scaling 993 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 994 true, // 'out' by parameter sweep inversion 995 false // scale isotrophically to target size 996 }, 997 { 998 // mapped to SweepWipe (center=false, single=true): 999 animations::TransitionType::SINGLESWEEPWIPE, 1000 animations::TransitionSubType::CLOCKWISETOPLEFT, // (241) 1001 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1002 0.0, // no rotation 1003 1.0, // no scaling 1004 1.0, // no scaling 1005 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1006 true, // 'out' by parameter sweep inversion 1007 false // scale isotrophically to target size 1008 }, 1009 { 1010 // mapped to SweepWipe (center=false, single=true, flipOnYAxis=true): 1011 animations::TransitionType::SINGLESWEEPWIPE, 1012 animations::TransitionSubType::COUNTERCLOCKWISEBOTTOMLEFT, // (242) 1013 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1014 180.0, // rotation 1015 1.0, // no scaling 1016 1.0, // no scaling 1017 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1018 true, // 'out' by parameter sweep inversion 1019 false // scale isotrophically to target size 1020 }, 1021 { 1022 // mapped to SweepWipe (center=false, single=true): 1023 animations::TransitionType::SINGLESWEEPWIPE, 1024 animations::TransitionSubType::CLOCKWISEBOTTOMRIGHT, // (243) 1025 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1026 180.0, // rotation 1027 1.0, // no scaling 1028 1.0, // no scaling 1029 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1030 true, // 'out' by parameter sweep inversion 1031 false // scale isotrophically to target size 1032 }, 1033 { 1034 // mapped to SweepWipe (center=false, single=true, flipOnYAxis=true): 1035 animations::TransitionType::SINGLESWEEPWIPE, 1036 animations::TransitionSubType::COUNTERCLOCKWISETOPRIGHT, // (244) 1037 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1038 0.0, // no rotation 1039 1.0, // no scaling 1040 1.0, // no scaling 1041 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1042 true, // 'out' by parameter sweep inversion 1043 false // scale isotrophically to target size 1044 }, 1045 1046 { 1047 // mapped to FanWipe(center=true): 1048 animations::TransitionType::FANWIPE, 1049 animations::TransitionSubType::CENTERTOP, // (211) 1050 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1051 0.0, // no rotation 1052 1.0, // no scaling 1053 1.0, // no scaling 1054 TransitionInfo::REVERSEMETHOD_FLIP_Y, 1055 true, // 'out' by parameter sweep inversion 1056 false // scale isotrophically to target size 1057 }, 1058 { 1059 // mapped to FanWipe(center=true): 1060 animations::TransitionType::FANWIPE, 1061 animations::TransitionSubType::CENTERRIGHT, // (212) 1062 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1063 90.0, // rotation 1064 1.0, // no scaling 1065 1.0, // no scaling 1066 TransitionInfo::REVERSEMETHOD_FLIP_X, 1067 true, // 'out' by parameter sweep inversion 1068 false // scale isotrophically to target size 1069 }, 1070 { 1071 // mapped to FanWipe: 1072 animations::TransitionType::FANWIPE, 1073 animations::TransitionSubType::TOP, // (231) 1074 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1075 180.0, // rotation 1076 1.0, // no scaling 1077 1.0, // no scaling 1078 TransitionInfo::REVERSEMETHOD_FLIP_Y, 1079 true, // 'out' by parameter sweep inversion 1080 false // scale isotrophically to target size 1081 }, 1082 { 1083 // mapped to FanWipe: 1084 animations::TransitionType::FANWIPE, 1085 animations::TransitionSubType::RIGHT, // (232) 1086 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1087 -90.0, // rotation 1088 1.0, // no scaling 1089 1.0, // no scaling 1090 TransitionInfo::REVERSEMETHOD_FLIP_X, 1091 true, // 'out' by parameter sweep inversion 1092 false // scale isotrophically to target size 1093 }, 1094 { 1095 // mapped to FanWipe: 1096 animations::TransitionType::FANWIPE, 1097 animations::TransitionSubType::BOTTOM, // (233) 1098 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1099 0.0, // no rotation 1100 1.0, // no scaling 1101 1.0, // no scaling 1102 TransitionInfo::REVERSEMETHOD_FLIP_Y, 1103 true, // 'out' by parameter sweep inversion 1104 false // scale isotrophically to target size 1105 }, 1106 { 1107 // mapped to FanWipe: 1108 animations::TransitionType::FANWIPE, 1109 animations::TransitionSubType::LEFT, // (234) 1110 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1111 90.0, // rotation 1112 1.0, // no scaling 1113 1.0, // no scaling 1114 TransitionInfo::REVERSEMETHOD_FLIP_X, 1115 true, // 'out' by parameter sweep inversion 1116 false // scale isotrophically to target size 1117 }, 1118 1119 { 1120 // mapped to FanWipe(center=true, single=false, fanIn=false): 1121 animations::TransitionType::DOUBLEFANWIPE, 1122 animations::TransitionSubType::FANOUTVERTICAL, // (213) 1123 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1124 0.0, // no rotation 1125 1.0, // no scaling 1126 1.0, // no scaling 1127 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1128 true, // 'out' by parameter sweep inversion 1129 false // scale isotrophically to target size 1130 }, 1131 { 1132 // mapped to FanWipe(center=true, single=false, fanIn=false): 1133 animations::TransitionType::DOUBLEFANWIPE, 1134 animations::TransitionSubType::FANOUTHORIZONTAL, // (214) 1135 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1136 90.0, // rotation 1137 1.0, // no scaling 1138 1.0, // no scaling 1139 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1140 true, // 'out' by parameter sweep inversion 1141 false // scale isotrophically to target size 1142 }, 1143 { 1144 // mapped to FanWipe(center=true, single=false, fanIn=true): 1145 animations::TransitionType::DOUBLEFANWIPE, 1146 animations::TransitionSubType::FANINVERTICAL, // (235) 1147 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1148 0.0, // no rotation 1149 1.0, // no scaling 1150 1.0, // no scaling 1151 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1152 true, // 'out' by parameter sweep inversion 1153 false // scale isotrophically to target size 1154 }, 1155 { 1156 // mapped to FanWipe(center=true, single=false, fanIn=true): 1157 animations::TransitionType::DOUBLEFANWIPE, 1158 animations::TransitionSubType::FANINHORIZONTAL, // (236) 1159 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1160 90.0, // rotation 1161 1.0, // no scaling 1162 1.0, // no scaling 1163 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1164 true, // 'out' by parameter sweep inversion 1165 false // scale isotrophically to target size 1166 }, 1167 1168 { 1169 // mapped to SweepWipe (center=true, single=false): 1170 animations::TransitionType::DOUBLESWEEPWIPE, 1171 animations::TransitionSubType::PARALLELVERTICAL, // (225) 1172 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1173 0.0, // no rotation 1174 1.0, // no scaling 1175 1.0, // no scaling 1176 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1177 true, // 'out' by parameter sweep inversion 1178 false // scale isotrophically to target size 1179 }, 1180 { 1181 // mapped to SweepWipe (center=true, single=false): 1182 animations::TransitionType::DOUBLESWEEPWIPE, 1183 animations::TransitionSubType::PARALLELDIAGONAL, // (226) 1184 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1185 -90.0, // rotation 1186 1.0, // no scaling 1187 1.0, // no scaling 1188 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1189 true, // 'out' by parameter sweep inversion 1190 false // scale isotrophically to target size 1191 }, 1192 { 1193 // mapped to SweepWipe (center=true, single=false, 1194 // oppositeVertical=true): 1195 animations::TransitionType::DOUBLESWEEPWIPE, 1196 animations::TransitionSubType::OPPOSITEVERTICAL, // (227) 1197 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1198 0.0, // no rotation 1199 1.0, // no scaling 1200 1.0, // no scaling 1201 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1202 true, // 'out' by parameter sweep inversion 1203 false // scale isotrophically to target size 1204 }, 1205 { 1206 // mapped to SweepWipe (center=true, single=false, 1207 // oppositeVertical=true): 1208 animations::TransitionType::DOUBLESWEEPWIPE, 1209 animations::TransitionSubType::OPPOSITEHORIZONTAL, 1210 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1211 -90.0, // rotation 1212 1.0, // no scaling 1213 1.0, // no scaling 1214 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1215 true, // 'out' by parameter sweep inversion 1216 false // scale isotrophically to target size 1217 }, 1218 { 1219 // mapped to SweepWipe (center=false, single=false): 1220 animations::TransitionType::DOUBLESWEEPWIPE, 1221 animations::TransitionSubType::PARALLELDIAGONALTOPLEFT, 1222 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1223 0.0, // no rotation 1224 1.0, // no scaling 1225 1.0, // no scaling 1226 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1227 true, // 'out' by parameter sweep inversion 1228 false // scale isotrophically to target size 1229 }, 1230 { 1231 // mapped to SweepWipe (center=false, single=false): 1232 animations::TransitionType::DOUBLESWEEPWIPE, 1233 animations::TransitionSubType::PARALLELDIAGONALBOTTOMLEFT, 1234 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1235 -90.0, // rotation 1236 1.0, // no scaling 1237 1.0, // no scaling 1238 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1239 true, // 'out' by parameter sweep inversion 1240 false // scale isotrophically to target size 1241 }, 1242 1243 { 1244 animations::TransitionType::SALOONDOORWIPE, 1245 animations::TransitionSubType::TOP, // (251) 1246 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1247 // TODO(F2): Setup parameters 1248 0.0, // no rotation 1249 1.0, // no scaling 1250 1.0, // no scaling 1251 TransitionInfo::REVERSEMETHOD_FLIP_Y, 1252 true, // 'out' by parameter sweep inversion 1253 false // scale isotrophically to target size 1254 }, 1255 { 1256 animations::TransitionType::SALOONDOORWIPE, 1257 animations::TransitionSubType::LEFT, // (252) 1258 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1259 // TODO(F2): Setup parameters 1260 0.0, // no rotation 1261 1.0, // no scaling 1262 1.0, // no scaling 1263 TransitionInfo::REVERSEMETHOD_FLIP_X, 1264 true, // 'out' by parameter sweep inversion 1265 false // scale isotrophically to target size 1266 }, 1267 { 1268 animations::TransitionType::SALOONDOORWIPE, 1269 animations::TransitionSubType::BOTTOM, // (253) 1270 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1271 // TODO(F2): Setup parameters 1272 0.0, // no rotation 1273 1.0, // no scaling 1274 1.0, // no scaling 1275 TransitionInfo::REVERSEMETHOD_FLIP_Y, 1276 true, // 'out' by parameter sweep inversion 1277 false // scale isotrophically to target size 1278 }, 1279 { 1280 animations::TransitionType::SALOONDOORWIPE, 1281 animations::TransitionSubType::RIGHT, // (254) 1282 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1283 // TODO(F2): Setup parameters 1284 0.0, // no rotation 1285 1.0, // no scaling 1286 1.0, // no scaling 1287 TransitionInfo::REVERSEMETHOD_FLIP_X, 1288 true, // 'out' by parameter sweep inversion 1289 false // scale isotrophically to target size 1290 }, 1291 { 1292 animations::TransitionType::WINDSHIELDWIPE, 1293 animations::TransitionSubType::RIGHT, 1294 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1295 // TODO(F2): Setup parameters 1296 0.0, // no rotation 1297 1.0, // no scaling 1298 1.0, // no scaling 1299 TransitionInfo::REVERSEMETHOD_FLIP_X, 1300 true, // 'out' by parameter sweep inversion 1301 false // scale isotrophically to target size 1302 }, 1303 { 1304 animations::TransitionType::WINDSHIELDWIPE, 1305 animations::TransitionSubType::UP, 1306 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1307 // TODO(F2): Setup parameters 1308 0.0, // no rotation 1309 1.0, // no scaling 1310 1.0, // no scaling 1311 TransitionInfo::REVERSEMETHOD_FLIP_Y, 1312 true, // 'out' by parameter sweep inversion 1313 false // scale isotrophically to target size 1314 }, 1315 { 1316 animations::TransitionType::WINDSHIELDWIPE, 1317 animations::TransitionSubType::VERTICAL, 1318 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1319 // TODO(F2): Setup parameters 1320 0.0, // no rotation 1321 1.0, // no scaling 1322 1.0, // no scaling 1323 TransitionInfo::REVERSEMETHOD_IGNORE, 1324 true, // 'out' by parameter sweep inversion 1325 false // scale isotrophically to target size 1326 }, 1327 { 1328 animations::TransitionType::WINDSHIELDWIPE, 1329 animations::TransitionSubType::HORIZONTAL, 1330 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1331 // TODO(F2): Setup parameters 1332 0.0, // no rotation 1333 1.0, // no scaling 1334 1.0, // no scaling 1335 TransitionInfo::REVERSEMETHOD_IGNORE, 1336 true, // 'out' by parameter sweep inversion 1337 false // scale isotrophically to target size 1338 }, 1339 1340 { 1341 // mapped to SnakeWipe: 1342 animations::TransitionType::SNAKEWIPE, 1343 animations::TransitionSubType::TOPLEFTHORIZONTAL, // (301) 1344 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1345 0.0, // no rotation 1346 1.0, // no scaling 1347 1.0, // no scaling 1348 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1349 true, // 'out' by parameter sweep inversion 1350 false // scale isotrophically to target size 1351 }, 1352 { 1353 // mapped to SnakeWipe(flipOnYAxis=true): 1354 animations::TransitionType::SNAKEWIPE, 1355 animations::TransitionSubType::TOPLEFTVERTICAL, // (302) 1356 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1357 -90.0, // rotation 1358 1.0, // no scaling 1359 1.0, // no scaling 1360 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1361 true, // 'out' by parameter sweep inversion 1362 false // scale isotrophically to target size 1363 }, 1364 { 1365 // mapped to SnakeWipe(diagonal=true): 1366 animations::TransitionType::SNAKEWIPE, 1367 animations::TransitionSubType::TOPLEFTDIAGONAL, // (303) 1368 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1369 0.0, // no rotation 1370 1.0, // no scaling 1371 1.0, // no scaling 1372 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1373 true, // 'out' by parameter sweep inversion 1374 false // scale isotrophically to target size 1375 }, 1376 { 1377 // mapped to SnakeWipe(diagonal=true, flipOnYAxis=true): 1378 animations::TransitionType::SNAKEWIPE, 1379 animations::TransitionSubType::TOPRIGHTDIAGONAL, // (304) 1380 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1381 0.0, // no rotation 1382 1.0, // no scaling 1383 1.0, // no scaling 1384 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1385 true, // 'out' by parameter sweep inversion 1386 false // scale isotrophically to target size 1387 }, 1388 { 1389 // mapped to SnakeWipe(diagonal=true): 1390 animations::TransitionType::SNAKEWIPE, 1391 animations::TransitionSubType::BOTTOMRIGHTDIAGONAL, // (305) 1392 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1393 180.0, // rotation 1394 1.0, // no scaling 1395 1.0, // no scaling 1396 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1397 true, // 'out' by parameter sweep inversion 1398 false // scale isotrophically to target size 1399 }, 1400 { 1401 // mapped to SnakeWipe(diagonal=true, flipOnYAxis=true): 1402 animations::TransitionType::SNAKEWIPE, 1403 animations::TransitionSubType::BOTTOMLEFTDIAGONAL, // (306) 1404 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1405 180.0, // rotation 1406 1.0, // no scaling 1407 1.0, // no scaling 1408 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1409 true, // 'out' by parameter sweep inversion 1410 false // scale isotrophically to target size 1411 }, 1412 1413 { 1414 // mapped to SpiralWipe: 1415 animations::TransitionType::SPIRALWIPE, 1416 animations::TransitionSubType::TOPLEFTCLOCKWISE, // (310) 1417 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1418 0.0, // no rotation 1419 1.0, // no scaling 1420 1.0, // no scaling 1421 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1422 true, // 'out' by parameter sweep inversion 1423 false // scale isotrophically to target size 1424 }, 1425 { 1426 // mapped to SpiralWipe: 1427 animations::TransitionType::SPIRALWIPE, 1428 animations::TransitionSubType::TOPRIGHTCLOCKWISE, // (311) 1429 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1430 90.0, // rotation 1431 1.0, // no scaling 1432 1.0, // no scaling 1433 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1434 true, // 'out' by parameter sweep inversion 1435 false // scale isotrophically to target size 1436 }, 1437 { 1438 // mapped to SpiralWipe: 1439 animations::TransitionType::SPIRALWIPE, 1440 animations::TransitionSubType::BOTTOMRIGHTCLOCKWISE, // (312) 1441 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1442 180.0, // rotation 1443 1.0, // no scaling 1444 1.0, // no scaling 1445 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1446 true, // 'out' by parameter sweep inversion 1447 false // scale isotrophically to target size 1448 }, 1449 { 1450 // mapped to SpiralWipe: 1451 animations::TransitionType::SPIRALWIPE, 1452 animations::TransitionSubType::BOTTOMLEFTCLOCKWISE, // (313) 1453 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1454 270.0, // rotation 1455 1.0, // no scaling 1456 1.0, // no scaling 1457 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1458 true, // 'out' by parameter sweep inversion 1459 false // scale isotrophically to target size 1460 }, 1461 { 1462 // mapped to SpiralWipe(flipOnYAxis=true): 1463 animations::TransitionType::SPIRALWIPE, 1464 animations::TransitionSubType::TOPLEFTCOUNTERCLOCKWISE, // (314) 1465 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1466 90.0, // rotation 1467 1.0, // no scaling 1468 1.0, // no scaling 1469 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1470 true, // 'out' by parameter sweep inversion 1471 false // scale isotrophically to target size 1472 }, 1473 { 1474 // mapped to SpiralWipe(flipOnYAxis=true): 1475 animations::TransitionType::SPIRALWIPE, 1476 animations::TransitionSubType::TOPRIGHTCOUNTERCLOCKWISE, // (315) 1477 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1478 180.0, // rotation 1479 1.0, // no scaling 1480 1.0, // no scaling 1481 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1482 true, // 'out' by parameter sweep inversion 1483 false // scale isotrophically to target size 1484 }, 1485 { 1486 // mapped to SpiralWipe(flipOnYAxis=true): 1487 animations::TransitionType::SPIRALWIPE, 1488 animations::TransitionSubType::BOTTOMRIGHTCOUNTERCLOCKWISE, // (316) 1489 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1490 270.0, // rotation 1491 1.0, // no scaling 1492 1.0, // no scaling 1493 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1494 true, // 'out' by parameter sweep inversion 1495 false // scale isotrophically to target size 1496 }, 1497 { 1498 // mapped to SpiralWipe(flipOnYAxis=true): 1499 animations::TransitionType::SPIRALWIPE, 1500 animations::TransitionSubType::BOTTOMLEFTCOUNTERCLOCKWISE, // (317) 1501 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1502 0.0, // no rotation 1503 1.0, // no scaling 1504 1.0, // no scaling 1505 TransitionInfo::REVERSEMETHOD_SUBTRACT_AND_INVERT, 1506 true, // 'out' by parameter sweep inversion 1507 false // scale isotrophically to target size 1508 }, 1509 1510 { 1511 // mapped to ParallelSnakesWipe: 1512 animations::TransitionType::PARALLELSNAKESWIPE, 1513 animations::TransitionSubType::VERTICALTOPSAME, 1514 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1515 0.0, // no rotation 1516 1.0, // no scaling 1517 1.0, // no scaling 1518 TransitionInfo::REVERSEMETHOD_IGNORE, 1519 true, // 'out' by parameter sweep inversion 1520 false // scale isotrophically to target size 1521 }, 1522 { 1523 // mapped to ParallelSnakesWipe: 1524 animations::TransitionType::PARALLELSNAKESWIPE, 1525 animations::TransitionSubType::VERTICALBOTTOMSAME, 1526 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1527 180.0, // rotation 1528 1.0, // no scaling 1529 1.0, // no scaling 1530 TransitionInfo::REVERSEMETHOD_IGNORE, 1531 true, // 'out' by parameter sweep inversion 1532 false // scale isotrophically to target size 1533 }, 1534 { 1535 // mapped to ParallelSnakesWipe (opposite=true): 1536 animations::TransitionType::PARALLELSNAKESWIPE, 1537 animations::TransitionSubType::VERTICALTOPLEFTOPPOSITE, 1538 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1539 0.0, // no rotation 1540 1.0, // no scaling 1541 1.0, // no scaling 1542 TransitionInfo::REVERSEMETHOD_IGNORE, 1543 true, // 'out' by parameter sweep inversion 1544 false // scale isotrophically to target size 1545 }, 1546 { 1547 // mapped to ParallelSnakesWipe (flipOnYAxis=true, opposite=true): 1548 animations::TransitionType::PARALLELSNAKESWIPE, 1549 animations::TransitionSubType::VERTICALBOTTOMLEFTOPPOSITE, 1550 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1551 0.0, // no rotation 1552 1.0, // no scaling 1553 1.0, // no scaling 1554 TransitionInfo::REVERSEMETHOD_IGNORE, 1555 true, // 'out' by parameter sweep inversion 1556 false // scale isotrophically to target size 1557 }, 1558 { 1559 // mapped to ParallelSnakesWipe: 1560 animations::TransitionType::PARALLELSNAKESWIPE, 1561 animations::TransitionSubType::HORIZONTALLEFTSAME, 1562 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1563 -90.0, // rotation 1564 1.0, // no scaling 1565 1.0, // no scaling 1566 TransitionInfo::REVERSEMETHOD_IGNORE, 1567 true, // 'out' by parameter sweep inversion 1568 false // scale isotrophically to target size 1569 }, 1570 { 1571 // mapped to ParallelSnakesWipe: 1572 animations::TransitionType::PARALLELSNAKESWIPE, 1573 animations::TransitionSubType::HORIZONTALRIGHTSAME, 1574 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1575 90.0, // rotation 1576 1.0, // no scaling 1577 1.0, // no scaling 1578 TransitionInfo::REVERSEMETHOD_IGNORE, 1579 true, // 'out' by parameter sweep inversion 1580 false // scale isotrophically to target size 1581 }, 1582 { 1583 // mapped to ParallelSnakesWipe (flipOnYAxis=true, opposite=true): 1584 animations::TransitionType::PARALLELSNAKESWIPE, 1585 animations::TransitionSubType::HORIZONTALTOPLEFTOPPOSITE, 1586 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1587 -90.0, // rotation 1588 1.0, // no scaling 1589 1.0, // no scaling 1590 TransitionInfo::REVERSEMETHOD_IGNORE, 1591 true, // 'out' by parameter sweep inversion 1592 false // scale isotrophically to target size 1593 }, 1594 { 1595 // mapped to ParallelSnakesWipe (opposite=true): 1596 animations::TransitionType::PARALLELSNAKESWIPE, 1597 animations::TransitionSubType::HORIZONTALTOPRIGHTOPPOSITE, 1598 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1599 -90.0, // rotation 1600 1.0, // no scaling 1601 1.0, // no scaling 1602 TransitionInfo::REVERSEMETHOD_IGNORE, 1603 true, // 'out' by parameter sweep inversion 1604 false // scale isotrophically to target size 1605 }, 1606 { 1607 // mapped to ParallelSnakesWipe (diagonal=true, opposite=true): 1608 animations::TransitionType::PARALLELSNAKESWIPE, 1609 animations::TransitionSubType::DIAGONALBOTTOMLEFTOPPOSITE, 1610 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1611 0.0, // no rotation 1612 1.0, // no scaling 1613 1.0, // no scaling 1614 TransitionInfo::REVERSEMETHOD_IGNORE, 1615 true, // 'out' by parameter sweep inversion 1616 false // scale isotrophically to target size 1617 }, 1618 { 1619 // mapped to ParallelSnakesWipe (diagonal=true, opposite=true, 1620 // flipOnYAxis=true): 1621 animations::TransitionType::PARALLELSNAKESWIPE, 1622 animations::TransitionSubType::DIAGONALTOPLEFTOPPOSITE, 1623 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1624 0.0, // no rotation 1625 1.0, // no scaling 1626 1.0, // no scaling 1627 TransitionInfo::REVERSEMETHOD_IGNORE, 1628 true, // 'out' by parameter sweep inversion 1629 false // scale isotrophically to target size 1630 }, 1631 1632 { 1633 // mapped to BoxSnakesWipe: 1634 animations::TransitionType::BOXSNAKESWIPE, 1635 animations::TransitionSubType::TWOBOXTOP, // (340) 1636 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1637 90.0, // rotation 1638 1.0, // no scaling 1639 1.0, // no scaling 1640 TransitionInfo::REVERSEMETHOD_IGNORE, 1641 true, // 'out' by parameter sweep inversion 1642 false // scale isotrophically to target size 1643 }, 1644 { 1645 // mapped to BoxSnakesWipe: 1646 animations::TransitionType::BOXSNAKESWIPE, 1647 animations::TransitionSubType::TWOBOXBOTTOM, // (341) 1648 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1649 -90.0, // rotation 1650 1.0, // no scaling 1651 1.0, // no scaling 1652 TransitionInfo::REVERSEMETHOD_IGNORE, 1653 true, // 'out' by parameter sweep inversion 1654 false // scale isotrophically to target size 1655 }, 1656 { 1657 // mapped to BoxSnakesWipe: 1658 animations::TransitionType::BOXSNAKESWIPE, 1659 animations::TransitionSubType::TWOBOXLEFT, // (342) 1660 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1661 0.0, // no rotation 1662 1.0, // no scaling 1663 1.0, // no scaling 1664 TransitionInfo::REVERSEMETHOD_IGNORE, 1665 true, // 'out' by parameter sweep inversion 1666 false // scale isotrophically to target size 1667 }, 1668 { 1669 // mapped to BoxSnakesWipe: 1670 animations::TransitionType::BOXSNAKESWIPE, 1671 animations::TransitionSubType::TWOBOXRIGHT, // (343) 1672 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1673 180.0, // rotation 1674 1.0, // no scaling 1675 1.0, // no scaling 1676 TransitionInfo::REVERSEMETHOD_IGNORE, 1677 true, // 'out' by parameter sweep inversion 1678 false // scale isotrophically to target size 1679 }, 1680 { 1681 // mapped to BoxSnakesWipe(fourBox=true): 1682 animations::TransitionType::BOXSNAKESWIPE, 1683 animations::TransitionSubType::FOURBOXVERTICAL, // (344) 1684 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1685 90.0, // rotation 1686 1.0, // no scaling 1687 1.0, // no scaling 1688 TransitionInfo::REVERSEMETHOD_IGNORE, 1689 true, // 'out' by parameter sweep inversion 1690 false // scale isotrophically to target size 1691 }, 1692 { 1693 // mapped to BoxSnakesWipe(fourBox=true): 1694 animations::TransitionType::BOXSNAKESWIPE, 1695 animations::TransitionSubType::FOURBOXHORIZONTAL, // (345) 1696 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1697 0.0, // no rotation 1698 1.0, // no scaling 1699 1.0, // no scaling 1700 TransitionInfo::REVERSEMETHOD_IGNORE, 1701 true, // 'out' by parameter sweep inversion 1702 false // scale isotrophically to target size 1703 }, 1704 1705 { 1706 // mapped to WaterfallWipe: 1707 animations::TransitionType::WATERFALLWIPE, 1708 animations::TransitionSubType::VERTICALLEFT, // (350) 1709 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1710 0.0, // no rotation 1711 1.0, // no scaling 1712 1.0, // no scaling 1713 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1714 true, // 'out' by parameter sweep inversion 1715 false // scale isotrophically to target size 1716 }, 1717 { 1718 // mapped to WaterfallWipe (flipOnYAxis=true): 1719 animations::TransitionType::WATERFALLWIPE, 1720 animations::TransitionSubType::VERTICALRIGHT, // (351) 1721 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1722 0.0, // no rotation 1723 1.0, // no scaling 1724 1.0, // no scaling 1725 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1726 true, // 'out' by parameter sweep inversion 1727 false // scale isotrophically to target size 1728 }, 1729 { 1730 // mapped to WaterfallWipe (flipOnYAxis=true): 1731 animations::TransitionType::WATERFALLWIPE, 1732 animations::TransitionSubType::HORIZONTALLEFT, // (352) 1733 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1734 -90.0, // rotation 1735 1.0, // no scaling 1736 1.0, // no scaling 1737 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1738 true, // 'out' by parameter sweep inversion 1739 false // scale isotrophically to target size 1740 }, 1741 { 1742 // mapped to WaterfallWipe, flipOnYAxis=false: 1743 animations::TransitionType::WATERFALLWIPE, 1744 animations::TransitionSubType::HORIZONTALRIGHT, // (353) 1745 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 1746 90.0, // rotation 1747 1.0, // no scaling 1748 1.0, // no scaling 1749 TransitionInfo::REVERSEMETHOD_ROTATE_180, 1750 true, // 'out' by parameter sweep inversion 1751 false // scale isotrophically to target size 1752 }, 1753 1754 { 1755 animations::TransitionType::PUSHWIPE, 1756 animations::TransitionSubType::FROMLEFT, 1757 TransitionInfo::TRANSITION_SPECIAL, 1758 // TODO(F2): Setup parameters 1759 0.0, // no rotation 1760 1.0, // no scaling 1761 1.0, // no scaling 1762 TransitionInfo::REVERSEMETHOD_IGNORE, 1763 true, // 'out' by parameter sweep inversion 1764 false // scale isotrophically to target size 1765 }, 1766 { 1767 animations::TransitionType::PUSHWIPE, 1768 animations::TransitionSubType::FROMTOP, 1769 TransitionInfo::TRANSITION_SPECIAL, 1770 // TODO(F2): Setup parameters 1771 0.0, // no rotation 1772 1.0, // no scaling 1773 1.0, // no scaling 1774 TransitionInfo::REVERSEMETHOD_IGNORE, 1775 true, // 'out' by parameter sweep inversion 1776 false // scale isotrophically to target size 1777 }, 1778 { 1779 animations::TransitionType::PUSHWIPE, 1780 animations::TransitionSubType::FROMRIGHT, 1781 TransitionInfo::TRANSITION_SPECIAL, 1782 // TODO(F2): Setup parameters 1783 0.0, // no rotation 1784 1.0, // no scaling 1785 1.0, // no scaling 1786 TransitionInfo::REVERSEMETHOD_IGNORE, 1787 true, // 'out' by parameter sweep inversion 1788 false // scale isotrophically to target size 1789 }, 1790 { 1791 animations::TransitionType::PUSHWIPE, 1792 animations::TransitionSubType::FROMBOTTOM, 1793 TransitionInfo::TRANSITION_SPECIAL, 1794 // TODO(F2): Setup parameters 1795 0.0, // no rotation 1796 1.0, // no scaling 1797 1.0, // no scaling 1798 TransitionInfo::REVERSEMETHOD_IGNORE, 1799 true, // 'out' by parameter sweep inversion 1800 false // scale isotrophically to target size 1801 }, 1802 { 1803 animations::TransitionType::PUSHWIPE, 1804 animations::TransitionSubType::FROMBOTTOMRIGHT, 1805 TransitionInfo::TRANSITION_SPECIAL, 1806 // TODO(F2): Setup parameters 1807 0.0, // no rotation 1808 1.0, // no scaling 1809 1.0, // no scaling 1810 TransitionInfo::REVERSEMETHOD_IGNORE, 1811 true, // 'out' by parameter sweep inversion 1812 false // scale isotrophically to target size 1813 }, 1814 { 1815 animations::TransitionType::PUSHWIPE, 1816 animations::TransitionSubType::FROMBOTTOMLEFT, 1817 TransitionInfo::TRANSITION_SPECIAL, 1818 // TODO(F2): Setup parameters 1819 0.0, // no rotation 1820 1.0, // no scaling 1821 1.0, // no scaling 1822 TransitionInfo::REVERSEMETHOD_IGNORE, 1823 true, // 'out' by parameter sweep inversion 1824 false // scale isotrophically to target size 1825 }, 1826 { 1827 animations::TransitionType::PUSHWIPE, 1828 animations::TransitionSubType::FROMTOPRIGHT, 1829 TransitionInfo::TRANSITION_SPECIAL, 1830 // TODO(F2): Setup parameters 1831 0.0, // no rotation 1832 1.0, // no scaling 1833 1.0, // no scaling 1834 TransitionInfo::REVERSEMETHOD_IGNORE, 1835 true, // 'out' by parameter sweep inversion 1836 false // scale isotrophically to target size 1837 }, 1838 { 1839 animations::TransitionType::PUSHWIPE, 1840 animations::TransitionSubType::FROMTOPLEFT, 1841 TransitionInfo::TRANSITION_SPECIAL, 1842 // TODO(F2): Setup parameters 1843 0.0, // no rotation 1844 1.0, // no scaling 1845 1.0, // no scaling 1846 TransitionInfo::REVERSEMETHOD_IGNORE, 1847 true, // 'out' by parameter sweep inversion 1848 false // scale isotrophically to target size 1849 }, 1850 { 1851 animations::TransitionType::PUSHWIPE, 1852 animations::TransitionSubType::COMBHORIZONTAL, 1853 TransitionInfo::TRANSITION_SPECIAL, 1854 // TODO(F2): Setup parameters 1855 0.0, // no rotation 1856 1.0, // no scaling 1857 1.0, // no scaling 1858 TransitionInfo::REVERSEMETHOD_FLIP_X, 1859 true, // 'out' by parameter sweep inversion 1860 false // scale isotrophically to target size 1861 }, 1862 { 1863 animations::TransitionType::PUSHWIPE, 1864 animations::TransitionSubType::COMBVERTICAL, 1865 TransitionInfo::TRANSITION_SPECIAL, 1866 // TODO(F2): Setup parameters 1867 0.0, // no rotation 1868 1.0, // no scaling 1869 1.0, // no scaling 1870 TransitionInfo::REVERSEMETHOD_FLIP_X, 1871 true, // 'out' by parameter sweep inversion 1872 false // scale isotrophically to target size 1873 }, 1874 { 1875 animations::TransitionType::SLIDEWIPE, 1876 animations::TransitionSubType::FROMLEFT, 1877 TransitionInfo::TRANSITION_SPECIAL, 1878 // TODO(F2): Setup parameters 1879 0.0, // no rotation 1880 1.0, // no scaling 1881 1.0, // no scaling 1882 TransitionInfo::REVERSEMETHOD_IGNORE, // special code for this transition 1883 true, // 'out' by parameter sweep inversion 1884 false // scale isotrophically to target size 1885 }, 1886 { 1887 animations::TransitionType::SLIDEWIPE, 1888 animations::TransitionSubType::FROMTOP, 1889 TransitionInfo::TRANSITION_SPECIAL, 1890 // TODO(F2): Setup parameters 1891 0.0, // no rotation 1892 1.0, // no scaling 1893 1.0, // no scaling 1894 TransitionInfo::REVERSEMETHOD_IGNORE, // special code for this transition 1895 true, // 'out' by parameter sweep inversion 1896 false // scale isotrophically to target size 1897 }, 1898 { 1899 animations::TransitionType::SLIDEWIPE, 1900 animations::TransitionSubType::FROMRIGHT, 1901 TransitionInfo::TRANSITION_SPECIAL, 1902 // TODO(F2): Setup parameters 1903 0.0, // no rotation 1904 1.0, // no scaling 1905 1.0, // no scaling 1906 TransitionInfo::REVERSEMETHOD_IGNORE, // special code for this transition 1907 true, // 'out' by parameter sweep inversion 1908 false // scale isotrophically to target size 1909 }, 1910 { 1911 animations::TransitionType::SLIDEWIPE, 1912 animations::TransitionSubType::FROMBOTTOM, 1913 TransitionInfo::TRANSITION_SPECIAL, 1914 // TODO(F2): Setup parameters 1915 0.0, // no rotation 1916 1.0, // no scaling 1917 1.0, // no scaling 1918 TransitionInfo::REVERSEMETHOD_IGNORE, // special code for this transition 1919 true, // 'out' by parameter sweep inversion 1920 false // scale isotrophically to target size 1921 }, 1922 { 1923 animations::TransitionType::SLIDEWIPE, 1924 animations::TransitionSubType::FROMBOTTOMRIGHT, 1925 TransitionInfo::TRANSITION_SPECIAL, 1926 // TODO(F2): Setup parameters 1927 0.0, // no rotation 1928 1.0, // no scaling 1929 1.0, // no scaling 1930 TransitionInfo::REVERSEMETHOD_IGNORE, // special code for this transition 1931 true, // 'out' by parameter sweep inversion 1932 false // scale isotrophically to target size 1933 }, 1934 { 1935 animations::TransitionType::SLIDEWIPE, 1936 animations::TransitionSubType::FROMTOPRIGHT, 1937 TransitionInfo::TRANSITION_SPECIAL, 1938 // TODO(F2): Setup parameters 1939 0.0, // no rotation 1940 1.0, // no scaling 1941 1.0, // no scaling 1942 TransitionInfo::REVERSEMETHOD_IGNORE, // special code for this transition 1943 true, // 'out' by parameter sweep inversion 1944 false // scale isotrophically to target size 1945 }, 1946 { 1947 animations::TransitionType::SLIDEWIPE, 1948 animations::TransitionSubType::FROMTOPLEFT, 1949 TransitionInfo::TRANSITION_SPECIAL, 1950 // TODO(F2): Setup parameters 1951 0.0, // no rotation 1952 1.0, // no scaling 1953 1.0, // no scaling 1954 TransitionInfo::REVERSEMETHOD_IGNORE, // special code for this transition 1955 true, // 'out' by parameter sweep inversion 1956 false // scale isotrophically to target size 1957 }, 1958 { 1959 animations::TransitionType::SLIDEWIPE, 1960 animations::TransitionSubType::FROMBOTTOMLEFT, 1961 TransitionInfo::TRANSITION_SPECIAL, 1962 // TODO(F2): Setup parameters 1963 0.0, // no rotation 1964 1.0, // no scaling 1965 1.0, // no scaling 1966 TransitionInfo::REVERSEMETHOD_IGNORE, // special code for this transition 1967 true, // 'out' by parameter sweep inversion 1968 false // scale isotrophically to target size 1969 }, 1970 { 1971 animations::TransitionType::FADE, 1972 animations::TransitionSubType::CROSSFADE, 1973 TransitionInfo::TRANSITION_SPECIAL, 1974 // TODO(F2): Setup parameters 1975 0.0, // no rotation 1976 1.0, // no scaling 1977 1.0, // no scaling 1978 TransitionInfo::REVERSEMETHOD_IGNORE, 1979 true, // 'out' by parameter sweep inversion 1980 false // scale isotrophically to target size 1981 }, 1982 { 1983 animations::TransitionType::FADE, 1984 animations::TransitionSubType::FADETOCOLOR, 1985 TransitionInfo::TRANSITION_SPECIAL, 1986 // TODO(F2): Setup parameters 1987 0.0, // no rotation 1988 1.0, // no scaling 1989 1.0, // no scaling 1990 TransitionInfo::REVERSEMETHOD_IGNORE, 1991 true, // 'out' by parameter sweep inversion 1992 false // scale isotrophically to target size 1993 }, 1994 { 1995 animations::TransitionType::FADE, 1996 animations::TransitionSubType::FADEFROMCOLOR, 1997 TransitionInfo::TRANSITION_SPECIAL, 1998 // TODO(F2): Setup parameters 1999 0.0, // no rotation 2000 1.0, // no scaling 2001 1.0, // no scaling 2002 TransitionInfo::REVERSEMETHOD_IGNORE, 2003 true, // 'out' by parameter sweep inversion 2004 false // scale isotrophically to target size 2005 }, 2006 { 2007 animations::TransitionType::FADE, 2008 animations::TransitionSubType::FADEOVERCOLOR, 2009 TransitionInfo::TRANSITION_SPECIAL, 2010 // TODO(F2): Setup parameters 2011 0.0, // no rotation 2012 1.0, // no scaling 2013 1.0, // no scaling 2014 TransitionInfo::REVERSEMETHOD_IGNORE, 2015 true, // 'out' by parameter sweep inversion 2016 false // scale isotrophically to target size 2017 }, 2018 2019 { 2020 // mapped to RandomWipe: 2021 animations::TransitionType::RANDOMBARWIPE, 2022 animations::TransitionSubType::VERTICAL, 2023 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 2024 90.0, // rotation 2025 1.0, // no scaling 2026 1.0, // no scaling 2027 TransitionInfo::REVERSEMETHOD_IGNORE, 2028 true, // 'out' by parameter sweep inversion 2029 false // scale isotrophically to target size 2030 }, 2031 { 2032 // mapped to RandomWipe: 2033 animations::TransitionType::RANDOMBARWIPE, 2034 animations::TransitionSubType::HORIZONTAL, 2035 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 2036 0.0, // no rotation 2037 1.0, // no scaling 2038 1.0, // no scaling 2039 TransitionInfo::REVERSEMETHOD_IGNORE, 2040 true, // 'out' by parameter sweep inversion 2041 false // scale isotrophically to target size 2042 }, 2043 2044 { 2045 // mapped to CheckerBoard: 2046 animations::TransitionType::CHECKERBOARDWIPE, 2047 animations::TransitionSubType::DOWN, 2048 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 2049 90.0, // rotation 2050 1.0, // no scaling 2051 1.0, // no scaling 2052 TransitionInfo::REVERSEMETHOD_FLIP_Y, 2053 true, // 'out' by parameter sweep inversion 2054 false // scale isotrophically to target size 2055 }, 2056 { 2057 // mapped to CheckerBoard: 2058 animations::TransitionType::CHECKERBOARDWIPE, 2059 animations::TransitionSubType::ACROSS, // (default) 2060 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 2061 0.0, // no rotation 2062 1.0, // no scaling 2063 1.0, // no scaling 2064 TransitionInfo::REVERSEMETHOD_FLIP_X, 2065 true, // 'out' by parameter sweep inversion 2066 false // scale isotrophically to target size 2067 }, 2068 2069 { 2070 // mapped to RandomWipe: 2071 animations::TransitionType::DISSOLVE, 2072 animations::TransitionSubType::DEFAULT, 2073 TransitionInfo::TRANSITION_CLIP_POLYPOLYGON, 2074 0.0, // no rotation 2075 1.0, // no scaling 2076 1.0, // no scaling 2077 TransitionInfo::REVERSEMETHOD_IGNORE, 2078 true, // 'out' by parameter sweep inversion 2079 true // scale isotrophically to target size 2080 }, 2081 2082 ///////////////////////////////////////////////////////// 2083 // NOTE: This entry MUST be the last, to keep 2084 // createSlideTransition() from infinite recursion. Because 2085 // getRandomTransitionInfo() below will exclude the last entry of 2086 // the table from the random number generation. 2087 ///////////////////////////////////////////////////////// 2088 { 2089 // specially handled 2090 animations::TransitionType::RANDOM, 2091 animations::TransitionSubType::DEFAULT, 2092 TransitionInfo::TRANSITION_SPECIAL, 2093 0.0, // no rotation 2094 1.0, // no scaling 2095 1.0, // no scaling 2096 TransitionInfo::REVERSEMETHOD_IGNORE, 2097 true, // 'out' by parameter sweep inversion 2098 true // scale isotrophically to target size 2099 } 2100 ///////////////////////////////////////////////////////// 2101 // NOTE: DON'T add after this entry! See comment above! 2102 ///////////////////////////////////////////////////////// 2103 }; 2104 2105 } // anon namespace 2106 2107 const TransitionInfo* TransitionFactory::getTransitionInfo( 2108 sal_Int16 nTransitionType, sal_Int16 nTransitionSubType ) 2109 { 2110 static const ::std::size_t lcl_tableSize( 2111 sizeof(lcl_transitionInfo)/sizeof(TransitionInfo) ); 2112 static const TransitionInfo* pTableEnd = lcl_transitionInfo+lcl_tableSize; 2113 2114 const TransitionInfo* pRes = ::std::find_if( 2115 lcl_transitionInfo, pTableEnd, 2116 TransitionInfo::Comparator( nTransitionType, 2117 nTransitionSubType ) ); 2118 if (pRes != pTableEnd) 2119 return pRes; 2120 else 2121 return NULL; 2122 } 2123 2124 const TransitionInfo* TransitionFactory::getRandomTransitionInfo() 2125 { 2126 return lcl_transitionInfo + getRandomOrdinal( 2127 sizeof(lcl_transitionInfo) / sizeof(TransitionInfo) 2128 - 1 /* exclude random transition at end of table */ ); 2129 } 2130 2131 } // namespace internal 2132 } // namespace presentation 2133