
    lj               
      v   U d Z ddlmZ ddlmZ ddlmZ ddlZddl	m
Z
 ddlmZ ddlmZ g d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!ej"        ej"        ej#        ej#        ej$        ej$        dZ% ej&        d          Z'de(d<   	  ej&        d           Z)de(d!<   	  ej&        d"          Z*de(d#<   	  ej&        d$          Z+de(d%<   	  ej&        d&          Z,de(d'<   	  ej&        d(          Z-de(d)<   	  ej&        d*          Z.de(d+<   	  ej&        d$          Z/de(d,<    ej&        d           Z0de(d-<    ej&        d*          Z1de(d.<   e)e,z   Z2de(d/<   	 e)e+z   Z3de(d0<   	 e*e,z   Z4de(d1<   	 e*e+z   Z5de(d2<   	 d3Z6d4Z7d5Z8d6Z9d7Z:d8Z;d9Z<d:Z=d;Z>d<Z?e>Z@e=ZAd=ZBd>ZCd?ZDd@ZEdAZFdBZGdCZHejI        ZJ	 dDeJz  ZK	 eKdEz  ZL	  G dF dGe          ZMdHdIdJdKdLdMdNdOdKdLdPdQdRdKdLdSdTdUd3dLdVdWdXdYdLddWdXd3dLdZZNd[e(d\<   d]ZOd^ZPd_ZQd`ZR e
jS        dadadab          ZT G dc dde          ZU G de dfe          ZV G dg dhe          ZWdS )izConstant definitions.    )annotations)Enum)	TypedDictN)Context)
Resampling)Vector3D)@SCENE_NOT_FOUND_MESSAGECHOOSE_NUMBER_MESSAGEINVALID_NUMBER_MESSAGENO_SCENE_MESSAGENORMALITALICOBLIQUEBOLDTHIN
ULTRALIGHTLIGHT	SEMILIGHTBOOKMEDIUMSEMIBOLD	ULTRABOLDHEAVY
ULTRAHEAVYRESAMPLING_ALGORITHMSORIGINUPDOWNRIGHTLEFTINOUTX_AXISY_AXISZ_AXISULURDLDRSTART_XSTART_YDEFAULT_DOT_RADIUSDEFAULT_SMALL_DOT_RADIUSDEFAULT_DASH_LENGTHDEFAULT_ARROW_TIP_LENGTH
SMALL_BUFFMED_SMALL_BUFFMED_LARGE_BUFF
LARGE_BUFFDEFAULT_MOBJECT_TO_EDGE_BUFFER!DEFAULT_MOBJECT_TO_MOBJECT_BUFFER#DEFAULT_POINTWISE_FUNCTION_RUN_TIMEDEFAULT_WAIT_TIMEDEFAULT_POINT_DENSITY_2DDEFAULT_POINT_DENSITY_1DDEFAULT_STROKE_WIDTHDEFAULT_FONT_SIZESCALE_FACTOR_PER_FONT_POINTPITAUDEGREES	QUALITIESDEFAULT_QUALITYEPILOGCONTEXT_SETTINGSSHIFT_VALUE
CTRL_VALUERendererTypeLineJointTypeCapStyleTypez
   {} is not in the script
z
Choose number corresponding to desired scene/arguments.
(Use comma separated list for multiple entries or use "*" to select all scenes.)
Choice(s): z4Invalid scene numbers have been specified. Aborting.z+
   There are no scenes inside that module
r   r   r   r   r   r   r   r   r   r   r   r   r   r   )nearestnonebilinearlinearbicubiccubic)        rO   rO   r   r   )rO         ?rO   r   )rO         rO   r   )rP   rO   rO   r   )rQ   rO   rO   r    )rO   rO   rQ   r!   )rO   rO   rP   r"   r#   r$   r%   r&   r'   r(   r)         g{Gz?g{Gz?g?gffffff?g?g      ?g      ?   g      @rP      
      0   gQ?   ih  c                  8    e Zd ZU ded<   ded<   ded<   ded<   dS )QualityDictz
str | Noneflagintpixel_heightpixel_width
frame_rateN)__name__
__module____qualname____annotations__     J/home/agentuser/manim-venv/lib/python3.11/site-packages/manim/constants.pyr[   r[      s=         OOOOOrf   r[   kip  i   <   )r\   r^   r_   r`   pi  i 
  hi8  i  mi  i   li  iV     )fourk_qualityproduction_qualityhigh_qualitymedium_qualitylow_qualityexample_qualityzdict[str, QualityDict]r@   rq   z+Made with <3 by Manim Community developers.i  i  T)align_option_groupsalign_sectionsshow_constraintsc                      e Zd ZdZdZdZdS )rF   a  An enumeration of all renderer types that can be assigned to
    the ``config.renderer`` attribute.

    Manim's configuration allows assigning string values to the renderer
    setting, the values are then replaced by the corresponding enum object.
    In other words, you can run::

        config.renderer = "opengl"

    and checking the renderer afterwards reveals that the attribute has
    assumed the value::

        <RendererType.OPENGL: 'opengl'>
    cairoopenglN)ra   rb   rc   __doc__CAIROOPENGLre   rf   rg   rF   rF     s$          EFFFrf   rF   c                  "    e Zd ZdZdZdZdZdZdS )rG   a  Collection of available line joint types.

    See the example below for a visual illustration of the different
    joint types.

    Examples
    --------

    .. manim:: LineJointVariants
        :save_last_frame:

        class LineJointVariants(Scene):
            def construct(self):
                mob = VMobject(stroke_width=20, color=GREEN).set_points_as_corners([
                    np.array([-2, 0, 0]),
                    np.array([0, 0, 0]),
                    np.array([-2, 1, 0]),
                ])
                lines = VGroup(*[mob.copy() for _ in range(len(LineJointType))])
                for line, joint_type in zip(lines, LineJointType):
                    line.joint_type = joint_type

                lines.arrange(RIGHT, buff=1)
                self.add(lines)
                for line in lines:
                    label = Text(line.joint_type.name).next_to(line, DOWN)
                    self.add(label)
    r   rT   rY      N)ra   rb   rc   r{   AUTOROUNDBEVELMITERre   rf   rg   rG   rG     s.         : DEEEEErf   rG   c                  "    e Zd ZdZdZdZdZdZdS )rH   a  Collection of available cap styles.

    See the example below for a visual illustration of the different
    cap styles.

    Examples
    --------

    .. manim:: CapStyleVariants
        :save_last_frame:

        class CapStyleVariants(Scene):
            def construct(self):
                arcs = VGroup(*[
                    Arc(
                        radius=1,
                        start_angle=0,
                        angle=TAU / 4,
                        stroke_width=20,
                        color=GREEN,
                        cap_style=cap_style,
                    )
                    for cap_style in CapStyleType
                ])
                arcs.arrange(RIGHT, buff=1)
                self.add(arcs)
                for arc in arcs:
                    label = Text(arc.cap_style.name, font_size=24).next_to(arc, DOWN)
                    self.add(label)
    r   rT   rY   r   N)ra   rb   rc   r{   r   r   BUTTSQUAREre   rf   rg   rH   rH   :  s.         > DEDFFFrf   rH   )Xr{   
__future__r   enumr   typingr   numpynpcloupr   	PIL.Imager   manim.typingr   __all__r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   NEARESTBILINEARBICUBICr   arrayr   rd   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   pir=   r>   r?   r[   r@   rA   rB   rD   rE   settingsrC   rF   rG   rH   re   rf   rg   <module>r      s      " " " " " "                                   ! ! ! ! ! !A A AH   P  
 
	

			
 !#!!   28O,, , , , , *rx(( ( ( ( ( 0*++ + + + + 0"(?++ + + + + 0*++ + + + + 0rx()) ) ) ) ) 0)) ) ) ) ) 0 28O,, , , , ,28O,, , , , ,28O,, , , , , Dy     %Ez     &d{     'e|     ( 
     

!/ $2 ! '* #      %  U A"f ?
) 4    )    	  	  	  	  	  	 ?%% %%	 % % % %N !	6
#7#       4   (! ! ! ! !D ! ! !H# # # # #4 # # # # #rf   