struct Cli


struct Cli
    // fields

    TCLAP::CmdLine cmd {"kitti-metrics-eval"};
    TCLAP::ValueArg<std::string> arg_kitti_basedir {         "k",         "kitti-basedir",         "Path to the kitti datasets. Overrides to the default, which is "         "reading "         "the env var `KITTI_BASE_DIR`.",         false,         "",         "",         cmd};
    TCLAP::ValueArg<std::string> arg_result_path {         "r",         "result-tum-path",         "File to evaluate, in TUM format",         true,         "result.txt|result_%02i.txt",         "result.txt",         cmd};
    TCLAP::ValueArg<std::string> argSavePathKittiFormat {         "",         "save-as-kitti",         "If given, will transform the input path from the LIDAR frame to the "         "cam0 "         "frame and save the path to a TXT file in the format expected by KITTI "         "dev "         "kit.",         false,         "result.kitti",         "result.kitti",         cmd};
    TCLAP::MultiArg<int> arg_seq {         "s",         "sequence",         "The sequence number of the path{s} file{s} to evaluate, used to find "         "out "         "GT and calibration files for the Kitti dataset.",         false,         "01",         cmd};
    TCLAP::ValueArg<std::string> arg_override_gt_file {         "",         "gt-tum-path",         "If provided, the --sequence flag will be ignored and this particular "         "file "         "in TUM format will be read and used as ground truth to compare "         "against "         "the resulting odometry path.",         false,         "trajectory_gt.txt",         "trajectory_gt.txt",         cmd};
    TCLAP::SwitchArg argSkipFigures {         "", "no-figures", "Skip generating the error figures", cmd};
    TCLAP::SwitchArg argResultInKittiFormat {         "", "result-in-kitti-format",         "Use to read solution trajectory files in KITTI(4*3 elements per row) "         "format instead of in TUM format",         cmd};
    std::string kitti_basedir;
    TCLAP::UnlabeledValueArg<std::string> arg_yaml_cfg {         "config",         "Input YAML config file(required)(*.yaml)",         false,         "",         "mola-system.yaml",         cmd};
    TCLAP::ValueArg<std::string> arg_verbosity_level {         "v",         "verbosity",         "Verbosity level: ERROR|WARN|INFO|DEBUG(Default: INFO)",         false,         "",         "INFO",         cmd};
    TCLAP::SwitchArg arg_enable_profiler {         "p", "profiler",         "Enable time profiler by default in all modules(Default: NO)", cmd};
    TCLAP::SwitchArg arg_enable_profiler_whole {         "", "profiler-whole",         "Enable whole-history time profiler in all modules(Default: NO).**DO "         "NOT** use in production, only to benchmark short runs(unbounded "         "memory "         "usage)",         cmd};
    TCLAP::SwitchArg arg_rtti_list_all {         "", "rtti-list-all",         "Loads all MOLA modules, then list all classes registered via "         "mrpt::rtti, "         "and exits.",         cmd};
    TCLAP::ValueArg<std::string> arg_rtti_list_children {         "",         "rtti-children-of",         "Loads all MOLA modules, then list all known classes that inherit from "         "the "         "given one, and exits.",         false,         "",         "mp2p_icp::ICP_Base",         cmd};
    TCLAP::SwitchArg arg_list_modules {         "", "list-modules",         "Loads all MOLA modules, then list them. It also shows the list of "         "paths "         "in which the program looks for module dynamic libraries, then exits.",         cmd};
    TCLAP::SwitchArg arg_list_module_shared_dirs {         "", "list-module-shared-dirs",         "Finds all MOLA module source/shared directories, then list them. "         "Paths "         "can be added with the environment variable MOLA_MODULES_SHARED_PATH.",         cmd};
    TCLAP::SwitchArg arg_ros_args {         "", "ros-args",         "Dummy flag, defined just to allow the program invocation from ROS 2 "         "launch files.",         cmd};