class_docstr: Body is a common representation of either a RigidBody or a Particle SymPy
  object depending on what is passed in during initialization. If a mass is
  passed in and central_inertia is left as None, the Particle object is
  created. Otherwise a RigidBody object will be created.
  
  Explanation
  ===========
  
  The attributes that Body possesses will be the same as a Particle instance
  or a Rigid Body instance depending on which was created. Additional
  attributes are listed below.
  
  Attributes
  ==========
  
  name : string
      The body's name
  masscenter : Point
      The point which represents the center of mass of the rigid body
  frame : ReferenceFrame
      The reference frame which the body is fixed in
  mass : Sympifyable
      The body's mass
  inertia : (Dyadic, Point)
      The body's inertia around its center of mass. This attribute is specific
      to the rigid body form of Body and is left undefined for the Particle
      form
  loads : iterable
      This list contains information on the different loads acting on the
      Body. Forces are listed as a (point, vector) tuple and torques are
      listed as (reference frame, vector) tuples.
  
  Parameters
  ==========
  
  name : String
      Defines the name of the body. It is used as the base for defining
      body specific properties.
  masscenter : Point, optional
      A point that represents the center of mass of the body or particle.
      If no point is given, a point is generated.
  mass : Sympifyable, optional
      A Sympifyable object which represents the mass of the body. If no
      mass is passed, one is generated.
  frame : ReferenceFrame, optional
      The ReferenceFrame that represents the reference frame of the body.
      If no frame is given, a frame is generated.
  central_inertia : Dyadic, optional
      Central inertia dyadic of the body. If none is passed while creating
      RigidBody, a default inertia is generated.
  
  Examples
  ========
  
  Default behaviour. This results in the creation of a RigidBody object for
  which the mass, mass center, frame and inertia attributes are given default
  values. ::
  
      >>> from sympy.physics.mechanics import Body
      >>> body = Body('name_of_body')
  
  This next example demonstrates the code required to specify all of the
  values of the Body object. Note this will also create a RigidBody version of
  the Body object. ::
  
      >>> from sympy import Symbol
      >>> from sympy.physics.mechanics import ReferenceFrame, Point, inertia
      >>> from sympy.physics.mechanics import Body
      >>> mass = Symbol('mass')
      >>> masscenter = Point('masscenter')
      >>> frame = ReferenceFrame('frame')
      >>> ixx = Symbol('ixx')
      >>> body_inertia = inertia(frame, ixx, 0, 0)
      >>> body = Body('name_of_body', masscenter, mass, frame, body_inertia)
  
  The minimal code required to create a Particle version of the Body object
  involves simply passing in a name and a mass. ::
  
      >>> from sympy import Symbol
      >>> from sympy.physics.mechanics import Body
      >>> mass = Symbol('mass')
      >>> body = Body('name_of_body', mass=mass)
  
  The Particle version of the Body object can also receive a masscenter point
  and a reference frame, just not an inertia.
docstr: Returns the inertia dyadic of the body with respect to another
  point.
  
  Parameters
  ==========
  
  point : sympy.physics.vector.Point
      The point to express the inertia dyadic about.
  frame : sympy.physics.vector.ReferenceFrame
      The reference frame used to construct the dyadic.
  
  Returns
  =======
  
  inertia : sympy.physics.vector.Dyadic
      The inertia dyadic of the rigid body expressed about the provided
      point.
  
  Example
  =======
  
  >>> from sympy.physics.mechanics import Body
  >>> A = Body('A')
  >>> P = A.masscenter.locatenew('point', 3 * A.x + 5 * A.y)
  >>> A.parallel_axis(P).to_matrix(A.frame)
  Matrix([
  [A_ixx + 25*A_mass, A_ixy - 15*A_mass,             A_izx],
  [A_ixy - 15*A_mass,  A_iyy + 9*A_mass,             A_iyz],
  [            A_izx,             A_iyz, A_izz + 34*A_mass]])
docstr_tok: ["Returns","the","inertia","dyadic","of","the","body","with","respect","to","another","point",".","Parameters","==========","point",":","sympy.physics.vector.Point","The","point","to","express","the","inertia","dyadic","about",".","frame",":","sympy.physics.vector.ReferenceFrame","The","reference","frame","used","to","construct","the","dyadic",".","Returns","=======","inertia",":","sympy.physics.vector.Dyadic","The","inertia","dyadic","of","the","rigid","body","expressed","about","the","provided","point",".","Example","=======",">",">",">","from","sympy.physics.mechanics","import","Body",">",">",">","A","=","Body","(","'","A","'",")",">",">",">","P","=","A.masscenter.locatenew","(","'point","'",",","3","*","A.x","+","5","*","A.y",")",">",">",">","A.parallel_axis","(","P",")",".to_matrix","(","A.frame",")","Matrix","(","[","[","A_ixx","+","25","*","A_mass",",","A_ixy","-","15","*","A_mass",",","A_izx","]",",","[","A_ixy","-","15","*","A_mass",",","A_iyy","+","9","*","A_mass",",","A_iyz","]",",","[","A_izx",",","A_iyz",",","A_izz","+","34","*","A_mass","]","]",")"]
code: def parallel_axis(self, point, frame=None):
      """Returns the inertia dyadic of the body with respect to another
      point.
  
      Parameters
      ==========
  
      point : sympy.physics.vector.Point
          The point to express the inertia dyadic about.
      frame : sympy.physics.vector.ReferenceFrame
          The reference frame used to construct the dyadic.
  
      Returns
      =======
  
      inertia : sympy.physics.vector.Dyadic
          The inertia dyadic of the rigid body expressed about the provided
          point.
  
      Example
      =======
  
      >>> from sympy.physics.mechanics import Body
      >>> A = Body('A')
      >>> P = A.masscenter.locatenew('point', 3 * A.x + 5 * A.y)
      >>> A.parallel_axis(P).to_matrix(A.frame)
      Matrix([
      [A_ixx + 25*A_mass, A_ixy - 15*A_mass,             A_izx],
      [A_ixy - 15*A_mass,  A_iyy + 9*A_mass,             A_iyz],
      [            A_izx,             A_iyz, A_izz + 34*A_mass]])
  
      """
      if self.is_rigidbody:
          return RigidBody.parallel_axis(self, point, frame)
      return Particle.parallel_axis(self, point, frame)
  
imports: from sympy import Symbol
  from sympy.physics.vector import Point, Vector, ReferenceFrame, Dyadic
  from sympy.physics.mechanics import RigidBody, Particle, Inertia
  from sympy.physics.mechanics.body_base import BodyBase
label_desc: Use image node_id 18 for calling the Body obj's underlying member method code with example usage: obj.parallel_axis(point, frame) and returns: Particle, RigidBody