diff --git a/.clang-format b/.clang-format index 83cf6f6..028657c 100644 --- a/.clang-format +++ b/.clang-format @@ -5,7 +5,6 @@ Language: Cpp DerivePointerAlignment: false PointerAlignment: Left AccessModifierOffset: -4 -AlignAfterOpenBracket: AlwaysBreak AlignConsecutiveAssignments: false AlignEscapedNewlines: DontAlign AllowShortBlocksOnASingleLine: false @@ -27,7 +26,7 @@ BinPackArguments: false BinPackParameters: false ExperimentalAutoDetectBinPacking: false AllowAllParametersOfDeclarationOnNextLine: false - +AlignAfterOpenBracket: BlockIndent # AlwaysBreakAfterDefinitionReturnType: All BraceWrapping: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dddf46f..47ec925 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Basic GitHub action setup - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set conda environment uses: mamba-org/provision-with-micromamba@main diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 09992ad..3e1c426 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Basic GitHub action setup - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 9035d06..a3e22ca 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -9,6 +9,6 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions/setup-python@v2 - uses: pre-commit/action@v2.0.3 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6e998f6..8c6ced2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,18 +1,18 @@ repos: - repo: https://github.com/psf/black - rev: 22.3.0 + rev: 23.3.0 hooks: - id: black args: [--safe, --quiet, --line-length=100] - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 + rev: v4.4.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: debug-statements - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.3.0 + rev: v2.8.0 hooks: - id: pretty-format-yaml args: [--autofix, --indent, '2'] @@ -22,25 +22,34 @@ repos: - id: autoflake args: [--in-place, --remove-unused-variable, --remove-all-unused-imports] - repo: https://github.com/asottile/reorder_python_imports - rev: v3.1.0 + rev: v3.9.0 hooks: - id: reorder-python-imports - repo: https://github.com/asottile/pyupgrade - rev: v2.34.0 + rev: v3.3.1 hooks: - id: pyupgrade args: [--py36-plus] - repo: https://github.com/PyCQA/flake8 - rev: 4.0.1 + rev: 6.0.0 hooks: - id: flake8 args: [--max-line-length=100] - repo: https://github.com/asottile/setup-cfg-fmt - rev: v1.20.1 + rev: v2.2.0 hooks: - id: setup-cfg-fmt -- repo: https://github.com/pocc/pre-commit-hooks - rev: v1.3.5 +- repo: https://github.com/tdegeus/cpp_comment_format + rev: v0.2.0 + hooks: + - id: cpp_comment_format +- repo: https://github.com/pre-commit/mirrors-clang-format + rev: v16.0.0 hooks: - id: clang-format args: [-i] +- repo: https://github.com/tdegeus/conda_envfile + rev: v0.4.2 + hooks: + - id: conda_envfile_parse + files: environment.yaml diff --git a/CMakeLists.txt b/CMakeLists.txt index e312cec..d4b55af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ option(BUILD_ALL "${PROJECT_NAME}: Build tests, Python API & docs" OFF) option(BUILD_TESTS "${PROJECT_NAME}: Build tests" OFF) option(BUILD_EXAMPLES "${PROJECT_NAME}: Build examples" OFF) option(BUILD_PYTHON "${PROJECT_NAME}: Build Python API" OFF) -option(BUILD_DOCS "${PROJECT_NAME}: Build docs" OFF) +option(BUILD_DOCS "${PROJECT_NAME}: Build docs (use `make html`)" OFF) if(SKBUILD) set(BUILD_ALL 0) @@ -186,13 +186,9 @@ if(BUILD_DOCS OR BUILD_ALL) set(DOXYGEN_QUIET YES) set(DOXYGEN_WARN_IF_UNDOCUMENTED YES) set(DOXYGEN_WARN_AS_ERROR YES) + set(DOXYGEN_HTML_COLORSTYLE TOGGLE) set(DOXYGEN_ALIASES "license=@par License:") set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "README.md") - - set(DOXYGEN_HTML_EXTRA_STYLESHEET - "${CMAKE_CURRENT_SOURCE_DIR}/docs/doxystyle/doxygen-awesome.css" - "${CMAKE_CURRENT_SOURCE_DIR}/docs/doxystyle/custom.css") - set(DOXYGEN_STRIP_FROM_INC_PATH "${CMAKE_CURRENT_SOURCE_DIR}/include") set(DOXYGEN_STRIP_FROM_PATH "${CMAKE_CURRENT_SOURCE_DIR}/include") doxygen_add_docs(html "${CMAKE_CURRENT_SOURCE_DIR}/include" "README.md") diff --git a/cppcolormap.pc.in b/cppcolormap.pc.in index f916907..b5c3af5 100644 --- a/cppcolormap.pc.in +++ b/cppcolormap.pc.in @@ -3,5 +3,5 @@ includedir=${prefix}/include Name: @PROJECT_NAME@ Description: Colormaps for C++. -Version: @CPPCOLORMAP_VERSION@ +Version: @PROJECT_VERSION@ Cflags: -I${includedir} diff --git a/docs/doxystyle/custom.css b/docs/doxystyle/custom.css deleted file mode 100644 index 3fef52d..0000000 --- a/docs/doxystyle/custom.css +++ /dev/null @@ -1,3 +0,0 @@ -:root { - --content-maxwidth: auto; -} diff --git a/docs/doxystyle/doxygen-awesome-darkmode-toggle.js b/docs/doxystyle/doxygen-awesome-darkmode-toggle.js deleted file mode 100644 index f988b8a..0000000 --- a/docs/doxystyle/doxygen-awesome-darkmode-toggle.js +++ /dev/null @@ -1,115 +0,0 @@ -/** - -Doxygen Awesome -https://github.com/jothepro/doxygen-awesome-css - -MIT License - -Copyright (c) 2021 jothepro - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -*/ - -class DoxygenAwesomeDarkModeToggle extends HTMLElement { - static prefersLightModeInDarkModeKey = "prefers-light-mode-in-dark-mode" - static prefersDarkModeInLightModeKey = "prefers-dark-mode-in-light-mode" - - static _staticConstructor = function() { - DoxygenAwesomeDarkModeToggle.darkModeEnabled = DoxygenAwesomeDarkModeToggle.userPreference - DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.darkModeEnabled) - // Update the color scheme when the browsers preference changes - // without user interaction on the website. - window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { - DoxygenAwesomeDarkModeToggle.onSystemPreferenceChanged() - }) - // Update the color scheme when the tab is made visible again. - // It is possible that the appearance was changed in another tab - // while this tab was in the background. - document.addEventListener("visibilitychange", visibilityState => { - if (document.visibilityState === 'visible') { - DoxygenAwesomeDarkModeToggle.onSystemPreferenceChanged() - } - }); - }() - - constructor() { - super(); - this.onclick=this.toggleDarkMode - } - - /** - * @returns `true` for dark-mode, `false` for light-mode system preference - */ - static get systemPreference() { - return window.matchMedia('(prefers-color-scheme: dark)').matches - } - - /** - * @returns `true` for dark-mode, `false` for light-mode user preference - */ - static get userPreference() { - return (!DoxygenAwesomeDarkModeToggle.systemPreference && localStorage.getItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey)) || - (DoxygenAwesomeDarkModeToggle.systemPreference && !localStorage.getItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey)) - } - - static set userPreference(userPreference) { - DoxygenAwesomeDarkModeToggle.darkModeEnabled = userPreference - if(!userPreference) { - if(DoxygenAwesomeDarkModeToggle.systemPreference) { - localStorage.setItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey, true) - } else { - localStorage.removeItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey) - } - } else { - if(!DoxygenAwesomeDarkModeToggle.systemPreference) { - localStorage.setItem(DoxygenAwesomeDarkModeToggle.prefersDarkModeInLightModeKey, true) - } else { - localStorage.removeItem(DoxygenAwesomeDarkModeToggle.prefersLightModeInDarkModeKey) - } - } - DoxygenAwesomeDarkModeToggle.onUserPreferenceChanged() - } - - static enableDarkMode(enable) { - let head = document.getElementsByTagName('head')[0] - if(enable) { - document.documentElement.classList.add("dark-mode") - document.documentElement.classList.remove("light-mode") - } else { - document.documentElement.classList.remove("dark-mode") - document.documentElement.classList.add("light-mode") - } - } - - static onSystemPreferenceChanged() { - DoxygenAwesomeDarkModeToggle.darkModeEnabled = DoxygenAwesomeDarkModeToggle.userPreference - DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.darkModeEnabled) - } - - static onUserPreferenceChanged() { - DoxygenAwesomeDarkModeToggle.enableDarkMode(DoxygenAwesomeDarkModeToggle.darkModeEnabled) - } - - toggleDarkMode() { - DoxygenAwesomeDarkModeToggle.userPreference = !DoxygenAwesomeDarkModeToggle.userPreference - } -} - -customElements.define("doxygen-awesome-dark-mode-toggle", DoxygenAwesomeDarkModeToggle); diff --git a/docs/doxystyle/doxygen-awesome-fancy-scrollbars.css b/docs/doxystyle/doxygen-awesome-fancy-scrollbars.css deleted file mode 100644 index 2a6d388..0000000 --- a/docs/doxystyle/doxygen-awesome-fancy-scrollbars.css +++ /dev/null @@ -1,86 +0,0 @@ -/** - -Doxygen Awesome -https://github.com/jothepro/doxygen-awesome-css - -MIT License - -Copyright (c) 2022 jothepro - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -*/ - -/* - Scrollbars for Webkit -*/ - -html { - --webkit-scrollbar-size: 7px; - --webkit-scrollbar-padding: 4px; - --webkit-scrollbar-color: var(--separator-color); -} - -#nav-tree::-webkit-scrollbar, -div.fragment::-webkit-scrollbar, -pre.fragment::-webkit-scrollbar, -div.memproto::-webkit-scrollbar, -.contents center::-webkit-scrollbar { - width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); - height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); -} - -#nav-tree::-webkit-scrollbar-thumb, -div.fragment::-webkit-scrollbar-thumb, -pre.fragment::-webkit-scrollbar-thumb, -div.memproto::-webkit-scrollbar-thumb, -.contents center::-webkit-scrollbar-thumb { - background-color: transparent; - border: var(--webkit-scrollbar-padding) solid transparent; - border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); - background-clip: padding-box; -} - -#nav-tree:hover::-webkit-scrollbar-thumb, -div.fragment:hover::-webkit-scrollbar-thumb, -pre.fragment:hover::-webkit-scrollbar-thumb, -div.memproto:hover::-webkit-scrollbar-thumb, -.contents center:hover::-webkit-scrollbar-thumb { - background-color: var(--webkit-scrollbar-color); -} - -#nav-tree::-webkit-scrollbar-track, -div.fragment::-webkit-scrollbar-track, -pre.fragment::-webkit-scrollbar-track, -div.memproto::-webkit-scrollbar-track, -.contents center::-webkit-scrollbar-track { - background: transparent; -} - -#nav-tree, div.fragment, pre.fragment, div.memproto, .contents center { - overflow-x: overlay; -} - -/* - Scrollbars for Firefox -*/ - -#nav-tree, div.fragment, pre.fragment, div.memproto, .contents center { - scrollbar-width: thin; -} diff --git a/docs/doxystyle/doxygen-awesome-sidebar-only-darkmode-toggle.css b/docs/doxystyle/doxygen-awesome-sidebar-only-darkmode-toggle.css deleted file mode 100644 index b988b6f..0000000 --- a/docs/doxystyle/doxygen-awesome-sidebar-only-darkmode-toggle.css +++ /dev/null @@ -1,40 +0,0 @@ - -/** - -Doxygen Awesome -https://github.com/jothepro/doxygen-awesome-css - -MIT License - -Copyright (c) 2021 jothepro - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -*/ - -@media screen and (min-width: 768px) { - - #MSearchBox { - width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - var(--searchbar-height) - 1px); - } - - #MSearchField { - width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 66px - var(--searchbar-height)); - } -} diff --git a/docs/doxystyle/doxygen-awesome-sidebar-only.css b/docs/doxystyle/doxygen-awesome-sidebar-only.css deleted file mode 100644 index 655a90c..0000000 --- a/docs/doxystyle/doxygen-awesome-sidebar-only.css +++ /dev/null @@ -1,108 +0,0 @@ -/** - -Doxygen Awesome -https://github.com/jothepro/doxygen-awesome-css - -MIT License - -Copyright (c) 2021 jothepro - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - */ - -html { - /* side nav width. MUST be = `TREEVIEW_WIDTH`. - * Make sure it is wide enought to contain the page title (logo + title + version) - */ - --side-nav-fixed-width: 340px; - --menu-display: none; - - --top-height: 120px; -} - - -@media screen and (min-width: 768px) { - html { - --searchbar-background: var(--page-background-color); - } - - #side-nav { - min-width: var(--side-nav-fixed-width); - max-width: var(--side-nav-fixed-width); - top: var(--top-height); - overflow: visible; - } - - #nav-tree, #side-nav { - height: calc(100vh - var(--top-height)) !important; - } - - #nav-tree { - padding: 0; - } - - #top { - display: block; - border-bottom: none; - height: var(--top-height); - margin-bottom: calc(0px - var(--top-height)); - max-width: var(--side-nav-fixed-width); - background: var(--side-nav-background); - } - #main-nav { - float: left; - padding-right: 0; - } - - .ui-resizable-handle { - cursor: default; - width: 1px !important; - box-shadow: 0 calc(-2 * var(--top-height)) 0 0 var(--separator-color); - } - - #nav-path { - position: fixed; - right: 0; - left: var(--side-nav-fixed-width); - bottom: 0; - width: auto; - } - - #doc-content { - height: calc(100vh - 31px) !important; - padding-bottom: calc(3 * var(--spacing-large)); - padding-top: calc(var(--top-height) - 80px); - box-sizing: border-box; - margin-left: var(--side-nav-fixed-width) !important; - } - - #MSearchBox { - width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium))); - } - - #MSearchField { - width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 65px); - } - - #MSearchResultsWindow { - left: var(--spacing-medium) !important; - right: auto; - } -} diff --git a/docs/doxystyle/doxygen-awesome.css b/docs/doxystyle/doxygen-awesome.css deleted file mode 100644 index 05b67a7..0000000 --- a/docs/doxystyle/doxygen-awesome.css +++ /dev/null @@ -1,1561 +0,0 @@ -/** - -Doxygen Awesome -https://github.com/jothepro/doxygen-awesome-css - -MIT License - -Copyright (c) 2021 - 2022 jothepro - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -*/ - -html { - /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ - --primary-color: #1779c4; - --primary-dark-color: #00559f; - --primary-light-color: #7aabd6; - --primary-lighter-color: #cae1f1; - --primary-lightest-color: #e9f1f8; - - /* page base colors */ - --page-background-color: white; - --page-foreground-color: #2c3e50; - --page-secondary-foreground-color: #67727e; - - /* color for all separators on the website: hr, borders, ... */ - --separator-color: #dedede; - - /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */ - --border-radius-large: 8px; - --border-radius-small: 4px; - --border-radius-medium: 6px; - - /* default spacings. Most compontest reference these values for spacing, to provide uniform spacing on the page. */ - --spacing-small: 5px; - --spacing-medium: 10px; - --spacing-large: 16px; - - /* default box shadow used for raising an element above the normal content. Used in dropdowns, Searchresult, ... */ - --box-shadow: 0 2px 10px 0 rgba(0,0,0,.1); - - --odd-color: rgba(0,0,0,.028); - - /* font-families. will affect all text on the website - * font-family: the normal font for text, headlines, menus - * font-family-monospace: used for preformatted text in memtitle, code, fragments - */ - --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif; - --font-family-monospace: source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace; - - /* font sizes */ - --page-font-size: 15.6px; - --navigation-font-size: 14.4px; - --code-font-size: 14.4px; /* affects code, fragment */ - --title-font-size: 22px; - - /* content text properties. These only affect the page content, not the navigation or any other ui elements */ - --content-line-height: 27px; - /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/ - --content-maxwidth: 1000px; - - /* colors for various content boxes: @warning, @note, @deprecated @bug */ - --warning-color: #fca49b; - --warning-color-dark: #b61825; - --warning-color-darker: #75070f; - --note-color: rgba(255,229,100,.3); - --note-color-dark: #c39900; - --note-color-darker: #8d7400; - --todo-color: rgba(100,160,200,.3); - --todo-color-dark: #00C0E0; - --todo-color-darker: #274a5c; - --deprecated-color: rgb(214, 216, 224); - --deprecated-color-dark: #5b6269; - --deprecated-color-darker: #43454a; - --bug-color: rgb(246, 208, 178); - --bug-color-dark: #a53a00; - --bug-color-darker: #5b1d00; - --invariant-color: #b7f8d0; - --invariant-color-dark: #00ba44; - --invariant-color-darker: #008622; - - /* blockquote colors */ - --blockquote-background: #f5f5f5; - --blockquote-foreground: #727272; - - /* table colors */ - --tablehead-background: #f1f1f1; - --tablehead-foreground: var(--page-foreground-color); - - /* menu-display: block | none - * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible. - * `GENERATE_TREEVIEW` MUST be enabled! - */ - --menu-display: block; - - --menu-focus-foreground: var(--page-background-color); - --menu-focus-background: var(--primary-color); - --menu-selected-background: rgba(0,0,0,.05); - - - --header-background: var(--page-background-color); - --header-foreground: var(--page-foreground-color); - - /* searchbar colors */ - --searchbar-background: var(--side-nav-background); - --searchbar-foreground: var(--page-foreground-color); - - /* searchbar size - * (`searchbar-width` is only applied on screens >= 768px. - * on smaller screens the searchbar will always fill the entire screen width) */ - --searchbar-height: 33px; - --searchbar-width: 210px; - - /* code block colors */ - --code-background: #f5f5f5; - --code-foreground: var(--page-foreground-color); - - /* fragment colors */ - --fragment-background: #282c34; - --fragment-foreground: #ffffff; - --fragment-keyword: #cc99cd; - --fragment-keywordtype: #ab99cd; - --fragment-keywordflow: #e08000; - --fragment-token: #7ec699; - --fragment-comment: #999999; - --fragment-link: #98c0e3; - --fragment-preprocessor: #65cabe; - --fragment-linenumber-color: #cccccc; - --fragment-linenumber-background: #35393c; - --fragment-linenumber-border: #1f1f1f; - --fragment-lineheight: 20px; - - /* sidebar navigation (treeview) colors */ - --side-nav-background: #fbfbfb; - --side-nav-foreground: var(--page-foreground-color); - --side-nav-arrow-opacity: 0; - --side-nav-arrow-hover-opacity: 0.9; - - --toc-background: var(--side-nav-background); - --toc-foreground: var(--side-nav-foreground); - - /* height of an item in any tree / collapsable table */ - --tree-item-height: 30px; - - --darkmode-toggle-button-icon: '☀️'; - --memname-font-size: var(--page-font-size); -} - -@media screen and (max-width: 767px) { - html { - --page-font-size: 16px; - --navigation-font-size: 16px; - --code-font-size: 15px; /* affects code, fragment */ - --title-font-size: 22px; - } -} - -@media (prefers-color-scheme: dark) { - html:not(.light-mode) { - color-scheme: dark; - - --primary-color: #1982d2; - --primary-dark-color: #5ca8e2; - --primary-light-color: #4779ac; - --primary-lighter-color: #191e21; - --primary-lightest-color: #191a1c; - - --box-shadow: 0 2px 10px 0 rgba(0,0,0,.35); - - --odd-color: rgba(100,100,100,.06); - - --menu-selected-background: rgba(0,0,0,.4); - - --page-background-color: #1C1D1F; - --page-foreground-color: #d2dbde; - --page-secondary-foreground-color: #859399; - --separator-color: #000000; - --side-nav-background: #252628; - - --code-background: #2a2c2f; - - --tablehead-background: #2a2c2f; - - --blockquote-background: #1f2022; - --blockquote-foreground: #77848a; - - --warning-color: #b61825; - --warning-color-dark: #510a02; - --warning-color-darker: #f5b1aa; - --note-color: rgb(255, 183, 0); - --note-color-dark: #9f7300; - --note-color-darker: #645b39; - --todo-color: rgba(100,160,200,.3); - --todo-color-dark: #00C0E0; - --todo-color-darker: #dcf0fa; - --deprecated-color: rgb(88, 90, 96); - --deprecated-color-dark: #262e37; - --deprecated-color-darker: #a0a5b0; - --bug-color: rgb(248, 113, 0); - --bug-color-dark: #812a00; - --bug-color-darker: #ffd3be; - - --darkmode-toggle-button-icon: '🌛'; - } -} - -/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */ -html.dark-mode { - color-scheme: dark; - - --primary-color: #1982d2; - --primary-dark-color: #5ca8e2; - --primary-light-color: #4779ac; - --primary-lighter-color: #191e21; - --primary-lightest-color: #191a1c; - - --box-shadow: 0 2px 10px 0 rgba(0,0,0,.35); - - --odd-color: rgba(100,100,100,.06); - - --menu-selected-background: rgba(0,0,0,.4); - - --page-background-color: #1C1D1F; - --page-foreground-color: #d2dbde; - --page-secondary-foreground-color: #859399; - --separator-color: #000000; - --side-nav-background: #252628; - - --code-background: #2a2c2f; - - --tablehead-background: #2a2c2f; - - --blockquote-background: #1f2022; - --blockquote-foreground: #77848a; - - --warning-color: #b61825; - --warning-color-dark: #510a02; - --warning-color-darker: #f5b1aa; - --note-color: rgb(255, 183, 0); - --note-color-dark: #9f7300; - --note-color-darker: #645b39; - --todo-color: rgba(100,160,200,.3); - --todo-color-dark: #00C0E0; - --todo-color-darker: #dcf0fa; - --deprecated-color: rgb(88, 90, 96); - --deprecated-color-dark: #262e37; - --deprecated-color-darker: #a0a5b0; - --bug-color: rgb(248, 113, 0); - --bug-color-dark: #812a00; - --bug-color-darker: #ffd3be; - - --darkmode-toggle-button-icon: '🌛'; -} - -body { - color: var(--page-foreground-color); - background-color: var(--page-background-color); - font-size: var(--page-font-size); -} - -body, table, div, p, dl, #nav-tree .label, .title, .sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, .SelectItem, #MSearchField, .navpath li.navelem a, .navpath li.navelem a:hover { - font-family: var(--font-family); -} - -h1, h2, h3, h4, h5 { - margin-top: .9em; - font-weight: 600; - line-height: initial; -} - -p, div, table, dl { - font-size: var(--page-font-size); -} - -a:link, a:visited, a:hover, a:focus, a:active { - color: var(--primary-color) !important; - font-weight: 500; -} - -/* - Title and top navigation - */ - -#top { - background: var(--header-background); - border-bottom: 1px solid var(--separator-color); -} - -@media screen and (min-width: 768px) { - #top { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - } -} - -#main-nav { - flex-grow: 5; - padding: var(--spacing-small) var(--spacing-medium); -} - -#titlearea { - width: auto; - padding: var(--spacing-medium) var(--spacing-large); - background: none; - color: var(--header-foreground); - border-bottom: none; -} - -@media screen and (max-width: 767px) { - #titlearea { - padding-bottom: var(--spacing-small); - } -} - -#titlearea table tbody tr { - height: auto !important; -} - -#projectname { - font-size: var(--title-font-size); - font-weight: 600; -} - -#projectnumber { - font-family: inherit; - font-size: 60%; -} - -#projectbrief { - font-family: inherit; - font-size: 80%; -} - -#projectlogo { - vertical-align: middle; -} - -#projectlogo img { - max-height: calc(var(--title-font-size) * 2); - margin-right: var(--spacing-small); -} - -.sm-dox, .tabs, .tabs2, .tabs3 { - background: none; - padding: 0; -} - -.tabs, .tabs2, .tabs3 { - border-bottom: 1px solid var(--separator-color); - margin-bottom: -1px; -} - -@media screen and (max-width: 767px) { - .sm-dox a span.sub-arrow { - background: var(--code-background); - } -} - -@media screen and (min-width: 768px) { - .sm-dox li, .tablist li { - display: var(--menu-display); - } - - .sm-dox a span.sub-arrow { - border-color: var(--header-foreground) transparent transparent transparent; - } - - .sm-dox a:hover span.sub-arrow { - border-color: var(--menu-focus-foreground) transparent transparent transparent; - } - - .sm-dox ul a span.sub-arrow { - border-color: transparent transparent transparent var(--page-foreground-color); - } - - .sm-dox ul a:hover span.sub-arrow { - border-color: transparent transparent transparent var(--menu-focus-foreground); - } -} - -.sm-dox ul { - background: var(--page-background-color); - box-shadow: var(--box-shadow); - border: 1px solid var(--separator-color); - border-radius: var(--border-radius-medium) !important; - padding: var(--spacing-small); - animation: ease-out 150ms slideInMenu; -} - -@keyframes slideInMenu { - from { - opacity: 0; - transform: translate(0px, -2px); - } - - to { - opacity: 1; - transform: translate(0px, 0px); - } -} - -.sm-dox ul a { - color: var(--page-foreground-color) !important; - background: var(--page-background-color); - font-size: var(--navigation-font-size); -} - -.sm-dox>li>ul:after { - border-bottom-color: var(--page-background-color) !important; -} - -.sm-dox>li>ul:before { - border-bottom-color: var(--separator-color) !important; -} - -.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus { - font-size: var(--navigation-font-size) !important; - color: var(--menu-focus-foreground) !important; - text-shadow: none; - background-color: var(--menu-focus-background); - border-radius: var(--border-radius-small) !important; -} - -.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a { - text-shadow: none; - background: transparent; - background-image: none !important; - color: var(--header-foreground) !important; - font-weight: normal; - font-size: var(--navigation-font-size); -} - -.sm-dox a:focus { - outline: auto; -} - -.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover { - text-shadow: none; - font-weight: normal; - background: var(--menu-focus-background); - color: var(--menu-focus-foreground) !important; - border-radius: var(--border-radius-small) !important; - font-size: var(--navigation-font-size); -} - -.tablist li.current { - border-radius: var(--border-radius-small); - background: var(--menu-selected-background); -} - -.tablist li { - margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small); -} - -.tablist a { - padding: 0 var(--spacing-large); -} - - -/* - Search box - */ - -#MSearchBox { - height: var(--searchbar-height); - background: var(--searchbar-background); - border-radius: var(--searchbar-height); - border: 1px solid var(--separator-color); - overflow: hidden; - width: var(--searchbar-width); - position: relative; - box-shadow: none; - display: block; - margin-top: 0; -} - -.left #MSearchSelect { - left: 0; - user-select: none; -} - -.SelectionMark { - user-select: none; -} - -.tabs .left #MSearchSelect { - padding-left: 0; -} - -.tabs #MSearchBox { - position: absolute; - right: var(--spacing-medium); -} - -@media screen and (max-width: 767px) { - .tabs #MSearchBox { - position: relative; - right: 0; - margin-left: var(--spacing-medium); - margin-top: 0; - } -} - -#MSearchSelectWindow, #MSearchResultsWindow { - z-index: 9999; -} - -#MSearchBox.MSearchBoxActive { - border-color: var(--primary-color); - box-shadow: inset 0 0 0 1px var(--primary-color); -} - -#main-menu > li:last-child { - margin-right: 0; -} - -@media screen and (max-width: 767px) { - #main-menu > li:last-child { - height: 50px; - } -} - -#MSearchField { - font-size: var(--navigation-font-size); - height: calc(var(--searchbar-height) - 2px); - background: transparent; - width: calc(var(--searchbar-width) - 64px); -} - -.MSearchBoxActive #MSearchField { - color: var(--searchbar-foreground); -} - -#MSearchSelect { - top: calc(calc(var(--searchbar-height) / 2) - 11px); -} - -.left #MSearchSelect { - padding-left: 8px; -} - -#MSearchBox span.left, #MSearchBox span.right { - background: none; -} - -#MSearchBox span.right { - padding-top: calc(calc(var(--searchbar-height) / 2) - 12px); - position: absolute; - right: var(--spacing-small); -} - -.tabs #MSearchBox span.right { - top: calc(calc(var(--searchbar-height) / 2) - 12px); -} - -@keyframes slideInSearchResults { - from { - opacity: 0; - transform: translate(0, 15px); - } - - to { - opacity: 1; - transform: translate(0, 20px); - } -} - -#MSearchResultsWindow { - left: auto !important; - right: var(--spacing-medium); - border-radius: var(--border-radius-large); - border: 1px solid var(--separator-color); - transform: translate(0, 20px); - box-shadow: var(--box-shadow); - animation: ease-out 280ms slideInSearchResults; - background: var(--page-background-color); -} - -iframe#MSearchResults { - margin: 4px; -} - -iframe { - color-scheme: normal; -} - -@media (prefers-color-scheme: dark) { - html:not(.light-mode) iframe#MSearchResults { - filter: invert() hue-rotate(180deg); - } -} - -html.dark-mode iframe#MSearchResults { - filter: invert() hue-rotate(180deg); -} - -#MSearchSelectWindow { - border: 1px solid var(--separator-color); - border-radius: var(--border-radius-medium); - box-shadow: var(--box-shadow); - background: var(--page-background-color); - padding-top: var(--spacing-small); - padding-bottom: var(--spacing-small); -} - -#MSearchSelectWindow a.SelectItem { - font-size: var(--navigation-font-size); - line-height: var(--content-line-height); - margin: 0 var(--spacing-small); - border-radius: var(--border-radius-small); - color: var(--page-foreground-color) !important; - font-weight: normal; -} - -#MSearchSelectWindow a.SelectItem:hover { - background: var(--menu-focus-background); - color: var(--menu-focus-foreground) !important; -} - -@media screen and (max-width: 767px) { - #MSearchBox { - margin-top: var(--spacing-medium); - margin-bottom: var(--spacing-medium); - width: calc(100vw - 30px); - } - - #main-menu > li:last-child { - float: none !important; - } - - #MSearchField { - width: calc(100vw - 110px); - } - - @keyframes slideInSearchResultsMobile { - from { - opacity: 0; - transform: translate(0, 15px); - } - - to { - opacity: 1; - transform: translate(0, 20px); - } - } - - #MSearchResultsWindow { - left: var(--spacing-medium) !important; - right: var(--spacing-medium); - overflow: auto; - transform: translate(0, 20px); - animation: ease-out 280ms slideInSearchResultsMobile; - } - - /* - * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2 - */ - label.main-menu-btn ~ #searchBoxPos1 { - top: 3px !important; - right: 6px !important; - left: 45px; - display: flex; - } - - label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox { - margin-top: 0; - margin-bottom: 0; - flex-grow: 2; - float: left; - } -} - -/* - Tree view - */ - -#side-nav { - padding: 0 !important; - background: var(--side-nav-background); -} - -@media screen and (max-width: 767px) { - #side-nav { - display: none; - } - - #doc-content { - margin-left: 0 !important; - height: auto !important; - padding-bottom: calc(2 * var(--spacing-large)); - } -} - -#nav-tree { - background: transparent; -} - -#nav-tree .label { - font-size: var(--navigation-font-size); -} - -#nav-tree .item { - height: var(--tree-item-height); - line-height: var(--tree-item-height); -} - -#nav-sync { - bottom: 12px; - right: 12px; - top: auto !important; - user-select: none; -} - -#nav-tree .selected { - text-shadow: none; - background-image: none; - background-color: transparent; - box-shadow: inset 4px 0 0 0 var(--primary-color); -} - -#nav-tree a { - color: var(--side-nav-foreground) !important; - font-weight: normal; -} - -#nav-tree a:focus { - outline-style: auto; -} - -#nav-tree .arrow { - opacity: var(--side-nav-arrow-opacity); -} - -.arrow { - color: inherit; - cursor: pointer; - font-size: 45%; - vertical-align: middle; - margin-right: 2px; - font-family: serif; - height: auto; - text-align: right; -} - -#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow { - opacity: var(--side-nav-arrow-hover-opacity); -} - -#nav-tree .selected a { - color: var(--primary-color) !important; - font-weight: bolder; - font-weight: 600; -} - -.ui-resizable-e { - background: var(--separator-color); - width: 1px; -} - -/* - Contents - */ - -div.header { - border-bottom: 1px solid var(--separator-color); - background-color: var(--page-background-color); - background-image: none; -} - -div.contents, div.header .title, div.header .summary { - max-width: var(--content-maxwidth); -} - -div.contents, div.header .title { - line-height: initial; - margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto; -} - -div.header .summary { - margin: var(--spacing-medium) auto 0 auto; -} - -div.headertitle { - padding: 0; -} - -div.header .title { - font-weight: 600; - font-size: 210%; - padding: var(--spacing-medium) var(--spacing-large); - word-break: break-word; -} - -div.header .summary { - width: auto; - display: block; - float: none; - padding: 0 var(--spacing-large); -} - -td.memSeparator { - border-color: var(--separator-color); -} - -.mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background: var(--code-background); -} - -.mdescRight { - color: var(--page-secondary-foreground-color); -} - -span.mlabel { - background: var(--primary-color); - border: none; - padding: 4px 9px; - border-radius: 12px; - margin-right: var(--spacing-medium); -} - -span.mlabel:last-of-type { - margin-right: 2px; -} - -div.contents { - padding: 0 var(--spacing-large); -} - -div.contents p, div.contents li { - line-height: var(--content-line-height); -} - -div.contents div.dyncontent { - margin: var(--spacing-medium) 0; -} - -@media (prefers-color-scheme: dark) { - html:not(.light-mode) div.contents div.dyncontent img, - html:not(.light-mode) div.contents center img, - html:not(.light-mode) div.contents table img, - html:not(.light-mode) div.contents div.dyncontent iframe, - html:not(.light-mode) div.contents center iframe, - html:not(.light-mode) div.contents table iframe { - filter: hue-rotate(180deg) invert(); - } -} - -html.dark-mode div.contents div.dyncontent img, -html.dark-mode div.contents center img, -html.dark-mode div.contents table img, -html.dark-mode div.contents div.dyncontent iframe, -html.dark-mode div.contents center iframe, -html.dark-mode div.contents table iframe { - filter: hue-rotate(180deg) invert(); -} - -h2.groupheader { - border-bottom: 1px solid var(--separator-color); - color: var(--page-foreground-color); -} - -blockquote { - padding: var(--spacing-small) var(--spacing-medium); - background: var(--blockquote-background); - color: var(--blockquote-foreground); - border-left: 2px solid var(--blockquote-foreground); - margin: 0; -} - -blockquote p { - margin: var(--spacing-small) 0 var(--spacing-medium) 0; -} -.paramname { - font-weight: 600; - color: var(--primary-dark-color); -} - -.glow { - text-shadow: 0 0 15px var(--primary-light-color) !important; -} - -.alphachar a { - color: var(--page-foreground-color); -} - -/* - Table of Contents - */ - -div.toc { - background-color: var(--toc-background); - border: 1px solid var(--separator-color); - border-radius: var(--border-radius-medium); - box-shadow: var(--box-shadow); - padding: 0 var(--spacing-large); - margin: 0 0 var(--spacing-medium) var(--spacing-medium); -} - -div.toc h3 { - color: var(--toc-foreground); - font-size: var(--navigation-font-size); - margin: var(--spacing-large) 0; -} - -div.toc li { - font-size: var(--navigation-font-size); - padding: 0; - background: none; -} - -div.toc li:before { - content: '↓'; - font-weight: 800; - font-family: var(--font-family); - margin-right: var(--spacing-small); - color: var(--toc-foreground); - opacity: .4; -} - -div.toc ul li.level1 { - margin: 0; -} - -div.toc ul li.level2, div.toc ul li.level3 { - margin-top: 0; -} - - -@media screen and (max-width: 767px) { - div.toc { - float: none; - width: auto; - margin: 0 0 var(--spacing-medium) 0; - } -} - -/* - Code & Fragments - */ - -code, div.fragment, pre.fragment { - border-radius: var(--border-radius-small); - border: none; - overflow: hidden; -} - -code { - display: inline; - background: var(--code-background); - color: var(--code-foreground); - padding: 2px 6px; - word-break: break-word; -} - -div.fragment, pre.fragment { - margin: var(--spacing-medium) 0; - padding: 14px 16px; - background: var(--fragment-background); - color: var(--fragment-foreground); - overflow-x: auto; -} - -@media screen and (max-width: 767px) { - div.fragment, pre.fragment { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - - .contents > div.fragment, .textblock > div.fragment, .textblock > pre.fragment { - margin: var(--spacing-medium) calc(0px - var(--spacing-large)); - border-radius: 0; - } - - .textblock li > .fragment { - margin: var(--spacing-medium) calc(0px - var(--spacing-large)); - } - - .memdoc li > .fragment { - margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); - } - - .memdoc > div.fragment, .memdoc > pre.fragment, dl dd > div.fragment, dl dd pre.fragment { - margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); - border-radius: 0; - } -} - -code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span { - font-family: var(--font-family-monospace); - font-size: var(--code-font-size) !important; -} - -div.line:after { - margin-right: var(--spacing-medium); -} - -div.fragment .line, pre.fragment { - white-space: pre; - word-wrap: initial; - line-height: var(--fragment-lineheight); -} - -div.fragment span.keyword { - color: var(--fragment-keyword); -} - -div.fragment span.keywordtype { - color: var(--fragment-keywordtype); -} - -div.fragment span.keywordflow { - color: var(--fragment-keywordflow); -} - -div.fragment span.stringliteral { - color: var(--fragment-token) -} - -div.fragment span.comment { - color: var(--fragment-comment); -} - -div.fragment a.code { - color: var(--fragment-link) !important; -} - -div.fragment span.preprocessor { - color: var(--fragment-preprocessor); -} - -div.fragment span.lineno { - display: inline-block; - width: 27px; - border-right: none; - background: var(--fragment-linenumber-background); - color: var(--fragment-linenumber-color); -} - -div.fragment span.lineno a { - background: none; - color: var(--fragment-link) !important; -} - -div.fragment .line:first-child .lineno { - box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border); -} - -/* - dl warning, attention, note, deprecated, bug, ... - */ - -dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.todo, dl.remark { - padding: var(--spacing-medium); - margin: var(--spacing-medium) 0; - color: var(--page-background-color); - overflow: hidden; - margin-left: 0; - border-radius: var(--border-radius-small); -} - -dl.section dd { - margin-bottom: 2px; -} - -dl.warning, dl.attention { - background: var(--warning-color); - border-left: 8px solid var(--warning-color-dark); - color: var(--warning-color-darker); -} - -dl.warning dt, dl.attention dt { - color: var(--warning-color-dark); -} - -dl.note, dl.remark { - background: var(--note-color); - border-left: 8px solid var(--note-color-dark); - color: var(--note-color-darker); -} - -dl.note dt, dl.remark dt { - color: var(--note-color-dark); -} - -dl.todo { - background: var(--todo-color); - border-left: 8px solid var(--todo-color-dark); - color: var(--todo-color-darker); -} - -dl.todo dt { - color: var(--todo-color-dark); -} - -dl.bug { - background: var(--bug-color); - border-left: 8px solid var(--bug-color-dark); - color: var(--bug-color-darker); -} - -dl.bug dt a { - color: var(--bug-color-dark) !important; -} - -dl.deprecated { - background: var(--deprecated-color); - border-left: 8px solid var(--deprecated-color-dark); - color: var(--deprecated-color-darker); -} - -dl.deprecated dt a { - color: var(--deprecated-color-dark) !important; -} - -dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd { - margin-inline-start: 0px; -} - -dl.invariant, dl.pre { - background: var(--invariant-color); - border-left: 8px solid var(--invariant-color-dark); - color: var(--invariant-color-darker); -} - -/* - memitem - */ - -div.memdoc, div.memproto, h2.memtitle { - box-shadow: none; - background-image: none; - border: none; -} - -div.memdoc { - padding: 0 var(--spacing-medium); - background: var(--page-background-color); -} - -h2.memtitle, div.memitem { - border: 1px solid var(--separator-color); -} - -div.memproto, h2.memtitle { - background: var(--code-background); - text-shadow: none; -} - -h2.memtitle { - font-weight: 500; - font-family: monospace, fixed; - border-bottom: none; - border-top-left-radius: var(--border-radius-medium); - border-top-right-radius: var(--border-radius-medium); - word-break: break-all; -} - -a:target + h2.memtitle, a:target + h2.memtitle + div.memitem { - border-color: var(--primary-light-color); -} - -a:target + h2.memtitle { - box-shadow: -3px -3px 3px 0 var(--primary-lightest-color), 3px -3px 3px 0 var(--primary-lightest-color); -} - -a:target + h2.memtitle + div.memitem { - box-shadow: 0 0 10px 0 var(--primary-lighter-color); -} - -div.memitem { - border-top-right-radius: var(--border-radius-medium); - border-bottom-right-radius: var(--border-radius-medium); - border-bottom-left-radius: var(--border-radius-medium); - overflow: hidden; - display: block !important; -} - -div.memdoc { - border-radius: 0; -} - -div.memproto { - border-radius: 0 var(--border-radius-small) 0 0; - overflow: auto; - border-bottom: 1px solid var(--separator-color); - padding: var(--spacing-medium); - margin-bottom: -1px; -} - -div.memtitle { - border-top-right-radius: var(--border-radius-medium); - border-top-left-radius: var(--border-radius-medium); -} - -div.memproto table.memname { - font-family: monospace, fixed; - color: var(--page-foreground-color); - font-size: var(--memname-font-size); -} - -table.mlabels, table.mlabels > tbody { - display: block; -} - -td.mlabels-left { - width: auto; -} - -table.mlabels > tbody > tr:first-child { - display: flex; - justify-content: space-between; - flex-wrap: wrap; -} - -.memname, .memitem span.mlabels { - margin: 0 -} - -/* - reflist - */ - -dl.reflist { - box-shadow: var(--box-shadow); - border-radius: var(--border-radius-medium); - border: 1px solid var(--separator-color); - overflow: hidden; - padding: 0; -} - - -dl.reflist dt, dl.reflist dd { - box-shadow: none; - text-shadow: none; - background-image: none; - border: none; - padding: 12px; -} - - -dl.reflist dt { - font-weight: 500; - border-radius: 0; - background: var(--code-background); - border-bottom: 1px solid var(--separator-color); - color: var(--page-foreground-color) -} - - -dl.reflist dd { - background: none; -} - -/* - Table - */ - -table.markdownTable, table.fieldtable { - width: 100%; - border: 1px solid var(--separator-color); - margin: var(--spacing-medium) 0; -} - -table.fieldtable { - box-shadow: none; - border-radius: var(--border-radius-small); -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background: var(--tablehead-background); - color: var(--tablehead-foreground); - font-weight: 600; - font-size: var(--page-font-size); -} - -table.markdownTable td, table.markdownTable th, table.fieldtable dt { - border: 1px solid var(--separator-color); - padding: var(--spacing-small) var(--spacing-medium); -} - -table.fieldtable th { - font-size: var(--page-font-size); - font-weight: 600; - background-image: none; - background-color: var(--tablehead-background); - color: var(--tablehead-foreground); - border-bottom: 1px solid var(--separator-color); -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - border-bottom: 1px solid var(--separator-color); - border-right: 1px solid var(--separator-color); -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid var(--separator-color); -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: var(--primary-light-color); - box-shadow: 0 0 15px var(--primary-lighter-color); -} - -table.memberdecls { - display: block; - overflow-x: auto; - overflow-y: hidden; -} - - -/* - Horizontal Rule - */ - -hr { - margin-top: var(--spacing-large); - margin-bottom: var(--spacing-large); - border-top:1px solid var(--separator-color); -} - -.contents hr { - box-shadow: var(--content-maxwidth) 0 0 0 var(--separator-color), calc(0px - var(--content-maxwidth)) 0 0 0 var(--separator-color); -} - -.contents img, .contents .center, .contents center, .contents div.image object { - max-width: 100%; - overflow: auto; -} - -/* - Directories - */ -div.directory { - border-top: 1px solid var(--separator-color); - border-bottom: 1px solid var(--separator-color); - width: auto; -} - -table.directory { - font-family: var(--font-family); - font-size: var(--page-font-size); - font-weight: normal; -} - -.directory td.entry { - padding: var(--spacing-small); - display: flex; - align-items: center; -} - -.directory tr.even { - background-color: var(--odd-color); -} - -.icona { - width: auto; - height: auto; - margin: 0 var(--spacing-small); -} - -.icon { - background: var(--primary-color); - width: 18px; - height: 18px; - line-height: 18px; -} - -.iconfopen, .icondoc, .iconfclosed { - background-position: center; - margin-bottom: 0; -} - -.icondoc { - filter: saturate(0.2); -} - -@media screen and (max-width: 767px) { - div.directory { - margin-left: calc(0px - var(--spacing-medium)); - margin-right: calc(0px - var(--spacing-medium)); - } -} - -@media (prefers-color-scheme: dark) { - html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed { - filter: hue-rotate(180deg) invert(); - } -} - -html.dark-mode .iconfopen, html.dark-mode .iconfclosed { - filter: hue-rotate(180deg) invert(); -} - -/* - Class list - */ - -.classindex dl.odd { - background: var(--odd-color); - border-radius: var(--border-radius-small); -} - -@media screen and (max-width: 767px) { - .classindex { - margin: 0 calc(0px - var(--spacing-small)); - } -} - -/* - Class Index Doxygen 1.8 -*/ - -table.classindex table div.ah { - background-image: none; - background-color: initial; - border-color: var(--separator-color); - color: var(--page-foreground-color); - box-shadow: var(--box-shadow); - border-radius: var(--border-radius-large); - padding: var(--spacing-small); -} - -div.qindex { - background-color: var(--odd-color); - border-radius: var(--border-radius-small); - border: 1px solid var(--separator-color); - padding: var(--spacing-small) 0; -} - -/* - Footer and nav-path - */ - -#nav-path { - margin-bottom: -1px; - width: 100%; -} - -#nav-path ul { - background-image: none; - background: var(--page-background-color); - border: none; - border-top: 1px solid var(--separator-color); - border-bottom: 1px solid var(--separator-color); - font-size: var(--navigation-font-size); -} - -img.footer { - width: 60px; -} - -.navpath li.footer { - color: var(--page-secondary-foreground-color); -} - -address.footer { - margin-bottom: var(--spacing-large); -} - -#nav-path li.navelem { - background-image: none; - display: flex; - align-items: center; -} - -.navpath li.navelem a { - text-shadow: none; - display: inline-block; - color: var(--primary-color) !important; -} - -.navpath li.navelem b { - color: var(--primary-dark-color); - font-weight: 500; -} - -li.navelem { - padding: 0; - margin-left: -8px; -} - -li.navelem:first-child { - margin-left: var(--spacing-large); -} - -li.navelem:first-child:before { - display: none; -} - -#nav-path li.navelem:after { - content: ''; - border: 5px solid var(--page-background-color); - border-bottom-color: transparent; - border-right-color: transparent; - border-top-color: transparent; - transform: scaleY(4.2); - z-index: 10; - margin-left: 6px; -} - -#nav-path li.navelem:before { - content: ''; - border: 5px solid var(--separator-color); - border-bottom-color: transparent; - border-right-color: transparent; - border-top-color: transparent; - transform: scaleY(3.2); - margin-right: var(--spacing-small); -} - -.navpath li.navelem a:hover { - color: var(--primary-color); -} - -/* - Optional Dark mode toggle button -*/ - -doxygen-awesome-dark-mode-toggle { - display: inline-block; - margin: 0 0 0 var(--spacing-small); - padding: 0; - width: var(--searchbar-height); - height: var(--searchbar-height); - background: none; - border: none; - font-size: 23px; - border-radius: var(--border-radius-medium); - vertical-align: middle; - text-align: center; - line-height: var(--searchbar-height); - user-select: none; - cursor: pointer; -} - -doxygen-awesome-dark-mode-toggle:hover { - background: var(--separator-color); -} - -doxygen-awesome-dark-mode-toggle:after { - content: var(--darkmode-toggle-button-icon) -} diff --git a/examples/overview/overview.py b/examples/overview/overview.py index b707f72..9e7c78e 100644 --- a/examples/overview/overview.py +++ b/examples/overview/overview.py @@ -144,7 +144,6 @@ def plot_color_gradients(cmap_category, cmap_list, nrows): - fig, axes = plt.subplots(nrows=nrows) fig.subplots_adjust(top=0.95, bottom=0.01, left=0.2, right=0.99) axes[0].set_title(cmap_category + " colormaps", fontsize=14) @@ -177,7 +176,6 @@ def plot_color_gradients(cmap_category, cmap_list, nrows): def plot_color_gradients(cmap_category, cmap_list, nrows): - fig, axes = plt.subplots(nrows=nrows) fig.subplots_adjust(top=0.95, bottom=0.01, left=0.2, right=0.99) axes[0].set_title(cmap_category, fontsize=14) diff --git a/include/cppcolormap.h b/include/cppcolormap.h index cb8bc4a..0298b94 100644 --- a/include/cppcolormap.h +++ b/include/cppcolormap.h @@ -1,45 +1,45 @@ /** -\file -\copyright Copyright. Tom de Geus. All rights reserved. -\license This project is released under the GPLv3 License. -*/ + * @file + * @copyright Copyright. Tom de Geus. All rights reserved. + * \license This project is released under the GPLv3 License. + */ #ifndef CPPCOLORMAP_H #define CPPCOLORMAP_H /** -\cond -*/ + * \cond + */ #define Q(x) #x #define QUOTE(x) Q(x) #define CPPCOLORMAP_ASSERT_IMPL(expr, file, line) \ if (!(expr)) { \ throw std::runtime_error( \ - std::string(file) + ':' + std::to_string(line) + \ - ": assertion failed (" #expr ") \n\t"); \ - } -/** -\endcond -*/ - -/** -All assertions are implementation as: - - GMATTENSOR_ASSERT(...) - -They can be enabled by: - - #define GMATTENSOR_ENABLE_ASSERT - -(before including GMatTensor). -The advantage is that: - -- File and line-number are displayed if the assertion fails. -- GMatTensor's assertions can be enabled/disabled independently from those of other libraries. - -\throw std::runtime_error -*/ + std::string(file) + ':' + std::to_string(line) + ": assertion failed (" #expr ") \n\t" \ + ); \ + } +/** + * \endcond + */ + +/** + * All assertions are implementation as: + * + * GMATTENSOR_ASSERT(...) + * + * They can be enabled by: + * + * #define GMATTENSOR_ENABLE_ASSERT + * + * (before including GMatTensor). + * The advantage is that: + * + * - File and line-number are displayed if the assertion fails. + * - GMatTensor's assertions can be enabled/disabled independently from those of other libraries. + * + * \throw std::runtime_error + */ #ifdef CPPCOLORMAP_ENABLE_ASSERT #define CPPCOLORMAP_ASSERT(expr) CPPCOLORMAP_ASSERT_IMPL(expr, __FILE__, __LINE__) #else @@ -47,37 +47,37 @@ The advantage is that: #endif /** -Current version. - -Either: - -- Configure using CMake at install time. Internally uses:: - - python -c "from setuptools_scm import get_version; print(get_version())" - -- Define externally using:: - - MYVERSION=`python -c "from setuptools_scm import get_version; print(get_version())"` - -DCPPCOLORMAP_VERSION="$MYVERSION" - - From the root of this project. This is what ``setup.py`` does. - -Note that both ``CMakeLists.txt`` and ``setup.py`` will construct the version using -``setuptools_scm``. Tip: use the environment variable ``SETUPTOOLS_SCM_PRETEND_VERSION`` to -overwrite the automatic version. -*/ + * Current version. + * + * Either: + * + * - Configure using CMake at install time. Internally uses:: + * + * python -c "from setuptools_scm import get_version; print(get_version())" + * + * - Define externally using:: + * + * MYVERSION=`python -c "from setuptools_scm import get_version; print(get_version())"` + * -DCPPCOLORMAP_VERSION="$MYVERSION" + * + * From the root of this project. This is what ``setup.py`` does. + * + * Note that both ``CMakeLists.txt`` and ``setup.py`` will construct the version using + * ``setuptools_scm``. Tip: use the environment variable ``SETUPTOOLS_SCM_PRETEND_VERSION`` to + * overwrite the automatic version. + */ #ifndef CPPCOLORMAP_VERSION #define CPPCOLORMAP_VERSION "@PROJECT_VERSION@" #endif /** -\cond -*/ + * \cond + */ // use "M_PI" from "math.h" #define _USE_MATH_DEFINES /** -\endcond -*/ + * \endcond + */ #include #include @@ -95,23 +95,23 @@ overwrite the automatic version. namespace cppcolormap { /** -Container type. -*/ + * Container type. + */ namespace array_type { #ifdef CPPCOLORMAP_USE_XTENSOR_PYTHON /** -Fixed (static) rank array. -*/ + * Fixed (static) rank array. + */ template using tensor = xt::pytensor; #else /** -Fixed (static) rank array. -*/ + * Fixed (static) rank array. + */ template using tensor = xt::xtensor; @@ -131,24 +131,24 @@ inline std::string unquote(const std::string& arg) } // namespace detail /** -Return version string. E.g.: `"0.1.0"`. -\return String. -*/ + * Return version string. E.g.: `"0.1.0"`. + * @return String. + */ inline std::string version() { return detail::unquote(std::string(QUOTE(CPPCOLORMAP_VERSION))); } /** -Return versions of this library and of all of its dependencies. -The output is a list of strings, e.g. - - "cppcolormap=1.0.0", - "xtensor=0.20.1" - ... - -\return List of strings. -*/ + * Return versions of this library and of all of its dependencies. + * The output is a list of strings, e.g. + * + * "cppcolormap=1.0.0", + * "xtensor=0.20.1" + * ... + * + * @return List of strings. + */ inline std::vector version_dependencies() { std::vector ret; @@ -158,7 +158,8 @@ inline std::vector version_dependencies() ret.push_back( "xtensor=" + detail::unquote(std::string(QUOTE(XTENSOR_VERSION_MAJOR))) + "." + detail::unquote(std::string(QUOTE(XTENSOR_VERSION_MINOR))) + "." + - detail::unquote(std::string(QUOTE(XTENSOR_VERSION_PATCH)))); + detail::unquote(std::string(QUOTE(XTENSOR_VERSION_PATCH))) + ); return ret; } @@ -166,13 +167,13 @@ inline std::vector version_dependencies() namespace detail { /** -See: https://www.codespeedy.com/convert-rgb-to-hex-color-code-in-cpp - -\param r Red [0..255]. -\param g Green [0..255]. -\param b Blue [0..255]. -\return Hex string. -*/ + * See: https://www.codespeedy.com/convert-rgb-to-hex-color-code-in-cpp + * + * @param r Red [0..255]. + * @param g Green [0..255]. + * @param b Blue [0..255]. + * @return Hex string. + */ std::string rgb2hex(size_t r, size_t g, size_t b) { std::stringstream ss; @@ -181,11 +182,11 @@ std::string rgb2hex(size_t r, size_t g, size_t b) } /** -See: https://stackoverflow.com/questions/28104559/arduino-strange-behavior-converting-hex-to-rgb - -\param hex Hex string. -\return RGB data. -*/ + * See: https://stackoverflow.com/questions/28104559/arduino-strange-behavior-converting-hex-to-rgb + * + * @param hex Hex string. + * @return RGB data. + */ array_type::tensor hex2rgb(std::string hex) { if (hex.at(0) == '#') { @@ -210,11 +211,11 @@ array_type::tensor hex2rgb(std::string hex) } // namespace detail /** -Convert RGB -> HEX. - -\param arg RGB data (values between 0 and 1). -\returns Vector of strings. -*/ + * Convert RGB -> HEX. + * + * @param arg RGB data (values between 0 and 1). + * @returns Vector of strings. + */ template ::value != 1, int> = 0> std::vector rgb2hex(const T& arg) { @@ -228,18 +229,19 @@ std::vector rgb2hex(const T& arg) ret.push_back(detail::rgb2hex( static_cast(arg(i, 0) * 255.0), static_cast(arg(i, 1) * 255.0), - static_cast(arg(i, 2) * 255.0))); + static_cast(arg(i, 2) * 255.0) + )); } return ret; } /** -Convert RGB -> HEX. - -\param arg RGB data (values between 0 and 1). -\returns String. -*/ + * Convert RGB -> HEX. + * + * @param arg RGB data (values between 0 and 1). + * @returns String. + */ template ::value == 1, int> = 0> std::string rgb2hex(const T& arg) { @@ -249,15 +251,16 @@ std::string rgb2hex(const T& arg) return detail::rgb2hex( static_cast(arg(0) * 255.0), static_cast(arg(1) * 255.0), - static_cast(arg(2) * 255.0)); + static_cast(arg(2) * 255.0) + ); } /** -Convert HEX -> RGB. - -\param arg HEX data. -\returns RGB data. -*/ + * Convert HEX -> RGB. + * + * @param arg HEX data. + * @returns RGB data. + */ array_type::tensor hex2rgb(const std::vector& arg) { array_type::tensor out = xt::empty({arg.size(), size_t(3)}); @@ -270,23 +273,23 @@ array_type::tensor hex2rgb(const std::vector& arg) } /** -Convert HEX -> RGB. - -\param arg HEX data. -\returns RGB data. -*/ + * Convert HEX -> RGB. + * + * @param arg HEX data. + * @returns RGB data. + */ array_type::tensor hex2rgb(const std::string& arg) { return detail::hex2rgb(arg) / 255.0; } /** -Interpolate the individual colours. - -\param arg RGB data. -\param N Number of colors to output. -\returns RGB data. -*/ + * Interpolate the individual colours. + * + * @param arg RGB data. + * @param N Number of colors to output. + * @returns RGB data. + */ template > inline R interp(const T& arg, size_t N) { @@ -369,13 +372,13 @@ struct as_colors_impl> { } // namespace detail /** -Convert data to colors using a colormap. - -\param data The data. -\param colors The colormap, e.g. ``cppcolormap::jet()``. -\param vmin The lower limit of the color-axis. -\param vmax The upper limit of the color-axis. -*/ + * Convert data to colors using a colormap. + * + * @param data The data. + * @param colors The colormap, e.g. ``cppcolormap::jet()``. + * @param vmin The lower limit of the color-axis. + * @param vmax The upper limit of the color-axis. + */ template inline auto as_colors(const E& data, const C& colors, S vmin, S vmax) { @@ -383,11 +386,11 @@ inline auto as_colors(const E& data, const C& colors, S vmin, S vmax) } /** -Convert data to colors using a colormap. - -\param data The data. -\param colors The colormap, e.g. ``cppcolormap::jet()``. -*/ + * Convert data to colors using a colormap. + * + * @param data The data. + * @param colors The colormap, e.g. ``cppcolormap::jet()``. + */ template inline auto as_colors(const E& data, const C& colors) { @@ -395,11 +398,11 @@ inline auto as_colors(const E& data, const C& colors) } /** -Qualitative colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Qualitative colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Accent(size_t N = 8) { // clang-format off @@ -419,11 +422,11 @@ inline array_type::tensor Accent(size_t N = 8) } /** -Qualitative colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Qualitative colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Dark2(size_t N = 8) { // clang-format off @@ -443,11 +446,11 @@ inline array_type::tensor Dark2(size_t N = 8) } /** -Qualitative colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Qualitative colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Paired(size_t N = 12) { // clang-format off @@ -471,11 +474,11 @@ inline array_type::tensor Paired(size_t N = 12) } /** -Qualitative colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Qualitative colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Spectral(size_t N = 11) { // clang-format off @@ -498,11 +501,11 @@ inline array_type::tensor Spectral(size_t N = 11) } /** -Qualitative colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Qualitative colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Pastel1(size_t N = 9) { // clang-format off @@ -523,11 +526,11 @@ inline array_type::tensor Pastel1(size_t N = 9) } /** -Qualitative colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Qualitative colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Pastel2(size_t N = 8) { // clang-format off @@ -547,11 +550,11 @@ inline array_type::tensor Pastel2(size_t N = 8) } /** -Qualitative colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Qualitative colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Set1(size_t N = 9) { // clang-format off @@ -572,11 +575,11 @@ inline array_type::tensor Set1(size_t N = 9) } /** -Qualitative colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Qualitative colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Set2(size_t N = 8) { // clang-format off @@ -596,11 +599,11 @@ inline array_type::tensor Set2(size_t N = 8) } /** -Qualitative colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Qualitative colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Set3(size_t N = 12) { // clang-format off @@ -624,11 +627,11 @@ inline array_type::tensor Set3(size_t N = 12) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Blues(size_t N = 9) { // clang-format off @@ -649,11 +652,11 @@ inline array_type::tensor Blues(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Greens(size_t N = 9) { // clang-format off @@ -674,11 +677,11 @@ inline array_type::tensor Greens(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Greys(size_t N = 2) { // clang-format off @@ -692,11 +695,11 @@ inline array_type::tensor Greys(size_t N = 2) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Oranges(size_t N = 9) { // clang-format off @@ -717,11 +720,11 @@ inline array_type::tensor Oranges(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Purples(size_t N = 9) { // clang-format off @@ -742,11 +745,11 @@ inline array_type::tensor Purples(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Reds(size_t N = 9) { // clang-format off @@ -767,11 +770,11 @@ inline array_type::tensor Reds(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor BuPu(size_t N = 9) { // clang-format off @@ -792,11 +795,11 @@ inline array_type::tensor BuPu(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor GnBu(size_t N = 9) { // clang-format off @@ -817,11 +820,11 @@ inline array_type::tensor GnBu(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PuBu(size_t N = 9) { // clang-format off @@ -842,11 +845,11 @@ inline array_type::tensor PuBu(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PuBuGn(size_t N = 9) { // clang-format off @@ -867,11 +870,11 @@ inline array_type::tensor PuBuGn(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PuRd(size_t N = 9) { // clang-format off @@ -892,11 +895,11 @@ inline array_type::tensor PuRd(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdPu(size_t N = 9) { // clang-format off @@ -917,11 +920,11 @@ inline array_type::tensor RdPu(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor OrRd(size_t N = 9) { // clang-format off @@ -942,11 +945,11 @@ inline array_type::tensor OrRd(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdOrYl(size_t N = 9) { // clang-format off @@ -967,11 +970,11 @@ inline array_type::tensor RdOrYl(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor YlGn(size_t N = 9) { // clang-format off @@ -992,11 +995,11 @@ inline array_type::tensor YlGn(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor YlGnBu(size_t N = 9) { // clang-format off @@ -1017,11 +1020,11 @@ inline array_type::tensor YlGnBu(size_t N = 9) } /** -Sequential colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Sequential colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor YlOrRd(size_t N = 9) { // clang-format off @@ -1042,11 +1045,11 @@ inline array_type::tensor YlOrRd(size_t N = 9) } /** -Diverging colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Diverging colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor BrBG(size_t N = 11) { // clang-format off @@ -1069,11 +1072,11 @@ inline array_type::tensor BrBG(size_t N = 11) } /** -Diverging colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Diverging colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PuOr(size_t N = 11) { // clang-format off @@ -1096,11 +1099,11 @@ inline array_type::tensor PuOr(size_t N = 11) } /** -Diverging colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Diverging colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdBu(size_t N = 11) { // clang-format off @@ -1123,11 +1126,11 @@ inline array_type::tensor RdBu(size_t N = 11) } /** -Diverging colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Diverging colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdGy(size_t N = 11) { // clang-format off @@ -1150,11 +1153,11 @@ inline array_type::tensor RdGy(size_t N = 11) } /** -Diverging colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Diverging colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdYlBu(size_t N = 11) { // clang-format off @@ -1177,11 +1180,11 @@ inline array_type::tensor RdYlBu(size_t N = 11) } /** -Diverging colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Diverging colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdYlGn(size_t N = 11) { // clang-format off @@ -1204,11 +1207,11 @@ inline array_type::tensor RdYlGn(size_t N = 11) } /** -Diverging colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Diverging colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PiYG(size_t N = 11) { // clang-format off @@ -1231,11 +1234,11 @@ inline array_type::tensor PiYG(size_t N = 11) } /** -Diverging colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Diverging colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PRGn(size_t N = 11) { // clang-format off @@ -1281,7 +1284,8 @@ inline array_type::tensor from_anchor( size_t N, const array_type::tensor& r, const array_type::tensor& g, - const array_type::tensor& b) + const array_type::tensor& b +) { using return_type = array_type::tensor; using shape_type = return_type::shape_type::value_type; @@ -1296,11 +1300,11 @@ inline array_type::tensor from_anchor( } // namespace detail /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor spring(size_t N = 256) { // clang-format off @@ -1321,11 +1325,11 @@ inline array_type::tensor spring(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor summer(size_t N = 256) { // clang-format off @@ -1346,11 +1350,11 @@ inline array_type::tensor summer(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor autumn(size_t N = 256) { // clang-format off @@ -1371,11 +1375,11 @@ inline array_type::tensor autumn(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor winter(size_t N = 256) { // clang-format off @@ -1396,11 +1400,11 @@ inline array_type::tensor winter(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor bone(size_t N = 256) { // clang-format off @@ -1425,11 +1429,11 @@ inline array_type::tensor bone(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor cool(size_t N = 256) { // clang-format off @@ -1450,11 +1454,11 @@ inline array_type::tensor cool(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor hot(size_t N = 256) { // clang-format off @@ -1479,11 +1483,11 @@ inline array_type::tensor hot(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor copper(size_t N = 256) { // clang-format off @@ -1505,11 +1509,11 @@ inline array_type::tensor copper(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor hsv(size_t N = 256) { // clang-format off @@ -1548,11 +1552,11 @@ inline array_type::tensor hsv(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor nipy_spectral(size_t N = 256) { // clang-format off @@ -1630,11 +1634,11 @@ inline array_type::tensor nipy_spectral(size_t N = 256) } /** -matplotlib colormap, from anchor. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from anchor. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor jet(size_t N = 256) { // clang-format off @@ -1689,11 +1693,11 @@ inline array_type::tensor from_fraction(size_t N, const array_type::t } // namespace detail /** -matplotlib colormap, from fraction. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap, from fraction. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor terrain(size_t N = 6) { array_type::tensor data = { @@ -2026,11 +2030,11 @@ inline array_type::tensor gnu_palette(size_t i, const array_type::ten } // namespace detail /** -GNU plot colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * GNU plot colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor afmhot(size_t N = 256) { std::array shape = {N, 3}; @@ -2043,11 +2047,11 @@ inline array_type::tensor afmhot(size_t N = 256) } /** -matplotlib colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor magma(size_t N = 256) { // clang-format off @@ -2315,11 +2319,11 @@ inline array_type::tensor magma(size_t N = 256) } /** -matplotlib colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor inferno(size_t N = 256) { // clang-format off @@ -2587,11 +2591,11 @@ inline array_type::tensor inferno(size_t N = 256) } /** -matplotlib colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor plasma(size_t N = 256) { // clang-format off @@ -2859,11 +2863,11 @@ inline array_type::tensor plasma(size_t N = 256) } /** -matplotlib colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor viridis(size_t N = 256) { // clang-format off @@ -3131,11 +3135,11 @@ inline array_type::tensor viridis(size_t N = 256) } /** -matplotlib colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * matplotlib colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor seismic(size_t N = 5) { // clang-format off @@ -3152,11 +3156,11 @@ inline array_type::tensor seismic(size_t N = 5) } /** -Monotone colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Monotone colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor White(size_t N = 1) { array_type::tensor data = {{255, 255, 255}}; @@ -3164,11 +3168,11 @@ inline array_type::tensor White(size_t N = 1) } /** -Monotone colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Monotone colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Grey(size_t N = 1) { array_type::tensor data = {{0.5, 0.5, 0.5}}; @@ -3176,11 +3180,11 @@ inline array_type::tensor Grey(size_t N = 1) } /** -Monotone colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Monotone colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Black(size_t N = 1) { array_type::tensor data = {{0, 0, 0}}; @@ -3188,11 +3192,11 @@ inline array_type::tensor Black(size_t N = 1) } /** -Monotone colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Monotone colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Red(size_t N = 1) { array_type::tensor data = {{255, 0, 0}}; @@ -3200,11 +3204,11 @@ inline array_type::tensor Red(size_t N = 1) } /** -Monotone colormap. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Monotone colormap. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Blue(size_t N = 1) { array_type::tensor data = {{0, 0, 255}}; @@ -3212,11 +3216,11 @@ inline array_type::tensor Blue(size_t N = 1) } /** -Eindhoven University of Technology. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Eindhoven University of Technology. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor tuewarmred(size_t N = 1) { array_type::tensor data = {{247, 49, 49}}; @@ -3224,11 +3228,11 @@ inline array_type::tensor tuewarmred(size_t N = 1) } /** -Eindhoven University of Technology. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Eindhoven University of Technology. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor tuedarkblue(size_t N = 1) { array_type::tensor data = {{16, 16, 115}}; @@ -3236,11 +3240,11 @@ inline array_type::tensor tuedarkblue(size_t N = 1) } /** -Eindhoven University of Technology. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Eindhoven University of Technology. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor tueblue(size_t N = 1) { array_type::tensor data = {{0, 102, 204}}; @@ -3248,11 +3252,11 @@ inline array_type::tensor tueblue(size_t N = 1) } /** -Eindhoven University of Technology. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Eindhoven University of Technology. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor tuelightblue(size_t N = 1) { array_type::tensor data = {{0, 162, 222}}; @@ -3260,11 +3264,11 @@ inline array_type::tensor tuelightblue(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Apricot(size_t N = 1) { array_type::tensor data = {{251, 185, 130}}; @@ -3272,11 +3276,11 @@ inline array_type::tensor Apricot(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Aquamarine(size_t N = 1) { array_type::tensor data = {{0, 181, 190}}; @@ -3284,11 +3288,11 @@ inline array_type::tensor Aquamarine(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Bittersweet(size_t N = 1) { array_type::tensor data = {{192, 79, 23}}; @@ -3296,11 +3300,11 @@ inline array_type::tensor Bittersweet(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor BlueGreen(size_t N = 1) { array_type::tensor data = {{0, 179, 184}}; @@ -3308,11 +3312,11 @@ inline array_type::tensor BlueGreen(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor BlueViolet(size_t N = 1) { array_type::tensor data = {{71, 57, 146}}; @@ -3320,11 +3324,11 @@ inline array_type::tensor BlueViolet(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor BrickRed(size_t N = 1) { array_type::tensor data = {{182, 50, 28}}; @@ -3332,11 +3336,11 @@ inline array_type::tensor BrickRed(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Brown(size_t N = 1) { array_type::tensor data = {{121, 37, 0}}; @@ -3344,11 +3348,11 @@ inline array_type::tensor Brown(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor BurntOrange(size_t N = 1) { array_type::tensor data = {{247, 146, 29}}; @@ -3356,11 +3360,11 @@ inline array_type::tensor BurntOrange(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor CadetBlue(size_t N = 1) { array_type::tensor data = {{116, 114, 154}}; @@ -3368,11 +3372,11 @@ inline array_type::tensor CadetBlue(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor CarnationPink(size_t N = 1) { array_type::tensor data = {{242, 130, 180}}; @@ -3380,11 +3384,11 @@ inline array_type::tensor CarnationPink(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Cerulean(size_t N = 1) { array_type::tensor data = {{0, 162, 227}}; @@ -3392,11 +3396,11 @@ inline array_type::tensor Cerulean(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor CornflowerBlue(size_t N = 1) { array_type::tensor data = {{65, 176, 228}}; @@ -3404,11 +3408,11 @@ inline array_type::tensor CornflowerBlue(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Cyan(size_t N = 1) { array_type::tensor data = {{0, 174, 239}}; @@ -3416,11 +3420,11 @@ inline array_type::tensor Cyan(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Dandelion(size_t N = 1) { array_type::tensor data = {{253, 188, 66}}; @@ -3428,11 +3432,11 @@ inline array_type::tensor Dandelion(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor DarkOrchid(size_t N = 1) { array_type::tensor data = {{164, 83, 138}}; @@ -3440,11 +3444,11 @@ inline array_type::tensor DarkOrchid(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Emerald(size_t N = 1) { array_type::tensor data = {{0, 169, 157}}; @@ -3452,11 +3456,11 @@ inline array_type::tensor Emerald(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor ForestGreen(size_t N = 1) { array_type::tensor data = {{0, 155, 85}}; @@ -3464,11 +3468,11 @@ inline array_type::tensor ForestGreen(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Fuchsia(size_t N = 1) { array_type::tensor data = {{140, 54, 140}}; @@ -3476,11 +3480,11 @@ inline array_type::tensor Fuchsia(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Goldenrod(size_t N = 1) { array_type::tensor data = {{255, 223, 66}}; @@ -3488,11 +3492,11 @@ inline array_type::tensor Goldenrod(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Gray(size_t N = 1) { array_type::tensor data = {{148, 150, 152}}; @@ -3500,11 +3504,11 @@ inline array_type::tensor Gray(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Green(size_t N = 1) { array_type::tensor data = {{0, 166, 79}}; @@ -3512,11 +3516,11 @@ inline array_type::tensor Green(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor GreenYellow(size_t N = 1) { array_type::tensor data = {{223, 230, 116}}; @@ -3524,11 +3528,11 @@ inline array_type::tensor GreenYellow(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor JungleGreen(size_t N = 1) { array_type::tensor data = {{0, 169, 154}}; @@ -3536,11 +3540,11 @@ inline array_type::tensor JungleGreen(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Lavender(size_t N = 1) { array_type::tensor data = {{244, 158, 196}}; @@ -3548,11 +3552,11 @@ inline array_type::tensor Lavender(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor LimeGreen(size_t N = 1) { array_type::tensor data = {{141, 199, 62}}; @@ -3560,11 +3564,11 @@ inline array_type::tensor LimeGreen(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Magenta(size_t N = 1) { array_type::tensor data = {{236, 0, 140}}; @@ -3572,11 +3576,11 @@ inline array_type::tensor Magenta(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Mahogany(size_t N = 1) { array_type::tensor data = {{169, 52, 31}}; @@ -3584,11 +3588,11 @@ inline array_type::tensor Mahogany(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Maroon(size_t N = 1) { array_type::tensor data = {{175, 50, 53}}; @@ -3596,11 +3600,11 @@ inline array_type::tensor Maroon(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Melon(size_t N = 1) { array_type::tensor data = {{248, 158, 123}}; @@ -3608,11 +3612,11 @@ inline array_type::tensor Melon(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor MidnightBlue(size_t N = 1) { array_type::tensor data = {{0, 103, 149}}; @@ -3620,11 +3624,11 @@ inline array_type::tensor MidnightBlue(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Mulberry(size_t N = 1) { array_type::tensor data = {{169, 60, 147}}; @@ -3632,11 +3636,11 @@ inline array_type::tensor Mulberry(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor NavyBlue(size_t N = 1) { array_type::tensor data = {{0, 110, 184}}; @@ -3644,11 +3648,11 @@ inline array_type::tensor NavyBlue(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor OliveGreen(size_t N = 1) { array_type::tensor data = {{60, 128, 49}}; @@ -3656,11 +3660,11 @@ inline array_type::tensor OliveGreen(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Orange(size_t N = 1) { array_type::tensor data = {{245, 129, 55}}; @@ -3668,11 +3672,11 @@ inline array_type::tensor Orange(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor OrangeRed(size_t N = 1) { array_type::tensor data = {{237, 19, 90}}; @@ -3680,11 +3684,11 @@ inline array_type::tensor OrangeRed(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Orchid(size_t N = 1) { array_type::tensor data = {{175, 114, 176}}; @@ -3692,11 +3696,11 @@ inline array_type::tensor Orchid(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Peach(size_t N = 1) { array_type::tensor data = {{247, 150, 90}}; @@ -3704,11 +3708,11 @@ inline array_type::tensor Peach(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Periwinkle(size_t N = 1) { array_type::tensor data = {{121, 119, 184}}; @@ -3716,11 +3720,11 @@ inline array_type::tensor Periwinkle(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PineGreen(size_t N = 1) { array_type::tensor data = {{0, 139, 114}}; @@ -3728,11 +3732,11 @@ inline array_type::tensor PineGreen(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Plum(size_t N = 1) { array_type::tensor data = {{146, 38, 143}}; @@ -3740,11 +3744,11 @@ inline array_type::tensor Plum(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor ProcessBlue(size_t N = 1) { array_type::tensor data = {{0, 176, 240}}; @@ -3752,11 +3756,11 @@ inline array_type::tensor ProcessBlue(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Purple(size_t N = 1) { array_type::tensor data = {{153, 71, 155}}; @@ -3764,11 +3768,11 @@ inline array_type::tensor Purple(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RawSienna(size_t N = 1) { array_type::tensor data = {{151, 64, 6}}; @@ -3776,11 +3780,11 @@ inline array_type::tensor RawSienna(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RedOrange(size_t N = 1) { array_type::tensor data = {{242, 96, 53}}; @@ -3788,11 +3792,11 @@ inline array_type::tensor RedOrange(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RedViolet(size_t N = 1) { array_type::tensor data = {{161, 36, 107}}; @@ -3800,11 +3804,11 @@ inline array_type::tensor RedViolet(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Rhodamine(size_t N = 1) { array_type::tensor data = {{239, 85, 159}}; @@ -3812,11 +3816,11 @@ inline array_type::tensor Rhodamine(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RoyalBlue(size_t N = 1) { array_type::tensor data = {{0, 113, 188}}; @@ -3824,11 +3828,11 @@ inline array_type::tensor RoyalBlue(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RoyalPurple(size_t N = 1) { array_type::tensor data = {{97, 63, 153}}; @@ -3836,11 +3840,11 @@ inline array_type::tensor RoyalPurple(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RubineRed(size_t N = 1) { array_type::tensor data = {{237, 1, 125}}; @@ -3848,11 +3852,11 @@ inline array_type::tensor RubineRed(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Salmon(size_t N = 1) { array_type::tensor data = {{246, 146, 137}}; @@ -3860,11 +3864,11 @@ inline array_type::tensor Salmon(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor SeaGreen(size_t N = 1) { array_type::tensor data = {{63, 188, 157}}; @@ -3872,11 +3876,11 @@ inline array_type::tensor SeaGreen(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Sepia(size_t N = 1) { array_type::tensor data = {{103, 24, 0}}; @@ -3884,11 +3888,11 @@ inline array_type::tensor Sepia(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor SkyBlue(size_t N = 1) { array_type::tensor data = {{70, 197, 221}}; @@ -3896,11 +3900,11 @@ inline array_type::tensor SkyBlue(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor SpringGreen(size_t N = 1) { array_type::tensor data = {{198, 220, 103}}; @@ -3908,11 +3912,11 @@ inline array_type::tensor SpringGreen(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Tan(size_t N = 1) { array_type::tensor data = {{218, 157, 118}}; @@ -3920,11 +3924,11 @@ inline array_type::tensor Tan(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor TealBlue(size_t N = 1) { array_type::tensor data = {{0, 174, 179}}; @@ -3932,11 +3936,11 @@ inline array_type::tensor TealBlue(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Thistle(size_t N = 1) { array_type::tensor data = {{216, 131, 183}}; @@ -3944,11 +3948,11 @@ inline array_type::tensor Thistle(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Turquoise(size_t N = 1) { array_type::tensor data = {{0, 180, 206}}; @@ -3956,11 +3960,11 @@ inline array_type::tensor Turquoise(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Violet(size_t N = 1) { array_type::tensor data = {{88, 66, 155}}; @@ -3968,11 +3972,11 @@ inline array_type::tensor Violet(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor VioletRed(size_t N = 1) { array_type::tensor data = {{239, 88, 160}}; @@ -3980,11 +3984,11 @@ inline array_type::tensor VioletRed(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor WildStrawberry(size_t N = 1) { array_type::tensor data = {{238, 41, 103}}; @@ -3992,11 +3996,11 @@ inline array_type::tensor WildStrawberry(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Yellow(size_t N = 1) { array_type::tensor data = {{255, 242, 0}}; @@ -4004,11 +4008,11 @@ inline array_type::tensor Yellow(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor YellowGreen(size_t N = 1) { array_type::tensor data = {{152, 204, 112}}; @@ -4016,11 +4020,11 @@ inline array_type::tensor YellowGreen(size_t N = 1) } /** -dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors - -\param N Number of colors to output. -\returns RGB data. -*/ + * dvips color. See: https://en.wikibooks.org/wiki/LaTeX/Colors + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor YellowOrange(size_t N = 1) { array_type::tensor data = {{250, 162, 26}}; @@ -4028,584 +4032,584 @@ inline array_type::tensor YellowOrange(size_t N = 1) } /** -Inverse of cppcolormap::Accent. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Accent. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Accent_r(size_t N = 8) { return xt::flip(Accent(N), 0); } /** -Inverse of cppcolormap::Dark2. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Dark2. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Dark2_r(size_t N = 8) { return xt::flip(Dark2(N), 0); } /** -Inverse of cppcolormap::Paired. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Paired. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Paired_r(size_t N = 12) { return xt::flip(Paired(N), 0); } /** -Inverse of cppcolormap::Spectral. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Spectral. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Spectral_r(size_t N = 11) { return xt::flip(Spectral(N), 0); } /** -Inverse of cppcolormap::Pastel1. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Pastel1. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Pastel1_r(size_t N = 9) { return xt::flip(Pastel1(N), 0); } /** -Inverse of cppcolormap::Pastel2. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Pastel2. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Pastel2_r(size_t N = 8) { return xt::flip(Pastel2(N), 0); } /** -Inverse of cppcolormap::Set1. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Set1. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Set1_r(size_t N = 9) { return xt::flip(Set1(N), 0); } /** -Inverse of cppcolormap::Set2. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Set2. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Set2_r(size_t N = 8) { return xt::flip(Set2(N), 0); } /** -Inverse of cppcolormap::Set3. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Set3. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Set3_r(size_t N = 12) { return xt::flip(Set3(N), 0); } /** -Inverse of cppcolormap::Blues. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Blues. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Blues_r(size_t N = 9) { return xt::flip(Blues(N), 0); } /** -Inverse of cppcolormap::Greens. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Greens. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Greens_r(size_t N = 9) { return xt::flip(Greens(N), 0); } /** -Inverse of cppcolormap::Greys. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Greys. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Greys_r(size_t N = 2) { return xt::flip(Greys(N), 0); } /** -Inverse of cppcolormap::Oranges. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Oranges. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Oranges_r(size_t N = 9) { return xt::flip(Oranges(N), 0); } /** -Inverse of cppcolormap::Purples. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Purples. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Purples_r(size_t N = 9) { return xt::flip(Purples(N), 0); } /** -Inverse of cppcolormap::Reds. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::Reds. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor Reds_r(size_t N = 9) { return xt::flip(Reds(N), 0); } /** -Inverse of cppcolormap::BuPu. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::BuPu. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor BuPu_r(size_t N = 9) { return xt::flip(BuPu(N), 0); } /** -Inverse of cppcolormap::GnBu. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::GnBu. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor GnBu_r(size_t N = 9) { return xt::flip(GnBu(N), 0); } /** -Inverse of cppcolormap::PuBu. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::PuBu. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PuBu_r(size_t N = 9) { return xt::flip(PuBu(N), 0); } /** -Inverse of cppcolormap::PuBuGn. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::PuBuGn. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PuBuGn_r(size_t N = 9) { return xt::flip(PuBuGn(N), 0); } /** -Inverse of cppcolormap::PuRd. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::PuRd. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PuRd_r(size_t N = 9) { return xt::flip(PuRd(N), 0); } /** -Inverse of cppcolormap::RdPu. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::RdPu. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdPu_r(size_t N = 9) { return xt::flip(RdPu(N), 0); } /** -Inverse of cppcolormap::OrRd. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::OrRd. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor OrRd_r(size_t N = 9) { return xt::flip(OrRd(N), 0); } /** -Inverse of cppcolormap::RdOrYl. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::RdOrYl. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdOrYl_r(size_t N = 9) { return xt::flip(RdOrYl(N), 0); } /** -Inverse of cppcolormap::YlGn. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::YlGn. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor YlGn_r(size_t N = 9) { return xt::flip(YlGn(N), 0); } /** -Inverse of cppcolormap::YlGnBu. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::YlGnBu. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor YlGnBu_r(size_t N = 9) { return xt::flip(YlGnBu(N), 0); } /** -Inverse of cppcolormap::YlOrRd. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::YlOrRd. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor YlOrRd_r(size_t N = 9) { return xt::flip(YlOrRd(N), 0); } /** -Inverse of cppcolormap::BrBG. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::BrBG. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor BrBG_r(size_t N = 11) { return xt::flip(BrBG(N), 0); } /** -Inverse of cppcolormap::PuOr. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::PuOr. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PuOr_r(size_t N = 11) { return xt::flip(PuOr(N), 0); } /** -Inverse of cppcolormap::RdBu. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::RdBu. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdBu_r(size_t N = 11) { return xt::flip(RdBu(N), 0); } /** -Inverse of cppcolormap::RdGy. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::RdGy. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdGy_r(size_t N = 11) { return xt::flip(RdGy(N), 0); } /** -Inverse of cppcolormap::RdYlBu. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::RdYlBu. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdYlBu_r(size_t N = 11) { return xt::flip(RdYlBu(N), 0); } /** -Inverse of cppcolormap::RdYlGn. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::RdYlGn. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor RdYlGn_r(size_t N = 11) { return xt::flip(RdYlGn(N), 0); } /** -Inverse of cppcolormap::PiYG. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::PiYG. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PiYG_r(size_t N = 11) { return xt::flip(PiYG(N), 0); } /** -Inverse of cppcolormap::PRGn. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::PRGn. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor PRGn_r(size_t N = 11) { return xt::flip(PRGn(N), 0); } /** -Inverse of cppcolormap::spring. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::spring. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor spring_r(size_t N = 256) { return xt::flip(spring(N), 0); } /** -Inverse of cppcolormap::summer. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::summer. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor summer_r(size_t N = 256) { return xt::flip(summer(N), 0); } /** -Inverse of cppcolormap::autumn. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::autumn. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor autumn_r(size_t N = 256) { return xt::flip(autumn(N), 0); } /** -Inverse of cppcolormap::winter. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::winter. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor winter_r(size_t N = 256) { return xt::flip(winter(N), 0); } /** -Inverse of cppcolormap::bone. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::bone. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor bone_r(size_t N = 256) { return xt::flip(bone(N), 0); } /** -Inverse of cppcolormap::cool. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::cool. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor cool_r(size_t N = 256) { return xt::flip(cool(N), 0); } /** -Inverse of cppcolormap::hot. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::hot. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor hot_r(size_t N = 256) { return xt::flip(hot(N), 0); } /** -Inverse of cppcolormap::copper. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::copper. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor copper_r(size_t N = 256) { return xt::flip(copper(N), 0); } /** -Inverse of cppcolormap::hsv. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::hsv. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor hsv_r(size_t N = 256) { return xt::flip(hsv(N), 0); } /** -Inverse of cppcolormap::nipy_spectral. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::nipy_spectral. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor nipy_spectral_r(size_t N = 256) { return xt::flip(nipy_spectral(N), 0); } /** -Inverse of cppcolormap::jet. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::jet. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor jet_r(size_t N = 256) { return xt::flip(jet(N), 0); } /** -Inverse of cppcolormap::terrain. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::terrain. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor terrain_r(size_t N = 5) { return xt::flip(terrain(N), 0); } /** -Inverse of cppcolormap::seismic. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::seismic. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor seismic_r(size_t N = 6) { return xt::flip(seismic(N), 0); } /** -Inverse of cppcolormap::afmhot. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::afmhot. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor afmhot_r(size_t N = 256) { return xt::flip(afmhot(N), 0); } /** -Inverse of cppcolormap::magma. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::magma. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor magma_r(size_t N = 256) { return xt::flip(magma(N), 0); } /** -Inverse of cppcolormap::inferno. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::inferno. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor inferno_r(size_t N = 256) { return xt::flip(inferno(N), 0); } /** -Inverse of cppcolormap::plasma. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::plasma. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor plasma_r(size_t N = 256) { return xt::flip(plasma(N), 0); } /** -Inverse of cppcolormap::viridis. - -\param N Number of colors to output. -\returns RGB data. -*/ + * Inverse of cppcolormap::viridis. + * + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor viridis_r(size_t N = 256) { return xt::flip(viridis(N), 0); } /** -Get colormap specified as string. - -\param cmap Name of the colormap. -\param N Number of colors to output. -\returns RGB data. -*/ + * Get colormap specified as string. + * + * @param cmap Name of the colormap. + * @param N Number of colors to output. + * @returns RGB data. + */ inline array_type::tensor colormap(const std::string& cmap, size_t N = 256) { if (cmap == "Accent") { @@ -5144,10 +5148,10 @@ inline array_type::tensor colormap(const std::string& cmap, size_t N } /** -xterm color-cyle. - -\returns RGB data. -*/ + * xterm color-cyle. + * + * @returns RGB data. + */ inline array_type::tensor xterm() { array_type::tensor data = { @@ -5413,10 +5417,10 @@ inline array_type::tensor xterm() } /** -Eindhoven University of Technology color-cyle. - -\returns RGB data. -*/ + * Eindhoven University of Technology color-cyle. + * + * @returns RGB data. + */ inline array_type::tensor tue() { array_type::tensor data = { @@ -5439,31 +5443,31 @@ inline array_type::tensor tue() } /** -Inverse of cppcolormap::xterm. - -\returns RGB data. -*/ + * Inverse of cppcolormap::xterm. + * + * @returns RGB data. + */ inline array_type::tensor xterm_r() { return xt::flip(xterm(), 0); } /** -Inverse of cppcolormap::tue. - -\returns RGB data. -*/ + * Inverse of cppcolormap::tue. + * + * @returns RGB data. + */ inline array_type::tensor tue_r() { return xt::flip(tue(), 0); } /** -Get color-cycle specified as string. - -\param cmap Name of the colormap. -\returns RGB data. -*/ + * Get color-cycle specified as string. + * + * @param cmap Name of the colormap. + * @returns RGB data. + */ inline array_type::tensor colorcycle(const std::string& cmap) { if (cmap == "xterm") { @@ -5486,8 +5490,8 @@ inline array_type::tensor colorcycle(const std::string& cmap) } /** -Algorithm to use for color matching. -*/ + * Algorithm to use for color matching. + */ enum metric { euclidean, ///< Euclidean norm fast_perceptual, ///< Fast best perception algorithm. See: @@ -5523,17 +5527,18 @@ double perceptual_metric(double R1, double G1, double B1, double R2, double G2, } // namespace detail /** -Match colors. - -\param A List of colors. -\param B List of colors. -\param distance_metric Metric to use in color matching. -\return For each item in ``A``, the index of the closets corresponding color in ``B``. -*/ + * Match colors. + * + * @param A List of colors. + * @param B List of colors. + * @param distance_metric Metric to use in color matching. + * @return For each item in ``A``, the index of the closets corresponding color in ``B``. + */ inline array_type::tensor match( const array_type::tensor& A, const array_type::tensor& B, - metric distance_metric = euclidean) + metric distance_metric = euclidean +) { array_type::tensor idx = xt::empty({A.shape(0)}); array_type::tensor d = xt::empty({B.shape(0)}); diff --git a/python/main.cpp b/python/main.cpp index e02c5d3..9d4e560 100644 --- a/python/main.cpp +++ b/python/main.cpp @@ -23,10 +23,10 @@ namespace py = pybind11; .c_str() /** -Overrides the `__name__` of a module. -Classes defined by pybind11 use the `__name__` of the module as of the time they are defined, -which affects the `__repr__` of the class type objects. -*/ + * Overrides the `__name__` of a module. + * Classes defined by pybind11 use the `__name__` of the module as of the time they are defined, + * which affects the `__repr__` of the class type objects. + */ class ScopedModuleNameOverride { public: explicit ScopedModuleNameOverride(py::module m, std::string name) : module_(std::move(m)) @@ -59,18 +59,22 @@ PYBIND11_MODULE(_cppcolormap, m) m.def( "rgb2hex", static_cast&)>(&cppcolormap::rgb2hex), - DOC("rgb2hex")); + DOC("rgb2hex") + ); m.def( "rgb2hex", static_cast (*)(const xt::pytensor&)>( - &cppcolormap::rgb2hex), - DOC("rgb2hex")); + &cppcolormap::rgb2hex + ), + DOC("rgb2hex") + ); m.def( "hex2rgb", py::overload_cast&>(&cppcolormap::hex2rgb), - DOC("hex2rgb")); + DOC("hex2rgb") + ); m.def("hex2rgb", py::overload_cast(&cppcolormap::hex2rgb), DOC("hex2rgb")); @@ -79,7 +83,8 @@ PYBIND11_MODULE(_cppcolormap, m) &cppcolormap::interp, xt::pytensor>, DOC("interp"), py::arg("arg"), - py::arg("N")); + py::arg("N") + ); m.def( "as_colors", @@ -91,7 +96,8 @@ PYBIND11_MODULE(_cppcolormap, m) py::arg("data"), py::arg("colors"), py::arg("vmin"), - py::arg("vmax")); + py::arg("vmax") + ); m.def( "as_colors", @@ -100,7 +106,8 @@ PYBIND11_MODULE(_cppcolormap, m) }, DOC("as_colors"), py::arg("data"), - py::arg("colors")); + py::arg("colors") + ); m.def("Accent", &cppcolormap::Accent, DOC("Accent"), py::arg("N") = 8); m.def("Dark2", &cppcolormap::Dark2, DOC("Dark2"), py::arg("N") = 8); @@ -201,10 +208,8 @@ PYBIND11_MODULE(_cppcolormap, m) m.def("copper_r", &cppcolormap::copper_r, DOC("copper_r"), py::arg("N") = 256); m.def("hsv_r", &cppcolormap::hsv_r, DOC("hsv_r"), py::arg("N") = 256); m.def( - "nipy_spectral_r", - &cppcolormap::nipy_spectral_r, - DOC("nipy_spectral_r"), - py::arg("N") = 256); + "nipy_spectral_r", &cppcolormap::nipy_spectral_r, DOC("nipy_spectral_r"), py::arg("N") = 256 + ); m.def("terrain_r", &cppcolormap::terrain_r, DOC("terrain_r"), py::arg("N") = 6); m.def("seismic_r", &cppcolormap::seismic_r, DOC("seismic_r"), py::arg("N") = 5); m.def("afmhot_r", &cppcolormap::afmhot_r, DOC("afmhot_r"), py::arg("N") = 256); diff --git a/setup.py b/setup.py index 1362117..b94b585 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,13 @@ +from pathlib import Path + from setuptools_scm import get_version from skbuild import setup project_name = "cppcolormap" +this_directory = Path(__file__).parent +long_description = (this_directory / "README.md").read_text() + setup( name=project_name, description="Library with colormaps", @@ -16,5 +21,5 @@ packages=[f"{project_name}"], package_dir={"": "python"}, cmake_install_dir=f"python/{project_name}", - cmake_minimum_required_version="3.13...3.21", + cmake_minimum_required_version="3.13", )