code: def resample_full_data(self):
      if VERBOSE:
          print("Gridding...")
      xyz = make_grid(self.dims[0:3])
      res = np.zeros(self.dims)
      for t in range(self.nscans):
          if VERBOSE:
              print(
                  "Fully resampling scan %d/%d" % (t + 1, self.nscans)
              )
          X, Y, Z = scanner_coords(
              xyz,
              self.transforms[t].as_affine(),
              self.inv_affine,
              self.affine,
          )
          if self.time_interp:
              T = self.scanner_time(Z, self.timestamps[t])
              _cspline_sample4d(
                  res[:, :, :, t],
                  self.cbspline,
                  X,
                  Y,
                  Z,
                  T,
                  mt="nearest",
              )
          else:
              _cspline_sample3d(
                  res[:, :, :, t], self.cbspline[:, :, :, t], X, Y, Z
              )
      return res
  
imports: import os
  import warnings
  import numpy
  from nibabel import io_orientation
  from nibabel.affines import apply_affine
  from ...core.image.image_spaces import as_xyz_image, make_xyz_image, xyz_affine
  from ...io.nibcompat import get_header
  from ..slicetiming import timefuncs
  from ._registration import _cspline_sample3d, _cspline_sample4d, _cspline_transform
  from .affine import Affine, Rigid
  from .optimizer import configure_optimizer, use_derivatives
  from .type_check import check_type, check_type_and_shape
label_desc: Use image node_id 3 for calling the Realign4dAlgorithm obj's underlying member method code with example usage: obj.resample_full_data() and returns: res