mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-04-24 15:34:42 +00:00
Add fabric.util.groupSVGElements for creating fabric.<Element> or fabric.PathGroup out of a group of elements.
This commit is contained in:
parent
411c027cf5
commit
249c330ed6
7 changed files with 45 additions and 33 deletions
|
|
@ -1,6 +1,6 @@
|
|||
/*! Fabric.js Copyright 2008-2012, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */
|
||||
|
||||
var fabric = fabric || { version: "0.8.24" };
|
||||
var fabric = fabric || { version: "0.8.25" };
|
||||
|
||||
if (typeof exports != 'undefined') {
|
||||
exports.fabric = fabric;
|
||||
|
|
|
|||
36
dist/all.js
vendored
36
dist/all.js
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*! Fabric.js Copyright 2008-2012, Bitsonnet (Juriy Zaytsev, Maxim Chernyak) */
|
||||
|
||||
var fabric = fabric || { version: "0.8.24" };
|
||||
var fabric = fabric || { version: "0.8.25" };
|
||||
|
||||
if (typeof exports != 'undefined') {
|
||||
exports.fabric = fabric;
|
||||
|
|
@ -1950,22 +1950,22 @@ fabric.Observable = {
|
|||
callback && callback.call(context, url);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function enlivenObjects(objects, callback) {
|
||||
|
||||
|
||||
function getKlass(type) {
|
||||
return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(type))];
|
||||
}
|
||||
|
||||
|
||||
var enlivenedObjects = [ ],
|
||||
numLoadedAsyncObjects = 0,
|
||||
// get length of all images
|
||||
// get length of all images
|
||||
numTotalAsyncObjects = objects.filter(function (o) {
|
||||
return getKlass(o.type).async;
|
||||
}).length;
|
||||
|
||||
|
||||
var _this = this;
|
||||
|
||||
|
||||
objects.forEach(function (o, index) {
|
||||
if (!o.type) {
|
||||
return;
|
||||
|
|
@ -1985,12 +1985,23 @@ fabric.Observable = {
|
|||
enlivenedObjects[index] = klass.fromObject(o);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if (numTotalAsyncObjects === 0 && callback) {
|
||||
callback(enlivenedObjects);
|
||||
}
|
||||
}
|
||||
|
||||
function groupSVGElements(elements, options, path) {
|
||||
var object = elements.length > 1
|
||||
? new fabric.PathGroup(elements, options)
|
||||
: elements[0];
|
||||
|
||||
if (typeof path !== 'undefined') {
|
||||
object.setSourcePath(path);
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
fabric.util.removeFromArray = removeFromArray;
|
||||
fabric.util.degreesToRadians = degreesToRadians;
|
||||
fabric.util.toFixed = toFixed;
|
||||
|
|
@ -2000,6 +2011,7 @@ fabric.Observable = {
|
|||
fabric.util.requestAnimFrame = requestAnimFrame;
|
||||
fabric.util.loadImage = loadImage;
|
||||
fabric.util.enlivenObjects = enlivenObjects;
|
||||
fabric.util.groupSVGElements = groupSVGElements;
|
||||
})();
|
||||
(function() {
|
||||
|
||||
|
|
@ -7072,13 +7084,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, {
|
|||
}
|
||||
else {
|
||||
fabric.loadSVGFromURL(path, function (elements, options) {
|
||||
if (elements.length > 1) {
|
||||
var object = new fabric.PathGroup(elements, obj);
|
||||
}
|
||||
else {
|
||||
var object = elements[0];
|
||||
}
|
||||
object.setSourcePath(path);
|
||||
var object = fabric.util.groupSVGElements(elements, obj, path);
|
||||
|
||||
// copy parameters from serialied json to object (left, top, scaleX, scaleY, etc.)
|
||||
// skip this step if an object is a PathGroup, since we already passed it options object before
|
||||
|
|
|
|||
4
dist/all.min.js
vendored
4
dist/all.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
dist/all.min.js.gz
vendored
BIN
dist/all.min.js.gz
vendored
Binary file not shown.
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "fabric",
|
||||
"description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.",
|
||||
"version": "0.8.24",
|
||||
"version": "0.8.25",
|
||||
"author": "Juriy Zaytsev <kangax@gmail.com>",
|
||||
"keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"],
|
||||
"repository": "git://github.com/kangax/fabric.js",
|
||||
|
|
|
|||
|
|
@ -115,13 +115,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, {
|
|||
}
|
||||
else {
|
||||
fabric.loadSVGFromURL(path, function (elements, options) {
|
||||
if (elements.length > 1) {
|
||||
var object = new fabric.PathGroup(elements, obj);
|
||||
}
|
||||
else {
|
||||
var object = elements[0];
|
||||
}
|
||||
object.setSourcePath(path);
|
||||
var object = fabric.util.groupSVGElements(elements, obj, path);
|
||||
|
||||
// copy parameters from serialied json to object (left, top, scaleX, scaleY, etc.)
|
||||
// skip this step if an object is a PathGroup, since we already passed it options object before
|
||||
|
|
|
|||
|
|
@ -156,22 +156,22 @@
|
|||
callback && callback.call(context, url);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function enlivenObjects(objects, callback) {
|
||||
|
||||
|
||||
function getKlass(type) {
|
||||
return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(type))];
|
||||
}
|
||||
|
||||
|
||||
var enlivenedObjects = [ ],
|
||||
numLoadedAsyncObjects = 0,
|
||||
// get length of all images
|
||||
// get length of all images
|
||||
numTotalAsyncObjects = objects.filter(function (o) {
|
||||
return getKlass(o.type).async;
|
||||
}).length;
|
||||
|
||||
|
||||
var _this = this;
|
||||
|
||||
|
||||
objects.forEach(function (o, index) {
|
||||
if (!o.type) {
|
||||
return;
|
||||
|
|
@ -191,12 +191,23 @@
|
|||
enlivenedObjects[index] = klass.fromObject(o);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if (numTotalAsyncObjects === 0 && callback) {
|
||||
callback(enlivenedObjects);
|
||||
}
|
||||
}
|
||||
|
||||
function groupSVGElements(elements, options, path) {
|
||||
var object = elements.length > 1
|
||||
? new fabric.PathGroup(elements, options)
|
||||
: elements[0];
|
||||
|
||||
if (typeof path !== 'undefined') {
|
||||
object.setSourcePath(path);
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
fabric.util.removeFromArray = removeFromArray;
|
||||
fabric.util.degreesToRadians = degreesToRadians;
|
||||
fabric.util.toFixed = toFixed;
|
||||
|
|
@ -206,4 +217,5 @@
|
|||
fabric.util.requestAnimFrame = requestAnimFrame;
|
||||
fabric.util.loadImage = loadImage;
|
||||
fabric.util.enlivenObjects = enlivenObjects;
|
||||
fabric.util.groupSVGElements = groupSVGElements;
|
||||
})();
|
||||
Loading…
Reference in a new issue