mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-04-27 00:44:41 +00:00
Merge pull request #2171 from asturur/fixTminGroup
Fix transform Matrix in group
This commit is contained in:
commit
3bcde59ea3
2 changed files with 22 additions and 2 deletions
|
|
@ -234,8 +234,11 @@
|
|||
}
|
||||
|
||||
ctx.save();
|
||||
this.clipTo && fabric.util.clipContext(this, ctx);
|
||||
if (this.transformMatrix) {
|
||||
ctx.transform.apply(ctx, this.transformMatrix);
|
||||
}
|
||||
this.transform(ctx);
|
||||
this.clipTo && fabric.util.clipContext(this, ctx);
|
||||
// the array is now sorted in order of highest first, so start from end
|
||||
for (var i = 0, len = this._objects.length; i < len; i++) {
|
||||
this._renderObject(this._objects[i], ctx);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
(function() {
|
||||
|
||||
var canvas = this.canvas = new fabric.Canvas();
|
||||
var el = fabric.document.createElement('canvas');
|
||||
el.width = 600; el.height = 600;
|
||||
|
||||
var canvas = this.canvas = fabric.isLikelyNode ? fabric.createCanvasForNode() : new fabric.Canvas(el);
|
||||
|
||||
// function _createImageElement() {
|
||||
// return fabric.isLikelyNode ? new (require('canvas').Image)() : fabric.document.createElement('img');
|
||||
|
|
@ -497,6 +500,20 @@ test('toObject without default values', function() {
|
|||
equal(rect2.canvas, canvas);
|
||||
equal(rect1.canvas, canvas);
|
||||
});
|
||||
|
||||
test('test group transformMatrix', function() {
|
||||
var rect1 = new fabric.Rect({ top: 100, left: 100, width: 10, height: 10, strokeWidth: 0 }),
|
||||
rect2 = new fabric.Rect({ top: 120, left: 120, width: 10, height: 10, strokeWidth: 0 }),
|
||||
group = new fabric.Group([ rect1, rect2 ]),
|
||||
ctx = canvas.contextContainer, isTransparent = fabric.util.isTransparent;
|
||||
canvas.add(group);
|
||||
equal(isTransparent(ctx, 80, 80, 0), true);
|
||||
equal(isTransparent(ctx, 101, 101, 0), false);
|
||||
group.transformMatrix = [1.2, 0, 0, 1.2, 1, 1];
|
||||
canvas.renderAll();
|
||||
equal(isTransparent(ctx, 101, 101, 0), true);
|
||||
equal(isTransparent(ctx, 131, 131, 0), false);
|
||||
});
|
||||
// asyncTest('cloning group with image', function() {
|
||||
// var rect = new fabric.Rect({ top: 100, left: 100, width: 30, height: 10 }),
|
||||
// img = new fabric.Image(_createImageElement()),
|
||||
|
|
|
|||
Loading…
Reference in a new issue