def _place_in_orbit(self, pos, vel, euler, euler_vel, rotation_vel=(0,0,0), component_com_x=None):
        """
        TODO: add documentation
        """

        # TODO: store pos, vel, euler so that INCREMENTAL changes are allowed
        # if passing new values (and then make this a public method).  See note
        # below!

        pos_ks = ['vertices', 'pvertices', 'centers']
        norm_ks = ['vnormals', 'tnormals'] #, 'cnormals']
        vel_ks = ['velocities']

        # NOTE: we do velocities first since they require the positions WRT
        # the star (not WRT the system).  Will need to keep this in mind if we
        # eventually support incremental transformations.
        # pos_array = self.vertices if self._compute_at_vertices else self.centers
        pos_array = self.roche_vertices if self._compute_at_vertices else self.roche_centers
        if component_com_x is not None and component_com_x != 0.0:
            # then we're the secondary component and need to do 1-x and then flip the rotation component vxs
            pos_array = np.array([component_com_x, 0.0, 0.0]) - pos_array
        self.update_columns_dict({k: transform_velocity_array(self[k], pos_array, vel, euler_vel, rotation_vel) for k in vel_ks if self[k] is not None})
        # TODO: handle velocity from mesh reprojection during volume conservation

        # handle rotation/displacement
        # NOTE: mus will automatically be updated on-the-fly
        self.update_columns_dict({k: transform_position_array(self[k], pos, euler, False) for k in pos_ks if self[k] is not None})
        self.update_columns_dict({k: transform_position_array(self[k], pos, euler, True) for k in norm_ks if self[k] is not None})

        # let's store the position.  This is both useful for "undoing" the
        # orbit-offset, and also eventually to allow incremental changes.
        self._pos = pos
        if component_com_x is not None and component_com_x != 0.0:
            self._pos_center = transform_position_array(np.array([component_com_x, 0.0, 0.0]), pos, euler, False)
        else:
            self._pos_center = pos
        self._euler = euler