K i LddlmZmZddlmZmZddlmZdgZGddeZ y))ABCabstractmethod)Symbolsympify)PointBodyBaseceZdZdZddZdZdZedZedZ e jdZ ed Z e jd Z ed Z e jd Z e d Ze dZe dZe dZy)rz%Abstract class for body type objects.Nct|ts td||_|t |d}|t |d}||_||_d|_g|_ y)NzSupply a valid name._mass _masscenterr) isinstancestr TypeError_namerrmass masscenterpotential_energypoints)selfnamerrs g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/physics/mechanics/body_base.py__init__zBodyBase.__init__ sj$$23 3 <TF%.)D  ${34J $ ! c|jSN)rrs r__str__zBodyBase.__str__s yyrc |jjdt|jdt|jdt|j dS)N(z , masscenter=z, mass=)) __class____name__reprrrrrs r__repr__zBodyBase.__repr__sO>>**+1T$))_,=]()dii0AD Erc|jS)zThe name of the body.)rrs rrz BodyBase.name zzrc|jS)zThe body's center of mass.)r rs rrzBodyBase.masscenter%srcHt|ts td||_y)Nz1The body's center of mass must be a Point object.)r rrr )rpoints rrzBodyBase.masscenter*s %'OP P rc|jS)zThe body's mass.)r rs rrz BodyBase.mass0r&rc$t||_yr)rr )rrs rrz BodyBase.mass5s T] rc|jS)asThe 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_energyrs rrzBodyBase.potential_energy9s"%%%rc$t||_yr)rr-)rscalars rrzBodyBase.potential_energyLs!(rcyrrframes rkinetic_energyzBodyBase.kinetic_energyP rcyrr1r2s rlinear_momentumzBodyBase.linear_momentumTr5rcyrr1rr)r3s rangular_momentumzBodyBase.angular_momentumXr5rcyrr1r9s r parallel_axiszBodyBase.parallel_axis\r5r)NN)r" __module__ __qualname____doc__rrr$propertyrrsetterrrrr4r7r:r<r1rrrrs/ E  !!  [[##&&$11        rN) abcrrsympyrrsympy.physics.vectorr__all__rr1rrrFs##!& ,V sV r