@@ -47,8 +47,8 @@ define(function (require, exports, module) {
4747 MERGE_MINWIDTH = 30,
4848 MERGE_MINHEIGHT = 25,
4949 EXTRACT_MINWIDTH = 30,
50- EXTRACT_MINHEIGHT = 25;
51-
50+ EXTRACT_MINHEIGHT = 25;
51+
5252 /**
5353 * FCModelElement
5454 * @constructor
@@ -91,7 +91,7 @@ define(function (require, exports, module) {
9191 return "FlowchartDiagram";
9292 };
9393
94-
94+
9595 /**
9696 * FCProcess
9797 * @constructor
@@ -734,21 +734,12 @@ define(function (require, exports, module) {
734734 FCDocumentView.prototype.drawDocument = function (canvas, rect) {
735735 var h = Math.floor(rect.getHeight() / 6),
736736 g = Math.floor(rect.getWidth() / 3);
737- canvas.transform();
738- canvas.context.beginPath();
739- canvas.context.strokeStyle = canvas.color;
740- canvas.context.fillStyle = canvas.fillColor;
741- canvas.context.lineWidth = canvas.lineWidth;
742- canvas.context.globalAlpha = canvas.alpha;
743- canvas.context.moveTo(rect.x1, rect.y1);
744- canvas.context.lineTo(rect.x2, rect.y1);
745- canvas.context.lineTo(rect.x2, rect.y2);
746- canvas.context.bezierCurveTo(rect.x2 - g, rect.y2 - (h * 2), rect.x1 + g, rect.y2 + (h * 1.5), rect.x1, rect.y2 - h);
747- canvas.context.lineTo(rect.x1, rect.y1);
748- canvas.context.closePath();
749- canvas.context.fill();
750- canvas.context.stroke();
751- canvas.restoreTransform();
737+ canvas.fillPath([['M', rect.x1, rect.y1],
738+ ['L', rect.x2, rect.y1],
739+ ['L', rect.x2, rect.y2],
740+ ['C', rect.x2 - g, rect.y2 - (h * 2), rect.x1 + g, rect.y2 + (h * 1.5), rect.x1, rect.y2 - h],
741+ ['L', rect.x1, rect.y1],
742+ ['Z']], true);
752743 };
753744
754745 FCDocumentView.prototype.drawObject = function (canvas) {
@@ -853,23 +844,14 @@ define(function (require, exports, module) {
853844 var r = new Rect(this.left, this.top, this.getRight(), this.getBottom()),
854845 m = (r.y1 + r.y2) / 2,
855846 g = Math.floor(this.width / 6);
856- canvas.transform();
857- canvas.context.beginPath();
858- canvas.context.strokeStyle = canvas.color;
859- canvas.context.fillStyle = canvas.fillColor;
860- canvas.context.lineWidth = canvas.lineWidth;
861- canvas.context.globalAlpha = canvas.alpha;
862- canvas.context.moveTo(r.x1, m);
863- canvas.context.lineTo(r.x1 + g, r.y1);
864- canvas.context.lineTo(r.x2 - g, r.y1);
865- canvas.context.quadraticCurveTo(r.x2, r.y1, r.x2, m);
866- canvas.context.quadraticCurveTo(r.x2, r.y2, r.x2 - g, r.y2);
867- canvas.context.lineTo(r.x1 + g, r.y2);
868- canvas.context.lineTo(r.x1, m);
869- canvas.context.closePath();
870- canvas.context.fill();
871- canvas.context.stroke();
872- canvas.restoreTransform();
847+ canvas.fillPath([['M', r.x1, m],
848+ ['L', r.x1 + g, r.y1],
849+ ['L', r.x2 - g, r.y1],
850+ ['Q', r.x2, r.y1, r.x2, m],
851+ ['Q', r.x2, r.y2, r.x2 - g, r.y2],
852+ ['L', r.x1 + g, r.y2],
853+ ['L', r.x1, m],
854+ ['Z']], true);
873855 FCGeneralNodeView.prototype.drawObject.call(this, canvas);
874856 };
875857
@@ -995,22 +977,13 @@ define(function (require, exports, module) {
995977 FCPunchedTapeView.prototype.drawObject = function (canvas) {
996978 var r = new Rect(this.left, this.top, this.getRight(), this.getBottom()),
997979 h = Math.floor(r.getHeight() / 6),
998- g = Math.floor(r.getWidth() / 3);
999- canvas.transform();
1000- canvas.context.beginPath();
1001- canvas.context.strokeStyle = canvas.color;
1002- canvas.context.fillStyle = canvas.fillColor;
1003- canvas.context.lineWidth = canvas.lineWidth;
1004- canvas.context.globalAlpha = canvas.alpha;
1005- canvas.context.moveTo(r.x1, r.y1);
1006- canvas.context.bezierCurveTo(r.x1 + g, r.y1 + (h * 2), r.x2 - g, r.y1 - (h * 1.5), r.x2, r.y1 + h);
1007- canvas.context.lineTo(r.x2, r.y2);
1008- canvas.context.bezierCurveTo(r.x2 - g, r.y2 - (h * 2), r.x1 + g, r.y2 + (h * 1.5), r.x1, r.y2 - h);
1009- canvas.context.lineTo(r.x1, r.y1);
1010- canvas.context.closePath();
1011- canvas.context.fill();
1012- canvas.context.stroke();
1013- canvas.restoreTransform();
980+ g = Math.floor(r.getWidth() / 3);
981+ canvas.fillPath([['M', r.x1, r.y1],
982+ ['C', r.x1 + g, r.y1 + (h * 2), r.x2 - g, r.y1 - (h * 1.5), r.x2, r.y1 + h],
983+ ['L', r.x2, r.y2],
984+ ['C', r.x2 - g, r.y2 - (h * 2), r.x1 + g, r.y2 + (h * 1.5), r.x1, r.y2 - h],
985+ ['L', r.x1, r.y1],
986+ ['Z']], true);
1014987 FCGeneralNodeView.prototype.drawObject.call(this, canvas);
1015988 };
1016989
@@ -1329,24 +1302,15 @@ define(function (require, exports, module) {
13291302 kappa = 0.5522848,
13301303 ox = g * kappa, // control point offset horizontal
13311304 oy = (h / 2) * kappa; // control point offset vertical
1332-
1333- canvas.transform();
1334- canvas.context.beginPath();
1335- canvas.context.strokeStyle = canvas.color;
1336- canvas.context.fillStyle = canvas.fillColor;
1337- canvas.context.lineWidth = canvas.lineWidth;
1338- canvas.context.globalAlpha = canvas.alpha;
1339- canvas.context.moveTo(r.x2, r.y1);
1340- canvas.context.bezierCurveTo(r.x2 - ox, r.y1, r.x2 - g, ym - oy, r.x2 - g, ym);
1341- canvas.context.bezierCurveTo(r.x2 - g, ym + oy, r.x2 - ox, r.y2, r.x2, r.y2);
1342- canvas.context.lineTo(r.x1 + g, r.y2);
1343- canvas.context.bezierCurveTo(r.x1 + g - ox, r.y2, r.x1, ym + oy, r.x1, ym);
1344- canvas.context.bezierCurveTo(r.x1, ym - oy, r.x1 + g - ox, r.y1, r.x1 + g, r.y1);
1345- canvas.context.lineTo(r.x2, r.y1);
1346- canvas.context.closePath();
1347- canvas.context.fill();
1348- canvas.context.stroke();
1349- canvas.restoreTransform();
1305+
1306+ canvas.fillPath([['M', r.x2, r.y1],
1307+ ['C', r.x2 - ox, r.y1, r.x2 - g, ym - oy, r.x2 - g, ym],
1308+ ['C', r.x2 - g, ym + oy, r.x2 - ox, r.y2, r.x2, r.y2],
1309+ ['L', r.x1 + g, r.y2],
1310+ ['C', r.x1 + g - ox, r.y2, r.x1, ym + oy, r.x1, ym],
1311+ ['C', r.x1, ym - oy, r.x1 + g - ox, r.y1, r.x1 + g, r.y1],
1312+ ['L', r.x2, r.y1],
1313+ ['Z']], true);
13501314 FCGeneralNodeView.prototype.drawObject.call(this, canvas);
13511315 };
13521316
@@ -1379,29 +1343,18 @@ define(function (require, exports, module) {
13791343 kappa = 0.5522848,
13801344 ox = (w / 2) * kappa, // control point offset horizontal
13811345 oy = g * kappa; // control point offset vertical
1382-
1383- canvas.transform();
1384- canvas.context.beginPath();
1385- canvas.context.strokeStyle = canvas.color;
1386- canvas.context.fillStyle = canvas.fillColor;
1387- canvas.context.lineWidth = canvas.lineWidth;
1388- canvas.context.globalAlpha = canvas.alpha;
1389- canvas.context.moveTo(r.x1, r.y1 + g);
1390- canvas.context.bezierCurveTo(r.x1, r.y1 + g - oy, xm - ox, r.y1, xm, r.y1);
1391- canvas.context.bezierCurveTo(xm + ox, r.y1, r.x2, r.y1 + g - oy, r.x2, r.y1 + g);
1392- canvas.context.lineTo(r.x2, r.y2 - g);
1393- canvas.context.bezierCurveTo(r.x2, r.y2 - g + oy, xm + ox, r.y2, xm, r.y2);
1394- canvas.context.bezierCurveTo(xm - ox, r.y2, r.x1, r.y2 - g + oy, r.x1, r.y2 - g);
1395- canvas.context.lineTo(r.x1, r.y1 + g);
1396- canvas.context.closePath();
1397- canvas.context.fill();
1398- canvas.context.stroke();
1399- canvas.context.beginPath();
1400- canvas.context.moveTo(r.x1, r.y1 + g);
1401- canvas.context.bezierCurveTo(r.x1, r.y1 + g + oy, xm - ox, r.y1 + (g * 2), xm, r.y1 + (g * 2));
1402- canvas.context.bezierCurveTo(xm + ox, r.y1 + (g * 2), r.x2, r.y1 + g + oy, r.x2, r.y1 + g);
1403- canvas.context.stroke();
1404- canvas.restoreTransform();
1346+
1347+ canvas.fillPath([['M', r.x1, r.y1 + g],
1348+ ['C', r.x1, r.y1 + g - oy, xm - ox, r.y1, xm, r.y1],
1349+ ['C', xm + ox, r.y1, r.x2, r.y1 + g - oy, r.x2, r.y1 + g],
1350+ ['L', r.x2, r.y2 - g],
1351+ ['C', r.x2, r.y2 - g + oy, xm + ox, r.y2, xm, r.y2],
1352+ ['C', xm - ox, r.y2, r.x1, r.y2 - g + oy, r.x1, r.y2 - g],
1353+ ['L', r.x1, r.y1 + g],
1354+ ['Z']], true);
1355+ canvas.path([['M', r.x1, r.y1 + g],
1356+ ['C', r.x1, r.y1 + g + oy, xm - ox, r.y1 + (g * 2), xm, r.y1 + (g * 2)],
1357+ ['C', xm + ox, r.y1 + (g * 2), r.x2, r.y1 + g + oy, r.x2, r.y1 + g]]);
14051358 FCGeneralNodeView.prototype.drawObject.call(this, canvas);
14061359 };
14071360
@@ -1435,28 +1388,17 @@ define(function (require, exports, module) {
14351388 ox = g * kappa, // control point offset horizontal
14361389 oy = (h / 2) * kappa; // control point offset vertical
14371390
1438- canvas.transform();
1439- canvas.context.beginPath();
1440- canvas.context.strokeStyle = canvas.color;
1441- canvas.context.fillStyle = canvas.fillColor;
1442- canvas.context.lineWidth = canvas.lineWidth;
1443- canvas.context.globalAlpha = canvas.alpha;
1444- canvas.context.moveTo(r.x2 - g, r.y1);
1445- canvas.context.bezierCurveTo(r.x2 - g + ox, r.y1, r.x2, ym - oy, r.x2, ym);
1446- canvas.context.bezierCurveTo(r.x2, ym + oy, r.x2 - g + ox, r.y2, r.x2 - g, r.y2);
1447- canvas.context.lineTo(r.x1 + g, r.y2);
1448- canvas.context.bezierCurveTo(r.x1 + g - ox, r.y2, r.x1, ym + oy, r.x1, ym);
1449- canvas.context.bezierCurveTo(r.x1, ym - oy, r.x1 + g - ox, r.y1, r.x1 + g, r.y1);
1450- canvas.context.lineTo(r.x2 - g, r.y1);
1451- canvas.context.closePath();
1452- canvas.context.fill();
1453- canvas.context.stroke();
1454- canvas.context.beginPath();
1455- canvas.context.moveTo(r.x2 - g, r.y1);
1456- canvas.context.bezierCurveTo(r.x2 - g - ox, r.y1, r.x2 - (g * 2), ym - oy, r.x2 - (g * 2), ym);
1457- canvas.context.bezierCurveTo(r.x2 - (g * 2), ym + oy, r.x2 - g - ox, r.y2, r.x2 - g, r.y2);
1458- canvas.context.stroke();
1459- canvas.restoreTransform();
1391+ canvas.fillPath([['M', r.x2 - g, r.y1],
1392+ ['C', r.x2 - g + ox, r.y1, r.x2, ym - oy, r.x2, ym],
1393+ ['C', r.x2, ym + oy, r.x2 - g + ox, r.y2, r.x2 - g, r.y2],
1394+ ['L', r.x1 + g, r.y2],
1395+ ['C', r.x1 + g - ox, r.y2, r.x1, ym + oy, r.x1, ym],
1396+ ['C', r.x1, ym - oy, r.x1 + g - ox, r.y1, r.x1 + g, r.y1],
1397+ ['L', r.x2 - g, r.y1],
1398+ ['Z']], true);
1399+ canvas.path([['M', r.x2 - g, r.y1],
1400+ ['C', r.x2 - g - ox, r.y1, r.x2 - (g * 2), ym - oy, r.x2 - (g * 2), ym],
1401+ ['C', r.x2 - (g * 2), ym + oy, r.x2 - g - ox, r.y2, r.x2 - g, r.y2]]);
14601402 FCGeneralNodeView.prototype.drawObject.call(this, canvas);
14611403 };
14621404
0 commit comments