def from_proto(cls, proto_mesh, scale,
                      pos, vel, euler, euler_vel,
                      rotation_vel=(0,0,0),
                      component_com_x=None):
        """
        Turn a ProtoMesh into a Mesh scaled and placed in orbit.

        Update all geometry fields from the proto reference frame, to the
        current system reference frame, given the current position, velocitiy,
        euler angles, and rotational velocity of THIS mesh.

        :parameter list pos: current position (x, y, z)
        :parameter list vel: current velocity (vx, vy, vz)
        :parameter list euler: current euler angles (etheta, elongan, eincl)
        :parameter list rotation_vel: rotation velocity vector (polar_dir*freq_rot)
        """

        mesh = cls(**proto_mesh.items())

        mesh._copy_roche_values()
        mesh._scale_mesh(scale=scale)
        mesh._place_in_orbit(pos, vel, euler, euler_vel, rotation_vel, component_com_x)

        return mesh
Turn a ProtoMesh into a Mesh scaled and placed in orbit.

        Update all geometry fields from the proto reference frame, to the
        current system reference frame, given the current position, velocitiy,
        euler angles, and rotational velocity of THIS mesh.

        :parameter list pos: current position (x, y, z)
        :parameter list vel: current velocity (vx, vy, vz)
        :parameter list euler: current euler angles (etheta, elongan, eincl)
        :parameter list rotation_vel: rotation velocity vector (polar_dir*freq_rot)