// File: /workspace/github_cpp_makefile_star2_O2/knei-knurow[P]lidar-visualizations/src/app.cpp
// Function: App::print_help()
void App::print_help() {
  std::cout << "-----------------------------------------------------------\n"
            << "Lidar Visualizations\n"
            << "-----------------------------------------------------------\n"
            << "Source: https://github.com/knei-knurow/lidar-visualizations\n"
            << "\n"
            << "Usage:\n"
            << "\tlidar [options]\n"
            << "\n"
            << "Options:\n"
            << "\tInput (required):\n"
            << "\t-f  --file [filename]        Input cloud filename\n"
            << "\t-fs --file-series [filename] Input cloud series filename\n"
#ifdef USING_RPLIDAR
            << "\t-p  --port [portname]        Input RPLIDAR port\n"
#endif
            << "\n"
            << "\tGeneral:\n"
            << "\t-h  --help                   Display help\n"
            << "\t-o  --output-dir [dirname]   Output dir:\n"
            << "\t-s  --scenario [id]          Specify scenario (default: 0)\n"
            << "\t-g  --gui [id]               Specity GUI (default: 1)\n"
#ifdef USING_RPLIDAR
            << "\n"
            << "\tRPLIDAR options:\n"
            << "\t-m  --rplidar-mode [id]        RPLIDAR scanning mode (default: 4)\n"
            << "\t-r  --rpm                      RPLIDAR revolutions per minute (default: 660, "
               "min: 170, max: 1023)\n"
#endif
#ifdef USING_SFML
            << "\n"
            << "\tSFML GUI options:\n"
            << "\t-H  --height [val]             Window height (defualt: 1280)\n"
            << "\t-W  --width [val]              Window width (defualt: 720)\n"
            << "\t-C  --colormap [id]            Colormap (0, 1)\n"
            << "\t-M  --ptr-mode [id]            Points display mode (0, 1, 2)\n"
            << "\t-B  --bold                     Larger points\n"
            << "\t-S  --scale [scale]            Scale (1mm -> 1px for scale = 1.0)\n"
#endif
            << "\n"
            << "Scenarios:\n"
            << "\t0    Do nothing, just grab a cloudand visualize (default)\n"
            << "\t1    Save each cloud as a part of cloud series\n"
            << "\t2    Save each cloud as a new screenshot (extremely unoptimized)\n"
            << "\n"
            << "GUIs:\n"
            << "\t0    Terminal GUI - prints data as a list of points on stdout\n"
#ifdef USING_SFML
            << "\t1    SFML GUI - default, the most beautiful one from the gallery\n"
#endif
#ifdef USING_RPLIDAR
            << "\n"
            << "RPLIDAR modes:\n"
            << "\t0    Standard\n"
            << "\t1    Express\n"
            << "\t2    Boost\n"
            << "\t3    Sensitivity (default)\n"
            << "\t4    Stability\n"
#endif
#ifdef USING_SFML
            << "\n"
            << "SFML GUI Keyboard Shortcuts:\n"
            << "\tT                 Save cloud to a .txt file\n"
            << "\tS                 Save screenshot\n"
            << "\tArrows            Move cloud\n"
            << "\tMoude scroll      Scale cloud\n"
            << "\tMouse middle      Reset position, autoscale cloud\n"
            << "\tC                 Switch colormap\n"
            << "\tM                 Switch points display mode\n"
#endif
            << "";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq 0x7a8f(%rip), %rdi      # 0xbfd0
leaq 0x3b00(%rip), %rbx      # 0x8048
movq %rbx, %rsi
callq 0x3290
leaq 0x3b2e(%rip), %rsi      # 0x8085
movq %rax, %rdi
callq 0x3290
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3290
leaq 0x3b2a(%rip), %rsi      # 0x809b
movq %rax, %rdi
callq 0x3290
leaq 0x3c9c(%rip), %rbx      # 0x821c
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3290
leaq 0x3b46(%rip), %rsi      # 0x80d8
movq %rax, %rdi
callq 0x3290
leaq 0x3b3f(%rip), %rsi      # 0x80e0
movq %rax, %rdi
callq 0x3290
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3290
leaq 0x3b37(%rip), %rsi      # 0x80f2
movq %rax, %rdi
callq 0x3290
leaq 0x3b32(%rip), %rsi      # 0x80fc
movq %rax, %rdi
callq 0x3290
leaq 0x3b37(%rip), %rsi      # 0x8110
movq %rax, %rdi
callq 0x3290
leaq 0x3b5c(%rip), %rsi      # 0x8144
movq %rax, %rdi
callq 0x3290
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3290
leaq 0x3b7d(%rip), %rsi      # 0x817f
movq %rax, %rdi
callq 0x3290
leaq 0x3b79(%rip), %rsi      # 0x818a
movq %rax, %rdi
callq 0x3290
leaq 0x3b96(%rip), %rsi      # 0x81b6
movq %rax, %rdi
callq 0x3290
leaq 0x3bb2(%rip), %rsi      # 0x81e1
movq %rax, %rdi
callq 0x3290
leaq 0x3be0(%rip), %rsi      # 0x821e
movq %rax, %rdi
callq 0x3290
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3290
leaq 0x3bfe(%rip), %rsi      # 0x8256
movq %rax, %rdi
callq 0x3290
leaq 0x3bfb(%rip), %rsi      # 0x8262
movq %rax, %rdi
callq 0x3290
leaq 0x3c28(%rip), %rsi      # 0x829e
movq %rax, %rdi
callq 0x3290
leaq 0x3c4a(%rip), %rsi      # 0x82cf
movq %rax, %rdi
callq 0x3290
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3290
leaq 0x3c73(%rip), %rsi      # 0x8312
movq %rax, %rdi
callq 0x3290
leaq 0x3c6b(%rip), %rsi      # 0x8319
movq %rax, %rdi
callq 0x3290
leaq 0x421e(%rip), %rsi      # 0x88db
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x3290
nop