// File: 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
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0x1630d(%rip), %rdi     # 0x1cfd0
leaq 0xc3a2(%rip), %rsi      # 0x1306c
callq 0x4360
movq %rax, %rdi
leaq 0xc3d0(%rip), %rsi      # 0x130a9
callq 0x4360
movq %rax, %rdi
leaq 0xc384(%rip), %rsi      # 0x1306c
callq 0x4360
movq %rax, %rdi
leaq 0xc3c8(%rip), %rsi      # 0x130bf
callq 0x4360
movq %rax, %rdi
leaq 0xc53a(%rip), %rsi      # 0x13240
callq 0x4360
movq %rax, %rdi
leaq 0xc3e7(%rip), %rsi      # 0x130fc
callq 0x4360
movq %rax, %rdi
leaq 0xc3e0(%rip), %rsi      # 0x13104
callq 0x4360
movq %rax, %rdi
leaq 0xc50d(%rip), %rsi      # 0x13240
callq 0x4360
movq %rax, %rdi
leaq 0xc3d4(%rip), %rsi      # 0x13116
callq 0x4360
movq %rax, %rdi
leaq 0xc3cf(%rip), %rsi      # 0x13120
callq 0x4360
movq %rax, %rdi
leaq 0xc3d4(%rip), %rsi      # 0x13134
callq 0x4360
movq %rax, %rdi
leaq 0xc3f9(%rip), %rsi      # 0x13168
callq 0x4360
movq %rax, %rdi
leaq 0xc4c2(%rip), %rsi      # 0x13240
callq 0x4360
movq %rax, %rdi
leaq 0xc416(%rip), %rsi      # 0x131a3
callq 0x4360
movq %rax, %rdi
leaq 0xc412(%rip), %rsi      # 0x131ae
callq 0x4360
movq %rax, %rdi
leaq 0xc42f(%rip), %rsi      # 0x131da
callq 0x4360
movq %rax, %rdi
leaq 0xc44b(%rip), %rsi      # 0x13205
callq 0x4360
movq %rax, %rdi
leaq 0xc479(%rip), %rsi      # 0x13242
callq 0x4360
movq %rax, %rdi
leaq 0xc468(%rip), %rsi      # 0x13240
callq 0x4360
movq %rax, %rdi
leaq 0xc493(%rip), %rsi      # 0x1327a
callq 0x4360
movq %rax, %rdi
leaq 0xc490(%rip), %rsi      # 0x13286
callq 0x4360
movq %rax, %rdi
leaq 0xc4bd(%rip), %rsi      # 0x132c2
callq 0x4360
movq %rax, %rdi
leaq 0xc4df(%rip), %rsi      # 0x132f3
callq 0x4360
movq %rax, %rdi
leaq 0xc41d(%rip), %rsi      # 0x13240
callq 0x4360
movq %rax, %rdi
leaq 0xc504(%rip), %rsi      # 0x13336
callq 0x4360
movq %rax, %rdi
leaq 0xc4fc(%rip), %rsi      # 0x1333d
callq 0x4360
movq %rax, %rdi
leaq 0xcaab(%rip), %rsi      # 0x138fb
callq 0x4360
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)