Warning:
Unable to load the following plugins:

	libio_e57.so: libio_e57.so does not seem to be a Qt Plugin.

Cannot load library /root/miniconda3/lib/python3.9/site-packages/pymeshlab/lib/plugins/libio_e57.so: (/usr/lib/x86_64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0)

# AUTOMATICALLY GENERATED by `shtab`

_shtab_tyro_ns_export_subparsers=('pointcloud' 'tsdf' 'poisson' 'marching-cubes' 'cameras' 'gaussian-splat')

_shtab_tyro_ns_export_option_strings=('-h' '--help')
_shtab_tyro_ns_export_pointcloud_option_strings=('-h' '--help' '--load-config' '--output-dir' '--num-points' '--remove-outliers' '--reorient-normals' '--normal-method' '--normal-output-name' '--depth-output-name' '--rgb-output-name' '--obb-center' '--obb-rotation' '--obb-scale' '--num-rays-per-batch' '--std-ratio' '--save-world-frame')
_shtab_tyro_ns_export_tsdf_option_strings=('-h' '--help' '--load-config' '--output-dir' '--downscale-factor' '--depth-output-name' '--rgb-output-name' '--resolution' '--batch-size' '--use-bounding-box' '--bounding-box-min' '--bounding-box-max' '--texture-method' '--px-per-uv-triangle' '--unwrap-method' '--num-pixels-per-side' '--target-num-faces' '--refine-mesh-using-initial-aabb-estimate' '--refinement-epsilon')
_shtab_tyro_ns_export_poisson_option_strings=('-h' '--help' '--load-config' '--output-dir' '--num-points' '--remove-outliers' '--reorient-normals' '--depth-output-name' '--rgb-output-name' '--normal-method' '--normal-output-name' '--save-point-cloud' '--use-bounding-box' '--bounding-box-min' '--bounding-box-max' '--obb-center' '--obb-rotation' '--obb-scale' '--num-rays-per-batch' '--texture-method' '--px-per-uv-triangle' '--unwrap-method' '--num-pixels-per-side' '--target-num-faces' '--std-ratio')
_shtab_tyro_ns_export_marching_cubes_option_strings=('-h' '--help' '--load-config' '--output-dir' '--isosurface-threshold' '--resolution' '--simplify-mesh' '--bounding-box-min' '--bounding-box-max' '--px-per-uv-triangle' '--unwrap-method' '--num-pixels-per-side' '--target-num-faces')
_shtab_tyro_ns_export_cameras_option_strings=('-h' '--help' '--load-config' '--output-dir')
_shtab_tyro_ns_export_gaussian_splat_option_strings=('-h' '--help' '--load-config' '--output-dir' '--output-filename' '--obb-center' '--obb-rotation' '--obb-scale' '--ply-color-mode')

_shtab_tyro_ns_export_pointcloud___load_config_COMPGEN=_shtab_compgen_files
_shtab_tyro_ns_export_pointcloud___output_dir_COMPGEN=_shtab_compgen_dirs
_shtab_tyro_ns_export_tsdf___load_config_COMPGEN=_shtab_compgen_files
_shtab_tyro_ns_export_tsdf___output_dir_COMPGEN=_shtab_compgen_dirs
_shtab_tyro_ns_export_poisson___load_config_COMPGEN=_shtab_compgen_files
_shtab_tyro_ns_export_poisson___output_dir_COMPGEN=_shtab_compgen_dirs
_shtab_tyro_ns_export_marching_cubes___load_config_COMPGEN=_shtab_compgen_files
_shtab_tyro_ns_export_marching_cubes___output_dir_COMPGEN=_shtab_compgen_dirs
_shtab_tyro_ns_export_cameras___load_config_COMPGEN=_shtab_compgen_files
_shtab_tyro_ns_export_cameras___output_dir_COMPGEN=_shtab_compgen_dirs
_shtab_tyro_ns_export_gaussian_splat___load_config_COMPGEN=_shtab_compgen_files
_shtab_tyro_ns_export_gaussian_splat___output_dir_COMPGEN=_shtab_compgen_dirs
_shtab_tyro_ns_export_gaussian_splat___output_filename_COMPGEN=_shtab_compgen_files

_shtab_tyro_ns_export_pos_0_choices=('pointcloud' 'tsdf' 'poisson' 'marching-cubes' 'cameras' 'gaussian-splat')
_shtab_tyro_ns_export_pointcloud___remove_outliers_choices=('True' 'False')
_shtab_tyro_ns_export_pointcloud___reorient_normals_choices=('True' 'False')
_shtab_tyro_ns_export_pointcloud___normal_method_choices=('open3d' 'model_output')
_shtab_tyro_ns_export_pointcloud___save_world_frame_choices=('True' 'False')
_shtab_tyro_ns_export_tsdf___use_bounding_box_choices=('True' 'False')
_shtab_tyro_ns_export_tsdf___texture_method_choices=('tsdf' 'nerf')
_shtab_tyro_ns_export_tsdf___unwrap_method_choices=('xatlas' 'custom')
_shtab_tyro_ns_export_tsdf___refine_mesh_using_initial_aabb_estimate_choices=('True' 'False')
_shtab_tyro_ns_export_poisson___remove_outliers_choices=('True' 'False')
_shtab_tyro_ns_export_poisson___reorient_normals_choices=('True' 'False')
_shtab_tyro_ns_export_poisson___normal_method_choices=('open3d' 'model_output')
_shtab_tyro_ns_export_poisson___save_point_cloud_choices=('True' 'False')
_shtab_tyro_ns_export_poisson___use_bounding_box_choices=('True' 'False')
_shtab_tyro_ns_export_poisson___texture_method_choices=('point_cloud' 'nerf')
_shtab_tyro_ns_export_poisson___unwrap_method_choices=('xatlas' 'custom')
_shtab_tyro_ns_export_marching_cubes___simplify_mesh_choices=('True' 'False')
_shtab_tyro_ns_export_marching_cubes___unwrap_method_choices=('xatlas' 'custom')
_shtab_tyro_ns_export_gaussian_splat___ply_color_mode_choices=('sh_coeffs' 'rgb')

_shtab_tyro_ns_export_pos_0_nargs=A...
_shtab_tyro_ns_export__h_nargs=0
_shtab_tyro_ns_export___help_nargs=0
_shtab_tyro_ns_export_pointcloud__h_nargs=0
_shtab_tyro_ns_export_pointcloud___help_nargs=0
_shtab_tyro_ns_export_pointcloud___obb_center_nargs=3
_shtab_tyro_ns_export_pointcloud___obb_rotation_nargs=3
_shtab_tyro_ns_export_pointcloud___obb_scale_nargs=3
_shtab_tyro_ns_export_tsdf__h_nargs=0
_shtab_tyro_ns_export_tsdf___help_nargs=0
_shtab_tyro_ns_export_tsdf___resolution_nargs=*
_shtab_tyro_ns_export_tsdf___bounding_box_min_nargs=3
_shtab_tyro_ns_export_tsdf___bounding_box_max_nargs=3
_shtab_tyro_ns_export_poisson__h_nargs=0
_shtab_tyro_ns_export_poisson___help_nargs=0
_shtab_tyro_ns_export_poisson___bounding_box_min_nargs=3
_shtab_tyro_ns_export_poisson___bounding_box_max_nargs=3
_shtab_tyro_ns_export_poisson___obb_center_nargs=3
_shtab_tyro_ns_export_poisson___obb_rotation_nargs=3
_shtab_tyro_ns_export_poisson___obb_scale_nargs=3
_shtab_tyro_ns_export_marching_cubes__h_nargs=0
_shtab_tyro_ns_export_marching_cubes___help_nargs=0
_shtab_tyro_ns_export_marching_cubes___bounding_box_min_nargs=3
_shtab_tyro_ns_export_marching_cubes___bounding_box_max_nargs=3
_shtab_tyro_ns_export_cameras__h_nargs=0
_shtab_tyro_ns_export_cameras___help_nargs=0
_shtab_tyro_ns_export_gaussian_splat__h_nargs=0
_shtab_tyro_ns_export_gaussian_splat___help_nargs=0
_shtab_tyro_ns_export_gaussian_splat___obb_center_nargs=3
_shtab_tyro_ns_export_gaussian_splat___obb_rotation_nargs=3
_shtab_tyro_ns_export_gaussian_splat___obb_scale_nargs=3


# $1=COMP_WORDS[1]
_shtab_compgen_files() {
  compgen -f -- $1  # files
}

# $1=COMP_WORDS[1]
_shtab_compgen_dirs() {
  compgen -d -- $1  # recurse into subdirs
}

# $1=COMP_WORDS[1]
_shtab_replace_nonword() {
  echo "${1//[^[:word:]]/_}"
}

# set default values (called for the initial parser & any subparsers)
_set_parser_defaults() {
  local subparsers_var="${prefix}_subparsers[@]"
  sub_parsers=${!subparsers_var-}

  local current_option_strings_var="${prefix}_option_strings[@]"
  current_option_strings=${!current_option_strings_var}

  completed_positional_actions=0

  _set_new_action "pos_${completed_positional_actions}" true
}

# $1=action identifier
# $2=positional action (bool)
# set all identifiers for an action's parameters
_set_new_action() {
  current_action="${prefix}_$(_shtab_replace_nonword $1)"

  local current_action_compgen_var=${current_action}_COMPGEN
  current_action_compgen="${!current_action_compgen_var-}"

  local current_action_choices_var="${current_action}_choices[@]"
  current_action_choices="${!current_action_choices_var-}"

  local current_action_nargs_var="${current_action}_nargs"
  if [ -n "${!current_action_nargs_var-}" ]; then
    current_action_nargs="${!current_action_nargs_var}"
  else
    current_action_nargs=1
  fi

  current_action_args_start_index=$(( $word_index + 1 - $pos_only ))

  current_action_is_positional=$2
}

# Notes:
# `COMPREPLY`: what will be rendered after completion is triggered
# `completing_word`: currently typed word to generate completions for
# `${!var}`: evaluates the content of `var` and expand its content as a variable
#     hello="world"
#     x="hello"
#     ${!x} -> ${hello} -> "world"
_shtab_tyro_ns_export() {
  local completing_word="${COMP_WORDS[COMP_CWORD]}"
  local completed_positional_actions
  local current_action
  local current_action_args_start_index
  local current_action_choices
  local current_action_compgen
  local current_action_is_positional
  local current_action_nargs
  local current_option_strings
  local sub_parsers
  COMPREPLY=()

  local prefix=_shtab_tyro_ns_export
  local word_index=0
  local pos_only=0 # "--" delimeter not encountered yet
  _set_parser_defaults
  word_index=1

  # determine what arguments are appropriate for the current state
  # of the arg parser
  while [ $word_index -ne $COMP_CWORD ]; do
    local this_word="${COMP_WORDS[$word_index]}"

    if [[ $pos_only = 1 || " $this_word " != " -- " ]]; then
      if [[ -n $sub_parsers && " ${sub_parsers[@]} " == *" ${this_word} "* ]]; then
        # valid subcommand: add it to the prefix & reset the current action
        prefix="${prefix}_$(_shtab_replace_nonword $this_word)"
        _set_parser_defaults
      fi

      if [[ " ${current_option_strings[@]} " == *" ${this_word} "* ]]; then
        # a new action should be acquired (due to recognised option string or
        # no more input expected from current action);
        # the next positional action can fill in here
        _set_new_action $this_word false
      fi

      if [[ "$current_action_nargs" != "*" ]] && \
         [[ "$current_action_nargs" != "+" ]] && \
         [[ "$current_action_nargs" != *"..." ]] && \
         (( $word_index + 1 - $current_action_args_start_index - $pos_only >= \
            $current_action_nargs )); then
        $current_action_is_positional && let "completed_positional_actions += 1"
        _set_new_action "pos_${completed_positional_actions}" true
      fi
    else
      pos_only=1 # "--" delimeter encountered
    fi

    let "word_index+=1"
  done

  # Generate the completions

  if [[ $pos_only = 0 && "${completing_word}" == -* ]]; then
    # optional argument started: use option strings
    COMPREPLY=( $(compgen -W "${current_option_strings[*]}" -- "${completing_word}") )
  else
    # use choices & compgen
    local IFS=$'\n' # items may contain spaces, so delimit using newline
    COMPREPLY=( $([ -n "${current_action_compgen}" ] \
                  && "${current_action_compgen}" "${completing_word}") )
    unset IFS
    COMPREPLY+=( $(compgen -W "${current_action_choices[*]}" -- "${completing_word}") )
  fi

  return 0
}

complete -o filenames -F _shtab_tyro_ns_export ns-export
