Camera shouldn't try to display ValueTrackers

This commit is contained in:
Grant Sanderson 2018-08-27 16:30:41 -07:00
parent 1bb952eab7
commit 35a59474fe

View file

@ -2,14 +2,10 @@
import itertools as it import itertools as it
import numpy as np import numpy as np
import operator as op import operator as op
import copy
# import aggdraw
import copy
import time import time
from PIL import Image from PIL import Image
from colour import Color
from scipy.spatial.distance import pdist from scipy.spatial.distance import pdist
import cairo import cairo
@ -18,6 +14,7 @@ from mobject.types.image_mobject import AbstractImageMobject
from mobject.mobject import Mobject from mobject.mobject import Mobject
from mobject.types.point_cloud_mobject import PMobject from mobject.types.point_cloud_mobject import PMobject
from mobject.types.vectorized_mobject import VMobject from mobject.types.vectorized_mobject import VMobject
from mobject.value_tracker import ValueTracker
from utils.color import color_to_int_rgba from utils.color import color_to_int_rgba
from utils.color import rgb_to_hex from utils.color import rgb_to_hex
from utils.config_ops import digest_config from utils.config_ops import digest_config
@ -203,7 +200,10 @@ class Camera(object):
#### ####
def extract_mobject_family_members(self, mobjects, only_those_with_points=False): def extract_mobject_family_members(
self, mobjects,
only_those_with_points=False,
ignore_value_trackers=False):
if only_those_with_points: if only_those_with_points:
method = Mobject.family_members_with_points method = Mobject.family_members_with_points
else: else:
@ -213,17 +213,20 @@ class Camera(object):
method(m) method(m)
for m in mobjects for m in mobjects
if not (isinstance(m, VMobject) and m.is_subpath) if not (isinstance(m, VMobject) and m.is_subpath)
if not (ignore_value_trackers and isinstance(m, ValueTracker))
]) ])
)) ))
def get_mobjects_to_display( def get_mobjects_to_display(
self, mobjects, self, mobjects,
include_submobjects=True, include_submobjects=True,
excluded_mobjects=None, ignore_value_trackers=True,
): excluded_mobjects=None):
if include_submobjects: if include_submobjects:
mobjects = self.extract_mobject_family_members( mobjects = self.extract_mobject_family_members(
mobjects, only_those_with_points=True mobjects,
only_those_with_points=True,
ignore_value_trackers=ignore_value_trackers,
) )
if excluded_mobjects: if excluded_mobjects:
all_excluded = self.extract_mobject_family_members( all_excluded = self.extract_mobject_family_members(