Ë
    7^(h»	  ã                   óL   — d dl mZmZ d dlmZmZ d dlmZ dgZ G d„ de«      Z	y)é    )ÚABCÚabstractmethod)ÚSymbolÚsympify)ÚPointÚBodyBasec                   ó  — e Zd ZdZdd„Zd„ Zd„ Zed„ «       Zed„ «       Z	e	j                  d„ «       Z	ed	„ «       Zej                  d
„ «       Zed„ «       Zej                  d„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zy)r   z%Abstract class for body type objects.Nc                 óÀ   — t        |t        «      st        d«      ‚|| _        |€t	        |› d�«      }|€t        |› d�«      }|| _        || _        d| _        g | _	        y )NzSupply a valid name.Ú_massÚ_masscenterr   )
Ú
isinstanceÚstrÚ	TypeErrorÚ_namer   r   ÚmassÚ
masscenterÚpotential_energyÚpoints)ÚselfÚnamer   r   s       ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/physics/mechanics/body_base.pyÚ__init__zBodyBase.__init__
   sj   € ô ˜$¤Ô$ÜÐ2Ó3Ð3ØˆŒ
Øˆ<Ü˜T˜F %˜.Ó)ˆDØÐÜ $  {Ð3Ó4ˆJØˆŒ	Ø$ˆŒØ !ˆÔØˆ�ó    c                 ó   — | j                   S ©N)r   ©r   s    r   Ú__str__zBodyBase.__str__   s   € Ø�y‰yÐr   c           	      ó¸   — | j                   j                  › dt        | j                  «      › dt        | j                  «      › dt        | j
                  «      › d�S )Nú(z, masscenter=z, mass=ú))Ú	__class__Ú__name__Úreprr   r   r   r   s    r   Ú__repr__zBodyBase.__repr__   sO   € Ø—>‘>×*Ñ*Ð+¨1¬T°$·)±)«_Ð,=¸]Ü˜Ÿ™Ó(Ð)¨´°d·i±i³Ð0AÀðDð 	Er   c                 ó   — | j                   S )zThe name of the body.)r   r   s    r   r   zBodyBase.name    ó   € ð �z‰zÐr   c                 ó   — | j                   S )zThe body's center of mass.)r   r   s    r   r   zBodyBase.masscenter%   s   € ð ×ÑÐr   c                 óH   — t        |t        «      st        d«      ‚|| _        y )Nz1The body's center of mass must be a Point object.)r   r   r   r   )r   Úpoints     r   r   zBodyBase.masscenter*   s    € ä˜%¤Ô'ÜÐOÓPÐPØ ˆÕr   c                 ó   — | j                   S )zThe body's mass.)r   r   s    r   r   zBodyBase.mass0   r&   r   c                 ó$   — t        |«      | _        y r   )r   r   )r   r   s     r   r   zBodyBase.mass5   s   € ä˜T“]ˆ�
r   c                 ó   — | j                   S )as  The potential energy of the body.

        Examples
        ========

        >>> from sympy.physics.mechanics import Particle, Point
        >>> from sympy import symbols
        >>> m, g, h = symbols('m g h')
        >>> O = Point('O')
        >>> P = Particle('P', O, m)
        >>> P.potential_energy = m * g * h
        >>> P.potential_energy
        g*h*m

        )Ú_potential_energyr   s    r   r   zBodyBase.potential_energy9   s   € ð" ×%Ñ%Ð%r   c                 ó$   — t        |«      | _        y r   )r   r-   )r   Úscalars     r   r   zBodyBase.potential_energyL   s   € ä!(¨£ˆÕr   c                  ó   — y r   © ©r   Úframes     r   Úkinetic_energyzBodyBase.kinetic_energyP   ó   € àr   c                  ó   — y r   r1   r2   s     r   Úlinear_momentumzBodyBase.linear_momentumT   r5   r   c                  ó   — y r   r1   ©r   r)   r3   s      r   Úangular_momentumzBodyBase.angular_momentumX   r5   r   c                  ó   — y r   r1   r9   s      r   Úparallel_axiszBodyBase.parallel_axis\   r5   r   )NN)r"   Ú
__module__Ú__qualname__Ú__doc__r   r   r$   Úpropertyr   r   Úsetterr   r   r   r4   r7   r:   r<   r1   r   r   r   r      s  „ Ù/óòòEð ñó ðð ñ ó ð ð ×Ññ!ó ð!ð
 ñó ðð 
‡[�[ñ#ó ð#ð ñ&ó ð&ð$ ×Ññ1ó ð1ð ñó ðð ñó ðð ñó ðð ñó ñr   N)
Úabcr   r   Úsympyr   r   Úsympy.physics.vectorr   Ú__all__r   r1   r   r   ú<module>rF      s#   ðß #ß !Ý &àˆ,€ôVˆsõ Vr   