Kill CONFIG in brace.py

This commit is contained in:
Grant Sanderson 2022-12-15 11:33:27 -08:00
parent aac320aa98
commit 2a89e84538

View file

@ -2,11 +2,12 @@ from __future__ import annotations
import math
import copy
from os import DirEntry
import numpy as np
from manimlib.constants import DEFAULT_MOBJECT_TO_MOBJECT_BUFFER, SMALL_BUFF
from manimlib.constants import DOWN, LEFT, ORIGIN, RIGHT, UP
from manimlib.constants import DOWN, LEFT, ORIGIN, RIGHT, UP, DL, DR, UL
from manimlib.constants import PI
from manimlib.animation.composition import AnimationGroup
from manimlib.animation.fading import FadeIn
@ -15,6 +16,7 @@ from manimlib.mobject.svg.tex_mobject import SingleStringTex
from manimlib.mobject.svg.tex_mobject import Tex
from manimlib.mobject.svg.tex_mobject import TexText
from manimlib.mobject.svg.text_mobject import Text
from manimlib.mobject.types.vectorized_mobject import VGroup
from manimlib.mobject.types.vectorized_mobject import VMobject
from manimlib.utils.config_ops import digest_config
from manimlib.utils.iterables import listify
@ -28,30 +30,29 @@ if TYPE_CHECKING:
from manimlib.animation.animation import Animation
from manimlib.mobject.mobject import Mobject
from manimlib.constants import ManimColor, np_vector
class Brace(SingleStringTex):
CONFIG = {
"buff": 0.2,
"tex_string": r"\underbrace{\qquad}"
}
def __init__(
self,
mobject: Mobject,
direction: np.ndarray = DOWN,
direction: np_vector = DOWN,
buff: float = 0.2,
tex_string: str = R"\underbrace{\qquad}",
**kwargs
):
digest_config(self, kwargs, locals())
super().__init__(tex_string, **kwargs)
angle = -math.atan2(*direction[:2]) + PI
mobject.rotate(-angle, about_point=ORIGIN)
left = mobject.get_corner(DOWN + LEFT)
right = mobject.get_corner(DOWN + RIGHT)
left = mobject.get_corner(DL)
right = mobject.get_corner(DR)
target_width = right[0] - left[0]
super().__init__(self.tex_string, **kwargs)
self.tip_point_index = np.argmin(self.get_all_points()[:, 1])
self.set_initial_width(target_width)
self.shift(left - self.get_corner(UP + LEFT) + self.buff * DOWN)
self.shift(left - self.get_corner(UL) + buff * DOWN)
for mob in mobject, self:
mob.rotate(angle, about_point=ORIGIN)
@ -110,23 +111,24 @@ class Brace(SingleStringTex):
class BraceLabel(VMobject):
CONFIG = {
"label_constructor": Tex,
"label_scale": 1,
"label_buff": DEFAULT_MOBJECT_TO_MOBJECT_BUFFER
}
label_constructor: type = Tex
def __init__(
self,
obj: VMobject | list[VMobject],
text: str | Iterable[str],
brace_direction: np.ndarray = DOWN,
label_scale: float = 1.0,
label_buff: float = DEFAULT_MOBJECT_TO_MOBJECT_BUFFER,
**kwargs
) -> None:
VMobject.__init__(self, **kwargs)
super().__init__(**kwargs)
self.brace_direction = brace_direction
self.label_scale = label_scale
self.label_buff = label_buff
if isinstance(obj, list):
obj = VMobject(*obj)
obj = VGroup(*obj)
self.brace = Brace(obj, brace_direction, **kwargs)
self.label = self.label_constructor(*listify(text), **kwargs)
@ -174,6 +176,4 @@ class BraceLabel(VMobject):
class BraceText(BraceLabel):
CONFIG = {
"label_constructor": TexText
}
label_constructor: type = TexText