Made Mobject.copy somewhat lighter-weight

This commit is contained in:
Grant Sanderson
2017-03-24 17:27:09 -07:00
parent 4075f78291
commit 41b4483fd1
2 changed files with 11 additions and 5 deletions

View File

@ -1,8 +1,8 @@
import numpy as np
import operator as op
import os
import copy
from PIL import Image
from copy import deepcopy
from colour import Color
from helpers import *
@ -97,7 +97,15 @@ class Mobject(object):
)
def copy(self):
return deepcopy(self)
copy_mobject = copy.copy(self)
copy_mobject.points = np.array(self.points)
copy_mobject.submobjects = [
submob.copy() for submob in self.submobjects
]
return copy_mobject
def deepcopy(self):
return copy.deepcopy(self)
def generate_target(self):
self.target = None #Prevent exponential explosion

View File

@ -200,9 +200,7 @@ class VMobject(Mobject):
but will be tracked in a separate special list for when
it comes time to display.
"""
subpath_mobject = self.copy()#TODO, better way?
subpath_mobject.submobjects = []
# subpath_mobject = self.__class__()
subpath_mobject = VMobject()
subpath_mobject.is_subpath = True
subpath_mobject.set_points(points)
self.add(subpath_mobject)