summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorRohan Kumar <rohankanojia420@gmail.com>2017-02-04 03:15:06 +0530
committerMarco Cecchetti <marco.cecchetti@collabora.com>2017-04-07 17:06:13 +0200
commitb2faa253f8fce00c9f15cf58545353b481603ca7 (patch)
treec4e2a9578a865dd012d602a78556569f68187dd7 /filter
parent4840c011f8ee043f7910f94b4ed70fde905ec471 (diff)
tdf#51358 Add Support for FanWipe class
Ported the class FanWipe In SVG engine. Change-Id: I8a067f2df32968bb00d5b3adc020bc9ee8296f33 Reviewed-on: https://gerrit.libreoffice.org/33910 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'filter')
-rw-r--r--filter/source/svg/presentation_engine.js115
1 files changed, 115 insertions, 0 deletions
diff --git a/filter/source/svg/presentation_engine.js b/filter/source/svg/presentation_engine.js
index 35f4b5a894c4..d1a0b95aace1 100644
--- a/filter/source/svg/presentation_engine.js
+++ b/filter/source/svg/presentation_engine.js
@@ -5168,6 +5168,7 @@ BARNDOORWIPE_TRANSITION = 15; // 4
VEEWIPE_TRANSITION = 16; // 8
ZIGZAGWIPE_TRANSITION = 17; // 10
BARNZIGZAGWIPE_TRANSITION = 18; // 11
+FANWIPE_TRANSITION = 19; // 25
aTransitionTypeInMap = {
'barWipe' : BARWIPE_TRANSITION,
@@ -5180,6 +5181,7 @@ aTransitionTypeInMap = {
'pushWipe' : PUSHWIPE_TRANSITION,
'slideWipe' : SLIDEWIPE_TRANSITION,
'fade' : FADE_TRANSITION,
+ 'fanWipe' : FANWIPE_TRANSITION,
'randomBarWipe' : RANDOMBARWIPE_TRANSITION,
'checkerBoardWipe' : CHECKERBOARDWIPE_TRANSITION,
'dissolve' : DISSOLVE_TRANSITION,
@@ -5250,6 +5252,12 @@ UP_TRANS_SUBTYPE = 45; // 21
RIGHT_TRANS_SUBTYPE = 46; // 22
DIAGONALBOTTOMLEFT_TRANS_SUBTYPE = 47; // 15
DIAGONALTOPLEFT_TRANS_SUBTYPE = 48; // 16
+CENTERTOP_TRANS_SUBTYPE = 49; // 48
+CENTERRIGHT_TRANS_SUBTYPE = 50; // 49
+TOP_TRANS_SUBTYPE = 51; // 50
+RIGHT_TRANS_SUBTYPE = 52; // 22
+BOTTOM_TRANS_SUBTYPE = 53; // 52
+LEFT_TRANS_SUBTYPE = 54; // 20
aTransitionSubtypeInMap = {
'default' : DEFAULT_TRANS_SUBTYPE,
@@ -5258,6 +5266,12 @@ aTransitionSubtypeInMap = {
'cornersIn' : CORNERSIN_TRANS_SUBTYPE,
'cornersOut' : CORNERSOUT_TRANS_SUBTYPE,
'vertical' : VERTICAL_TRANS_SUBTYPE,
+ 'centerTop' : CENTERTOP_TRANS_SUBTYPE,
+ 'centerRight' : CENTERRIGHT_TRANS_SUBTYPE,
+ 'top' : TOP_TRANS_SUBTYPE,
+ 'right' : RIGHT_TRANS_SUBTYPE,
+ 'bottom' : BOTTOM_TRANS_SUBTYPE,
+ 'left' : LEFT_TRANS_SUBTYPE,
'horizontal' : HORIZONTAL_TRANS_SUBTYPE,
'down' : DOWN_TRANS_SUBTYPE,
'circle' : CIRCLE_TRANS_SUBTYPE,
@@ -5766,6 +5780,69 @@ aTransitionInfoTable[VEEWIPE_TRANSITION][RIGHT_TRANS_SUBTYPE] =
'scaleIsotropically' : false
};
+aTransitionInfoTable[FANWIPE_TRANSITION] = {};
+aTransitionInfoTable[FANWIPE_TRANSITION][CENTERTOP_TRANS_SUBTYPE] =
+{
+ 'class' : TRANSITION_CLIP_POLYPOLYGON,
+ 'rotationAngle' : 0.0,
+ 'scaleX' : 1.0,
+ 'scaleY' : 1.0,
+ 'reverseMethod' : REVERSEMETHOD_FLIP_Y,
+ 'outInvertsSweep' : true,
+ 'scaleIsotropically' : false
+};
+aTransitionInfoTable[FANWIPE_TRANSITION][CENTERRIGHT_TRANS_SUBTYPE] =
+{
+ 'class' : TRANSITION_CLIP_POLYPOLYGON,
+ 'rotationAngle' : 90.0,
+ 'scaleX' : 1.0,
+ 'scaleY' : 1.0,
+ 'reverseMethod' : REVERSEMETHOD_FLIP_X,
+ 'outInvertsSweep' : true,
+ 'scaleIsotropically' : false
+};
+aTransitionInfoTable[FANWIPE_TRANSITION][TOP_TRANS_SUBTYPE] =
+{
+ 'class' : TRANSITION_CLIP_POLYPOLYGON,
+ 'rotationAngle' : 180.0,
+ 'scaleX' : 1.0,
+ 'scaleY' : 1.0,
+ 'reverseMethod' : REVERSEMETHOD_FLIP_Y,
+ 'outInvertsSweep' : true,
+ 'scaleIsotropically' : false
+};
+aTransitionInfoTable[FANWIPE_TRANSITION][RIGHT_TRANS_SUBTYPE] =
+{
+ 'class' : TRANSITION_CLIP_POLYPOLYGON,
+ 'rotationAngle' : -90.0,
+ 'scaleX' : 1.0,
+ 'scaleY' : 1.0,
+ 'reverseMethod' : REVERSEMETHOD_FLIP_X,
+ 'outInvertsSweep' : true,
+ 'scaleIsotropically' : false
+};
+aTransitionInfoTable[FANWIPE_TRANSITION][BOTTOM_TRANS_SUBTYPE] =
+{
+ 'class' : TRANSITION_CLIP_POLYPOLYGON,
+ 'rotationAngle' : 180.0,
+ 'scaleX' : 1.0,
+ 'scaleY' : 1.0,
+ 'reverseMethod' : REVERSEMETHOD_FLIP_Y,
+ 'outInvertsSweep' : true,
+ 'scaleIsotropically' : false
+};
+aTransitionInfoTable[FANWIPE_TRANSITION][LEFT_TRANS_SUBTYPE] =
+{
+ 'class' : TRANSITION_CLIP_POLYPOLYGON,
+ 'rotationAngle' : 90.0,
+ 'scaleX' : 1.0,
+ 'scaleY' : 1.0,
+ 'reverseMethod' : REVERSEMETHOD_FLIP_X,
+ 'outInvertsSweep' : true,
+ 'scaleIsotropically' : false
+};
+
+
aTransitionInfoTable[PINWHEELWIPE_TRANSITION] = {};
aTransitionInfoTable[PINWHEELWIPE_TRANSITION][ONEBLADE_TRANS_SUBTYPE] =
aTransitionInfoTable[PINWHEELWIPE_TRANSITION][TWOBLADEVERTICAL_TRANS_SUBTYPE] =
@@ -9455,6 +9532,9 @@ function createClipPolyPolygon( nType, nSubtype )
nSubtype == BOTTOMCENTER_TRANS_SUBTYPE );
case ELLIPSEWIPE_TRANSITION:
return new EllipseWipePath( nSubtype );
+ case FANWIPE_TRANSITION:
+ return new FanWipePath(nSubtype == CENTERTOP_TRANS_SUBTYPE ||
+ nSubtype == CENTERRIGHT_TRANS_SUBTYPE, true, false);
case PINWHEELWIPE_TRANSITION:
var nBlades;
switch( nSubtype )
@@ -9732,6 +9812,41 @@ EllipseWipePath.prototype.perform = function( nT )
return aEllipse;
};
+/*
+ * Class FanWipePath
+ *
+ */
+function FanWipePath(bIsCenter, bIsSingle, bIsFanIn) {
+ this.bCenter = bIsCenter;
+ this.bSingle = bIsSingle;
+ this.bFanIn = bIsFanIn;
+ this.aBasePath = createUnitSquarePath();
+}
+
+FanWipePath.prototype.perform = function( nT ) {
+ var res = this.aBasePath.cloneNode(true);
+ var poly = PinWheelWipePath.calcCenteredClock(
+ nT / ((this.bCenter && this.bSingle) ? 2.0 : 4.0), 1.0);
+ res.appendPath(poly);
+ // flip on y-axis
+ var aTransform = SVGIdentityMatrix.flipY();
+ aTransform = aTransform.scaleNonUniform(-1.0, 1.0);
+ poly.matrixTransform(aTransform);
+ res.appendPath(poly);
+
+ if(this.bCenter) {
+ aTransform = SVGIdentityMatrix.scaleNonUniform(0.5, 0.5).translate(0.5, 0.5);
+ res.matrixTransform(aTransform);
+
+ if(!this.bSingle)
+ res.appendPath(flipOnXAxis(res));
+ }
+ else {
+ aTransform = SVGIdentityMatrix.scaleNonUniform(0.5, 1.0).translate(0.5, 1.0);
+ res.matrixTransform(aTransform);
+ }
+ return res;
+}
/**
* Class ClockWipePath