Clonando objetos no Fabric.js
Estou clonando um objeto selecionado em uma tela no Fabric.js usando uma função simples.
function duplicateObj() {
var obj = canvas.getActiveObject();
var clone = fabric.util.object.clone(obj);
clone.set({left: 100,top: 100});
canvas.add(clone);
}
Isso funciona absolutamente bem. Agora, se eu trabalhar com o objeto e o clone não for mais necessário e eu o selecionar e excluir, os dois objetos, o clone e o objeto original serão excluídos. A função de exclusão é:
function deleteObj() {
var obj = canvas.getActiveObject();
canvas.fxRemove(obj);
}
Os objetos são os mesmos. Existe maneira de clonar objetos e torná-lo independente do original? Eu tentei isso:
function duplicateObj() {
var obj = canvas.getActiveObject();
var clone = fabric.util.object.clone(obj);
clone.initialize();
$.extend(clone, obj);
fabric.util.object.extend(clone, obj);
clone.set({left: 100,top: 100});
canvas.add(clone);
}
Funciona, no entanto, os objetos são os mesmos novamente e, se eu usar apenas a inicialização, acabarei com um objeto que agora possui propriedades definidas.