def intersection_with_voxel_space
      alpha_x0 = ax(0)
      alpha_y0 = ay(0)
      alpha_z0 = az(0)
      alpha_x_last = ax(@vs.nx)
      alpha_y_last = ay(@vs.ny)
      alpha_z_last = az(@vs.nz)
      @alpha_x_min = [alpha_x0, alpha_x_last].min
      @alpha_y_min = [alpha_y0, alpha_y_last].min
      @alpha_z_min = [alpha_z0, alpha_z_last].min
      @alpha_x_max = [alpha_x0, alpha_x_last].max
      @alpha_y_max = [alpha_y0, alpha_y_last].max
      @alpha_z_max = [alpha_z0, alpha_z_last].max
      @alpha_min = [@alpha_x_min, @alpha_y_min, @alpha_z_min].max
      @alpha_max = [@alpha_x_max, @alpha_y_max, @alpha_z_max].min
    end
def intersection_with_voxel_space
      alpha_x0 = ax(0)
      alpha_y0 = ay(0)
      alpha_z0 = az(0)
      alpha_x_last = ax(@vs.nx)
      alpha_y_last = ay(@vs.ny)
      alpha_z_last = az(@vs.nz)
      @alpha_x_min = [alpha_x0, alpha_x_last].min
      @alpha_y_min = [alpha_y0, alpha_y_last].min
      @alpha_z_min = [alpha_z0, alpha_z_last].min
      @alpha_x_max = [alpha_x0, alpha_x_last].max
      @alpha_y_max = [alpha_y0, alpha_y_last].max
      @alpha_z_max = [alpha_z0, alpha_z_last].max
      @alpha_min = [@alpha_x_min, @alpha_y_min, @alpha_z_min].max
      @alpha_max = [@alpha_x_max, @alpha_y_max, @alpha_z_max].min
    end
Determines at what fraction (alpha) of the ray's length (from source
 to target) the ray may enter and leave the voxel space, when following
 the shortest path (perpendicular to the voxel space).