mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-03-17 14:30:24 +00:00
677 lines
23 KiB
JavaScript
677 lines
23 KiB
JavaScript
(function() {
|
|
|
|
var rectOptions = {
|
|
'originX': 'left',
|
|
'originY': 'top',
|
|
'left': 35,
|
|
'top': 45,
|
|
'width': 20,
|
|
'height': 40,
|
|
'fill': 'rgb(0,0,0)',
|
|
'strokeWidth': 2,
|
|
'angle': 0,
|
|
'scaleX': 2,
|
|
'scaleY': 2,
|
|
};
|
|
|
|
QUnit.module('fabric.ObjectOrigins');
|
|
|
|
QUnit.test('getCenterPoint', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions), p;
|
|
p = rect.getCenterPoint();
|
|
assert.deepEqual(p, new fabric.Point(57, 87));
|
|
});
|
|
|
|
QUnit.test('translateToCenterPoint', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
|
|
p = rect.translateToCenterPoint(point, 'center', 'center');
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 'center', 'center');
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 'center', 'top');
|
|
assert.deepEqual(p, new fabric.Point(15, 62));
|
|
|
|
p = rect.translateToCenterPoint(point, 'center', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(15, -22));
|
|
|
|
p = rect.translateToCenterPoint(point, 'left', 'center');
|
|
assert.deepEqual(p, new fabric.Point(37, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 'left', 'top');
|
|
assert.deepEqual(p, new fabric.Point(37, 62));
|
|
|
|
p = rect.translateToCenterPoint(point, 'left', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(37, -22));
|
|
|
|
p = rect.translateToCenterPoint(point, 'right', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-7, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 'right', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-7, 62));
|
|
|
|
p = rect.translateToCenterPoint(point, 'right', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-7, -22));
|
|
});
|
|
|
|
QUnit.test('translateToCenterPointRotated', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
rect.angle = 35;
|
|
|
|
p = rect.translateToCenterPoint(point, 'center', 'center');
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 'center', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-9.090210326743936, 54.40438586013766));
|
|
|
|
p = rect.translateToCenterPoint(point, 'center', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(39.090210326743936, -14.404385860137658));
|
|
|
|
p = rect.translateToCenterPoint(point, 'left', 'center');
|
|
assert.deepEqual(p, new fabric.Point(33.02134497435782, 32.61868159972301));
|
|
|
|
p = rect.translateToCenterPoint(point, 'left', 'top');
|
|
assert.deepEqual(p, new fabric.Point(8.931134647613884, 67.02306745986067));
|
|
|
|
p = rect.translateToCenterPoint(point, 'left', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(57.11155530110176, -1.7857042604146471));
|
|
|
|
p = rect.translateToCenterPoint(point, 'right', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-3.0213449743578202, 7.381318400276987));
|
|
|
|
p = rect.translateToCenterPoint(point, 'right', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-27.11155530110176, 41.78570426041465));
|
|
|
|
p = rect.translateToCenterPoint(point, 'right', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(21.068865352386116, -27.02306745986067));
|
|
});
|
|
|
|
|
|
QUnit.test('translateToOriginPoint', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
|
|
p = rect.translateToOriginPoint(point, 'center', 'center');
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToOriginPoint(point, 'center', 'top');
|
|
assert.deepEqual(p, new fabric.Point(15, -22));
|
|
|
|
p = rect.translateToOriginPoint(point, 'center', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(15, 62));
|
|
|
|
p = rect.translateToOriginPoint(point, 'left', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-7, 20));
|
|
|
|
p = rect.translateToOriginPoint(point, 'left', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-7, -22));
|
|
|
|
p = rect.translateToOriginPoint(point, 'left', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-7, 62));
|
|
|
|
p = rect.translateToOriginPoint(point, 'right', 'center');
|
|
assert.deepEqual(p, new fabric.Point(37, 20));
|
|
|
|
p = rect.translateToOriginPoint(point, 'right', 'top');
|
|
assert.deepEqual(p, new fabric.Point(37, -22));
|
|
|
|
p = rect.translateToOriginPoint(point, 'right', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(37, 62));
|
|
});
|
|
|
|
QUnit.test('translateToOriginPointRotated', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
rect.angle = 35;
|
|
|
|
p = rect.translateToOriginPoint(point, 'center', 'center');
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToOriginPoint(point, 'center', 'top');
|
|
assert.deepEqual(p, new fabric.Point(39.090210326743936, -14.404385860137658));
|
|
|
|
p = rect.translateToOriginPoint(point, 'center', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-9.090210326743936, 54.40438586013766));
|
|
|
|
p = rect.translateToOriginPoint(point, 'left', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-3.0213449743578202, 7.381318400276987));
|
|
|
|
p = rect.translateToOriginPoint(point, 'left', 'top');
|
|
assert.deepEqual(p, new fabric.Point(21.068865352386116, -27.02306745986067));
|
|
|
|
p = rect.translateToOriginPoint(point, 'left', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-27.11155530110176, 41.78570426041465));
|
|
|
|
p = rect.translateToOriginPoint(point, 'right', 'center');
|
|
assert.deepEqual(p, new fabric.Point(33.02134497435782, 32.61868159972301));
|
|
|
|
p = rect.translateToOriginPoint(point, 'right', 'top');
|
|
assert.deepEqual(p, new fabric.Point(57.11155530110176, -1.7857042604146471));
|
|
|
|
p = rect.translateToOriginPoint(point, 'right', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(8.931134647613884, 67.02306745986067));
|
|
});
|
|
|
|
|
|
QUnit.test('toLocalPoint', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
|
|
p = rect.toLocalPoint(point, 'center', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-42, -67));
|
|
|
|
p = rect.toLocalPoint(point, 'center', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-42, -25));
|
|
|
|
p = rect.toLocalPoint(point, 'center', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-42, -109));
|
|
|
|
p = rect.toLocalPoint(point, 'left', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-20, -67));
|
|
|
|
p = rect.toLocalPoint(point, 'left', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-20, -25));
|
|
|
|
p = rect.toLocalPoint(point, 'left', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-20, -109));
|
|
|
|
p = rect.toLocalPoint(point, 'right', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-64, -67));
|
|
|
|
p = rect.toLocalPoint(point, 'right', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-64, -25));
|
|
|
|
p = rect.toLocalPoint(point, 'right', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-64, -109));
|
|
|
|
p = rect.toLocalPoint(point);
|
|
assert.deepEqual(p, new fabric.Point(-20, -25));
|
|
});
|
|
|
|
QUnit.test('toLocalPointRotated', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
rect.angle = 35;
|
|
|
|
p = rect.toLocalPoint(point, 'center', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-52.72245179455599, -51.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 'center', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-52.72245179455599, -9.007272380203872));
|
|
|
|
p = rect.toLocalPoint(point, 'center', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-52.72245179455599, -93.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 'left', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-30.722451794555987, -51.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 'left', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-30.722451794555987, -9.007272380203872));
|
|
|
|
p = rect.toLocalPoint(point, 'left', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-30.722451794555987, -93.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 'right', 'center');
|
|
assert.deepEqual(p, new fabric.Point(-74.722451794556, -51.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 'right', 'top');
|
|
assert.deepEqual(p, new fabric.Point(-74.722451794556, -9.007272380203872));
|
|
|
|
p = rect.toLocalPoint(point, 'right', 'bottom');
|
|
assert.deepEqual(p, new fabric.Point(-74.722451794556, -93.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point);
|
|
assert.deepEqual(p, new fabric.Point(-58.791317146942106, -3.9842049203432026));
|
|
});
|
|
|
|
|
|
QUnit.test('adjustPosition', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions);
|
|
|
|
rect.strokeWidth = 0;
|
|
rect.originX = 'left';
|
|
rect.originY = 'top';
|
|
rect.adjustPosition('left');
|
|
assert.deepEqual(rect.left, 35);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'left');
|
|
|
|
rect.adjustPosition('center');
|
|
assert.deepEqual(rect.left, 55);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'center');
|
|
|
|
rect.adjustPosition('right');
|
|
assert.deepEqual(rect.left, 75);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'right');
|
|
|
|
rect.originX = 'center';
|
|
rect.originY = 'center';
|
|
rect.adjustPosition('left');
|
|
assert.deepEqual(rect.left, 55);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'left');
|
|
|
|
rect.adjustPosition('center');
|
|
assert.deepEqual(rect.left, 75);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'center');
|
|
|
|
rect.adjustPosition('right');
|
|
assert.deepEqual(rect.left, 95);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'right');
|
|
|
|
rect.originX = 'right';
|
|
rect.originY = 'bottom';
|
|
rect.adjustPosition('left');
|
|
assert.deepEqual(rect.left, 55);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'left');
|
|
|
|
rect.adjustPosition('center');
|
|
assert.deepEqual(rect.left, 75);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'center');
|
|
|
|
rect.adjustPosition('right');
|
|
assert.deepEqual(rect.left, 95);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'right');
|
|
});
|
|
|
|
QUnit.test('adjustPositionRotated', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions);
|
|
|
|
rect.angle = 35;
|
|
rect.strokeWidth = 0;
|
|
rect.originX = 'left';
|
|
rect.originY = 'top';
|
|
rect.adjustPosition('left');
|
|
assert.deepEqual(rect.left, 35);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 'left');
|
|
|
|
rect.adjustPosition('center');
|
|
assert.deepEqual(rect.left, 51.383040885779835);
|
|
assert.deepEqual(rect.top, 56.471528727020925);
|
|
assert.equal(rect.originX, 'center');
|
|
|
|
rect.adjustPosition('right');
|
|
assert.deepEqual(rect.left, 67.76608177155967);
|
|
assert.deepEqual(rect.top, 67.94305745404185);
|
|
assert.equal(rect.originX, 'right');
|
|
|
|
rect.originX = 'center';
|
|
rect.originY = 'center';
|
|
rect.adjustPosition('left');
|
|
assert.deepEqual(rect.left, 51.383040885779835);
|
|
assert.deepEqual(rect.top, 56.471528727020925);
|
|
assert.equal(rect.originX, 'left');
|
|
|
|
rect.adjustPosition('center');
|
|
assert.deepEqual(rect.left, 67.76608177155967);
|
|
assert.deepEqual(rect.top, 67.94305745404185);
|
|
assert.equal(rect.originX, 'center');
|
|
|
|
rect.adjustPosition('right');
|
|
assert.deepEqual(rect.left, 84.1491226573395);
|
|
assert.deepEqual(rect.top, 79.41458618106277);
|
|
assert.equal(rect.originX, 'right');
|
|
|
|
rect.originX = 'right';
|
|
rect.originY = 'bottom';
|
|
rect.adjustPosition('left');
|
|
assert.deepEqual(rect.left, 51.383040885779835);
|
|
assert.deepEqual(rect.top, 56.47152872702093);
|
|
assert.equal(rect.originX, 'left');
|
|
|
|
rect.adjustPosition('center');
|
|
assert.deepEqual(rect.left, 67.76608177155967);
|
|
assert.deepEqual(rect.top, 67.94305745404185);
|
|
assert.equal(rect.originX, 'center');
|
|
|
|
rect.adjustPosition('right');
|
|
assert.deepEqual(rect.left, 84.1491226573395);
|
|
assert.deepEqual(rect.top, 79.41458618106277);
|
|
assert.equal(rect.originX, 'right');
|
|
});
|
|
|
|
QUnit.test('translateToCenterPoint with numeric origins', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
|
|
p = rect.translateToCenterPoint(point, 0.5, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 0.5, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 0.5, 0);
|
|
assert.deepEqual(p, new fabric.Point(15, 62));
|
|
|
|
p = rect.translateToCenterPoint(point, 0.5, 1);
|
|
assert.deepEqual(p, new fabric.Point(15, -22));
|
|
|
|
p = rect.translateToCenterPoint(point, 0, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(37, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 0, 0);
|
|
assert.deepEqual(p, new fabric.Point(37, 62));
|
|
|
|
p = rect.translateToCenterPoint(point, 0, 1);
|
|
assert.deepEqual(p, new fabric.Point(37, -22));
|
|
|
|
p = rect.translateToCenterPoint(point, 1, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-7, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 1, 0);
|
|
assert.deepEqual(p, new fabric.Point(-7, 62));
|
|
|
|
p = rect.translateToCenterPoint(point, 1, 1);
|
|
assert.deepEqual(p, new fabric.Point(-7, -22));
|
|
});
|
|
|
|
QUnit.test('translateToCenterPointRotated with numeric origins', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
rect.angle = 35;
|
|
|
|
p = rect.translateToCenterPoint(point, 0.5, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToCenterPoint(point, 0.5, 0);
|
|
assert.deepEqual(p, new fabric.Point(-9.090210326743936, 54.40438586013766));
|
|
|
|
p = rect.translateToCenterPoint(point, 0.5, 1);
|
|
assert.deepEqual(p, new fabric.Point(39.090210326743936, -14.404385860137658));
|
|
|
|
p = rect.translateToCenterPoint(point, 0, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(33.02134497435782, 32.61868159972301));
|
|
|
|
p = rect.translateToCenterPoint(point, 0, 0);
|
|
assert.deepEqual(p, new fabric.Point(8.931134647613884, 67.02306745986067));
|
|
|
|
p = rect.translateToCenterPoint(point, 0, 1);
|
|
assert.deepEqual(p, new fabric.Point(57.11155530110176, -1.7857042604146471));
|
|
|
|
p = rect.translateToCenterPoint(point, 1, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-3.0213449743578202, 7.381318400276987));
|
|
|
|
p = rect.translateToCenterPoint(point, 1, 0);
|
|
assert.deepEqual(p, new fabric.Point(-27.11155530110176, 41.78570426041465));
|
|
|
|
p = rect.translateToCenterPoint(point, 1, 1);
|
|
assert.deepEqual(p, new fabric.Point(21.068865352386116, -27.02306745986067));
|
|
});
|
|
|
|
|
|
QUnit.test('translateToOriginPoint with numeric origins', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
|
|
p = rect.translateToOriginPoint(point, 0.5, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToOriginPoint(point, 0.5, 0);
|
|
assert.deepEqual(p, new fabric.Point(15, -22));
|
|
|
|
p = rect.translateToOriginPoint(point, 0.5, 1);
|
|
assert.deepEqual(p, new fabric.Point(15, 62));
|
|
|
|
p = rect.translateToOriginPoint(point, 0, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-7, 20));
|
|
|
|
p = rect.translateToOriginPoint(point, 0, 0);
|
|
assert.deepEqual(p, new fabric.Point(-7, -22));
|
|
|
|
p = rect.translateToOriginPoint(point, 0, 1);
|
|
assert.deepEqual(p, new fabric.Point(-7, 62));
|
|
|
|
p = rect.translateToOriginPoint(point, 1, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(37, 20));
|
|
|
|
p = rect.translateToOriginPoint(point, 1, 0);
|
|
assert.deepEqual(p, new fabric.Point(37, -22));
|
|
|
|
p = rect.translateToOriginPoint(point, 1, 1);
|
|
assert.deepEqual(p, new fabric.Point(37, 62));
|
|
});
|
|
|
|
QUnit.test('translateToOriginPointRotated with numeric origins', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
rect.angle = 35;
|
|
|
|
p = rect.translateToOriginPoint(point, 0.5, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(15, 20));
|
|
|
|
p = rect.translateToOriginPoint(point, 0.5, 0);
|
|
assert.deepEqual(p, new fabric.Point(39.090210326743936, -14.404385860137658));
|
|
|
|
p = rect.translateToOriginPoint(point, 0.5, 1);
|
|
assert.deepEqual(p, new fabric.Point(-9.090210326743936, 54.40438586013766));
|
|
|
|
p = rect.translateToOriginPoint(point, 0, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-3.0213449743578202, 7.381318400276987));
|
|
|
|
p = rect.translateToOriginPoint(point, 0, 0);
|
|
assert.deepEqual(p, new fabric.Point(21.068865352386116, -27.02306745986067));
|
|
|
|
p = rect.translateToOriginPoint(point, 0, 1);
|
|
assert.deepEqual(p, new fabric.Point(-27.11155530110176, 41.78570426041465));
|
|
|
|
p = rect.translateToOriginPoint(point, 1, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(33.02134497435782, 32.61868159972301));
|
|
|
|
p = rect.translateToOriginPoint(point, 1, 0);
|
|
assert.deepEqual(p, new fabric.Point(57.11155530110176, -1.7857042604146471));
|
|
|
|
p = rect.translateToOriginPoint(point, 1, 1);
|
|
assert.deepEqual(p, new fabric.Point(8.931134647613884, 67.02306745986067));
|
|
});
|
|
|
|
|
|
QUnit.test('toLocalPoint with numeric origins', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
|
|
p = rect.toLocalPoint(point, 0.5, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-42, -67));
|
|
|
|
p = rect.toLocalPoint(point, 0.5, 0);
|
|
assert.deepEqual(p, new fabric.Point(-42, -25));
|
|
|
|
p = rect.toLocalPoint(point, 0.5, 1);
|
|
assert.deepEqual(p, new fabric.Point(-42, -109));
|
|
|
|
p = rect.toLocalPoint(point, 0, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-20, -67));
|
|
|
|
p = rect.toLocalPoint(point, 0, 0);
|
|
assert.deepEqual(p, new fabric.Point(-20, -25));
|
|
|
|
p = rect.toLocalPoint(point, 0, 1);
|
|
assert.deepEqual(p, new fabric.Point(-20, -109));
|
|
|
|
p = rect.toLocalPoint(point, 1, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-64, -67));
|
|
|
|
p = rect.toLocalPoint(point, 1, 0);
|
|
assert.deepEqual(p, new fabric.Point(-64, -25));
|
|
|
|
p = rect.toLocalPoint(point, 1, 1);
|
|
assert.deepEqual(p, new fabric.Point(-64, -109));
|
|
|
|
p = rect.toLocalPoint(point);
|
|
assert.deepEqual(p, new fabric.Point(-20, -25));
|
|
});
|
|
|
|
QUnit.test('toLocalPointRotated with numeric origins', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions),
|
|
p,
|
|
point = new fabric.Point(15, 20);
|
|
rect.angle = 35;
|
|
|
|
p = rect.toLocalPoint(point, 0.5, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-52.72245179455599, -51.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 0.5, 0);
|
|
assert.deepEqual(p, new fabric.Point(-52.72245179455599, -9.007272380203872));
|
|
|
|
p = rect.toLocalPoint(point, 0.5, 1);
|
|
assert.deepEqual(p, new fabric.Point(-52.72245179455599, -93.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 0, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-30.722451794555987, -51.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 0, 0);
|
|
assert.deepEqual(p, new fabric.Point(-30.722451794555987, -9.007272380203872));
|
|
|
|
p = rect.toLocalPoint(point, 0, 1);
|
|
assert.deepEqual(p, new fabric.Point(-30.722451794555987, -93.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 1, 0.5);
|
|
assert.deepEqual(p, new fabric.Point(-74.722451794556, -51.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point, 1, 0);
|
|
assert.deepEqual(p, new fabric.Point(-74.722451794556, -9.007272380203872));
|
|
|
|
p = rect.toLocalPoint(point, 1, 1);
|
|
assert.deepEqual(p, new fabric.Point(-74.722451794556, -93.00727238020387));
|
|
|
|
p = rect.toLocalPoint(point);
|
|
assert.deepEqual(p, new fabric.Point(-58.791317146942106, -3.9842049203432026));
|
|
});
|
|
|
|
|
|
QUnit.test('adjustPosition with numeric origins', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions);
|
|
|
|
rect.strokeWidth = 0;
|
|
rect.originX = 'left';
|
|
rect.originY = 'top';
|
|
rect.adjustPosition(0);
|
|
assert.deepEqual(rect.left, 35);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 0);
|
|
|
|
rect.adjustPosition(0.5);
|
|
assert.deepEqual(rect.left, 55);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 0.5);
|
|
|
|
rect.adjustPosition(1);
|
|
assert.deepEqual(rect.left, 75);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 1);
|
|
|
|
rect.originX = 0.5;
|
|
rect.originY = 0.5;
|
|
rect.adjustPosition(0);
|
|
assert.deepEqual(rect.left, 55);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 0);
|
|
|
|
rect.adjustPosition(0.5);
|
|
assert.deepEqual(rect.left, 75);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 0.5);
|
|
|
|
rect.adjustPosition(1);
|
|
assert.deepEqual(rect.left, 95);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 1);
|
|
|
|
rect.originX = 1;
|
|
rect.originY = 1;
|
|
rect.adjustPosition(0);
|
|
assert.deepEqual(rect.left, 55);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 0);
|
|
|
|
rect.adjustPosition(0.5);
|
|
assert.deepEqual(rect.left, 75);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 0.5);
|
|
|
|
rect.adjustPosition(1);
|
|
assert.deepEqual(rect.left, 95);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 1);
|
|
});
|
|
|
|
QUnit.test('adjustPositionRotated with numeric origins', function(assert) {
|
|
var rect = new fabric.Rect(rectOptions);
|
|
|
|
rect.angle = 35;
|
|
rect.strokeWidth = 0;
|
|
rect.originX = 0;
|
|
rect.originY = 0;
|
|
rect.adjustPosition(0);
|
|
assert.deepEqual(rect.left, 35);
|
|
assert.deepEqual(rect.top, 45);
|
|
assert.equal(rect.originX, 0);
|
|
|
|
rect.adjustPosition(0.5);
|
|
assert.deepEqual(rect.left, 51.383040885779835);
|
|
assert.deepEqual(rect.top, 56.471528727020925);
|
|
assert.equal(rect.originX, 0.5);
|
|
|
|
rect.adjustPosition(1);
|
|
assert.deepEqual(rect.left, 67.76608177155967);
|
|
assert.deepEqual(rect.top, 67.94305745404185);
|
|
assert.equal(rect.originX, 1);
|
|
|
|
rect.originX = 0.5;
|
|
rect.originY = 0.5;
|
|
rect.adjustPosition(0);
|
|
assert.deepEqual(rect.left, 51.383040885779835);
|
|
assert.deepEqual(rect.top, 56.471528727020925);
|
|
assert.equal(rect.originX, 0);
|
|
|
|
rect.adjustPosition(0.5);
|
|
assert.deepEqual(rect.left, 67.76608177155967);
|
|
assert.deepEqual(rect.top, 67.94305745404185);
|
|
assert.equal(rect.originX, 0.5);
|
|
|
|
rect.adjustPosition(1);
|
|
assert.deepEqual(rect.left, 84.1491226573395);
|
|
assert.deepEqual(rect.top, 79.41458618106277);
|
|
assert.equal(rect.originX, 1);
|
|
|
|
rect.originX = 1;
|
|
rect.originY = 1;
|
|
rect.adjustPosition(0);
|
|
assert.deepEqual(rect.left, 51.383040885779835);
|
|
assert.deepEqual(rect.top, 56.47152872702093);
|
|
assert.equal(rect.originX, 0);
|
|
|
|
rect.adjustPosition(0.5);
|
|
assert.deepEqual(rect.left, 67.76608177155967);
|
|
assert.deepEqual(rect.top, 67.94305745404185);
|
|
assert.equal(rect.originX, 0.5);
|
|
|
|
rect.adjustPosition(1);
|
|
assert.deepEqual(rect.left, 84.1491226573395);
|
|
assert.deepEqual(rect.top, 79.41458618106277);
|
|
assert.equal(rect.originX, 1);
|
|
});
|
|
|
|
})();
|