20 [[nodiscard]]
static std::string
GetSplashScreen(
const std::string &build_type =
"RELEASE",
21 const std::string &version =
"0.1.0") {
24################################################################################
26# ██╗ ██████╗ █████╗ ██████╗ ██╗ ██╗███████╗ #
27# ██║██╔════╝██╔══██╗██╔══██╗██║ ██║██╔════╝ #
28# ██║██║ ███████║██████╔╝██║ ██║███████╗ #
29# ██║██║ ██╔══██║██╔══██╗██║ ██║╚════██║ #
30# ██║╚██████╗██║ ██║██║ ██║╚██████╔╝███████║ #
31# ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ #
33# 6DOF FLIGHT DYNAMICS ENGINE | BUILD: )" + PadRight(build_type, 7) + " | VER: " + PadRight(version, 7) + R
"( #
34################################################################################
40 [[nodiscard]]
static std::string
GetLifecycleHeader(
const std::string &lifecycle_name) {
41 std::string header =
"─── [ LIFECYCLE: " + lifecycle_name +
" ] ";
42 std::size_t remaining = (header.size() < 80) ? (80 - header.size()) : 0;
43 for (std::size_t i = 0; i < remaining; ++i) {
52================================================================================
54================================================================================)";
58 [[nodiscard]]
static std::string
GetRule(
int width = 80,
char c =
'=') {
59 return std::string(
static_cast<std::size_t
>(width), c);
63 [[nodiscard]]
static std::string
GetDoubleRule(
int width = 80) {
65 for (
int i = 0; i < width; ++i) {
72 [[nodiscard]]
static std::string
GetSectionHeader(
const std::string &title) {
73 std::string header =
"─── [ " + title +
" ] ";
74 std::size_t remaining = (header.size() < 80) ? (80 - header.size()) : 0;
75 for (std::size_t i = 0; i < remaining; ++i) {
82 [[nodiscard]]
static std::string PadRight(
const std::string &s, std::size_t width) {
83 if (s.size() >= width) {
86 return s + std::string(width - s.size(),
' ');
ASCII art banners and headers.
Definition Banner.hpp:17
static std::string GetDoubleRule(int width=80)
Get double-line rule.
Definition Banner.hpp:48
static std::string GetSectionHeader(const std::string &title)
Get section header (for data dictionary, etc.).
Definition Banner.hpp:57
static std::string GetLifecycleHeader(const std::string &lifecycle_name)
Get a section header.
Definition Banner.hpp:28
static std::string GetSplashScreen(const std::string &build_type="RELEASE", const std::string &version="0.1.0")
Get the main Icarus splash screen (ASCII art logo).
Definition Banner.hpp:20
static std::string GetDebriefHeader()
Get the mission debrief header.
Definition Banner.hpp:38
static std::string GetRule(int width=80, char c='=')
Get horizontal rule.
Definition Banner.hpp:43
Definition AggregationTypes.hpp:13