class_docstr: An idealized rigid body.
  
  Explanation
  ===========
  
  This is essentially a container which holds the various components which
  describe a rigid body: a name, mass, center of mass, reference frame, and
  inertia.
  
  All of these need to be supplied on creation, but can be changed
  afterwards.
  
  Attributes
  ==========
  
  name : string
      The body's name.
  masscenter : Point
      The point which represents the center of mass of the rigid body.
  frame : ReferenceFrame
      The ReferenceFrame which the rigid body is fixed in.
  mass : Sympifyable
      The body's mass.
  inertia : (Dyadic, Point)
      The body's inertia about a point; stored in a tuple as shown above.
  potential_energy : Sympifyable
      The potential energy of the RigidBody.
  
  Examples
  ========
  
  >>> from sympy import Symbol
  >>> from sympy.physics.mechanics import ReferenceFrame, Point, RigidBody
  >>> from sympy.physics.mechanics import outer
  >>> m = Symbol('m')
  >>> A = ReferenceFrame('A')
  >>> P = Point('P')
  >>> I = outer (A.x, A.x)
  >>> inertia_tuple = (I, P)
  >>> B = RigidBody('B', P, A, m, inertia_tuple)
  >>> # Or you could change them afterwards
  >>> m2 = Symbol('m2')
  >>> B.mass = m2
docstr: Returns the angular momentum of the rigid body about a point in the
  given frame.
  
  Explanation
  ===========
  
  The angular momentum H of a rigid body B about some point O in a frame N
  is given by:
  
  ``H = dot(I, w) + cross(r, m * v)``
  
  where I and m are the central inertia dyadic and mass of rigid body B, w
  is the angular velocity of body B in the frame N, r is the position
  vector from point O to the mass center of B, and v is the velocity of
  the mass center in the frame N.
  
  Parameters
  ==========
  
  point : Point
      The point about which angular momentum is desired.
  frame : ReferenceFrame
      The frame in which angular momentum is desired.
  
  Examples
  ========
  
  >>> from sympy.physics.mechanics import Point, ReferenceFrame, outer
  >>> from sympy.physics.mechanics import RigidBody, dynamicsymbols
  >>> from sympy.physics.vector import init_vprinting
  >>> init_vprinting(pretty_print=False)
  >>> m, v, r, omega = dynamicsymbols('m v r omega')
  >>> N = ReferenceFrame('N')
  >>> b = ReferenceFrame('b')
  >>> b.set_ang_vel(N, omega * b.x)
  >>> P = Point('P')
  >>> P.set_vel(N, 1 * N.x)
  >>> I = outer(b.x, b.x)
  >>> B = RigidBody('B', P, b, m, (I, P))
  >>> B.angular_momentum(P, N)
  omega*b.x
docstr_tok: ["Returns","the","angular","momentum","of","the","rigid","body","about","a","point","in","the","given","frame",".","Explanation","===========","The","angular","momentum","H","of","a","rigid","body","B","about","some","point","O","in","a","frame","N","is","given","by",":","``","H","=","dot","(","I",",","w",")","+","cross","(","r",",","m","*","v",")","``","where","I","and","m","are","the","central","inertia","dyadic","and","mass","of","rigid","body","B",",","w","is","the","angular","velocity","of","body","B","in","the","frame","N",",","r","is","the","position","vector","from","point","O","to","the","mass","center","of","B",",","and","v","is","the","velocity","of","the","mass","center","in","the","frame","N.","Parameters","==========","point",":","Point","The","point","about","which","angular","momentum","is","desired",".","frame",":","ReferenceFrame","The","frame","in","which","angular","momentum","is","desired",".","Examples","========",">",">",">","from","sympy.physics.mechanics","import","Point",",","ReferenceFrame",",","outer",">",">",">","from","sympy.physics.mechanics","import","RigidBody",",","dynamicsymbols",">",">",">","from","sympy.physics.vector","import","init_vprinting",">",">",">","init_vprinting","(","pretty_print=False",")",">",">",">","m",",","v",",","r",",","omega","=","dynamicsymbols","(","'m","v","r","omega","'",")",">",">",">","N","=","ReferenceFrame","(","'N","'",")",">",">",">","b","=","ReferenceFrame","(","'","b","'",")",">",">",">","b.set_ang_vel","(","N",",","omega","*","b.x",")",">",">",">","P","=","Point","(","'","P","'",")",">",">",">","P.set_vel","(","N",",","1","*","N.x",")",">",">",">","I","=","outer","(","b.x",",","b.x",")",">",">",">","B","=","RigidBody","(","'","B","'",",","P",",","b",",","m",",","(","I",",","P",")",")",">",">",">","B.angular_momentum","(","P",",","N",")","omega","*","b.x"]
code: def angular_momentum(self, point, frame):
      """Returns the angular momentum of the rigid body about a point in the
      given frame.
  
      Explanation
      ===========
  
      The angular momentum H of a rigid body B about some point O in a frame N
      is given by:
  
      ``H = dot(I, w) + cross(r, m * v)``
  
      where I and m are the central inertia dyadic and mass of rigid body B, w
      is the angular velocity of body B in the frame N, r is the position
      vector from point O to the mass center of B, and v is the velocity of
      the mass center in the frame N.
  
      Parameters
      ==========
  
      point : Point
          The point about which angular momentum is desired.
      frame : ReferenceFrame
          The frame in which angular momentum is desired.
  
      Examples
      ========
  
      >>> from sympy.physics.mechanics import Point, ReferenceFrame, outer
      >>> from sympy.physics.mechanics import RigidBody, dynamicsymbols
      >>> from sympy.physics.vector import init_vprinting
      >>> init_vprinting(pretty_print=False)
      >>> m, v, r, omega = dynamicsymbols('m v r omega')
      >>> N = ReferenceFrame('N')
      >>> b = ReferenceFrame('b')
      >>> b.set_ang_vel(N, omega * b.x)
      >>> P = Point('P')
      >>> P.set_vel(N, 1 * N.x)
      >>> I = outer(b.x, b.x)
      >>> B = RigidBody('B', P, b, m, (I, P))
      >>> B.angular_momentum(P, N)
      omega*b.x
  
      """
      I = self.central_inertia
      w = self.frame.ang_vel_in(frame)
      m = self.mass
      r = self.masscenter.pos_from(point)
      v = self.masscenter.vel(frame)
  
      return I.dot(w) + r.cross(m * v)
  
imports: from sympy import Symbol, S
  from sympy.physics.vector import ReferenceFrame, Dyadic, Point, dot
  from sympy.physics.mechanics.body_base import BodyBase
  from sympy.physics.mechanics.inertia import inertia_of_point_mass, Inertia
  from sympy.utilities.exceptions import sympy_deprecation_warning
label_desc: Use image node_id 13 for calling the RigidBody obj's underlying member method code with example usage: obj.angular_momentum(point, frame) and returns: unknown