def __init__(self, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) if hasattr(self, 'kwargs'): self.kwargs = { **kwargs, **self.kwargs } else: self.kwargs = kwargs #### EULERTOUR_INIT_START #### self.transformations = [] Container.__init__(self, **kwargs) self.submobjects = [] self.color = Color(self.color) if self.name is None: self.name = self.__class__.__name__ self.updaters = [] self.updating_suspended = False self.reset_points() self.generate_points() self.init_colors() if 'template_tex_file_body' in self.kwargs: del self.kwargs['template_tex_file_body'] #### EULERTOUR_INIT_END #### if "skip_registration" not in kwargs or not kwargs["skip_registration"]: register_mobject(self)
def copy(self, delegate_for_original=False, copy_tag="Copy"): # TODO, either justify reason for shallow copy, or # remove this redundancy everywhere # return self.deepcopy() copy_mobject = copy.copy(self) copy_mobject.original = self copy_mobject.delegate_for_original = delegate_for_original copy_mobject.points = np.array(self.points) copy_mobject.submobjects = [ submob.copy( delegate_for_original=delegate_for_original, copy_tag=copy_tag, ) for submob in self.submobjects ] copy_mobject.updaters = list(self.updaters) family = self.get_family() for attr, value in list(self.__dict__.items()): if isinstance(value, Mobject) and value in family and value is not self: setattr(copy_mobject, attr, value.copy( delegate_for_original=delegate_for_original, copy_tag=copy_tag, )) if isinstance(value, np.ndarray): setattr(copy_mobject, attr, np.array(value)) if not hasattr(copy_mobject, "skip_registration") or not copy_mobject.skip_registration: register_mobject(copy_mobject, copy_tag=copy_tag) return copy_mobject
def __init__(self, *tex_strings, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args(tex_strings) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### digest_config(self, kwargs) tex_strings = self.break_up_tex_strings(tex_strings) self.tex_strings = tex_strings SingleStringTexMobject.__init__(self, self.arg_separator.join(tex_strings), skip_registration=True, **kwargs) self.skip_registration = False self.break_up_by_substrings() self.set_color_by_tex_to_color_map(self.tex_to_color_map) if self.organize_left_to_right: self.organize_submobjects_left_to_right() if hasattr(self, 'kwargs'): self.kwargs = { 'tex_strings': self.tex_strings, **kwargs, **self.kwargs } else: self.kwargs = {'tex_strings': self.tex_strings, **kwargs} #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### RegularPolygon.__init__(self, n=3, **kwargs) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, *args, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args(args) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### Arrow.__init__(self, *args, **kwargs) self.add_tip(at_start=True) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, points, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([points]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### VMobject.__init__(self, **kwargs) self.set_points(points) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, *vertices, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args(vertices) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### VMobject.__init__(self, **kwargs) self.set_points_as_corners([*vertices, vertices[0]]) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, point=ORIGIN, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ 'point': point, **kwargs, }) #### EULERTOUR_INIT_START #### Circle.__init__(self, arc_center=point, **kwargs) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, start_point, end_point, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([start_point, end_point]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### ArcBetweenPoints.__init__(self, start_point, end_point, **kwargs) self.add_tip() #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### Rectangle.__init__(self, **kwargs) self.round_corners(self.corner_radius) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### Triangle.__init__(self, **kwargs) self.set_width(self.length) self.set_height(self.length, stretch=True) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### Polygon.__init__(self, UL, UR, DR, DL, **kwargs) self.set_width(self.width, stretch=True, add_transform=False) self.set_height(self.height, stretch=True, add_transform=False) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### VMobject.__init__(self, **kwargs) self.set_points_as_corners([UP, UP + RIGHT, RIGHT]) self.set_width(self.width, about_point=ORIGIN) self.rotate(self.angle, about_point=ORIGIN) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, direction=RIGHT, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ 'direction': direction, **kwargs, }) #### EULERTOUR_INIT_START #### if len(direction) == 2: direction = np.append(np.array(direction), 0) Arrow.__init__(self, ORIGIN, direction, **kwargs) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) if hasattr(self, 'kwargs'): self.kwargs = {**kwargs, **self.kwargs} else: self.kwargs = kwargs #### EULERTOUR_INIT_START #### Arc.__init__(self, 0, TAU, **kwargs) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, start_angle=0, angle=TAU / 4, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ 'start_angle': start_angle, 'angle': angle, **kwargs, }) #### EULERTOUR_INIT_START #### self.start_angle = start_angle self.angle = angle VMobject.__init__(self, **kwargs) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, start=LEFT, end=RIGHT, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ 'start': start, 'end': end, **kwargs, }) #### EULERTOUR_INIT_START #### digest_config(self, kwargs) self.set_start_and_end_attrs(start, end) VMobject.__init__(self, **kwargs) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, *vmobjects, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args(vmobjects) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### if not all([isinstance(m, VMobject) for m in vmobjects]): raise Exception("All submobjects must be of type VMobject") VMobject.__init__(self, **kwargs) self.add(*vmobjects) #### EULERTOUR_INIT_END #### if "skip_registration" not in kwargs or not kwargs["skip_registration"]: register_mobject(self)
def __init__(self, *args, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args(args) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### Line.__init__(self, *args, **kwargs) # TODO, should this be affected when # Arrow.set_stroke is called? self.initial_stroke_width = self.stroke_width self.add_tip() self.set_stroke_width_from_length() #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, vmob, alpha, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([vmob, alpha]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### digest_config(self, kwargs) da = self.d_alpha a1 = np.clip(alpha - da, 0, 1) a2 = np.clip(alpha + da, 0, 1) super().__init__(vmob.point_from_proportion(a1), vmob.point_from_proportion(a2), **kwargs) self.scale(self.length / self.get_length()) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, *mobjects, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args(mobjects) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) if hasattr(self, 'kwargs'): self.kwargs = { **kwargs, **self.kwargs } else: self.kwargs = kwargs #### EULERTOUR_INIT_START #### if not all([isinstance(m, Mobject) for m in mobjects]): raise Exception("All submobjects must be of type Mobject") Mobject.__init__(self, **kwargs) self.add(*mobjects) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, *args, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args(args) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) #### EULERTOUR_INIT_START #### Line.__init__(self, *args, **kwargs) ps_ratio = self.positive_space_ratio num_dashes = self.calculate_num_dashes(ps_ratio) dashes = DashedVMobject(self, num_dashes=num_dashes, positive_space_ratio=ps_ratio) self.clear_points() self.add(*dashes) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) if hasattr(self, 'kwargs'): self.kwargs = {**kwargs, **self.kwargs} else: self.kwargs = kwargs #### EULERTOUR_INIT_START #### digest_config(self, kwargs) Rectangle.__init__(self, height=self.side_length, width=self.side_length, **kwargs) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, start, end, angle=TAU / 4, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([start, end]) if not hasattr(self, "config"): self.config = serialize_config({ 'angle': angle, **kwargs, }) #### EULERTOUR_INIT_START #### Arc.__init__( self, angle=angle, **kwargs, ) if angle == 0: self.set_points_as_corners([LEFT, RIGHT]) self.put_start_and_end_on(start, end) #### EULERTOUR_INIT_END #### register_mobject(self)
def __init__(self, n=6, **kwargs): #### EULERTOUR_INIT_START #### if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ 'n': n, **kwargs, }) #### EULERTOUR_INIT_START #### digest_config(self, kwargs, locals()) if self.start_angle is None: if n % 2 == 0: self.start_angle = 0 else: self.start_angle = 90 * DEGREES start_vect = rotate_vector(RIGHT, self.start_angle) vertices = compass_directions(n, start_vect) Polygon.__init__(self, *vertices, **kwargs) #### EULERTOUR_INIT_END #### register_mobject(self)