
    lj5                        d Z ddlmZ g dZddlZddlmZ ddlm	Z	m
Z
 ddlmZ e	rddlmZ  G d	 d
e          Z G d de          Z G d de          ZdS )z Animations that update mobjects.    )annotations)UpdateFromFuncUpdateFromAlphaFuncMaintainPositionRelativeToN)Callable)TYPE_CHECKINGAny)	Animation)Mobjectc                  0     e Zd ZdZ	 dd fdZddZ xZS )r   z
    update_function of the form func(mobject), presumably
    to be used when the state of one mobject is dependent
    on another simultaneously animated mobject
    Fmobjectr   update_functionCallable[[Mobject], Any]suspend_mobject_updatingboolkwargsr	   returnNonec                N    || _          t                      j        |fd|i| d S )Nr   )r   super__init__)selfr   r   r   r   	__class__s        Z/home/agentuser/manim-venv/lib/python3.11/site-packages/manim/animation/updaters/update.pyr   zUpdateFromFunc.__init__   sJ      /	
 	
.F	
JP	
 	
 	
 	
 	
    alphafloatc                :    |                      | j                   d S N)r   r   r   r   s     r   interpolate_mobjectz"UpdateFromFunc.interpolate_mobject%   s    T\*****r   )F)
r   r   r   r   r   r   r   r	   r   r   r   r   r   r   )__name__
__module____qualname____doc__r   r!   __classcell__r   s   @r   r   r      se          */	

 

 

 

 

 

 

+ + + + + + + +r   r   c                      e Zd ZddZdS )r   r   r   r   r   c                b    |                      | j        |                     |                     d S r   )r   r   	rate_funcr    s     r   r!   z'UpdateFromAlphaFunc.interpolate_mobject*   s,    T\4>>%+@+@AAAAAr   Nr"   )r#   r$   r%   r!    r   r   r   r   )   s.        B B B B B Br   r   c                  (     e Zd Zd fdZddZ xZS )r   r   r   tracked_mobjectr   r	   r   r   c                    || _         t          j        |                                |                                          | _         t                      j        |fi | d S r   )r.   opsub
get_centerdiffr   r   )r   r   r.   r   r   s       r   r   z#MaintainPositionRelativeTo.__init__/   se      /F  &&((
 
	 	++F+++++r   r   r   c                    | j                                         }| j                                        }| j                            ||z
  | j        z              d S r   )r.   r2   r   shiftr3   )r   r   targetlocations       r   r!   z.MaintainPositionRelativeTo.interpolate_mobject9   sQ    %0022<**,,6H,ty899999r   )r   r   r.   r   r   r	   r   r   r"   )r#   r$   r%   r   r!   r'   r(   s   @r   r   r   .   sQ        , , , , , ,: : : : : : : :r   r   )r&   
__future__r   __all__operatorr0   collections.abcr   typingr   r	   manim.animation.animationr
   manim.mobject.mobjectr   r   r   r   r,   r   r   <module>r?      s   & & " " " " " "
Q
Q
Q     $ $ $ $ $ $ % % % % % % % % / / / / / / .------+ + + + +Y + + +.B B B B B. B B B
: : : : : : : : : :r   