diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index f31c442..a6ba7a1 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -24,7 +24,7 @@ jobs: toolchain: {compiler: intel, version: '2023.2'} steps: - - uses: awvwgk/setup-fortran@v1 + - uses: awvwgk/setup-fortran@v1.6.1 id: setup-fortran with: compiler: ${{ matrix.toolchain.compiler }} diff --git a/.github/workflows/doc-deployment.yml b/.github/workflows/doc-deployment.yml new file mode 100644 index 0000000..a1f767f --- /dev/null +++ b/.github/workflows/doc-deployment.yml @@ -0,0 +1,26 @@ +name: doc-deployment + +on: [push, pull_request] + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v1 + with: + python-version: '3.x' + + - name: Install dependencies + run: pip install -v ford==6.1.17 + + - name: Build Documentation + run: ford docs.md + + - uses: JamesIves/github-pages-deploy-action@3.7.1 + if: github.event_name == 'push' && github.repository == 'jchristopherson/fstats' && ( startsWith( github.ref, 'refs/tags/' ) || github.ref == 'refs/heads/main' ) + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH: gh-pages + FOLDER: doc + CLEAN: true \ No newline at end of file diff --git a/.github/workflows/doxygen-gh-pages.yml b/.github/workflows/doxygen-gh-pages.yml deleted file mode 100644 index 905c6d1..0000000 --- a/.github/workflows/doxygen-gh-pages.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Doxygen GitHub Pages Deploy Action - -on: - push: - branches: - - master - - workflow_dispatch: - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: DenverCoder1/doxygen-github-pages-action@v1.2.0 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - config_file: docs/Doxyfile diff --git a/.github/workflows/fpm.yml b/.github/workflows/fpm.yml index 4e76797..7a001b8 100644 --- a/.github/workflows/fpm.yml +++ b/.github/workflows/fpm.yml @@ -8,15 +8,12 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-11] - gcc_v: [10] # Version of GFortran we want to use. + os: [ubuntu-latest] + gcc_v: [12] # Version of GFortran we want to use. include: - os: ubuntu-latest os-arch: linux-x86_64 - - os: macos-11 - os-arch: macos-x86_64 - env: FC: gfortran GCC_V: ${{ matrix.gcc_v }} @@ -25,13 +22,6 @@ jobs: - name: Checkout code uses: actions/checkout@v1 - - name: Install GFortran macOS - if: contains(matrix.os, 'macos') - run: | - ln -s /usr/local/bin/gfortran-${GCC_V} /usr/local/bin/gfortran - which gfortran-${GCC_V} - which gfortran - - name: Install GFortran Linux if: contains(matrix.os, 'ubuntu') run: | @@ -39,12 +29,18 @@ jobs: --slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${GCC_V} \ --slave /usr/bin/gcov gcov /usr/bin/gcov-${GCC_V} + - name: Install BLAS & LAPACK + if: contains(matrix.os, 'ubuntu') + run: | + sudo apt-get update + sudo apt-get install libopenblas-dev liblapack-dev + - name: Install fpm - uses: fortran-lang/setup-fpm@v3 + uses: fortran-lang/setup-fpm@v5 with: - fpm-version: 'v0.8.2' + fpm-version: 'v0.10.1' - - name: Build FERROR + - name: Build LINALG run: | gfortran --version fpm build @@ -70,6 +66,8 @@ jobs: install: | mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-fpm + mingw-w64-x86_64-openblas + mingw-w64-x86_64-lapack - name: fpm build run: | @@ -81,47 +79,54 @@ jobs: run: | fpm test - intel-build: - runs-on: ubuntu-latest - strategy: - fail-fast: false - - env: - FPM_FC: ifort - FC: ifort - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Add Intel repository (Linux) - run: | - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB - sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB - rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB - echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list - sudo apt-get update - - - name: Install Intel oneAPI compiler (Linux) - run: | - sudo apt-get install intel-oneapi-compiler-fortran - - - name: Setup Intel oneAPI environment - run: | - source /opt/intel/oneapi/setvars.sh - printenv >> $GITHUB_ENV - - - name: Install fpm - uses: fortran-lang/setup-fpm@v3 - with: - fpm-version: 'v0.8.2' - - - name: fpm build - run: | - ifort --version - fpm --version - fpm build --profile debug --flag "-warn nointerfaces" - - - name: fpm test - run: | - fpm test --profile debug --flag "-warn nointerfaces" \ No newline at end of file + # intel-build: + # runs-on: ubuntu-latest + # strategy: + # fail-fast: false + + # env: + # FPM_FC: ifx + # FC: ifx + + # steps: + # - name: Checkout code + # uses: actions/checkout@v3 + + # - name: Add Intel repository (Linux) + # run: | + # wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB + # sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB + # rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB + # echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + # sudo apt-get update + + # - name: Install Intel oneAPI compiler (Linux) + # run: | + # sudo apt-get install intel-oneapi-compiler-fortran + + # - name: Setup Intel oneAPI environment + # run: | + # source /opt/intel/oneapi/setvars.sh + # printenv >> $GITHUB_ENV + + # - name: Install MKL + # run: | + # sudo apt-get update + # sudo apt-get -y install intel-mkl + # sudo apt update + # sudo apt -y install intel-mkl + + # - name: Install fpm + # uses: fortran-lang/setup-fpm@v3 + # with: + # fpm-version: 'v0.8.2' + + # - name: fpm build + # run: | + # ifx --version + # fpm --version + # fpm build --profile debug --flag "-warn nointerfaces" + + # - name: fpm test + # run: | + # fpm test --profile debug --flag "-warn nointerfaces" \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 179bace..c09e220 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.24) project( fplot LANGUAGES Fortran - VERSION 1.7.1 + VERSION 1.7.2 ) # Get helper macros and functions diff --git a/doc/css/bootstrap.css b/doc/css/bootstrap.css new file mode 100644 index 0000000..5784645 --- /dev/null +++ b/doc/css/bootstrap.css @@ -0,0 +1,6013 @@ +/*! + * Bootstrap v3.3.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=f8210fe4edf87d7604a7) + * Config saved to config.json and https://gist.github.com/f8210fe4edf87d7604a7 + */ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +mark { + background: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + background: transparent !important; + color: #000 !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + text-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + select { + background: #fff !important; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\2a"; +} +.glyphicon-plus:before { + content: "\2b"; +} +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-fire:before { + content: "\e104"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-bell:before { + content: "\e123"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-briefcase:before { + content: "\e139"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333333; + background-color: #ffffff; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + padding: 4px; + line-height: 1.42857143; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777777; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} +h1, +.h1 { + font-size: 36px; +} +h2, +.h2 { + font-size: 30px; +} +h3, +.h3 { + font-size: 24px; +} +h4, +.h4 { + font-size: 18px; +} +h5, +.h5 { + font-size: 14px; +} +h6, +.h6 { + font-size: 12px; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +small, +.small { + font-size: 85%; +} +mark, +.mark { + background-color: #fcf8e3; + padding: .2em; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-nowrap { + white-space: nowrap; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-muted { + color: #777777; +} +.text-primary { + color: #337ab7; +} +a.text-primary:hover { + color: #286090; +} +.text-success { + color: #3c763d; +} +a.text-success:hover { + color: #2b542c; +} +.text-info { + color: #31708f; +} +a.text-info:hover { + color: #245269; +} +.text-warning { + color: #8a6d3b; +} +a.text-warning:hover { + color: #66512c; +} +.text-danger { + color: #a94442; +} +a.text-danger:hover { + color: #843534; +} +.bg-primary { + color: #fff; + background-color: #337ab7; +} +a.bg-primary:hover { + background-color: #286090; +} +.bg-success { + background-color: #dff0d8; +} +a.bg-success:hover { + background-color: #c1e2b3; +} +.bg-info { + background-color: #d9edf7; +} +a.bg-info:hover { + background-color: #afd9ee; +} +.bg-warning { + background-color: #fcf8e3; +} +a.bg-warning:hover { + background-color: #f7ecb5; +} +.bg-danger { + background-color: #f2dede; +} +a.bg-danger:hover { + background-color: #e4b9b9; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; + margin-left: -5px; +} +.list-inline > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; +} +dl { + margin-top: 0; + margin-bottom: 20px; +} +dt, +dd { + line-height: 1.42857143; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777777; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eeeeee; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777777; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; + text-align: right; +} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; +} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: #ffffff; + background-color: #333333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + word-break: break-all; + word-wrap: break-word; + color: #333333; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +.row { + margin-left: -15px; + margin-right: -15px; +} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0%; +} +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0%; + } +} +table { + background-color: transparent; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777777; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #dddddd; +} +.table .table { + background-color: #ffffff; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #dddddd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-child(odd) { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} +table col[class*="col-"] { + position: static; + float: none; + display: table-column; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + float: none; + display: table-cell; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} +.table-responsive { + overflow-x: auto; + min-height: 0.01%; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #dddddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + padding: 0; + margin: 0; + border: 0; + min-width: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555555; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555555; + background-color: #ffffff; + background-image: none; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); +} +.form-control::-moz-placeholder { + color: #999999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999999; +} +.form-control::-webkit-input-placeholder { + color: #999999; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eeeeee; + opacity: 1; +} +textarea.form-control { + height: auto; +} +input[type="search"] { + -webkit-appearance: none; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] { + line-height: 34px; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm { + line-height: 30px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg { + line-height: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-left: -20px; + margin-top: 4px \9; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.form-control-static { + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-left: 0; + padding-right: 0; +} +.input-sm, +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm, +select.form-group-sm .form-control { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +textarea.form-group-sm .form-control, +select[multiple].input-sm, +select[multiple].form-group-sm .form-control { + height: auto; +} +.input-lg, +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.input-lg, +select.form-group-lg .form-control { + height: 46px; + line-height: 46px; +} +textarea.input-lg, +textarea.form-group-lg .form-control, +select[multiple].input-lg, +select[multiple].form-group-lg .form-control { + height: auto; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 42.5px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} +.input-sm + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; +} +.has-success .input-group-addon { + color: #3c763d; + border-color: #3c763d; + background-color: #dff0d8; +} +.has-success .form-control-feedback { + color: #3c763d; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; +} +.has-warning .input-group-addon { + color: #8a6d3b; + border-color: #8a6d3b; + background-color: #fcf8e3; +} +.has-warning .form-control-feedback { + color: #8a6d3b; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; +} +.has-error .input-group-addon { + color: #a94442; + border-color: #a94442; + background-color: #f2dede; +} +.has-error .form-control-feedback { + color: #a94442; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} +.form-horizontal .form-group { + margin-left: -15px; + margin-right: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + margin-bottom: 0; + padding-top: 7px; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.3px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + } +} +.btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #333333; + text-decoration: none; +} +.btn:active, +.btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} +.btn-default:hover, +.btn-default:focus, +.btn-default.focus, +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} +.btn-default .badge { + color: #ffffff; + background-color: #333333; +} +.btn-primary { + color: #ffffff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #ffffff; +} +.btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:hover, +.btn-success:focus, +.btn-success.focus, +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #ffffff; +} +.btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:hover, +.btn-info:focus, +.btn-info.focus, +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #ffffff; +} +.btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning.focus, +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #ffffff; +} +.btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger.focus, +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #ffffff; +} +.btn-link { + color: #337ab7; + font-weight: normal; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; + visibility: hidden; +} +.collapse.in { + display: block; + visibility: visible; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + -o-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + text-align: left; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + -webkit-background-clip: padding-box; + background-clip: padding-box; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + text-decoration: none; + color: #262626; + background-color: #f5f5f5; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + background-color: #337ab7; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: not-allowed; +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + left: auto; + right: 0; +} +.dropdown-menu-left { + left: 0; + right: auto; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777777; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + left: auto; + right: 0; + } + .navbar-right .dropdown-menu-left { + left: 0; + right: auto; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + float: none; + display: table-cell; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-left: 0; + padding-right: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555555; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + margin-left: -1px; +} +.nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.nav > li.disabled > a { + color: #777777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777777; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + border-color: #337ab7; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #dddddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #dddddd; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #dddddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #ffffff; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #337ab7; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #dddddd; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #dddddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #ffffff; + } +} +.tab-content > .tab-pane { + display: none; + visibility: hidden; +} +.tab-content > .active { + display: block; + visibility: visible; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + overflow-x: visible; + padding-right: 15px; + padding-left: 15px; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + visibility: visible !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-left: 0; + padding-right: 0; + } +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; + height: 50px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + margin-right: 15px; + padding: 9px 10px; + margin-top: 8px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle:focus { + outline: 0; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 7.5px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +.navbar-form { + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + margin-top: 8px; + margin-bottom: 8px; +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-left: 15px; + margin-right: 15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.navbar-default .navbar-brand { + color: #777777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777777; +} +.navbar-default .navbar-nav > li > a { + color: #777777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #dddddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #888888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + background-color: #e7e7e7; + color: #555555; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #777777; +} +.navbar-default .navbar-link:hover { + color: #333333; +} +.navbar-default .btn-link { + color: #777777; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333333; +} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #cccccc; +} +.navbar-inverse { + background-color: #222222; + border-color: #080808; +} +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #333333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + background-color: #080808; + color: #ffffff; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} +.navbar-inverse .btn-link { + color: #9d9d9d; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #ffffff; +} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444444; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + content: "/\00a0"; + padding: 0 5px; + color: #cccccc; +} +.breadcrumb > .active { + color: #777777; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.42857143; + text-decoration: none; + color: #337ab7; + background-color: #ffffff; + border: 1px solid #dddddd; + margin-left: -1px; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + color: #23527c; + background-color: #eeeeee; + border-color: #dddddd; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + background-color: #337ab7; + border-color: #337ab7; + cursor: default; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777777; + background-color: #ffffff; + border-color: #dddddd; + cursor: not-allowed; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-bottom-right-radius: 6px; + border-top-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 20px 0; + list-style: none; + text-align: center; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #777777; + background-color: #ffffff; + cursor: not-allowed; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +a.label:hover, +a.label:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + background-color: #777777; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: #ffffff; + line-height: 1; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: #777777; + border-radius: 10px; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-xs .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #ffffff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding: 30px 15px; + margin-bottom: 30px; + color: inherit; + background-color: #eeeeee; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron { + border-radius: 6px; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding: 48px 0; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-left: 60px; + padding-right: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: border 0.2s ease-in-out; + -o-transition: border 0.2s ease-in-out; + transition: border 0.2s ease-in-out; +} +.thumbnail > img, +.thumbnail a > img { + margin-left: auto; + margin-right: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; +} +.thumbnail .caption { + padding: 9px; + color: #333333; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #3c763d; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #31708f; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} +.alert-warning { + background-color: #fcf8e3; + border-color: #faebcc; + color: #8a6d3b; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} +.alert-danger { + background-color: #f2dede; + border-color: #ebccd1; + color: #a94442; +} +.alert-danger hr { + border-top-color: #e4b9c0; +} +.alert-danger .alert-link { + color: #843534; +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media-right, +.media > .pull-right { + padding-left: 10px; +} +.media-left, +.media > .pull-left { + padding-right: 10px; +} +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} +.media-middle { + vertical-align: middle; +} +.media-bottom { + vertical-align: bottom; +} +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + margin-bottom: 20px; + padding-left: 0; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +a.list-group-item { + color: #555555; +} +a.list-group-item .list-group-item-heading { + color: #333333; +} +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + color: #555555; + background-color: #f5f5f5; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + background-color: #eeeeee; + color: #777777; + cursor: not-allowed; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777777; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; +} +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} +a.list-group-item-success { + color: #3c763d; +} +a.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +a.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +a.list-group-item-info { + color: #31708f; +} +a.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +a.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +a.list-group-item-info.active:hover, +a.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +a.list-group-item-warning { + color: #8a6d3b; +} +a.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +a.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +a.list-group-item-danger { + color: #a94442; +} +a.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +a.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.panel-title > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-left: 15px; + padding-right: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #dddddd; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + border: 0; + margin-bottom: 0; +} +.panel-group { + margin-bottom: 20px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #dddddd; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} +.panel-default { + border-color: #dddddd; +} +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #dddddd; +} +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #dddddd; +} +.panel-primary { + border-color: #337ab7; +} +.panel-primary > .panel-heading { + color: #ffffff; + background-color: #337ab7; + border-color: #337ab7; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #ffffff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; +} +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; +} +.panel-warning { + border-color: #faebcc; +} +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; +} +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; +} +.panel-danger { + border-color: #ebccd1; +} +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; +} +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; +} +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + left: 0; + bottom: 0; + height: 100%; + width: 100%; + border: 0; +} +.embed-responsive.embed-responsive-16by9 { + padding-bottom: 56.25%; +} +.embed-responsive.embed-responsive-4by3 { + padding-bottom: 75%; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.modal-open { + overflow: hidden; +} +.modal { + display: none; + overflow: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + -webkit-background-clip: padding-box; + background-clip: padding-box; + outline: 0; +} +.modal-backdrop { + position: absolute; + top: 0; + right: 0; + left: 0; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; + min-height: 16.42857143px; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 15px; +} +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + visibility: visible; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: normal; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-left .tooltip-arrow { + bottom: 0; + right: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + background-color: #ffffff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + white-space: normal; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover > .arrow { + border-width: 11px; +} +.popover > .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top > .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top > .arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #ffffff; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right > .arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #ffffff; +} +.popover.bottom > .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom > .arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #ffffff; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left > .arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #ffffff; + bottom: -10px; +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-footer:before, +.modal-footer:after { + content: " "; + display: table; +} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-footer:after { + clear: both; +} +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; + visibility: hidden !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} diff --git a/doc/css/bootstrap.min.css b/doc/css/bootstrap.min.css new file mode 100644 index 0000000..a40d943 --- /dev/null +++ b/doc/css/bootstrap.min.css @@ -0,0 +1,10 @@ +/*! + * Bootstrap v3.3.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=f8210fe4edf87d7604a7) + * Config saved to config.json and https://gist.github.com/f8210fe4edf87d7604a7 + *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,select.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:left;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}} \ No newline at end of file diff --git a/doc/css/font-awesome.css b/doc/css/font-awesome.css new file mode 100644 index 0000000..4040b3c --- /dev/null +++ b/doc/css/font-awesome.css @@ -0,0 +1,1672 @@ +/*! + * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.2.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} diff --git a/doc/css/font-awesome.min.css b/doc/css/font-awesome.min.css new file mode 100644 index 0000000..ec53d4d --- /dev/null +++ b/doc/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.2.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"} \ No newline at end of file diff --git a/doc/css/local.css b/doc/css/local.css new file mode 100644 index 0000000..11dd941 --- /dev/null +++ b/doc/css/local.css @@ -0,0 +1,284 @@ +body { + padding-top: 70px; + } + table.nostretch { + width=100% + } + .nostretch td { + class='block' + } + .nostretch tr td{ + width:1%; + white-space:nowrap; + } + + html { + scroll-padding-top: 70px; + } + + ol.hierarchy { + min-height: 40px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + } + + .smallcaps { + font-variant: small-caps; + } + .well .sidebar { + padding: 8px 0 + } + .sidebar a { + padding: 0px,0px,0px,0px + } + .varlist>tbody>tr>td { + padding-left: 3px; + padding-right: 3px; + } + .varlist>tbody>tr>td:first-child, .varlist>thead>tr>td:first-child { + padding-left: 8px; + } + .varlist>tbody>td>td:last-child, .varlist>thead>tr>td:last-child { + padding-right: 8px; + } + + .highlight pre { + overflow-x: auto; + overflow-wrap: normal; + white-space: pre + } + + /* .hl is for when line numbers are included, .highlight is for all + other cases. */ + .hl pre { + counter-reset: line-numbering; + overflow-x: auto; + overflow-wrap: normal; + white-space: pre; + padding: 0; + padding-right: 9.5px; + overflow-y: hidden; + padding-bottom: 9.5px; + } + + .hl pre a::before { + content: counter(line-numbering); + counter-increment: line-numbering; + padding-right: 0.7em; /* space after numbers */ + margin-top: 4.5em; + width: 60px; + text-align: right; + opacity: 0.7; + display: inline-block; + color: #aaa; + background: #eee; + margin-right: 10px; + border-right: 1px solid #ccc; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + + .hl pre a:first-of-type::before { + padding-top: 9.5px; + } + + .hl pre a:last-of-type::before { + padding-bottom: 9.5px; + } + + .hl pre a:only-of-type::before { + padding: 9.5px; + } + + .hl pre a { + display: inline-block; + height: 4.5em; + margin: -4.5em 0 0; + } + .codesum h3 { + margin-top: 2px; + margin-bottom: 2px; + } + + h1.inline, h2.inline, h3.inline { + display: inline; + } + + .depwarn { + float: right; + } + + .anchor { + position: absolute; + margin: -4.5em; + visibility:hidden; + } + + .alert { + margin-left: 5px; + margin-right: 5px; + margin-top: 5px; + } + + div.toc { + font-size: 14.73px; + padding-left: 0px; + padding-right: 0px; + } + + div.toc a { + padding-left: 20px; + padding-right: 20px; + margin-right: 15px; + padding-top: 5px; + padding-bottom: 5px; + } + + div.toc li { + font-size: 0.95em; + padding-left: 15px; + } + + div.toc li.title { + font-size: 1em; + } + + div.toc hr { + margin-top: 12px; + margin-bottom: 10px; + } + + .in-well { + padding: 0px 0px; + margin-bottom: 0px; + float:right; + } + + table tr.submod>td { + border-top: none; + font-size: 13.5px; + } + + .graph-help { + font-size: 10px; + } + + .depgraph { + width: 100%; + max-width: 1140px; + } + + #sidebar a { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .highlighttable { + width: auto; + table-layout: fixed; + } + + ul.checklist { + list-style-type: none; + } + + ul.checklist input[type="checkbox"] { + margin-left: -20.8px; + margin-right: 4.55px; + } + + .gitter-chat-embed { + z-index: 100000; + } + +table.graph { + text-align: center; +} + + +.graph td.root { + border:2px solid black; + padding:10px; +} + +.graph td.triangle-right:after { + content: ""; + display: block; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + border-left: 7px solid black; +} + +.graph td.triangle-left:after { + content: ""; + display: block; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + border-right: 7px solid black; +} + +.graph td.node { + color: white; + padding:10px; + border-style: solid; + border-width: 3px 0px 3px 0px; + border-color: white; +} + +.graph td.node a{ + color: white; +} + +.graph td.dashedText, +.graph td.solidText { + padding: 0px 10px 0px 10px; + min-width: 40px; + color: black; + border-color: black; +} + +.graph td.dashedText { + border-bottom-style: dashed; +} + +.graph td.solidText { + border-bottom-style: solid; +} + +.graph td.dashedBottom, +.graph td.dashedTop, +.graph td.solidTop, +.graph td.solidBottom { + min-width: 40px; + color: transparent; + border-color: black; +} + +.graph td.dashedBottom { + border-bottom-style: dashed; +} + +.graph td.dashedTop { + border-top-style: dashed; +} + +.graph td.solidBottom { + border-bottom-style: solid; +} + +.graph td.solidTop { + border-top-style: solid; +} + +/* Ensure tables in Pages don't collapse horizontally */ +td, th { + padding-right: 10px; +} diff --git a/doc/css/pygments.css b/doc/css/pygments.css new file mode 100644 index 0000000..4a3a8d8 --- /dev/null +++ b/doc/css/pygments.css @@ -0,0 +1,61 @@ +pre .hll { background-color: #ffffcc } +pre .c { color: #408080; font-style: italic } /* Comment */ +pre .err { border: 1px solid #FF0000 } /* Error */ +pre .k { color: #008000; font-weight: bold } /* Keyword */ +pre .o { color: #666666 } /* Operator */ +pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */ +pre .cp { color: #BC7A00 } /* Comment.Preproc */ +pre .c1 { color: #408080; font-style: italic } /* Comment.Single */ +pre .cs { color: #408080; font-style: italic } /* Comment.Special */ +pre .gd { color: #A00000 } /* Generic.Deleted */ +pre .ge { font-style: italic } /* Generic.Emph */ +pre .gr { color: #FF0000 } /* Generic.Error */ +pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +pre .gi { color: #00A000 } /* Generic.Inserted */ +pre .go { color: #888888 } /* Generic.Output */ +pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +pre .gs { font-weight: bold } /* Generic.Strong */ +pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +pre .gt { color: #0044DD } /* Generic.Traceback */ +pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +pre .kp { color: #008000 } /* Keyword.Pseudo */ +pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +pre .kt { color: #B00040 } /* Keyword.Type */ +pre .m { color: #666666 } /* Literal.Number */ +pre .s { color: #BA2121 } /* Literal.String */ +pre .na { color: #7D9029 } /* Name.Attribute */ +pre .nb { color: #008000 } /* Name.Builtin */ +pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +pre .no { color: #880000 } /* Name.Constant */ +pre .nd { color: #AA22FF } /* Name.Decorator */ +pre .ni { color: #999999; font-weight: bold } /* Name.Entity */ +pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ +pre .nf { color: #0000FF } /* Name.Function */ +pre .nl { color: #A0A000 } /* Name.Label */ +pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +pre .nt { color: #008000; font-weight: bold } /* Name.Tag */ +pre .nv { color: #19177C } /* Name.Variable */ +pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +pre .w { color: #bbbbbb } /* Text.Whitespace */ +pre .mf { color: #666666 } /* Literal.Number.Float */ +pre .mh { color: #666666 } /* Literal.Number.Hex */ +pre .mi { color: #666666 } /* Literal.Number.Integer */ +pre .mo { color: #666666 } /* Literal.Number.Oct */ +pre .sb { color: #BA2121 } /* Literal.String.Backtick */ +pre .sc { color: #BA2121 } /* Literal.String.Char */ +pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +pre .s2 { color: #BA2121 } /* Literal.String.Double */ +pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ +pre .sh { color: #BA2121 } /* Literal.String.Heredoc */ +pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ +pre .sx { color: #008000 } /* Literal.String.Other */ +pre .sr { color: #BB6688 } /* Literal.String.Regex */ +pre .s1 { color: #BA2121 } /* Literal.String.Single */ +pre .ss { color: #19177C } /* Literal.String.Symbol */ +pre .bp { color: #008000 } /* Name.Builtin.Pseudo */ +pre .vc { color: #19177C } /* Name.Variable.Class */ +pre .vg { color: #19177C } /* Name.Variable.Global */ +pre .vi { color: #19177C } /* Name.Variable.Instance */ +pre .il { color: #666666 } /* Literal.Number.Integer.Long */ diff --git a/doc/favicon.png b/doc/favicon.png new file mode 100644 index 0000000..4d6ad16 Binary files /dev/null and b/doc/favicon.png differ diff --git a/doc/fonts/FontAwesome.otf b/doc/fonts/FontAwesome.otf new file mode 100644 index 0000000..81c9ad9 Binary files /dev/null and b/doc/fonts/FontAwesome.otf differ diff --git a/doc/fonts/fontawesome-webfont.eot b/doc/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..84677bc Binary files /dev/null and b/doc/fonts/fontawesome-webfont.eot differ diff --git a/doc/fonts/fontawesome-webfont.svg b/doc/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..d907b25 --- /dev/null +++ b/doc/fonts/fontawesome-webfont.svg @@ -0,0 +1,520 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/fonts/fontawesome-webfont.ttf b/doc/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..96a3639 Binary files /dev/null and b/doc/fonts/fontawesome-webfont.ttf differ diff --git a/doc/fonts/fontawesome-webfont.woff b/doc/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..628b6a5 Binary files /dev/null and b/doc/fonts/fontawesome-webfont.woff differ diff --git a/doc/fonts/glyphicons-halflings-regular.eot b/doc/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000..4a4ca86 Binary files /dev/null and b/doc/fonts/glyphicons-halflings-regular.eot differ diff --git a/doc/fonts/glyphicons-halflings-regular.svg b/doc/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000..25691af --- /dev/null +++ b/doc/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/fonts/glyphicons-halflings-regular.ttf b/doc/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000..67fa00b Binary files /dev/null and b/doc/fonts/glyphicons-halflings-regular.ttf differ diff --git a/doc/fonts/glyphicons-halflings-regular.woff b/doc/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000..8c54182 Binary files /dev/null and b/doc/fonts/glyphicons-halflings-regular.woff differ diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000..f5598c4 --- /dev/null +++ b/doc/index.html @@ -0,0 +1,201 @@ + + + + + + + + + + + FPLOT + + + + + + + + + + + + + + + + + + + + +
+ +
+

FPLOT is a Fortran library providing a convenient interface for plotting with GNUPLOT.

+

Find us on…

+

+ GitHub +

+
+ +
+
+

FPLOT

+ +
+
+
+

Developer Info

+

Jason Christopherson

+ +
+
+
+
+
+ + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/cm_get_string_result.html b/doc/interface/cm_get_string_result.html new file mode 100644 index 0000000..636c497 --- /dev/null +++ b/doc/interface/cm_get_string_result.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + cm_get_string_result – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

cm_get_string_result + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

interface
+ public function cm_get_string_result(this) result(x) +

+ + + +

Arguments

+ + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + class(colormap), + intent(in) + + ::this +

The colormap object.

+
+ +

Return Value character(len=:),allocatable

+

The string.

+

Description

+

Retrieves a string result from a colormap object.

+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/get_string_result.html b/doc/interface/get_string_result.html new file mode 100644 index 0000000..58b23b8 --- /dev/null +++ b/doc/interface/get_string_result.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + get_string_result – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

get_string_result + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

interface
+ public function get_string_result(this) result(x) +

+ + + +

Arguments

+ + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + class(plot_object), + intent(in) + + ::this +

The plot_object object.

+
+ +

Return Value character(len=:),allocatable

+

The result string.

+

Description

+

Returns a string from a plot_object.

+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/operator(==).html b/doc/interface/operator(==).html new file mode 100644 index 0000000..0cf2dd2 --- /dev/null +++ b/doc/interface/operator(==).html @@ -0,0 +1,316 @@ + + + + + + + + + + + operator(==) – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

operator(==) + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

public interface operator(==)

+ + +
+

Contents

+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+
+ + + +

Module Procedures

+
+

private pure function clr_equals(x, y) result(rst) +

+
+ + +

Arguments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + type(color), + intent(in) + + ::x + +
+ + type(color), + intent(in) + + ::y + +
+ +

+ Return Value + logical +

+ + +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/operator(SLASH=).html b/doc/interface/operator(SLASH=).html new file mode 100644 index 0000000..5d67f08 --- /dev/null +++ b/doc/interface/operator(SLASH=).html @@ -0,0 +1,316 @@ + + + + + + + + + + + operator(/=) – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

operator(/=) + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

public interface operator(/=)

+ + +
+

Contents

+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+
+ + + +

Module Procedures

+
+

private pure function clr_not_equals(x, y) result(rst) +

+
+ + +

Arguments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + type(color), + intent(in) + + ::x + +
+ + type(color), + intent(in) + + ::y + +
+ +

+ Return Value + logical +

+ + +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/pa_get_string_result.html b/doc/interface/pa_get_string_result.html new file mode 100644 index 0000000..c20bc9c --- /dev/null +++ b/doc/interface/pa_get_string_result.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + pa_get_string_result – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

pa_get_string_result + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

interface
+ public function pa_get_string_result(this) result(x) +

+ + + +

Arguments

+ + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + class(plot_axis), + intent(in) + + ::this +

The plot_axis object.

+
+ +

Return Value character(len=:),allocatable

+

The string.

+

Description

+

Retrieves a string from a plot_axis.

+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/pd_get_string_result.html b/doc/interface/pd_get_string_result.html new file mode 100644 index 0000000..02e7b23 --- /dev/null +++ b/doc/interface/pd_get_string_result.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + pd_get_string_result – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

pd_get_string_result + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

interface
+ public function pd_get_string_result(this) result(x) +

+ + + +

Arguments

+ + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + class(plot_data), + intent(in) + + ::this +

The plot_data object.

+
+ +

Return Value character(len=:),allocatable

+

The string.

+

Description

+

Retrieves a string from a plot_data object.

+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/simplify_polyline.html b/doc/interface/simplify_polyline.html new file mode 100644 index 0000000..433ec55 --- /dev/null +++ b/doc/interface/simplify_polyline.html @@ -0,0 +1,547 @@ + + + + + + + + + + + simplify_polyline – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

simplify_polyline + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

public interface simplify_polyline

+ + +
+

Contents

+ + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +

Module Procedures

+
+

private function simplify_polyline_2d1(x, y, tol, err) result(ln) +

+
+

Simplifies a 2D polyline by removing points too close to +discern given a specified tolerance.

+ +

Arguments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + real(kind=real64), + intent(in), + dimension(:) + ::x +

An N-element array containing the x-coordinates of the vertices +making up the polyline.

+
+ + real(kind=real64), + intent(in), + dimension(:) + ::y +

An N-element array containing the y-coordinates of the vertices +making up the polyline.

+
+ + real(kind=real64), + intent(in) + + ::tol +

The distance tolerance to use when simplifying the polyline. +This value must be positive, and larger than machine epsilon.

+
+ + class(errors), + intent(inout),optional, + target + ::err +

An error handling object.

+
+ +

+ Return Value + real(kind=real64), allocatable, dimension(:,:) +

+

A matrix containing the simplified polyline vertices. The first +column of the matrix contains the x-coordinates, and the second +column contains the y-coordinates.

+ +
+
+ +
+

private function simplify_polyline_3d1(x, y, z, tol, err) result(ln) +

+
+

Simplifies a 3D polyline by removing points too close to +discern given a specified tolerance.

+ +

Arguments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + real(kind=real64), + intent(in), + dimension(:) + ::x +

An N-element array containing the x-coordinates of the vertices +making up the polyline.

+
+ + real(kind=real64), + intent(in), + dimension(:) + ::y +

An N-element array containing the y-coordinates of the vertices +making up the polyline.

+
+ + real(kind=real64), + intent(in), + dimension(:) + ::z +

An N-element array containing the z-coordinates of the vertices +making up the polyline.

+
+ + real(kind=real64), + intent(in) + + ::tol +

The distance tolerance to use when simplifying the polyline. +This value must be positive, and larger than machine epsilon.

+
+ + class(errors), + intent(inout),optional, + target + ::err +

An error handling object.

+
+ +

+ Return Value + real(kind=real64), allocatable, dimension(:,:) +

+

A matrix containing the simplified polyline vertices. The first +column of the matrix contains the x-coordinates, the second +column contains the y-coordinates, and the third column contains +the z-coordinates.

+ +
+
+ +
+

private function simplify_polyline_mtx(xy, tol, err) result(ln) +

+
+

Simplifies a 2D or 3D polyline by removing points too close to +discern given a specified tolerance.

+ +

Arguments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + real(kind=real64), + intent(in), + dimension(:,:) + ::xy +

An N-by-2 or N-by-3 matrix containing the polyline vertex data.

+
+ + real(kind=real64), + intent(in) + + ::tol +

The distance tolerance to use when simplifying the polyline. +This value must be positive, and larger than machine epsilon.

+
+ + class(errors), + intent(inout),optional, + target + ::err +

An error handling object.

+
+ +

+ Return Value + real(kind=real64), allocatable, dimension(:,:) +

+

A matrix containing the simplified polyline vertices. The first +column of the matrix contains the x-coordinates, the second +column contains the y-coordinates, and if necessary, the third +column contains the z-coordinates.

+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/spd_get_int_value.html b/doc/interface/spd_get_int_value.html new file mode 100644 index 0000000..4c728fe --- /dev/null +++ b/doc/interface/spd_get_int_value.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + spd_get_int_value – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

spd_get_int_value + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

interface
+ public pure function spd_get_int_value(this) result(x) +

+ + + +

Arguments

+ + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + class(scatter_plot_data), + intent(in) + + ::this +

The scatter_plot_data object.

+
+ +

Return Value integer(kind=int32)

+

The value.

+

Description

+

Gets an integer value from the scatter_plot_data object.

+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/spd_get_string_result.html b/doc/interface/spd_get_string_result.html new file mode 100644 index 0000000..62f5df9 --- /dev/null +++ b/doc/interface/spd_get_string_result.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + spd_get_string_result – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

spd_get_string_result + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

interface
+ public function spd_get_string_result(this) result(x) +

+ + + +

Arguments

+ + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + class(scatter_plot_data), + intent(in) + + ::this +

The scatter_plot_data object.

+
+ +

Return Value character(len=:),allocatable

+

The string.

+

Description

+

Gets a string value from the scatter_plot_data object.

+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/spd_get_value.html b/doc/interface/spd_get_value.html new file mode 100644 index 0000000..c09d747 --- /dev/null +++ b/doc/interface/spd_get_value.html @@ -0,0 +1,260 @@ + + + + + + + + + + + + spd_get_value – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

spd_get_value + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

interface
+ public pure function spd_get_value(this, index) result(x) +

+ + + +

Arguments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + class(scatter_plot_data), + intent(in) + + ::this +

The scatter_plot_data object.

+
+ + integer(kind=int32), + intent(in) + + ::index +

The index.

+
+ +

Return Value real(kind=real64)

+

The value.

+

Description

+

Gets an indexed value from the scatter_plot_data object.

+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/spd_set_value.html b/doc/interface/spd_set_value.html new file mode 100644 index 0000000..1bf64fb --- /dev/null +++ b/doc/interface/spd_set_value.html @@ -0,0 +1,273 @@ + + + + + + + + + + + + spd_set_value – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

spd_set_value + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

interface
+ public subroutine spd_set_value(this, index, x) +

+ + + +

Arguments

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + class(scatter_plot_data), + intent(inout) + + ::this +

The scatter_plot_data object.

+
+ + integer(kind=int32), + intent(in) + + ::index +

The index.

+
+ + real(kind=real64), + intent(in) + + ::x +

The value.

+
+ +

Description

+

Sets an indexed value from the scatter_plot_data object.

+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/interface/term_get_string_result.html b/doc/interface/term_get_string_result.html new file mode 100644 index 0000000..ad74a88 --- /dev/null +++ b/doc/interface/term_get_string_result.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + term_get_string_result – FPLOT + + + + + + + + + + + + + + + + + + + + +
+
+

term_get_string_result + Interface + +

+
+
+
+ + +
+
+
+ + +
+ +
+ + +
+

interface
+ public function term_get_string_result(this) result(x) +

+ + + +

Arguments

+ + + + + + + + + + + + + + + + + + + +
TypeIntentOptional AttributesName
+ + class(terminal), + intent(in) + + ::this +

The terminal object.

+
+ +

Return Value character(len=:),allocatable

+

The string.

+

Description

+

Retrieves a string from a terminal.

+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/js/MathJax-config/.gitignore b/doc/js/MathJax-config/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/doc/js/bootstrap.js b/doc/js/bootstrap.js new file mode 100644 index 0000000..b6ac8d9 --- /dev/null +++ b/doc/js/bootstrap.js @@ -0,0 +1,2320 @@ +/*! + * Bootstrap v3.3.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +if (typeof jQuery === 'undefined') { + throw new Error('Bootstrap\'s JavaScript requires jQuery') +} + ++function ($) { + var version = $.fn.jquery.split(' ')[0].split('.') + if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) { + throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher') + } +}(jQuery); + +/* ======================================================================== + * Bootstrap: transition.js v3.3.1 + * http://getbootstrap.com/javascript/#transitions + * ======================================================================== + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) + // ============================================================ + + function transitionEnd() { + var el = document.createElement('bootstrap') + + var transEndEventNames = { + WebkitTransition : 'webkitTransitionEnd', + MozTransition : 'transitionend', + OTransition : 'oTransitionEnd otransitionend', + transition : 'transitionend' + } + + for (var name in transEndEventNames) { + if (el.style[name] !== undefined) { + return { end: transEndEventNames[name] } + } + } + + return false // explicit for ie8 ( ._.) + } + + // http://blog.alexmaccaw.com/css-transitions + $.fn.emulateTransitionEnd = function (duration) { + var called = false + var $el = this + $(this).one('bsTransitionEnd', function () { called = true }) + var callback = function () { if (!called) $($el).trigger($.support.transition.end) } + setTimeout(callback, duration) + return this + } + + $(function () { + $.support.transition = transitionEnd() + + if (!$.support.transition) return + + $.event.special.bsTransitionEnd = { + bindType: $.support.transition.end, + delegateType: $.support.transition.end, + handle: function (e) { + if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) + } + } + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: alert.js v3.3.1 + * http://getbootstrap.com/javascript/#alerts + * ======================================================================== + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // ALERT CLASS DEFINITION + // ====================== + + var dismiss = '[data-dismiss="alert"]' + var Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.VERSION = '3.3.1' + + Alert.TRANSITION_DURATION = 150 + + Alert.prototype.close = function (e) { + var $this = $(this) + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = $(selector) + + if (e) e.preventDefault() + + if (!$parent.length) { + $parent = $this.closest('.alert') + } + + $parent.trigger(e = $.Event('close.bs.alert')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + // detach from parent, fire event then clean up data + $parent.detach().trigger('closed.bs.alert').remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent + .one('bsTransitionEnd', removeElement) + .emulateTransitionEnd(Alert.TRANSITION_DURATION) : + removeElement() + } + + + // ALERT PLUGIN DEFINITION + // ======================= + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.alert') + + if (!data) $this.data('bs.alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + var old = $.fn.alert + + $.fn.alert = Plugin + $.fn.alert.Constructor = Alert + + + // ALERT NO CONFLICT + // ================= + + $.fn.alert.noConflict = function () { + $.fn.alert = old + return this + } + + + // ALERT DATA-API + // ============== + + $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: button.js v3.3.1 + * http://getbootstrap.com/javascript/#buttons + * ======================================================================== + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // BUTTON PUBLIC CLASS DEFINITION + // ============================== + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Button.DEFAULTS, options) + this.isLoading = false + } + + Button.VERSION = '3.3.1' + + Button.DEFAULTS = { + loadingText: 'loading...' + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + var $el = this.$element + var val = $el.is('input') ? 'val' : 'html' + var data = $el.data() + + state = state + 'Text' + + if (data.resetText == null) $el.data('resetText', $el[val]()) + + // push to event loop to allow forms to submit + setTimeout($.proxy(function () { + $el[val](data[state] == null ? this.options[state] : data[state]) + + if (state == 'loadingText') { + this.isLoading = true + $el.addClass(d).attr(d, d) + } else if (this.isLoading) { + this.isLoading = false + $el.removeClass(d).removeAttr(d) + } + }, this), 0) + } + + Button.prototype.toggle = function () { + var changed = true + var $parent = this.$element.closest('[data-toggle="buttons"]') + + if ($parent.length) { + var $input = this.$element.find('input') + if ($input.prop('type') == 'radio') { + if ($input.prop('checked') && this.$element.hasClass('active')) changed = false + else $parent.find('.active').removeClass('active') + } + if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change') + } else { + this.$element.attr('aria-pressed', !this.$element.hasClass('active')) + } + + if (changed) this.$element.toggleClass('active') + } + + + // BUTTON PLUGIN DEFINITION + // ======================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.button') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.button', (data = new Button(this, options))) + + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + var old = $.fn.button + + $.fn.button = Plugin + $.fn.button.Constructor = Button + + + // BUTTON NO CONFLICT + // ================== + + $.fn.button.noConflict = function () { + $.fn.button = old + return this + } + + + // BUTTON DATA-API + // =============== + + $(document) + .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + Plugin.call($btn, 'toggle') + e.preventDefault() + }) + .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { + $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: carousel.js v3.3.1 + * http://getbootstrap.com/javascript/#carousel + * ======================================================================== + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // CAROUSEL CLASS DEFINITION + // ========================= + + var Carousel = function (element, options) { + this.$element = $(element) + this.$indicators = this.$element.find('.carousel-indicators') + this.options = options + this.paused = + this.sliding = + this.interval = + this.$active = + this.$items = null + + this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) + + this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element + .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) + .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) + } + + Carousel.VERSION = '3.3.1' + + Carousel.TRANSITION_DURATION = 600 + + Carousel.DEFAULTS = { + interval: 5000, + pause: 'hover', + wrap: true, + keyboard: true + } + + Carousel.prototype.keydown = function (e) { + if (/input|textarea/i.test(e.target.tagName)) return + switch (e.which) { + case 37: this.prev(); break + case 39: this.next(); break + default: return + } + + e.preventDefault() + } + + Carousel.prototype.cycle = function (e) { + e || (this.paused = false) + + this.interval && clearInterval(this.interval) + + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + + return this + } + + Carousel.prototype.getItemIndex = function (item) { + this.$items = item.parent().children('.item') + return this.$items.index(item || this.$active) + } + + Carousel.prototype.getItemForDirection = function (direction, active) { + var delta = direction == 'prev' ? -1 : 1 + var activeIndex = this.getItemIndex(active) + var itemIndex = (activeIndex + delta) % this.$items.length + return this.$items.eq(itemIndex) + } + + Carousel.prototype.to = function (pos) { + var that = this + var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) + + if (pos > (this.$items.length - 1) || pos < 0) return + + if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" + if (activeIndex == pos) return this.pause().cycle() + + return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) + } + + Carousel.prototype.pause = function (e) { + e || (this.paused = true) + + if (this.$element.find('.next, .prev').length && $.support.transition) { + this.$element.trigger($.support.transition.end) + this.cycle(true) + } + + this.interval = clearInterval(this.interval) + + return this + } + + Carousel.prototype.next = function () { + if (this.sliding) return + return this.slide('next') + } + + Carousel.prototype.prev = function () { + if (this.sliding) return + return this.slide('prev') + } + + Carousel.prototype.slide = function (type, next) { + var $active = this.$element.find('.item.active') + var $next = next || this.getItemForDirection(type, $active) + var isCycling = this.interval + var direction = type == 'next' ? 'left' : 'right' + var fallback = type == 'next' ? 'first' : 'last' + var that = this + + if (!$next.length) { + if (!this.options.wrap) return + $next = this.$element.find('.item')[fallback]() + } + + if ($next.hasClass('active')) return (this.sliding = false) + + var relatedTarget = $next[0] + var slideEvent = $.Event('slide.bs.carousel', { + relatedTarget: relatedTarget, + direction: direction + }) + this.$element.trigger(slideEvent) + if (slideEvent.isDefaultPrevented()) return + + this.sliding = true + + isCycling && this.pause() + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active') + var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) + $nextIndicator && $nextIndicator.addClass('active') + } + + var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" + if ($.support.transition && this.$element.hasClass('slide')) { + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + $active + .one('bsTransitionEnd', function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { + that.$element.trigger(slidEvent) + }, 0) + }) + .emulateTransitionEnd(Carousel.TRANSITION_DURATION) + } else { + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger(slidEvent) + } + + isCycling && this.cycle() + + return this + } + + + // CAROUSEL PLUGIN DEFINITION + // ========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.carousel') + var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) + var action = typeof option == 'string' ? option : options.slide + + if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (action) data[action]() + else if (options.interval) data.pause().cycle() + }) + } + + var old = $.fn.carousel + + $.fn.carousel = Plugin + $.fn.carousel.Constructor = Carousel + + + // CAROUSEL NO CONFLICT + // ==================== + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old + return this + } + + + // CAROUSEL DATA-API + // ================= + + var clickHandler = function (e) { + var href + var $this = $(this) + var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 + if (!$target.hasClass('carousel')) return + var options = $.extend({}, $target.data(), $this.data()) + var slideIndex = $this.attr('data-slide-to') + if (slideIndex) options.interval = false + + Plugin.call($target, options) + + if (slideIndex) { + $target.data('bs.carousel').to(slideIndex) + } + + e.preventDefault() + } + + $(document) + .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) + .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) + + $(window).on('load', function () { + $('[data-ride="carousel"]').each(function () { + var $carousel = $(this) + Plugin.call($carousel, $carousel.data()) + }) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: collapse.js v3.3.1 + * http://getbootstrap.com/javascript/#collapse + * ======================================================================== + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // COLLAPSE PUBLIC CLASS DEFINITION + // ================================ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Collapse.DEFAULTS, options) + this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]') + this.transitioning = null + + if (this.options.parent) { + this.$parent = this.getParent() + } else { + this.addAriaAndCollapsedClass(this.$element, this.$trigger) + } + + if (this.options.toggle) this.toggle() + } + + Collapse.VERSION = '3.3.1' + + Collapse.TRANSITION_DURATION = 350 + + Collapse.DEFAULTS = { + toggle: true, + trigger: '[data-toggle="collapse"]' + } + + Collapse.prototype.dimension = function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + Collapse.prototype.show = function () { + if (this.transitioning || this.$element.hasClass('in')) return + + var activesData + var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing') + + if (actives && actives.length) { + activesData = actives.data('bs.collapse') + if (activesData && activesData.transitioning) return + } + + var startEvent = $.Event('show.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + if (actives && actives.length) { + Plugin.call(actives, 'hide') + activesData || actives.data('bs.collapse', null) + } + + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + .addClass('collapsing')[dimension](0) + .attr('aria-expanded', true) + + this.$trigger + .removeClass('collapsed') + .attr('aria-expanded', true) + + this.transitioning = 1 + + var complete = function () { + this.$element + .removeClass('collapsing') + .addClass('collapse in')[dimension]('') + this.transitioning = 0 + this.$element + .trigger('shown.bs.collapse') + } + + if (!$.support.transition) return complete.call(this) + + var scrollSize = $.camelCase(['scroll', dimension].join('-')) + + this.$element + .one('bsTransitionEnd', $.proxy(complete, this)) + .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) + } + + Collapse.prototype.hide = function () { + if (this.transitioning || !this.$element.hasClass('in')) return + + var startEvent = $.Event('hide.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var dimension = this.dimension() + + this.$element[dimension](this.$element[dimension]())[0].offsetHeight + + this.$element + .addClass('collapsing') + .removeClass('collapse in') + .attr('aria-expanded', false) + + this.$trigger + .addClass('collapsed') + .attr('aria-expanded', false) + + this.transitioning = 1 + + var complete = function () { + this.transitioning = 0 + this.$element + .removeClass('collapsing') + .addClass('collapse') + .trigger('hidden.bs.collapse') + } + + if (!$.support.transition) return complete.call(this) + + this.$element + [dimension](0) + .one('bsTransitionEnd', $.proxy(complete, this)) + .emulateTransitionEnd(Collapse.TRANSITION_DURATION) + } + + Collapse.prototype.toggle = function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + Collapse.prototype.getParent = function () { + return $(this.options.parent) + .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') + .each($.proxy(function (i, element) { + var $element = $(element) + this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) + }, this)) + .end() + } + + Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { + var isOpen = $element.hasClass('in') + + $element.attr('aria-expanded', isOpen) + $trigger + .toggleClass('collapsed', !isOpen) + .attr('aria-expanded', isOpen) + } + + function getTargetFromTrigger($trigger) { + var href + var target = $trigger.attr('data-target') + || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 + + return $(target) + } + + + // COLLAPSE PLUGIN DEFINITION + // ========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.collapse') + var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) + + if (!data && options.toggle && option == 'show') options.toggle = false + if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.collapse + + $.fn.collapse = Plugin + $.fn.collapse.Constructor = Collapse + + + // COLLAPSE NO CONFLICT + // ==================== + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old + return this + } + + + // COLLAPSE DATA-API + // ================= + + $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { + var $this = $(this) + + if (!$this.attr('data-target')) e.preventDefault() + + var $target = getTargetFromTrigger($this) + var data = $target.data('bs.collapse') + var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this }) + + Plugin.call($target, option) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: dropdown.js v3.3.1 + * http://getbootstrap.com/javascript/#dropdowns + * ======================================================================== + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // DROPDOWN CLASS DEFINITION + // ========================= + + var backdrop = '.dropdown-backdrop' + var toggle = '[data-toggle="dropdown"]' + var Dropdown = function (element) { + $(element).on('click.bs.dropdown', this.toggle) + } + + Dropdown.VERSION = '3.3.1' + + Dropdown.prototype.toggle = function (e) { + var $this = $(this) + + if ($this.is('.disabled, :disabled')) return + + var $parent = getParent($this) + var isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { + // if mobile we use a backdrop because click events don't delegate + $('"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/html/menu.js b/docs/html/menu.js deleted file mode 100644 index 717761d..0000000 --- a/docs/html/menu.js +++ /dev/null @@ -1,134 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - 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. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - let result=''; - if ('children' in data) { - result+='
    '; - for (let i in data.children) { - let url; - const link = data.children[i].url; - if (link.substring(0,1)=='^') { - url = link.substring(1); - } else { - url = relPath+link; - } - result+='
  • '+ - data.children[i].text+''+ - makeTree(data.children[i],relPath)+'
  • '; - } - result+='
'; - } - return result; - } - let searchBoxHtml; - if (searchEnabled) { - if (serverSide) { - searchBoxHtml='
'+ - '
'+ - '
 '+ - ''+ - '
'+ - '
'+ - '
'+ - '
'; - } else { - searchBoxHtml='
'+ - ''+ - ' '+ - ''+ - ''+ - ''+ - ''+ - ''+ - '
'; - } - } - - $('#main-nav').before('
'+ - ''+ - ''+ - '
'); - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchBoxHtml) { - $('#main-menu').append('
  • '); - } - const $mainMenuState = $('#main-menu-state'); - let prevWidth = 0; - if ($mainMenuState.length) { - const initResizableIfExists = function() { - if (typeof initResizable==='function') initResizable(); - } - // animate mobile menu - $mainMenuState.change(function() { - const $menu = $('#main-menu'); - let options = { duration: 250, step: initResizableIfExists }; - if (this.checked) { - options['complete'] = () => $menu.css('display', 'block'); - $menu.hide().slideDown(options); - } else { - options['complete'] = () => $menu.css('display', 'none'); - $menu.show().slideUp(options); - } - }); - // set default menu visibility - const resetState = function() { - const $menu = $('#main-menu'); - const newWidth = $(window).outerWidth(); - if (newWidth!=prevWidth) { - if ($(window).outerWidth()<768) { - $mainMenuState.prop('checked',false); $menu.hide(); - $('#searchBoxPos1').html(searchBoxHtml); - $('#searchBoxPos2').hide(); - } else { - $menu.show(); - $('#searchBoxPos1').empty(); - $('#searchBoxPos2').html(searchBoxHtml); - $('#searchBoxPos2').show(); - } - if (typeof searchBox!=='undefined') { - searchBox.CloseResultsWindow(); - } - prevWidth = newWidth; - } - } - $(window).ready(function() { resetState(); initResizableIfExists(); }); - $(window).resize(resetState); - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js deleted file mode 100644 index 48ee355..0000000 --- a/docs/html/menudata.js +++ /dev/null @@ -1,78 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - 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. - - @licend The above is the entire license notice for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Modules",url:"namespaces.html",children:[ -{text:"Modules List",url:"namespaces.html"}, -{text:"Module Members",url:"namespacemembers.html",children:[ -{text:"All",url:"namespacemembers.html",children:[ -{text:"a",url:"namespacemembers.html#index_a"}, -{text:"c",url:"namespacemembers.html#index_c"}, -{text:"g",url:"namespacemembers.html#index_g"}, -{text:"l",url:"namespacemembers.html#index_l"}, -{text:"m",url:"namespacemembers.html#index_m"}, -{text:"p",url:"namespacemembers.html#index_p"}]}, -{text:"Variables",url:"namespacemembers_vars.html",children:[ -{text:"a",url:"namespacemembers_vars.html#index_a"}, -{text:"c",url:"namespacemembers_vars.html#index_c"}, -{text:"g",url:"namespacemembers_vars.html#index_g"}, -{text:"l",url:"namespacemembers_vars.html#index_l"}, -{text:"m",url:"namespacemembers_vars.html#index_m"}, -{text:"p",url:"namespacemembers_vars.html#index_p"}]}]}]}, -{text:"Data Types",url:"annotated.html",children:[ -{text:"Data Types List",url:"annotated.html"}, -{text:"Data Type Index",url:"classes.html"}, -{text:"Class Hierarchy",url:"hierarchy.html"}, -{text:"Data Fields",url:"functions.html",children:[ -{text:"All",url:"functions.html",children:[ -{text:"b",url:"functions.html#index_b"}, -{text:"c",url:"functions_c.html#index_c"}, -{text:"d",url:"functions_d.html#index_d"}, -{text:"e",url:"functions_e.html#index_e"}, -{text:"f",url:"functions_f.html#index_f"}, -{text:"g",url:"functions_g.html#index_g"}, -{text:"i",url:"functions_i.html#index_i"}, -{text:"m",url:"functions_m.html#index_m"}, -{text:"p",url:"functions_p.html#index_p"}, -{text:"r",url:"functions_r.html#index_r"}, -{text:"s",url:"functions_s.html#index_s"}, -{text:"t",url:"functions_t.html#index_t"}]}, -{text:"Functions/Subroutines",url:"functions_func.html",children:[ -{text:"c",url:"functions_func.html#index_c"}, -{text:"d",url:"functions_func_d.html#index_d"}, -{text:"e",url:"functions_func_e.html#index_e"}, -{text:"f",url:"functions_func_f.html#index_f"}, -{text:"g",url:"functions_func_g.html#index_g"}, -{text:"i",url:"functions_func_i.html#index_i"}, -{text:"p",url:"functions_func_p.html#index_p"}, -{text:"s",url:"functions_func_s.html#index_s"}, -{text:"t",url:"functions_func_t.html#index_t"}]}, -{text:"Variables",url:"functions_vars.html",children:[ -{text:"b",url:"functions_vars.html#index_b"}, -{text:"g",url:"functions_vars.html#index_g"}, -{text:"m",url:"functions_vars.html#index_m"}, -{text:"r",url:"functions_vars.html#index_r"}]}]}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}]}]} diff --git a/docs/html/minus.svg b/docs/html/minus.svg deleted file mode 100644 index f70d0c1..0000000 --- a/docs/html/minus.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/html/minusd.svg b/docs/html/minusd.svg deleted file mode 100644 index 5f8e879..0000000 --- a/docs/html/minusd.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/html/namespacefplot__core.html b/docs/html/namespacefplot__core.html deleted file mode 100644 index 5bc6638..0000000 --- a/docs/html/namespacefplot__core.html +++ /dev/null @@ -1,1972 +0,0 @@ - - - - - - - -fplot: fplot_core Module Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core Module Reference
    -
    -
    - -

    fplot_core -More...

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Data Types

    interface  assignment(=)
     
    interface  cm_get_string_result
     Retrieves a string from a colormap. More...
     
    type  color
     Constructs a linearly spaced array. More...
     
    type  colormap
     A colormap object for a surface plot. More...
     
    type  cool_colormap
     Defines a colormap consisting of "cool" colors. More...
     
    type  custom_colormap
     Defines a custom colormap that utilizes the FORCOLORMAP library to provide the map. More...
     
    type  delaunay_tri_2d
     Provides a container for a 2D Delaunay triangulation. More...
     
    type  delaunay_tri_surface
     Provides a type describing a triangulated surface. More...
     
    type  earth_colormap
     Defines an earthy-colored colormap. More...
     
    type  filled_plot_data
     Defines a two-dimensional filled plot data set. More...
     
    interface  get_string_result
     Retrieves a string from a plot_object. More...
     
    type  grey_colormap
     Defines a grey-scaled colormap. More...
     
    type  hot_colormap
     Defines a colormap consisting of "hot" colors. More...
     
    type  latex_terminal
     Defines a GNUPLOT LATEX terminal object. More...
     
    type  legend
     Defines a legend object. More...
     
    type  multiplot
     Defines a multi-plot layout. More...
     
    interface  operator(/=)
     
    interface  operator(==)
     
    interface  pa_get_string_result
     Retrieves a string from a plot_axis. More...
     
    type  parula_colormap
     Defines a colormap equivalent to the MATLAB parula colormap. More...
     
    interface  pd_get_string_result
     Retrieves a string from a plot_data object. More...
     
    type  plot
     Defines the basic GNUPLOT plot. More...
     
    type  plot_2d
     A plot object defining a 2D plot. More...
     
    type  plot_3d
     A plot object defining a 3D plot. More...
     
    type  plot_arrow
     Defines an arrow to be used on by a plot object. More...
     
    type  plot_axis
     Describes a single plot axis. More...
     
    type  plot_bar
     Defines a 2D plot tailored towards bar plotting. More...
     
    type  plot_data
     Provides a container for plot data. More...
     
    type  plot_data_2d
     Defines a two-dimensional plot data set. More...
     
    type  plot_data_3d
     Defines a three-dimensional plot data set. More...
     
    type  plot_data_bar
     Defines a data set tailored to bar charts. More...
     
    type  plot_data_colored
     Defines a plot_data based object best represented by a color. More...
     
    type  plot_data_error_bars
     Defines a 2D error bar based data set. More...
     
    type  plot_data_histogram
     A container for plotting data in the form of a histogram. More...
     
    type  plot_data_tri_2d
     Defines a 2D triangulated data set. More...
     
    type  plot_label
     Defines a label object for a plot. More...
     
    type  plot_object
     The base type for a GNUPLOT object. More...
     
    type  plot_polar
     Defines a 2D polar plot. More...
     
    type  png_terminal
     Defines a GNUPLOT PNG terminal object. More...
     
    type  qt_terminal
     Defines a GNUPLOT QT terminal object. More...
     
    type  rainbow_colormap
     Defines a rainbow colormap. More...
     
    type  scatter_plot_data
     A plot_data object for describing scatter plot data sets. More...
     
    interface  simplify_polyline
     Simplifies a 2D or 3D polyline by removing points too close to discern given a specified tolerance. More...
     
    interface  spd_get_int_value
     Retrieves an integer value from a scatter_plot_data object. More...
     
    interface  spd_get_string_result
     Retrieves a string from a scatter_plot_data object. More...
     
    interface  spd_get_value
     Retrieves a numeric value from a scatter_plot_data object. More...
     
    interface  spd_set_value
     Sets a numeric value into a scatter_plot_data object. More...
     
    type  surface_plot
     A plot object defining a 3D surface plot. More...
     
    type  surface_plot_data
     Provides a three-dimensional surface plot data set. More...
     
    interface  term_get_string_result
     Retrieves a string from a terminal. More...
     
    type  terminal
     Defines a GNUPLOT terminal object. More...
     
    type  tri_surface_plot_data
     Provides a three-dimensional surface plot data set constructed of triangulated points. More...
     
    type  vector_field_plot_data
     Defines a two-dimensional vector-field plot data set. More...
     
    type  windows_terminal
     Defines a GNUPLOT Win32 terminal object. More...
     
    type  wxt_terminal
     Defines a GNUPLOT WXT terminal object. More...
     
    type  x_axis
     An x-axis object. More...
     
    type  y2_axis
     A secondary y-axis object. More...
     
    type  y_axis
     A y-axis object. More...
     
    type  z_axis
     A z-axis object. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Variables

    integer(int32), parameter, public plot_out_of_memory_error = 1000
     Occurs if there is insufficient memory available for the requested operation.
     
    integer(int32), parameter, public plot_invalid_input_error = 1001
     Occurs if an invalid input is provided.
     
    integer(int32), parameter, public plot_invalid_operation_error = 1002
     Occurs if an attempt is made to perform an invalid operation.
     
    integer(int32), parameter, public plot_array_size_mismatch_error = 1003
     Occurs if there is an array size mismatch error.
     
    integer(int32), parameter, public plot_gnuplot_file_error = 1004
     Occurs if there is a GNUPLOT file error.
     
    integer(int32), parameter, public gnuplot_terminal_win32 = 1
     Defines a Win32 terminal.
     
    integer(int32), parameter, public gnuplot_terminal_wxt = 2
     Defines a WXT terminal.
     
    integer(int32), parameter, public gnuplot_terminal_qt = 3
     Defines a QT terminal.
     
    integer(int32), parameter, public gnuplot_terminal_png = 4
     Defines a PNG terminal.
     
    integer(int32), parameter, public gnuplot_terminal_latex = 5
     Defines a LATEX terminal.
     
    integer(int32), parameter, public marker_plus = 1
     Defines a + data point marker.
     
    integer(int32), parameter, public marker_x = 2
     Defines an x data point marker.
     
    integer(int32), parameter, public marker_asterisk = 3
     Defines an * data point marker.
     
    integer(int32), parameter, public marker_empty_square = 4
     Defines an empty square-shaped data point marker.
     
    integer(int32), parameter, public marker_filled_square = 5
     Defines an filled square-shaped data point marker.
     
    integer(int32), parameter, public marker_empty_circle = 6
     Defines an empty circle-shaped data point marker.
     
    integer(int32), parameter, public marker_filled_circle = 7
     Defines an filled circle-shaped data point marker.
     
    integer(int32), parameter, public marker_empty_triangle = 8
     Defines an empty triangle-shaped data point marker.
     
    integer(int32), parameter, public marker_filled_triangle = 9
     Defines an filled triangle-shaped data point marker.
     
    integer(int32), parameter, public marker_empty_nabla = 10
     Defines an empty nabla-shaped data point marker.
     
    integer(int32), parameter, public marker_filled_nabla = 11
     Defines an filled nabla-shaped data point marker.
     
    integer(int32), parameter, public marker_empty_rhombus = 12
     Defines an empty rhombus-shaped data point marker.
     
    integer(int32), parameter, public marker_filled_rhombus = 13
     Defines an filled rhombus-shaped data point marker.
     
    integer(int32), parameter, public line_solid = 1
     Defines a solid line.
     
    integer(int32), parameter, public line_dashed = 2
     Defines a dashed line.
     
    integer(int32), parameter, public line_dotted = 3
     Defines a dotted line.
     
    integer(int32), parameter, public line_dash_dotted = 4
     Defines a dash-dotted line.
     
    integer(int32), parameter, public line_dash_dot_dot = 5
     Defines a dash-dot-dotted line.
     
    character(len=*), parameter, public legend_top = "top"
     Defines the legend should be placed at the top of the plot.
     
    character(len=*), parameter, public legend_center = "center"
     Defines the legend should be centered on the plot.
     
    character(len=*), parameter, public legend_left = "left"
     Defines the legend should be placed at the left of the plot.
     
    character(len=*), parameter, public legend_right = "right"
     Defines the legend should be placed at the right of the plot.
     
    character(len=*), parameter, public legend_bottom = "bottom"
     Defines the legend should be placed at the bottom of the plot.
     
    character(len=*), parameter, public legend_arrange_vertically = "vertical"
     Defines the legend should be arranged such that the column count is minimized.
     
    character(len=*), parameter, public legend_arrange_horizontally = "horizontal"
     Defines the legend should be arranged such that the row count is minimized.
     
    character(len=*), parameter, public polar_theta_top = "top"
     States that theta should start at the top of the plot.
     
    character(len=*), parameter, public polar_theta_right = "right"
     States that theta should start at the right of the plot.
     
    character(len=*), parameter, public polar_theta_bottom = "bottom"
     States that theta should start at the bottom of the plot.
     
    character(len=*), parameter, public polar_theta_left = "left"
     States that theta should start at the left of the plot.
     
    character(len=*), parameter, public polar_theta_ccw = "ccw"
     States that theta should proceed in a counter-clockwise direction.
     
    character(len=*), parameter, public polar_theta_cw = "cw"
     States that theta should proceed in a clockwise direction.
     
    integer(int32), parameter, public coordinates_cartesian = 100
     Defines a Cartesian coordinate system.
     
    integer(int32), parameter, public coordinates_spherical = 101
     Defines a spherical coordinate system.
     
    integer(int32), parameter, public coordinates_cylindrical = 102
     Defines a cylindrical coordinate system.
     
    integer(int32), parameter, public plotdata_max_name_length = 128
     Defines the maximum number of characters allowed in a graph label.
     
    integer(int32), parameter gnuplot_default_window_width = 640
     The default GNUPLOT window width, in pixels.
     
    integer(int32), parameter gnuplot_default_window_height = 420
     The default GNUPLOT window height, in pixels.
     
    integer(int32), parameter gnuplot_max_label_length = 128
     Defines the maximum number of characters allowed in a graph label.
     
    character(len=*), parameter gnuplot_default_fontname = "Calibri"
     Defines the default font used by text on the graph.
     
    integer(int32), parameter gnuplot_default_font_size = 14
     Defines the default font size used by text on the graph.
     
    integer(int32), parameter gnuplot_max_path_length = 256
     Defines the maximum number of characters allowed in a file path.
     
    type(color), parameter, public clr_black = color(0, 0, 0)
     Defines a black color.
     
    type(color), parameter, public clr_white = color(255, 255, 255)
     Defines a white color.
     
    type(color), parameter, public clr_red = color(255, 0, 0)
     Defines a red color.
     
    type(color), parameter, public clr_lime = color(0, 255, 0)
     Defines a lime color.
     
    type(color), parameter, public clr_blue = color(0, 0, 255)
     Defines a blue color.
     
    type(color), parameter, public clr_yellow = color(255, 255, 0)
     Defines a yellow color.
     
    type(color), parameter, public clr_cyan = color(0, 255, 255)
     Defines a cyan color.
     
    type(color), parameter, public clr_magenta = color(255, 0, 255)
     Defines a magenta color.
     
    type(color), parameter, public clr_silver = color(192, 192, 192)
     Defines a silver color.
     
    type(color), parameter, public clr_gray = color(128, 128, 128)
     Defines a gray color.
     
    type(color), parameter, public clr_maroon = color(128, 0, 0)
     Defines a maroon color.
     
    type(color), parameter, public clr_olive = color(128, 128, 0)
     Defines a olive color.
     
    type(color), parameter, public clr_green = color(0, 128, 0)
     Defines a green color.
     
    type(color), parameter, public clr_purple = color(128, 0, 128)
     Defines a purple color.
     
    type(color), parameter, public clr_teal = color(0, 128, 128)
     Defines a teal color.
     
    type(color), parameter, public clr_navy = color(0, 0, 128)
     Defines a navy color.
     
    type(color), parameter, public clr_orange = color(255, 165, 0)
     Defines an orange color.
     
    type(color), dimension(7), parameter color_list = [ color(0, int(0.447 * 255), int(0.741 * 255)), color(int(0.85 * 255), int(0.325 * 255), int(0.098 * 255)), color(int(0.929 * 255), int(0.694 * 255), int(0.125 * 255)), color(int(0.494 * 255), int(0.184 * 255), int(0.556 * 255)), color(int(0.466 * 255), int(0.674 * 255), int(0.188 * 255)), color(int(0.301 * 255), int(0.745 * 255), int(0.933 * 255)), color(int(0.635 * 255), int(0.078 * 255), int(0.184 * 255))]
     
    integer(int32), parameter, public arrow_no_head = 0
     Defines an arrow with no head.
     
    integer(int32), parameter, public arrow_head = 1
     Defines an arrow with a traditional head.
     
    integer(int32), parameter, public arrow_backhead = 2
     Defines an arrow with it's head at it's back end (tail).
     
    integer(int32), parameter, public arrow_heads = 3
     Defines an arrow with a head on both ends.
     
    integer(int32), parameter, public arrow_filled = 100
     Defines a filled arrow head.
     
    integer(int32), parameter, public arrow_empty = 101
     Defines an empty arrow head.
     
    integer(int32), parameter, public arrow_no_fill = 102
     Defines an arrow head without fill.
     
    integer(int32), parameter, public arrow_no_border = 103
     Defines an arrow head with no border.
     
    -

    Detailed Description

    -

    fplot_core

    -
    Purpose
    FPLOT is a Fortran library providing a means of interacting with Gnuplot from a Fortran program. The library is designed in an object-oriented manner, and as such utilizes language features that require a compiler that supports the 2003 and 2008 standards. Additionally, it is expected that Gnuplot is installed on the system path. For full functionallity, a minimum of Gnuplot v5.2 is expected.
    -
    - -
    -

    Variable Documentation

    - -

    ◆ arrow_backhead

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::arrow_backhead = 2
    -
    - -

    Defines an arrow with it's head at it's back end (tail).

    - -

    Definition at line 634 of file fplot_core.f90.

    - -
    -
    - -

    ◆ arrow_empty

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::arrow_empty = 101
    -
    - -

    Defines an empty arrow head.

    - -

    Definition at line 640 of file fplot_core.f90.

    - -
    -
    - -

    ◆ arrow_filled

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::arrow_filled = 100
    -
    - -

    Defines a filled arrow head.

    - -

    Definition at line 638 of file fplot_core.f90.

    - -
    -
    - -

    ◆ arrow_head

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::arrow_head = 1
    -
    - -

    Defines an arrow with a traditional head.

    - -

    Definition at line 632 of file fplot_core.f90.

    - -
    -
    - -

    ◆ arrow_heads

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::arrow_heads = 3
    -
    - -

    Defines an arrow with a head on both ends.

    - -

    Definition at line 636 of file fplot_core.f90.

    - -
    -
    - -

    ◆ arrow_no_border

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::arrow_no_border = 103
    -
    - -

    Defines an arrow head with no border.

    - -

    Definition at line 644 of file fplot_core.f90.

    - -
    -
    - -

    ◆ arrow_no_fill

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::arrow_no_fill = 102
    -
    - -

    Defines an arrow head without fill.

    - -

    Definition at line 642 of file fplot_core.f90.

    - -
    -
    - -

    ◆ arrow_no_head

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::arrow_no_head = 0
    -
    - -

    Defines an arrow with no head.

    - -

    Definition at line 630 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_black

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_black = color(0, 0, 0)
    -
    - -

    Defines a black color.

    - -

    Definition at line 418 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_blue

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_blue = color(0, 0, 255)
    -
    - -

    Defines a blue color.

    - -

    Definition at line 426 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_cyan

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_cyan = color(0, 255, 255)
    -
    - -

    Defines a cyan color.

    - -

    Definition at line 430 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_gray

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_gray = color(128, 128, 128)
    -
    - -

    Defines a gray color.

    - -

    Definition at line 436 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_green

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_green = color(0, 128, 0)
    -
    - -

    Defines a green color.

    - -

    Definition at line 442 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_lime

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_lime = color(0, 255, 0)
    -
    - -

    Defines a lime color.

    - -

    Definition at line 424 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_magenta

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_magenta = color(255, 0, 255)
    -
    - -

    Defines a magenta color.

    - -

    Definition at line 432 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_maroon

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_maroon = color(128, 0, 0)
    -
    - -

    Defines a maroon color.

    - -

    Definition at line 438 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_navy

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_navy = color(0, 0, 128)
    -
    - -

    Defines a navy color.

    - -

    Definition at line 448 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_olive

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_olive = color(128, 128, 0)
    -
    - -

    Defines a olive color.

    - -

    Definition at line 440 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_orange

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_orange = color(255, 165, 0)
    -
    - -

    Defines an orange color.

    - -

    Definition at line 450 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_purple

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_purple = color(128, 0, 128)
    -
    - -

    Defines a purple color.

    - -

    Definition at line 444 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_red

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_red = color(255, 0, 0)
    -
    - -

    Defines a red color.

    - -

    Definition at line 422 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_silver

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_silver = color(192, 192, 192)
    -
    - -

    Defines a silver color.

    - -

    Definition at line 434 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_teal

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_teal = color(0, 128, 128)
    -
    - -

    Defines a teal color.

    - -

    Definition at line 446 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_white

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_white = color(255, 255, 255)
    -
    - -

    Defines a white color.

    - -

    Definition at line 420 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clr_yellow

    - -
    -
    - - - - -
    type(color), parameter, public fplot_core::clr_yellow = color(255, 255, 0)
    -
    - -

    Defines a yellow color.

    - -

    Definition at line 428 of file fplot_core.f90.

    - -
    -
    - -

    ◆ color_list

    - -
    -
    - - - - - -
    - - - - -
    type(color), dimension(7), parameter fplot_core::color_list = [ color(0, int(0.447 * 255), int(0.741 * 255)), color(int(0.85 * 255), int(0.325 * 255), int(0.098 * 255)), color(int(0.929 * 255), int(0.694 * 255), int(0.125 * 255)), color(int(0.494 * 255), int(0.184 * 255), int(0.556 * 255)), color(int(0.466 * 255), int(0.674 * 255), int(0.188 * 255)), color(int(0.301 * 255), int(0.745 * 255), int(0.933 * 255)), color(int(0.635 * 255), int(0.078 * 255), int(0.184 * 255))]
    -
    -private
    -
    - -

    Definition at line 453 of file fplot_core.f90.

    - -
    -
    - -

    ◆ coordinates_cartesian

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::coordinates_cartesian = 100
    -
    - -

    Defines a Cartesian coordinate system.

    - -

    Definition at line 256 of file fplot_core.f90.

    - -
    -
    - -

    ◆ coordinates_cylindrical

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::coordinates_cylindrical = 102
    -
    - -

    Defines a cylindrical coordinate system.

    - -

    Definition at line 260 of file fplot_core.f90.

    - -
    -
    - -

    ◆ coordinates_spherical

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::coordinates_spherical = 101
    -
    - -

    Defines a spherical coordinate system.

    - -

    Definition at line 258 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_default_font_size

    - -
    -
    - - - - - -
    - - - - -
    integer(int32), parameter fplot_core::gnuplot_default_font_size = 14
    -
    -private
    -
    - -

    Defines the default font size used by text on the graph.

    - -

    Definition at line 280 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_default_fontname

    - -
    -
    - - - - - -
    - - - - -
    character(len = *), parameter fplot_core::gnuplot_default_fontname = "Calibri"
    -
    -private
    -
    - -

    Defines the default font used by text on the graph.

    - -

    Definition at line 278 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_default_window_height

    - -
    -
    - - - - - -
    - - - - -
    integer(int32), parameter fplot_core::gnuplot_default_window_height = 420
    -
    -private
    -
    - -

    The default GNUPLOT window height, in pixels.

    - -

    Definition at line 274 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_default_window_width

    - -
    -
    - - - - - -
    - - - - -
    integer(int32), parameter fplot_core::gnuplot_default_window_width = 640
    -
    -private
    -
    - -

    The default GNUPLOT window width, in pixels.

    - -

    Definition at line 272 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_max_label_length

    - -
    -
    - - - - - -
    - - - - -
    integer(int32), parameter fplot_core::gnuplot_max_label_length = 128
    -
    -private
    -
    - -

    Defines the maximum number of characters allowed in a graph label.

    - -

    Definition at line 276 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_max_path_length

    - -
    -
    - - - - - -
    - - - - -
    integer(int32), parameter fplot_core::gnuplot_max_path_length = 256
    -
    -private
    -
    - -

    Defines the maximum number of characters allowed in a file path.

    - -

    Definition at line 282 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_terminal_latex

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::gnuplot_terminal_latex = 5
    -
    - -

    Defines a LATEX terminal.

    - -

    Definition at line 170 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_terminal_png

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::gnuplot_terminal_png = 4
    -
    - -

    Defines a PNG terminal.

    - -

    Definition at line 168 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_terminal_qt

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::gnuplot_terminal_qt = 3
    -
    - -

    Defines a QT terminal.

    - -

    Definition at line 166 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_terminal_win32

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::gnuplot_terminal_win32 = 1
    -
    - -

    Defines a Win32 terminal.

    - -

    Definition at line 162 of file fplot_core.f90.

    - -
    -
    - -

    ◆ gnuplot_terminal_wxt

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::gnuplot_terminal_wxt = 2
    -
    - -

    Defines a WXT terminal.

    - -

    Definition at line 164 of file fplot_core.f90.

    - -
    -
    - -

    ◆ legend_arrange_horizontally

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::legend_arrange_horizontally = "horizontal"
    -
    - -

    Defines the legend should be arranged such that the row count is minimized.

    - -

    Definition at line 234 of file fplot_core.f90.

    - -
    -
    - -

    ◆ legend_arrange_vertically

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::legend_arrange_vertically = "vertical"
    -
    - -

    Defines the legend should be arranged such that the column count is minimized.

    - -

    Definition at line 231 of file fplot_core.f90.

    - -
    -
    - -

    ◆ legend_bottom

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::legend_bottom = "bottom"
    -
    - -

    Defines the legend should be placed at the bottom of the plot.

    - -

    Definition at line 228 of file fplot_core.f90.

    - -
    -
    - -

    ◆ legend_center

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::legend_center = "center"
    -
    - -

    Defines the legend should be centered on the plot.

    - -

    Definition at line 222 of file fplot_core.f90.

    - -
    -
    - -

    ◆ legend_left

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::legend_left = "left"
    -
    - -

    Defines the legend should be placed at the left of the plot.

    - -

    Definition at line 224 of file fplot_core.f90.

    - -
    -
    - -

    ◆ legend_right

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::legend_right = "right"
    -
    - -

    Defines the legend should be placed at the right of the plot.

    - -

    Definition at line 226 of file fplot_core.f90.

    - -
    -
    - -

    ◆ legend_top

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::legend_top = "top"
    -
    - -

    Defines the legend should be placed at the top of the plot.

    - -

    Definition at line 220 of file fplot_core.f90.

    - -
    -
    - -

    ◆ line_dash_dot_dot

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::line_dash_dot_dot = 5
    -
    - -

    Defines a dash-dot-dotted line.

    - -

    Definition at line 214 of file fplot_core.f90.

    - -
    -
    - -

    ◆ line_dash_dotted

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::line_dash_dotted = 4
    -
    - -

    Defines a dash-dotted line.

    - -

    Definition at line 212 of file fplot_core.f90.

    - -
    -
    - -

    ◆ line_dashed

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::line_dashed = 2
    -
    - -

    Defines a dashed line.

    - -

    Definition at line 208 of file fplot_core.f90.

    - -
    -
    - -

    ◆ line_dotted

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::line_dotted = 3
    -
    - -

    Defines a dotted line.

    - -

    Definition at line 210 of file fplot_core.f90.

    - -
    -
    - -

    ◆ line_solid

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::line_solid = 1
    -
    - -

    Defines a solid line.

    - -

    Definition at line 206 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_asterisk

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_asterisk = 3
    -
    - -

    Defines an * data point marker.

    - -

    Definition at line 180 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_empty_circle

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_empty_circle = 6
    -
    - -

    Defines an empty circle-shaped data point marker.

    - -

    Definition at line 186 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_empty_nabla

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_empty_nabla = 10
    -
    - -

    Defines an empty nabla-shaped data point marker.

    - -

    Definition at line 194 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_empty_rhombus

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_empty_rhombus = 12
    -
    - -

    Defines an empty rhombus-shaped data point marker.

    - -

    Definition at line 198 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_empty_square

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_empty_square = 4
    -
    - -

    Defines an empty square-shaped data point marker.

    - -

    Definition at line 182 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_empty_triangle

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_empty_triangle = 8
    -
    - -

    Defines an empty triangle-shaped data point marker.

    - -

    Definition at line 190 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_filled_circle

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_filled_circle = 7
    -
    - -

    Defines an filled circle-shaped data point marker.

    - -

    Definition at line 188 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_filled_nabla

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_filled_nabla = 11
    -
    - -

    Defines an filled nabla-shaped data point marker.

    - -

    Definition at line 196 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_filled_rhombus

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_filled_rhombus = 13
    -
    - -

    Defines an filled rhombus-shaped data point marker.

    - -

    Definition at line 200 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_filled_square

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_filled_square = 5
    -
    - -

    Defines an filled square-shaped data point marker.

    - -

    Definition at line 184 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_filled_triangle

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_filled_triangle = 9
    -
    - -

    Defines an filled triangle-shaped data point marker.

    - -

    Definition at line 192 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_plus

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_plus = 1
    -
    - -

    Defines a + data point marker.

    - -

    Definition at line 176 of file fplot_core.f90.

    - -
    -
    - -

    ◆ marker_x

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::marker_x = 2
    -
    - -

    Defines an x data point marker.

    - -

    Definition at line 178 of file fplot_core.f90.

    - -
    -
    - -

    ◆ plot_array_size_mismatch_error

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::plot_array_size_mismatch_error = 1003
    -
    - -

    Occurs if there is an array size mismatch error.

    - -

    Definition at line 154 of file fplot_core.f90.

    - -
    -
    - -

    ◆ plot_gnuplot_file_error

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::plot_gnuplot_file_error = 1004
    -
    - -

    Occurs if there is a GNUPLOT file error.

    - -

    Definition at line 156 of file fplot_core.f90.

    - -
    -
    - -

    ◆ plot_invalid_input_error

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::plot_invalid_input_error = 1001
    -
    - -

    Occurs if an invalid input is provided.

    - -

    Definition at line 150 of file fplot_core.f90.

    - -
    -
    - -

    ◆ plot_invalid_operation_error

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::plot_invalid_operation_error = 1002
    -
    - -

    Occurs if an attempt is made to perform an invalid operation.

    - -

    Definition at line 152 of file fplot_core.f90.

    - -
    -
    - -

    ◆ plot_out_of_memory_error

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::plot_out_of_memory_error = 1000
    -
    - -

    Occurs if there is insufficient memory available for the requested operation.

    - -

    Definition at line 148 of file fplot_core.f90.

    - -
    -
    - -

    ◆ plotdata_max_name_length

    - -
    -
    - - - - -
    integer(int32), parameter, public fplot_core::plotdata_max_name_length = 128
    -
    - -

    Defines the maximum number of characters allowed in a graph label.

    - -

    Definition at line 266 of file fplot_core.f90.

    - -
    -
    - -

    ◆ polar_theta_bottom

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::polar_theta_bottom = "bottom"
    -
    - -

    States that theta should start at the bottom of the plot.

    - -

    Definition at line 244 of file fplot_core.f90.

    - -
    -
    - -

    ◆ polar_theta_ccw

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::polar_theta_ccw = "ccw"
    -
    - -

    States that theta should proceed in a counter-clockwise direction.

    - -

    Definition at line 248 of file fplot_core.f90.

    - -
    -
    - -

    ◆ polar_theta_cw

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::polar_theta_cw = "cw"
    -
    - -

    States that theta should proceed in a clockwise direction.

    - -

    Definition at line 250 of file fplot_core.f90.

    - -
    -
    - -

    ◆ polar_theta_left

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::polar_theta_left = "left"
    -
    - -

    States that theta should start at the left of the plot.

    - -

    Definition at line 246 of file fplot_core.f90.

    - -
    -
    - -

    ◆ polar_theta_right

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::polar_theta_right = "right"
    -
    - -

    States that theta should start at the right of the plot.

    - -

    Definition at line 242 of file fplot_core.f90.

    - -
    -
    - -

    ◆ polar_theta_top

    - -
    -
    - - - - -
    character(len = *), parameter, public fplot_core::polar_theta_top = "top"
    -
    - -

    States that theta should start at the top of the plot.

    - -

    Definition at line 240 of file fplot_core.f90.

    - -
    -
    -
    -
    - - - - diff --git a/docs/html/namespacefplot__core.js b/docs/html/namespacefplot__core.js deleted file mode 100644 index 464d019..0000000 --- a/docs/html/namespacefplot__core.js +++ /dev/null @@ -1,138 +0,0 @@ -var namespacefplot__core = -[ - [ "assignment(=)", "interfacefplot__core_1_1assignment_07_0a_08.html", null ], - [ "cm_get_string_result", "interfacefplot__core_1_1cm__get__string__result.html", null ], - [ "color", "structfplot__core_1_1color.html", "structfplot__core_1_1color" ], - [ "colormap", "structfplot__core_1_1colormap.html", "structfplot__core_1_1colormap" ], - [ "cool_colormap", "structfplot__core_1_1cool__colormap.html", "structfplot__core_1_1cool__colormap" ], - [ "custom_colormap", "structfplot__core_1_1custom__colormap.html", "structfplot__core_1_1custom__colormap" ], - [ "delaunay_tri_2d", "structfplot__core_1_1delaunay__tri__2d.html", "structfplot__core_1_1delaunay__tri__2d" ], - [ "delaunay_tri_surface", "structfplot__core_1_1delaunay__tri__surface.html", "structfplot__core_1_1delaunay__tri__surface" ], - [ "earth_colormap", "structfplot__core_1_1earth__colormap.html", "structfplot__core_1_1earth__colormap" ], - [ "filled_plot_data", "structfplot__core_1_1filled__plot__data.html", "structfplot__core_1_1filled__plot__data" ], - [ "get_string_result", "interfacefplot__core_1_1get__string__result.html", null ], - [ "grey_colormap", "structfplot__core_1_1grey__colormap.html", "structfplot__core_1_1grey__colormap" ], - [ "hot_colormap", "structfplot__core_1_1hot__colormap.html", "structfplot__core_1_1hot__colormap" ], - [ "latex_terminal", "structfplot__core_1_1latex__terminal.html", "structfplot__core_1_1latex__terminal" ], - [ "legend", "structfplot__core_1_1legend.html", "structfplot__core_1_1legend" ], - [ "multiplot", "structfplot__core_1_1multiplot.html", "structfplot__core_1_1multiplot" ], - [ "operator(/=)", "interfacefplot__core_1_1operator_07_2_0a_08.html", null ], - [ "operator(==)", "interfacefplot__core_1_1operator_07_0a_0a_08.html", null ], - [ "pa_get_string_result", "interfacefplot__core_1_1pa__get__string__result.html", null ], - [ "parula_colormap", "structfplot__core_1_1parula__colormap.html", "structfplot__core_1_1parula__colormap" ], - [ "pd_get_string_result", "interfacefplot__core_1_1pd__get__string__result.html", null ], - [ "plot", "structfplot__core_1_1plot.html", "structfplot__core_1_1plot" ], - [ "plot_2d", "structfplot__core_1_1plot__2d.html", "structfplot__core_1_1plot__2d" ], - [ "plot_3d", "structfplot__core_1_1plot__3d.html", "structfplot__core_1_1plot__3d" ], - [ "plot_arrow", "structfplot__core_1_1plot__arrow.html", "structfplot__core_1_1plot__arrow" ], - [ "plot_axis", "structfplot__core_1_1plot__axis.html", "structfplot__core_1_1plot__axis" ], - [ "plot_bar", "structfplot__core_1_1plot__bar.html", "structfplot__core_1_1plot__bar" ], - [ "plot_data", "structfplot__core_1_1plot__data.html", "structfplot__core_1_1plot__data" ], - [ "plot_data_2d", "structfplot__core_1_1plot__data__2d.html", "structfplot__core_1_1plot__data__2d" ], - [ "plot_data_3d", "structfplot__core_1_1plot__data__3d.html", "structfplot__core_1_1plot__data__3d" ], - [ "plot_data_bar", "structfplot__core_1_1plot__data__bar.html", "structfplot__core_1_1plot__data__bar" ], - [ "plot_data_colored", "structfplot__core_1_1plot__data__colored.html", "structfplot__core_1_1plot__data__colored" ], - [ "plot_data_error_bars", "structfplot__core_1_1plot__data__error__bars.html", "structfplot__core_1_1plot__data__error__bars" ], - [ "plot_data_histogram", "structfplot__core_1_1plot__data__histogram.html", "structfplot__core_1_1plot__data__histogram" ], - [ "plot_data_tri_2d", "structfplot__core_1_1plot__data__tri__2d.html", "structfplot__core_1_1plot__data__tri__2d" ], - [ "plot_label", "structfplot__core_1_1plot__label.html", "structfplot__core_1_1plot__label" ], - [ "plot_object", "structfplot__core_1_1plot__object.html", "structfplot__core_1_1plot__object" ], - [ "plot_polar", "structfplot__core_1_1plot__polar.html", "structfplot__core_1_1plot__polar" ], - [ "png_terminal", "structfplot__core_1_1png__terminal.html", "structfplot__core_1_1png__terminal" ], - [ "qt_terminal", "structfplot__core_1_1qt__terminal.html", "structfplot__core_1_1qt__terminal" ], - [ "rainbow_colormap", "structfplot__core_1_1rainbow__colormap.html", "structfplot__core_1_1rainbow__colormap" ], - [ "scatter_plot_data", "structfplot__core_1_1scatter__plot__data.html", "structfplot__core_1_1scatter__plot__data" ], - [ "simplify_polyline", "interfacefplot__core_1_1simplify__polyline.html", null ], - [ "spd_get_int_value", "interfacefplot__core_1_1spd__get__int__value.html", null ], - [ "spd_get_string_result", "interfacefplot__core_1_1spd__get__string__result.html", null ], - [ "spd_get_value", "interfacefplot__core_1_1spd__get__value.html", null ], - [ "spd_set_value", "interfacefplot__core_1_1spd__set__value.html", null ], - [ "surface_plot", "structfplot__core_1_1surface__plot.html", "structfplot__core_1_1surface__plot" ], - [ "surface_plot_data", "structfplot__core_1_1surface__plot__data.html", "structfplot__core_1_1surface__plot__data" ], - [ "term_get_string_result", "interfacefplot__core_1_1term__get__string__result.html", null ], - [ "terminal", "structfplot__core_1_1terminal.html", "structfplot__core_1_1terminal" ], - [ "tri_surface_plot_data", "structfplot__core_1_1tri__surface__plot__data.html", "structfplot__core_1_1tri__surface__plot__data" ], - [ "vector_field_plot_data", "structfplot__core_1_1vector__field__plot__data.html", "structfplot__core_1_1vector__field__plot__data" ], - [ "windows_terminal", "structfplot__core_1_1windows__terminal.html", "structfplot__core_1_1windows__terminal" ], - [ "wxt_terminal", "structfplot__core_1_1wxt__terminal.html", "structfplot__core_1_1wxt__terminal" ], - [ "x_axis", "structfplot__core_1_1x__axis.html", "structfplot__core_1_1x__axis" ], - [ "y2_axis", "structfplot__core_1_1y2__axis.html", "structfplot__core_1_1y2__axis" ], - [ "y_axis", "structfplot__core_1_1y__axis.html", "structfplot__core_1_1y__axis" ], - [ "z_axis", "structfplot__core_1_1z__axis.html", "structfplot__core_1_1z__axis" ], - [ "arrow_backhead", "namespacefplot__core.html#aec186fc30c149b713c7acbbae501b953", null ], - [ "arrow_empty", "namespacefplot__core.html#acf849bac7dab0385a49577f39cd17975", null ], - [ "arrow_filled", "namespacefplot__core.html#a77694d28a29b78d1d4f43f2f813d81a9", null ], - [ "arrow_head", "namespacefplot__core.html#ae45226bcbf29c2c1d266891d9492b920", null ], - [ "arrow_heads", "namespacefplot__core.html#a9b29a68286be7fc5791e4b7baf472828", null ], - [ "arrow_no_border", "namespacefplot__core.html#a3cb539f373d8c9b192ffba3622bcf7f2", null ], - [ "arrow_no_fill", "namespacefplot__core.html#a466c7931f298261b528697ef344a4e87", null ], - [ "arrow_no_head", "namespacefplot__core.html#ab658b8b914c0cc925c93144eef215a03", null ], - [ "clr_black", "namespacefplot__core.html#a3f8775edb06de2a90c24009a67ef4f96", null ], - [ "clr_blue", "namespacefplot__core.html#ae9f20ca4d21fdf9ba84f3b363f3e7d20", null ], - [ "clr_cyan", "namespacefplot__core.html#a700047d632ac642f6a949e44451bbc80", null ], - [ "clr_gray", "namespacefplot__core.html#a828573f8099a6e695b05bb0678289f59", null ], - [ "clr_green", "namespacefplot__core.html#a0bd6481a613d00bfb7f92d7b906476dd", null ], - [ "clr_lime", "namespacefplot__core.html#a3f2351d27904192434e3ef78155e51e0", null ], - [ "clr_magenta", "namespacefplot__core.html#a5100f36d74219c9ddc115d9b38d213c1", null ], - [ "clr_maroon", "namespacefplot__core.html#ab68541e171cd4c283eeec74e5165f760", null ], - [ "clr_navy", "namespacefplot__core.html#adb6d3eb3275e9c564773cae821a1c4d3", null ], - [ "clr_olive", "namespacefplot__core.html#a7661753bfbb9a5e7ef11a79c279a59e2", null ], - [ "clr_orange", "namespacefplot__core.html#af0a79b640e25da7a7897ff87e2701f86", null ], - [ "clr_purple", "namespacefplot__core.html#aa9b8d3f8e41f9a35e05e57abe3e5baf9", null ], - [ "clr_red", "namespacefplot__core.html#a33f5d636354eb4187ba86154037e74e7", null ], - [ "clr_silver", "namespacefplot__core.html#a662574b11028022eac8158f9fc846ded", null ], - [ "clr_teal", "namespacefplot__core.html#aa30407b5d837e2e2c191d99eb115c42b", null ], - [ "clr_white", "namespacefplot__core.html#a614ecb87618492f80d7ff4ba4324926b", null ], - [ "clr_yellow", "namespacefplot__core.html#a061a6ee4fd7602c096fd5016100ca378", null ], - [ "coordinates_cartesian", "namespacefplot__core.html#a383aba6e97a1e427fcf4d2947c7687d3", null ], - [ "coordinates_cylindrical", "namespacefplot__core.html#a31baa8924c3ed9770c90b1ff8656da54", null ], - [ "coordinates_spherical", "namespacefplot__core.html#af20b219d77cbb2399a33f3981aa720bd", null ], - [ "gnuplot_default_font_size", "namespacefplot__core.html#af51438c2c528d43662a1456d4f9fbb33", null ], - [ "gnuplot_default_fontname", "namespacefplot__core.html#a41bb6a9ffc3ebb502d54af9a7ce540e7", null ], - [ "gnuplot_default_window_height", "namespacefplot__core.html#a6210b9335ccb79ff288de84dd741f0e0", null ], - [ "gnuplot_default_window_width", "namespacefplot__core.html#a45b6c532e70244ebf23ff21eb596223b", null ], - [ "gnuplot_max_label_length", "namespacefplot__core.html#a7e9ac1526f3f84a70eb10c98aff73610", null ], - [ "gnuplot_max_path_length", "namespacefplot__core.html#a40ff0463a668b977d2fab03d3d8a6dde", null ], - [ "gnuplot_terminal_latex", "namespacefplot__core.html#adadfa5448d65da7362e445ee1fe61b10", null ], - [ "gnuplot_terminal_png", "namespacefplot__core.html#af1ace6143d83970cbfe69d7289c427d9", null ], - [ "gnuplot_terminal_qt", "namespacefplot__core.html#a512870ac9b979c4b0ea2804fbbb02a7d", null ], - [ "gnuplot_terminal_win32", "namespacefplot__core.html#acf7693c9998a266f3cf50510b2cc06e9", null ], - [ "gnuplot_terminal_wxt", "namespacefplot__core.html#a127138d0cab0e51e9c5f3fdcfdf033ac", null ], - [ "legend_arrange_horizontally", "namespacefplot__core.html#aec8d0376074fdd025c81e810bc4ffc42", null ], - [ "legend_arrange_vertically", "namespacefplot__core.html#aaf0ef9b39969cd446f0fbb9b53dc6615", null ], - [ "legend_bottom", "namespacefplot__core.html#afaa74509b5150505854f6f411109dfdb", null ], - [ "legend_center", "namespacefplot__core.html#a0ec74b411859c62e7bf0c1df535d39a5", null ], - [ "legend_left", "namespacefplot__core.html#a63d667dd9f14cc6ec61c999dd5dda272", null ], - [ "legend_right", "namespacefplot__core.html#a99373c8db502d4106c9597f3303b6fa9", null ], - [ "legend_top", "namespacefplot__core.html#aeddce321c79b9d2e69356b06ba656c88", null ], - [ "line_dash_dot_dot", "namespacefplot__core.html#ad6f904d0b43c5063d0f6b41d90abdbea", null ], - [ "line_dash_dotted", "namespacefplot__core.html#a18af0338b6f5f050d826afcf78918bc2", null ], - [ "line_dashed", "namespacefplot__core.html#ae9305c0a47c3fb21e45154a0b9457353", null ], - [ "line_dotted", "namespacefplot__core.html#ab81a32face043abe51b8740e56c816b2", null ], - [ "line_solid", "namespacefplot__core.html#ac41508e74ce45d09f835bd676ea7d3d6", null ], - [ "marker_asterisk", "namespacefplot__core.html#ad201ee04e5b4c9dacac36626e9db5d17", null ], - [ "marker_empty_circle", "namespacefplot__core.html#a03ed7e9b32fd8b4242e3c00ac9f1dd90", null ], - [ "marker_empty_nabla", "namespacefplot__core.html#a1a127e0b722b34196914625744f531fb", null ], - [ "marker_empty_rhombus", "namespacefplot__core.html#a130b91ed2576d346f9cfa882fce3a370", null ], - [ "marker_empty_square", "namespacefplot__core.html#a1847a8539a108f2cc75250a0f6d18fc5", null ], - [ "marker_empty_triangle", "namespacefplot__core.html#aa8ce197691d6e257ca34c826287661ea", null ], - [ "marker_filled_circle", "namespacefplot__core.html#a958ef8c01819437c1bf72976fdf0408c", null ], - [ "marker_filled_nabla", "namespacefplot__core.html#a3206bef63b75d34ff4ddd604d347272a", null ], - [ "marker_filled_rhombus", "namespacefplot__core.html#a73e3a13a2500d31fe24f6a4e4e6abbe6", null ], - [ "marker_filled_square", "namespacefplot__core.html#a925e2ca369cd0c7794c38d6f2c0ae3fc", null ], - [ "marker_filled_triangle", "namespacefplot__core.html#aee19422210a01b45b0a946072071aa89", null ], - [ "marker_plus", "namespacefplot__core.html#a1c6bffe3a206bcc5400d7e339f482779", null ], - [ "marker_x", "namespacefplot__core.html#aa8584a251e760fd4545d03c0a4506fa6", null ], - [ "plot_array_size_mismatch_error", "namespacefplot__core.html#a2747b79ccd539b6a6b0edf9bee970ece", null ], - [ "plot_gnuplot_file_error", "namespacefplot__core.html#a964aa864e3984d866c12f75323bb6dc1", null ], - [ "plot_invalid_input_error", "namespacefplot__core.html#ac53894e99cce3be3c2f7c8ef7e579e98", null ], - [ "plot_invalid_operation_error", "namespacefplot__core.html#adcbe99e541fc04356d322d562e5c67f0", null ], - [ "plot_out_of_memory_error", "namespacefplot__core.html#a002195f1f56bc9edc1ec7dd51c3090d8", null ], - [ "plotdata_max_name_length", "namespacefplot__core.html#acfa29ac62a50b61ea009b20a898d45e5", null ], - [ "polar_theta_bottom", "namespacefplot__core.html#af3ed8d21802d919dd891a4ea8af0ec91", null ], - [ "polar_theta_ccw", "namespacefplot__core.html#ae803ea1ff95802b0295be3661e11ce98", null ], - [ "polar_theta_cw", "namespacefplot__core.html#aff8546dbedb11e1fdf11e0ccdc8d6df0", null ], - [ "polar_theta_left", "namespacefplot__core.html#a783a98c4f406054602d757133e496c19", null ], - [ "polar_theta_right", "namespacefplot__core.html#ab582c30f182b32ad10fb85a2cdee5a2b", null ], - [ "polar_theta_top", "namespacefplot__core.html#a4c5d751fa6cfbf02b759a3858d0858f4", null ] -]; \ No newline at end of file diff --git a/docs/html/namespacefplot__errors.html b/docs/html/namespacefplot__errors.html deleted file mode 100644 index 6ea8512..0000000 --- a/docs/html/namespacefplot__errors.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -fplot: fplot_errors Module Reference - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.6.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    fplot_errors Module Reference
    -
    -
    - -

    plot_errors -More...

    - - - - - - - - - - - - - - - - - -

    -Variables

    -integer(int32), parameter plot_out_of_memory_error = 1000
     Occurs if there is insufficient memory available for the requested operation.
     
    -integer(int32), parameter plot_invalid_input_error = 1001
     Occurs if an invalid input is provided.
     
    -integer(int32), parameter plot_invalid_operation_error = 1002
     Occurs if an attempt is made to perform an invalid operation.
     
    -integer(int32), parameter plot_array_size_mismatch_error = 1003
     Occurs if there is an array size mismatch error.
     
    -integer(int32), parameter plot_gnuplot_file_error = 1004
     Occurs if there is a GNUPLOT file error.
     
    -

    Detailed Description

    -

    plot_errors

    -
    Purpose
    Provides error codes for plot routines.
    -
    -
    - - - - diff --git a/docs/html/namespacefplot__string__builder.html b/docs/html/namespacefplot__string__builder.html deleted file mode 100644 index 8784036..0000000 --- a/docs/html/namespacefplot__string__builder.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -fplot: fplot_string_builder Module Reference - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.6.2 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_string_builder Module Reference
    -
    -
    - -

    A module specific to FPLOT string building needs. -More...

    - - - - - - - - -

    -Data Types

    type  string_builder
     A mechanism for constructing strings in a piecewise fashion in an efficient manner. More...
     
    interface  to_string
     Converts an item to a string. More...
     
    -

    Detailed Description

    -

    A module specific to FPLOT string building needs.

    -
    -
    - - - - diff --git a/docs/html/namespacefplot__string__builder.js b/docs/html/namespacefplot__string__builder.js deleted file mode 100644 index 9916fa9..0000000 --- a/docs/html/namespacefplot__string__builder.js +++ /dev/null @@ -1,5 +0,0 @@ -var namespacefplot__string__builder = -[ - [ "string_builder", "structfplot__string__builder_1_1string__builder.html", "structfplot__string__builder_1_1string__builder" ], - [ "to_string", "interfacefplot__string__builder_1_1to__string.html", null ] -]; \ No newline at end of file diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html deleted file mode 100644 index bad1849..0000000 --- a/docs/html/namespacemembers.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - a -

    - - -

    - c -

    - - -

    - g -

    - - -

    - l -

    - - -

    - m -

    - - -

    - p -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_dup.js b/docs/html/namespacemembers_dup.js deleted file mode 100644 index 71f11ed..0000000 --- a/docs/html/namespacemembers_dup.js +++ /dev/null @@ -1,16 +0,0 @@ -var namespacemembers_dup = -[ - [ "c", "namespacemembers.html", null ], - [ "g", "namespacemembers_g.html", null ], - [ "h", "namespacemembers_h.html", null ], - [ "l", "namespacemembers_l.html", null ], - [ "m", "namespacemembers_m.html", null ], - [ "p", "namespacemembers_p.html", null ], - [ "q", "namespacemembers_q.html", null ], - [ "r", "namespacemembers_r.html", null ], - [ "s", "namespacemembers_s.html", null ], - [ "w", "namespacemembers_w.html", null ], - [ "x", "namespacemembers_x.html", null ], - [ "y", "namespacemembers_y.html", null ], - [ "z", "namespacemembers_z.html", null ] -]; \ No newline at end of file diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html deleted file mode 100644 index 93bc41c..0000000 --- a/docs/html/namespacemembers_func.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    - - - - diff --git a/docs/html/namespacemembers_g.html b/docs/html/namespacemembers_g.html deleted file mode 100644 index 6c93e4c..0000000 --- a/docs/html/namespacemembers_g.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - g -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_h.html b/docs/html/namespacemembers_h.html deleted file mode 100644 index 604dd78..0000000 --- a/docs/html/namespacemembers_h.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - h -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_l.html b/docs/html/namespacemembers_l.html deleted file mode 100644 index 86e52ef..0000000 --- a/docs/html/namespacemembers_l.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - l -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_m.html b/docs/html/namespacemembers_m.html deleted file mode 100644 index d3185b6..0000000 --- a/docs/html/namespacemembers_m.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - m -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_p.html b/docs/html/namespacemembers_p.html deleted file mode 100644 index 68f2b0a..0000000 --- a/docs/html/namespacemembers_p.html +++ /dev/null @@ -1,381 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - p -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_q.html b/docs/html/namespacemembers_q.html deleted file mode 100644 index 3762012..0000000 --- a/docs/html/namespacemembers_q.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - q -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_r.html b/docs/html/namespacemembers_r.html deleted file mode 100644 index 42cda89..0000000 --- a/docs/html/namespacemembers_r.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - r -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_s.html b/docs/html/namespacemembers_s.html deleted file mode 100644 index 7b46dbd..0000000 --- a/docs/html/namespacemembers_s.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - s -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_vars.html b/docs/html/namespacemembers_vars.html deleted file mode 100644 index 3acbcf1..0000000 --- a/docs/html/namespacemembers_vars.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    Here is a list of all documented namespace variables with links to the namespaces they belong to:
    - -

    - a -

    - - -

    - c -

    - - -

    - g -

    - - -

    - l -

    - - -

    - m -

    - - -

    - p -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_w.html b/docs/html/namespacemembers_w.html deleted file mode 100644 index 7cdba5f..0000000 --- a/docs/html/namespacemembers_w.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - w -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_x.html b/docs/html/namespacemembers_x.html deleted file mode 100644 index 5c27c8a..0000000 --- a/docs/html/namespacemembers_x.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - x -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_y.html b/docs/html/namespacemembers_y.html deleted file mode 100644 index 443cc23..0000000 --- a/docs/html/namespacemembers_y.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - y -

    -
    -
    - - - - diff --git a/docs/html/namespacemembers_z.html b/docs/html/namespacemembers_z.html deleted file mode 100644 index b6ccc29..0000000 --- a/docs/html/namespacemembers_z.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -fplot: Module Members - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.1.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    Here is a list of all documented module members with links to the modules they belong to:
    - -

    - z -

    -
    -
    - - - - diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html deleted file mode 100644 index 2a0b373..0000000 --- a/docs/html/namespaces.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - -fplot: Modules List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    Modules List
    -
    -
    -
    Here is a list of all documented modules with brief descriptions:
    -
    [detail level 12]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Mfplot_corefplot_core
     Cassignment(=)
     Ccm_get_string_resultRetrieves a string from a colormap
     CcolorConstructs a linearly spaced array
     CcolormapA colormap object for a surface plot
     Ccool_colormapDefines a colormap consisting of "cool" colors
     Ccustom_colormapDefines a custom colormap that utilizes the FORCOLORMAP library to provide the map
     Cdelaunay_tri_2dProvides a container for a 2D Delaunay triangulation
     Cdelaunay_tri_surfaceProvides a type describing a triangulated surface
     Cearth_colormapDefines an earthy-colored colormap
     Cfilled_plot_dataDefines a two-dimensional filled plot data set
     Cget_string_resultRetrieves a string from a plot_object
     Cgrey_colormapDefines a grey-scaled colormap
     Chot_colormapDefines a colormap consisting of "hot" colors
     Clatex_terminalDefines a GNUPLOT LATEX terminal object
     ClegendDefines a legend object
     CmultiplotDefines a multi-plot layout
     Coperator(/=)
     Coperator(==)
     Cpa_get_string_resultRetrieves a string from a plot_axis
     Cparula_colormapDefines a colormap equivalent to the MATLAB parula colormap
     Cpd_get_string_resultRetrieves a string from a plot_data object
     CplotDefines the basic GNUPLOT plot
     Cplot_2dA plot object defining a 2D plot
     Cplot_3dA plot object defining a 3D plot
     Cplot_arrowDefines an arrow to be used on by a plot object
     Cplot_axisDescribes a single plot axis
     Cplot_barDefines a 2D plot tailored towards bar plotting
     Cplot_dataProvides a container for plot data
     Cplot_data_2dDefines a two-dimensional plot data set
     Cplot_data_3dDefines a three-dimensional plot data set
     Cplot_data_barDefines a data set tailored to bar charts
     Cplot_data_coloredDefines a plot_data based object best represented by a color
     Cplot_data_error_barsDefines a 2D error bar based data set
     Cplot_data_histogramA container for plotting data in the form of a histogram
     Cplot_data_tri_2dDefines a 2D triangulated data set
     Cplot_labelDefines a label object for a plot
     Cplot_objectThe base type for a GNUPLOT object
     Cplot_polarDefines a 2D polar plot
     Cpng_terminalDefines a GNUPLOT PNG terminal object
     Cqt_terminalDefines a GNUPLOT QT terminal object
     Crainbow_colormapDefines a rainbow colormap
     Cscatter_plot_dataA plot_data object for describing scatter plot data sets
     Csimplify_polylineSimplifies a 2D or 3D polyline by removing points too close to discern given a specified tolerance
     Cspd_get_int_valueRetrieves an integer value from a scatter_plot_data object
     Cspd_get_string_resultRetrieves a string from a scatter_plot_data object
     Cspd_get_valueRetrieves a numeric value from a scatter_plot_data object
     Cspd_set_valueSets a numeric value into a scatter_plot_data object
     Csurface_plotA plot object defining a 3D surface plot
     Csurface_plot_dataProvides a three-dimensional surface plot data set
     Cterm_get_string_resultRetrieves a string from a terminal
     CterminalDefines a GNUPLOT terminal object
     Ctri_surface_plot_dataProvides a three-dimensional surface plot data set constructed of triangulated points
     Cvector_field_plot_dataDefines a two-dimensional vector-field plot data set
     Cwindows_terminalDefines a GNUPLOT Win32 terminal object
     Cwxt_terminalDefines a GNUPLOT WXT terminal object
     Cx_axisAn x-axis object
     Cy2_axisA secondary y-axis object
     Cy_axisA y-axis object
     Cz_axisA z-axis object
    -
    -
    -
    - - - - diff --git a/docs/html/namespaces.js b/docs/html/namespaces.js deleted file mode 100644 index ffcec86..0000000 --- a/docs/html/namespaces.js +++ /dev/null @@ -1,5 +0,0 @@ -var namespaces = -[ - [ "fplot_core", "namespacefplot__core.html", null ], - [ "fplot_errors", "namespacefplot__errors.html", null ] -]; \ No newline at end of file diff --git a/docs/html/namespaces_dup.js b/docs/html/namespaces_dup.js deleted file mode 100644 index 492d8f8..0000000 --- a/docs/html/namespaces_dup.js +++ /dev/null @@ -1,4 +0,0 @@ -var namespaces_dup = -[ - [ "fplot_core", "namespacefplot__core.html", "namespacefplot__core" ] -]; \ No newline at end of file diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png deleted file mode 100644 index 72a58a5..0000000 Binary files a/docs/html/nav_f.png and /dev/null differ diff --git a/docs/html/nav_fd.png b/docs/html/nav_fd.png deleted file mode 100644 index 032fbdd..0000000 Binary files a/docs/html/nav_fd.png and /dev/null differ diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png deleted file mode 100644 index 2093a23..0000000 Binary files a/docs/html/nav_g.png and /dev/null differ diff --git a/docs/html/nav_h.png b/docs/html/nav_h.png deleted file mode 100644 index 33389b1..0000000 Binary files a/docs/html/nav_h.png and /dev/null differ diff --git a/docs/html/nav_hd.png b/docs/html/nav_hd.png deleted file mode 100644 index de80f18..0000000 Binary files a/docs/html/nav_hd.png and /dev/null differ diff --git a/docs/html/navtree.css b/docs/html/navtree.css deleted file mode 100644 index 69211d4..0000000 --- a/docs/html/navtree.css +++ /dev/null @@ -1,149 +0,0 @@ -#nav-tree .children_ul { - margin:0; - padding:4px; -} - -#nav-tree ul { - list-style:none outside none; - margin:0px; - padding:0px; -} - -#nav-tree li { - white-space:nowrap; - margin:0px; - padding:0px; -} - -#nav-tree .plus { - margin:0px; -} - -#nav-tree .selected { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: var(--nav-text-active-color); - text-shadow: var(--nav-text-active-shadow); -} - -#nav-tree .selected .arrow { - color: var(--nav-arrow-selected-color); - text-shadow: none; -} - -#nav-tree img { - margin:0px; - padding:0px; - border:0px; - vertical-align: middle; -} - -#nav-tree a { - text-decoration:none; - padding:0px; - margin:0px; -} - -#nav-tree .label { - margin:0px; - padding:0px; - font: 12px var(--font-family-nav); -} - -#nav-tree .label a { - padding:2px; -} - -#nav-tree .selected a { - text-decoration:none; - color:var(--nav-text-active-color); -} - -#nav-tree .children_ul { - margin:0px; - padding:0px; -} - -#nav-tree .item { - margin:0px; - padding:0px; -} - -#nav-tree { - padding: 0px 0px; - font-size:14px; - overflow:auto; -} - -#doc-content { - overflow:auto; - display:block; - padding:0px; - margin:0px; - -webkit-overflow-scrolling : touch; /* iOS 5+ */ -} - -#side-nav { - padding:0 6px 0 0; - margin: 0px; - display:block; - position: absolute; - left: 0px; - width: $width; - overflow : hidden; -} - -.ui-resizable .ui-resizable-handle { - display:block; -} - -.ui-resizable-e { - background-image:var(--nav-splitbar-image); - background-size:100%; - background-repeat:repeat-y; - background-attachment: scroll; - cursor:ew-resize; - height:100%; - right:0; - top:0; - width:6px; -} - -.ui-resizable-handle { - display:none; - font-size:0.1px; - position:absolute; - z-index:1; -} - -#nav-tree-contents { - margin: 6px 0px 0px 0px; -} - -#nav-tree { - background-repeat:repeat-x; - background-color: var(--nav-background-color); - -webkit-overflow-scrolling : touch; /* iOS 5+ */ -} - -#nav-sync { - position:absolute; - top:5px; - right:24px; - z-index:0; -} - -#nav-sync img { - opacity:0.3; -} - -#nav-sync img:hover { - opacity:0.9; -} - -@media print -{ - #nav-tree { display: none; } - div.ui-resizable-handle { display: none; position: relative; } -} - diff --git a/docs/html/navtree.js b/docs/html/navtree.js deleted file mode 100644 index 884b79b..0000000 --- a/docs/html/navtree.js +++ /dev/null @@ -1,482 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - 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. - - @licend The above is the entire license notice for the JavaScript code in this file - */ - -function initNavTree(toroot,relpath) { - let navTreeSubIndices = []; - const ARROW_DOWN = '▼'; - const ARROW_RIGHT = '►'; - const NAVPATH_COOKIE_NAME = ''+'navpath'; - - const getData = function(varName) { - const i = varName.lastIndexOf('/'); - const n = i>=0 ? varName.substring(i+1) : varName; - return eval(n.replace(/-/g,'_')); - } - - const stripPath = function(uri) { - return uri.substring(uri.lastIndexOf('/')+1); - } - - const stripPath2 = function(uri) { - const i = uri.lastIndexOf('/'); - const s = uri.substring(i+1); - const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); - return m ? uri.substring(i-6) : s; - } - - const hashValue = function() { - return $(location).attr('hash').substring(1).replace(/[^\w-]/g,''); - } - - const hashUrl = function() { - return '#'+hashValue(); - } - - const pathName = function() { - return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, ''); - } - - const storeLink = function(link) { - if (!$("#nav-sync").hasClass('sync')) { - Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0); - } - } - - const deleteLink = function() { - Cookie.eraseSetting(NAVPATH_COOKIE_NAME); - } - - const cachedLink = function() { - return Cookie.readSetting(NAVPATH_COOKIE_NAME,''); - } - - const getScript = function(scriptName,func) { - const head = document.getElementsByTagName("head")[0]; - const script = document.createElement('script'); - script.id = scriptName; - script.type = 'text/javascript'; - script.onload = func; - script.src = scriptName+'.js'; - head.appendChild(script); - } - - const createIndent = function(o,domNode,node) { - let level=-1; - let n = node; - while (n.parentNode) { level++; n=n.parentNode; } - if (node.childrenData) { - const imgNode = document.createElement("span"); - imgNode.className = 'arrow'; - imgNode.style.paddingLeft=(16*level).toString()+'px'; - imgNode.innerHTML=ARROW_RIGHT; - node.plus_img = imgNode; - node.expandToggle = document.createElement("a"); - node.expandToggle.href = "javascript:void(0)"; - node.expandToggle.onclick = function() { - if (node.expanded) { - $(node.getChildrenUL()).slideUp("fast"); - node.plus_img.innerHTML=ARROW_RIGHT; - node.expanded = false; - } else { - expandNode(o, node, false, true); - } - } - node.expandToggle.appendChild(imgNode); - domNode.appendChild(node.expandToggle); - } else { - let span = document.createElement("span"); - span.className = 'arrow'; - span.style.width = 16*(level+1)+'px'; - span.innerHTML = ' '; - domNode.appendChild(span); - } - } - - let animationInProgress = false; - - const gotoAnchor = function(anchor,aname) { - let pos, docContent = $('#doc-content'); - let ancParent = $(anchor.parent()); - if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || - ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || - ancParent.is(':header')) { - pos = ancParent.position().top; - } else if (anchor.position()) { - pos = anchor.position().top; - } - if (pos) { - const dcOffset = docContent.offset().top; - const dcHeight = docContent.height(); - const dcScrHeight = docContent[0].scrollHeight - const dcScrTop = docContent.scrollTop(); - let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop)); - animationInProgress = true; - docContent.animate({ - scrollTop: pos + dcScrTop - dcOffset - },Math.max(50,Math.min(500,dist)),function() { - window.location.href=aname; - animationInProgress=false; - }); - } - } - - const newNode = function(o, po, text, link, childrenData, lastNode) { - const node = { - children : [], - childrenData : childrenData, - depth : po.depth + 1, - relpath : po.relpath, - isLast : lastNode, - li : document.createElement("li"), - parentNode : po, - itemDiv : document.createElement("div"), - labelSpan : document.createElement("span"), - label : document.createTextNode(text), - expanded : false, - childrenUL : null, - getChildrenUL : function() { - if (!this.childrenUL) { - this.childrenUL = document.createElement("ul"); - this.childrenUL.className = "children_ul"; - this.childrenUL.style.display = "none"; - this.li.appendChild(node.childrenUL); - } - return node.childrenUL; - }, - }; - - node.itemDiv.className = "item"; - node.labelSpan.className = "label"; - createIndent(o,node.itemDiv,node); - node.itemDiv.appendChild(node.labelSpan); - node.li.appendChild(node.itemDiv); - - const a = document.createElement("a"); - node.labelSpan.appendChild(a); - po.getChildrenUL().appendChild(node.li); - a.appendChild(node.label); - if (link) { - let url; - if (link.substring(0,1)=='^') { - url = link.substring(1); - link = url; - } else { - url = node.relpath+link; - } - a.className = stripPath(link.replace('#',':')); - if (link.indexOf('#')!=-1) { - const aname = '#'+link.split('#')[1]; - const srcPage = stripPath(pathName()); - const targetPage = stripPath(link.split('#')[0]); - a.href = srcPage!=targetPage ? url : aname; - a.onclick = function() { - storeLink(link); - aPPar = $(a).parent().parent(); - if (!aPPar.hasClass('selected')) { - $('.item').removeClass('selected'); - $('.item').removeAttr('id'); - aPPar.addClass('selected'); - aPPar.attr('id','selected'); - } - const anchor = $(aname); - gotoAnchor(anchor,aname); - }; - } else { - a.href = url; - a.onclick = () => storeLink(link); - } - } else if (childrenData != null) { - a.className = "nolink"; - a.href = "javascript:void(0)"; - a.onclick = node.expandToggle.onclick; - } - return node; - } - - const showRoot = function() { - const headerHeight = $("#top").height(); - const footerHeight = $("#nav-path").height(); - const windowHeight = $(window).height() - headerHeight - footerHeight; - (function() { // retry until we can scroll to the selected item - try { - const navtree=$('#nav-tree'); - navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); - } catch (err) { - setTimeout(arguments.callee, 0); - } - })(); - } - - const expandNode = function(o, node, imm, setFocus) { - if (node.childrenData && !node.expanded) { - if (typeof(node.childrenData)==='string') { - const varName = node.childrenData; - getScript(node.relpath+varName,function() { - node.childrenData = getData(varName); - expandNode(o, node, imm, setFocus); - }); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).slideDown("fast"); - node.plus_img.innerHTML = ARROW_DOWN; - node.expanded = true; - if (setFocus) { - $(node.expandToggle).focus(); - } - } - } - } - - const glowEffect = function(n,duration) { - n.addClass('glow').delay(duration).queue(function(next) { - $(this).removeClass('glow');next(); - }); - } - - const highlightAnchor = function() { - const aname = hashUrl(); - const anchor = $(aname); - if (anchor.parent().attr('class')=='memItemLeft') { - let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); - glowEffect(rows.children(),300); // member without details - } else if (anchor.parent().attr('class')=='fieldname') { - glowEffect(anchor.parent().parent(),1000); // enum value - } else if (anchor.parent().attr('class')=='fieldtype') { - glowEffect(anchor.parent().parent(),1000); // struct field - } else if (anchor.parent().is(":header")) { - glowEffect(anchor.parent(),1000); // section header - } else { - glowEffect(anchor.next(),1000); // normal member - } - gotoAnchor(anchor,aname); - } - - const selectAndHighlight = function(hash,n) { - let a; - if (hash) { - const link=stripPath(pathName())+':'+hash.substring(1); - a=$('.item a[class$="'+link+'"]'); - } - if (a && a.length) { - a.parent().parent().addClass('selected'); - a.parent().parent().attr('id','selected'); - highlightAnchor(); - } else if (n) { - $(n.itemDiv).addClass('selected'); - $(n.itemDiv).attr('id','selected'); - } - let topOffset=5; - if ($('#nav-tree-contents .item:first').hasClass('selected')) { - topOffset+=25; - } - $('#nav-sync').css('top',topOffset+'px'); - showRoot(); - } - - const showNode = function(o, node, index, hash) { - if (node && node.childrenData) { - if (typeof(node.childrenData)==='string') { - const varName = node.childrenData; - getScript(node.relpath+varName,function() { - node.childrenData = getData(varName); - showNode(o,node,index,hash); - }); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).css({'display':'block'}); - node.plus_img.innerHTML = ARROW_DOWN; - node.expanded = true; - const n = node.children[o.breadcrumbs[index]]; - if (index+11 ? '#'+parts[1].replace(/[^\w-]/g,'') : ''; - } - if (hash.match(/^#l\d+$/)) { - const anchor=$('a[name='+hash.substring(1)+']'); - glowEffect(anchor.parent(),1000); // line number - hash=''; // strip line number anchors - } - const url=root+hash; - let i=-1; - while (NAVTREEINDEX[i+1]<=url) i++; - if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath) - } else { - getScript(relpath+'navtreeindex'+i,function() { - navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath); - } - }); - } - } - - const showSyncOff = function(n,relpath) { - n.html(''); - } - - const showSyncOn = function(n,relpath) { - n.html(''); - } - - const o = { - toroot : toroot, - node : { - childrenData : NAVTREE, - children : [], - childrenUL : document.createElement("ul"), - getChildrenUL : function() { return this.childrenUL }, - li : document.getElementById("nav-tree-contents"), - depth : 0, - relpath : relpath, - expanded : false, - isLast : true, - plus_img : document.createElement("span"), - }, - }; - o.node.li.appendChild(o.node.childrenUL); - o.node.plus_img.className = 'arrow'; - o.node.plus_img.innerHTML = ARROW_RIGHT; - - const navSync = $('#nav-sync'); - if (cachedLink()) { - showSyncOff(navSync,relpath); - navSync.removeClass('sync'); - } else { - showSyncOn(navSync,relpath); - } - - navSync.click(() => { - const navSync = $('#nav-sync'); - if (navSync.hasClass('sync')) { - navSync.removeClass('sync'); - showSyncOff(navSync,relpath); - storeLink(stripPath2(pathName())+hashUrl()); - } else { - navSync.addClass('sync'); - showSyncOn(navSync,relpath); - deleteLink(); - } - }); - - navTo(o,toroot,hashUrl(),relpath); - showRoot(); - - $(window).bind('hashchange', () => { - if (window.location.hash && window.location.hash.length>1) { - let a; - if ($(location).attr('hash')) { - const clslink=stripPath(pathName())+':'+hashValue(); - a=$('.item a[class$="'+clslink.replace(/ - - - - - - - - diff --git a/docs/html/plusd.svg b/docs/html/plusd.svg deleted file mode 100644 index 0c65bfe..0000000 --- a/docs/html/plusd.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/html/polar_example_1.png b/docs/html/polar_example_1.png deleted file mode 100644 index ce4faf9..0000000 Binary files a/docs/html/polar_example_1.png and /dev/null differ diff --git a/docs/html/polar_example_2.png b/docs/html/polar_example_2.png deleted file mode 100644 index b2e2f4c..0000000 Binary files a/docs/html/polar_example_2.png and /dev/null differ diff --git a/docs/html/resize.js b/docs/html/resize.js deleted file mode 100644 index 6ad2ae8..0000000 --- a/docs/html/resize.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - 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. - - @licend The above is the entire license notice for the JavaScript code in this file - */ - -function initResizable() { - let sidenav,navtree,content,header,footer,barWidth=6; - const RESIZE_COOKIE_NAME = ''+'width'; - - function resizeWidth() { - const sidenavWidth = $(sidenav).outerWidth(); - content.css({marginLeft:parseInt(sidenavWidth)+"px"}); - if (typeof page_layout!=='undefined' && page_layout==1) { - footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); - } - Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); - } - - function restoreWidth(navWidth) { - content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); - if (typeof page_layout!=='undefined' && page_layout==1) { - footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); - } - sidenav.css({width:navWidth + "px"}); - } - - function resizeHeight() { - const headerHeight = header.outerHeight(); - const footerHeight = footer.outerHeight(); - const windowHeight = $(window).height(); - let contentHeight,navtreeHeight,sideNavHeight; - if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ - contentHeight = windowHeight - headerHeight - footerHeight; - navtreeHeight = contentHeight; - sideNavHeight = contentHeight; - } else if (page_layout==1) { /* DISABLE_INDEX=YES */ - contentHeight = windowHeight - footerHeight; - navtreeHeight = windowHeight - headerHeight; - sideNavHeight = windowHeight; - } - content.css({height:contentHeight + "px"}); - navtree.css({height:navtreeHeight + "px"}); - sidenav.css({height:sideNavHeight + "px"}); - if (location.hash.slice(1)) { - (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); - } - } - - function collapseExpand() { - let newWidth; - if (sidenav.width()>0) { - newWidth=0; - } else { - const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); - newWidth = (width>250 && width<$(window).width()) ? width : 250; - } - restoreWidth(newWidth); - const sidenavWidth = $(sidenav).outerWidth(); - Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); - } - - header = $("#top"); - sidenav = $("#side-nav"); - content = $("#doc-content"); - navtree = $("#nav-tree"); - footer = $("#nav-path"); - $(".side-nav-resizable").resizable({resize: () => resizeWidth() }); - $(sidenav).resizable({ minWidth: 0 }); - $(window).resize(() => resizeHeight()); - const device = navigator.userAgent.toLowerCase(); - const touch_device = device.match(/(iphone|ipod|ipad|android)/); - if (touch_device) { /* wider split bar for touch only devices */ - $(sidenav).css({ paddingRight:'20px' }); - $('.ui-resizable-e').css({ width:'20px' }); - $('#nav-sync').css({ right:'34px' }); - barWidth=20; - } - const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); - if (width) { restoreWidth(width); } else { resizeWidth(); } - resizeHeight(); - const url = location.href; - const i=url.indexOf("#"); - if (i>=0) window.location.hash=url.substr(i); - const _preventDefault = (evt) => evt.preventDefault(); - $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); - $(".ui-resizable-handle").dblclick(collapseExpand); - $(window).on('load',resizeHeight); -} -/* @license-end */ diff --git a/docs/html/search/all_0.html b/docs/html/search/all_0.html deleted file mode 100644 index 26dd244..0000000 --- a/docs/html/search/all_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js deleted file mode 100644 index e9776d7..0000000 --- a/docs/html/search/all_0.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['arrow_5fbackhead_0',['arrow_backhead',['../namespacefplot__core.html#aec186fc30c149b713c7acbbae501b953',1,'fplot_core']]], - ['arrow_5fempty_1',['arrow_empty',['../namespacefplot__core.html#acf849bac7dab0385a49577f39cd17975',1,'fplot_core']]], - ['arrow_5ffilled_2',['arrow_filled',['../namespacefplot__core.html#a77694d28a29b78d1d4f43f2f813d81a9',1,'fplot_core']]], - ['arrow_5fhead_3',['arrow_head',['../namespacefplot__core.html#ae45226bcbf29c2c1d266891d9492b920',1,'fplot_core']]], - ['arrow_5fheads_4',['arrow_heads',['../namespacefplot__core.html#a9b29a68286be7fc5791e4b7baf472828',1,'fplot_core']]], - ['arrow_5fno_5fborder_5',['arrow_no_border',['../namespacefplot__core.html#a3cb539f373d8c9b192ffba3622bcf7f2',1,'fplot_core']]], - ['arrow_5fno_5ffill_6',['arrow_no_fill',['../namespacefplot__core.html#a466c7931f298261b528697ef344a4e87',1,'fplot_core']]], - ['arrow_5fno_5fhead_7',['arrow_no_head',['../namespacefplot__core.html#ab658b8b914c0cc925c93144eef215a03',1,'fplot_core']]], - ['assignment_28_3d_29_8',['assignment(=)',['../interfacefplot__core_1_1assignment_07_0a_08.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_1.html b/docs/html/search/all_1.html deleted file mode 100644 index 8eb215b..0000000 --- a/docs/html/search/all_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js deleted file mode 100644 index 9ad09a7..0000000 --- a/docs/html/search/all_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['blue_0',['blue',['../structfplot__core_1_1color.html#a208e32c7d0b0798118575c2234f4cc94',1,'fplot_core::color']]] -]; diff --git a/docs/html/search/all_10.html b/docs/html/search/all_10.html deleted file mode 100644 index 6fd3a4a..0000000 --- a/docs/html/search/all_10.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js deleted file mode 100644 index 72e9e2c..0000000 --- a/docs/html/search/all_10.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['term_5fget_5fstring_5fresult_0',['term_get_string_result',['../interfacefplot__core_1_1term__get__string__result.html',1,'fplot_core']]], - ['terminal_1',['terminal',['../structfplot__core_1_1terminal.html',1,'fplot_core']]], - ['to_5fhex_5fstring_2',['to_hex_string',['../structfplot__core_1_1color.html#a82f6fa701820ba719c3e3266a4e6ebd0',1,'fplot_core::color']]], - ['tri_5fsurface_5fplot_5fdata_3',['tri_surface_plot_data',['../structfplot__core_1_1tri__surface__plot__data.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_11.html b/docs/html/search/all_11.html deleted file mode 100644 index f78343b..0000000 --- a/docs/html/search/all_11.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js deleted file mode 100644 index adf0ba7..0000000 --- a/docs/html/search/all_11.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['vector_5ffield_5fplot_5fdata_0',['vector_field_plot_data',['../structfplot__core_1_1vector__field__plot__data.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_12.html b/docs/html/search/all_12.html deleted file mode 100644 index dd9ff1d..0000000 --- a/docs/html/search/all_12.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_12.js b/docs/html/search/all_12.js deleted file mode 100644 index 17bc0fe..0000000 --- a/docs/html/search/all_12.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['windows_5fterminal_0',['windows_terminal',['../structfplot__core_1_1windows__terminal.html',1,'fplot_core']]], - ['wxt_5fterminal_1',['wxt_terminal',['../structfplot__core_1_1wxt__terminal.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_13.html b/docs/html/search/all_13.html deleted file mode 100644 index 2611a10..0000000 --- a/docs/html/search/all_13.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js deleted file mode 100644 index 8596b67..0000000 --- a/docs/html/search/all_13.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['x_5faxis_0',['x_axis',['../structfplot__core_1_1x__axis.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js deleted file mode 100644 index ebd6bba..0000000 --- a/docs/html/search/all_14.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['y2_5faxis_0',['y2_axis',['../structfplot__core_1_1y2__axis.html',1,'fplot_core']]], - ['y_5faxis_1',['y_axis',['../structfplot__core_1_1y__axis.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_15.js b/docs/html/search/all_15.js deleted file mode 100644 index f3d6cb5..0000000 --- a/docs/html/search/all_15.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['z_5faxis_0',['z_axis',['../structfplot__core_1_1z__axis.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_2.html b/docs/html/search/all_2.html deleted file mode 100644 index b26d916..0000000 --- a/docs/html/search/all_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js deleted file mode 100644 index ed69931..0000000 --- a/docs/html/search/all_2.js +++ /dev/null @@ -1,33 +0,0 @@ -var searchData= -[ - ['clear_5fall_0',['clear_all',['../structfplot__core_1_1plot.html#a34d776a2c321b9ac7676945d95990e16',1,'fplot_core::plot']]], - ['clear_5fall_5flabels_1',['clear_all_labels',['../structfplot__core_1_1plot.html#abf9538a6514fb1ed53d5715aacd58e2a',1,'fplot_core::plot']]], - ['clear_5farrows_2',['clear_arrows',['../structfplot__core_1_1plot.html#aef6ccd30310590087ea05f427a799b80',1,'fplot_core::plot']]], - ['clr_5fblack_3',['clr_black',['../namespacefplot__core.html#a3f8775edb06de2a90c24009a67ef4f96',1,'fplot_core']]], - ['clr_5fblue_4',['clr_blue',['../namespacefplot__core.html#ae9f20ca4d21fdf9ba84f3b363f3e7d20',1,'fplot_core']]], - ['clr_5fcyan_5',['clr_cyan',['../namespacefplot__core.html#a700047d632ac642f6a949e44451bbc80',1,'fplot_core']]], - ['clr_5fgray_6',['clr_gray',['../namespacefplot__core.html#a828573f8099a6e695b05bb0678289f59',1,'fplot_core']]], - ['clr_5fgreen_7',['clr_green',['../namespacefplot__core.html#a0bd6481a613d00bfb7f92d7b906476dd',1,'fplot_core']]], - ['clr_5flime_8',['clr_lime',['../namespacefplot__core.html#a3f2351d27904192434e3ef78155e51e0',1,'fplot_core']]], - ['clr_5fmagenta_9',['clr_magenta',['../namespacefplot__core.html#a5100f36d74219c9ddc115d9b38d213c1',1,'fplot_core']]], - ['clr_5fmaroon_10',['clr_maroon',['../namespacefplot__core.html#ab68541e171cd4c283eeec74e5165f760',1,'fplot_core']]], - ['clr_5fnavy_11',['clr_navy',['../namespacefplot__core.html#adb6d3eb3275e9c564773cae821a1c4d3',1,'fplot_core']]], - ['clr_5folive_12',['clr_olive',['../namespacefplot__core.html#a7661753bfbb9a5e7ef11a79c279a59e2',1,'fplot_core']]], - ['clr_5forange_13',['clr_orange',['../namespacefplot__core.html#af0a79b640e25da7a7897ff87e2701f86',1,'fplot_core']]], - ['clr_5fpurple_14',['clr_purple',['../namespacefplot__core.html#aa9b8d3f8e41f9a35e05e57abe3e5baf9',1,'fplot_core']]], - ['clr_5fred_15',['clr_red',['../namespacefplot__core.html#a33f5d636354eb4187ba86154037e74e7',1,'fplot_core']]], - ['clr_5fsilver_16',['clr_silver',['../namespacefplot__core.html#a662574b11028022eac8158f9fc846ded',1,'fplot_core']]], - ['clr_5fteal_17',['clr_teal',['../namespacefplot__core.html#aa30407b5d837e2e2c191d99eb115c42b',1,'fplot_core']]], - ['clr_5fwhite_18',['clr_white',['../namespacefplot__core.html#a614ecb87618492f80d7ff4ba4324926b',1,'fplot_core']]], - ['clr_5fyellow_19',['clr_yellow',['../namespacefplot__core.html#a061a6ee4fd7602c096fd5016100ca378',1,'fplot_core']]], - ['cm_5fget_5fstring_5fresult_20',['cm_get_string_result',['../interfacefplot__core_1_1cm__get__string__result.html',1,'fplot_core']]], - ['color_21',['color',['../structfplot__core_1_1color.html',1,'fplot_core']]], - ['colormap_22',['colormap',['../structfplot__core_1_1colormap.html',1,'fplot_core']]], - ['cool_5fcolormap_23',['cool_colormap',['../structfplot__core_1_1cool__colormap.html',1,'fplot_core']]], - ['coordinates_5fcartesian_24',['coordinates_cartesian',['../namespacefplot__core.html#a383aba6e97a1e427fcf4d2947c7687d3',1,'fplot_core']]], - ['coordinates_5fcylindrical_25',['coordinates_cylindrical',['../namespacefplot__core.html#a31baa8924c3ed9770c90b1ff8656da54',1,'fplot_core']]], - ['coordinates_5fspherical_26',['coordinates_spherical',['../namespacefplot__core.html#af20b219d77cbb2399a33f3981aa720bd',1,'fplot_core']]], - ['copy_5ffrom_27',['copy_from',['../structfplot__core_1_1color.html#a08fa8d6f601ba8641ec91e1f43e1c586',1,'fplot_core::color']]], - ['create_28',['create',['../structfplot__core_1_1delaunay__tri__2d.html#aba77dca84f08dbfb2b115d9d9fdd9aba',1,'fplot_core::delaunay_tri_2d']]], - ['custom_5fcolormap_29',['custom_colormap',['../structfplot__core_1_1custom__colormap.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_3.html b/docs/html/search/all_3.html deleted file mode 100644 index b61b96f..0000000 --- a/docs/html/search/all_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js deleted file mode 100644 index 88be346..0000000 --- a/docs/html/search/all_3.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['define_5fdata_0',['define_data',['../structfplot__core_1_1plot__data__2d.html#aff2e615bf20ac66b403695ce10e5be4d',1,'fplot_core::plot_data_2d::define_datapd2d_set_data_1'],['../structfplot__core_1_1plot__data__2d.html#a4ef9823b92c13db70504897adac11e70',1,'fplot_core::plot_data_2d::define_datapd2d_set_data_2'],['../structfplot__core_1_1plot__data__3d.html#ade9ee50a99ab15f4cfcc8a0ecd75e69c',1,'fplot_core::plot_data_3d::define_data()'],['../structfplot__core_1_1surface__plot__data.html#a1dbe06af4e164ada4b80277e70d0320e',1,'fplot_core::surface_plot_data::define_data()'],['../structfplot__core_1_1plot__data__tri__2d.html#a3ce95ac57b2dfda69e754d7314d5e113',1,'fplot_core::plot_data_tri_2d::define_data()'],['../structfplot__core_1_1tri__surface__plot__data.html#ad2fa70d7577676babf477c89d3562060',1,'fplot_core::tri_surface_plot_data::define_data()'],['../structfplot__core_1_1vector__field__plot__data.html#a833b60ff6a9ca8c533e089f2968d335e',1,'fplot_core::vector_field_plot_data::define_data()'],['../structfplot__core_1_1filled__plot__data.html#a3913a71653b75380dc1012c5006d773b',1,'fplot_core::filled_plot_data::define_data()']]], - ['define_5ffunction_5fvalues_1',['define_function_values',['../structfplot__core_1_1delaunay__tri__surface.html#a79ce4c8ed7d243417890fc037f474170',1,'fplot_core::delaunay_tri_surface']]], - ['define_5fx_5ferror_5fdata_2',['define_x_error_data',['../structfplot__core_1_1plot__data__error__bars.html#a897524f1b8098654b9963e1d62b69910',1,'fplot_core::plot_data_error_bars::define_x_error_datapde_define_x_err'],['../structfplot__core_1_1plot__data__error__bars.html#a43b64e7f217392ce49969bbed71a940d',1,'fplot_core::plot_data_error_bars::define_x_error_datapde_define_x_err_lim']]], - ['define_5fxy_5ferror_5fdata_3',['define_xy_error_data',['../structfplot__core_1_1plot__data__error__bars.html#a49891b23e0387645cbea89ad2405c1c9',1,'fplot_core::plot_data_error_bars::define_xy_error_datapde_define_xy_err'],['../structfplot__core_1_1plot__data__error__bars.html#ac0fb40f8ce85f194948a10d91b887d58',1,'fplot_core::plot_data_error_bars::define_xy_error_datapde_define_xy_err_lim']]], - ['define_5fy_5ferror_5fdata_4',['define_y_error_data',['../structfplot__core_1_1plot__data__error__bars.html#a8312de543a61854de5f12c25329f0e49',1,'fplot_core::plot_data_error_bars::define_y_error_datapde_define_y_err'],['../structfplot__core_1_1plot__data__error__bars.html#a8549600a4cd1d3a124292939252f08ba',1,'fplot_core::plot_data_error_bars::define_y_error_datapde_define_y_err_lim']]], - ['delaunay_5ftri_5f2d_5',['delaunay_tri_2d',['../structfplot__core_1_1delaunay__tri__2d.html',1,'fplot_core']]], - ['delaunay_5ftri_5fsurface_6',['delaunay_tri_surface',['../structfplot__core_1_1delaunay__tri__surface.html',1,'fplot_core']]], - ['draw_7',['draw',['../structfplot__core_1_1plot.html#a9d4351a5ce5288b8f1b8a0e67d5bc5b2',1,'fplot_core::plot::draw()'],['../structfplot__core_1_1multiplot.html#a37bd89e10d4dcf8a97577713eaeb4143',1,'fplot_core::multiplot::draw()']]] -]; diff --git a/docs/html/search/all_4.html b/docs/html/search/all_4.html deleted file mode 100644 index 06de155..0000000 --- a/docs/html/search/all_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js deleted file mode 100644 index 4278839..0000000 --- a/docs/html/search/all_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['earth_5fcolormap_0',['earth_colormap',['../structfplot__core_1_1earth__colormap.html',1,'fplot_core']]], - ['evaluate_1',['evaluate',['../structfplot__core_1_1delaunay__tri__surface.html#a7f77f147b8d68123f4a782ffa7bdd0be',1,'fplot_core::delaunay_tri_surface::evaluatedts_interp_1'],['../structfplot__core_1_1delaunay__tri__surface.html#aaed4c47865165797dab80d6fd11762b8',1,'fplot_core::delaunay_tri_surface::evaluatedts_interp_2']]] -]; diff --git a/docs/html/search/all_5.html b/docs/html/search/all_5.html deleted file mode 100644 index 2544c4e..0000000 --- a/docs/html/search/all_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js deleted file mode 100644 index 1d05c68..0000000 --- a/docs/html/search/all_5.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['filled_5fplot_5fdata_0',['filled_plot_data',['../structfplot__core_1_1filled__plot__data.html',1,'fplot_core']]], - ['find_5ftriangle_1',['find_triangle',['../structfplot__core_1_1delaunay__tri__2d.html#aa0c1780f8231cd2abf87151a1914a318',1,'fplot_core::delaunay_tri_2d']]], - ['fplot_5fcore_2',['fplot_core',['../namespacefplot__core.html',1,'']]], - ['free_5fresources_3',['free_resources',['../structfplot__core_1_1plot.html#a8747b4e5569b5a025ba6264252358cfd',1,'fplot_core::plot']]] -]; diff --git a/docs/html/search/all_6.html b/docs/html/search/all_6.html deleted file mode 100644 index 43f14ea..0000000 --- a/docs/html/search/all_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js deleted file mode 100644 index 2a1160b..0000000 --- a/docs/html/search/all_6.js +++ /dev/null @@ -1,132 +0,0 @@ -var searchData= -[ - ['get_0',['get',['../structfplot__core_1_1plot.html#aa98ef8753bb01d52623636be3b496129',1,'fplot_core::plot::get()'],['../structfplot__core_1_1multiplot.html#a3cb5a2d2f473e118f6adeb481cc8ae80',1,'fplot_core::multiplot::get()']]], - ['get_5fallow_5fsmoothing_1',['get_allow_smoothing',['../structfplot__core_1_1surface__plot.html#abb567cd750a1388b1130514713fc8c38',1,'fplot_core::surface_plot']]], - ['get_5fangle_2',['get_angle',['../structfplot__core_1_1plot__label.html#a1363a76ce4b2124cf606610f34c5289d',1,'fplot_core::plot_label']]], - ['get_5farrow_3',['get_arrow',['../structfplot__core_1_1plot.html#a95d3fb67a1e5a8be3881c98ef3dc88bd',1,'fplot_core::plot']]], - ['get_5farrow_5fcount_4',['get_arrow_count',['../structfplot__core_1_1plot.html#a3e928c6fed0bfd47b4875fa409f592c2',1,'fplot_core::plot']]], - ['get_5farrow_5fsize_5',['get_arrow_size',['../structfplot__core_1_1vector__field__plot__data.html#aa081611ba3786ab60023567662d1ab39',1,'fplot_core::vector_field_plot_data']]], - ['get_5fautoscale_6',['get_autoscale',['../structfplot__core_1_1plot__axis.html#aaaf9ace8a7b41b32aaee34f103e10ca0',1,'fplot_core::plot_axis::get_autoscale()'],['../structfplot__core_1_1plot__polar.html#adb315455f8ef25ef6a861b02ee4ef771',1,'fplot_core::plot_polar::get_autoscale()']]], - ['get_5faxes_5fstring_7',['get_axes_string',['../structfplot__core_1_1scatter__plot__data.html#a7ab0b579124a815634cbdcac8c81dde0',1,'fplot_core::scatter_plot_data::get_axes_string()'],['../structfplot__core_1_1plot__data__2d.html#abff268284715672d150a629a1f91f3fe',1,'fplot_core::plot_data_2d::get_axes_string()'],['../structfplot__core_1_1plot__data__3d.html#aafb795e54877133e338807877845ee53',1,'fplot_core::plot_data_3d::get_axes_string()'],['../structfplot__core_1_1filled__plot__data.html#a032e1917321920d2a04cf03b03f67946',1,'fplot_core::filled_plot_data::get_axes_string()']]], - ['get_5faxis_5fequal_8',['get_axis_equal',['../structfplot__core_1_1plot.html#ac7bc0d5bc86c478ec9cf19345b84c5ed',1,'fplot_core::plot']]], - ['get_5fazimuth_9',['get_azimuth',['../structfplot__core_1_1plot__3d.html#acee2c2a674fa5aadb08211e4a18a0d5a',1,'fplot_core::plot_3d']]], - ['get_5fcolor_10',['get_color',['../structfplot__core_1_1plot__arrow.html#a419e8b0aae89c5f8fd11c93787209bca',1,'fplot_core::plot_arrow']]], - ['get_5fcolor_5fdata_11',['get_color_data',['../structfplot__core_1_1plot__data__2d.html#a44277af64f3ac00c1b8891d9ab07d097',1,'fplot_core::plot_data_2d::get_color_data()'],['../structfplot__core_1_1plot__data__3d.html#a85627d579d5879fcbe35d3129e9035c3',1,'fplot_core::plot_data_3d::get_color_data()']]], - ['get_5fcolor_5fstring_12',['get_color_string',['../structfplot__core_1_1colormap.html#a03f0bef95c6a9c61ad04c63b84f8b6d5',1,'fplot_core::colormap::get_color_string()'],['../structfplot__core_1_1rainbow__colormap.html#a3acc19f954331a6310d5eb3425519f75',1,'fplot_core::rainbow_colormap::get_color_string()'],['../structfplot__core_1_1hot__colormap.html#af5a6ff4e313cf7c2f2b0091e8d25396b',1,'fplot_core::hot_colormap::get_color_string()'],['../structfplot__core_1_1cool__colormap.html#ab2806549f28dd4a194d79904497f03ce',1,'fplot_core::cool_colormap::get_color_string()'],['../structfplot__core_1_1parula__colormap.html#aab47b0c74c9a87e1a42b792cac59355e',1,'fplot_core::parula_colormap::get_color_string()'],['../structfplot__core_1_1grey__colormap.html#aec585307d1ab8f9fb7a039ac9695f58f',1,'fplot_core::grey_colormap::get_color_string()'],['../structfplot__core_1_1earth__colormap.html#ab54eea4aa31fdbb7368e0245143200ea',1,'fplot_core::earth_colormap::get_color_string()'],['../structfplot__core_1_1custom__colormap.html#acfb9922b4fc8f462310c166156b7d898',1,'fplot_core::custom_colormap::get_color_stringcustom_get_clr']]], - ['get_5fcolormap_13',['get_colormap',['../structfplot__core_1_1custom__colormap.html#ae99878b9e1218314af1adc982af6092d',1,'fplot_core::custom_colormap::get_colormap()'],['../structfplot__core_1_1plot.html#a132b8951071c0f8f15a0282625c2975e',1,'fplot_core::plot::get_colormap()']]], - ['get_5fcolumn_5fcount_14',['get_column_count',['../structfplot__core_1_1multiplot.html#afa4b9ef0d7c48a5d0365fd14147a0945',1,'fplot_core::multiplot']]], - ['get_5fcommand_5fstring_15',['get_command_string',['../structfplot__core_1_1plot__object.html#a986486fd0e463722c0d2e46d765d19d3',1,'fplot_core::plot_object::get_command_string()'],['../structfplot__core_1_1plot__label.html#a24d375efbdb3f3a4859a4f9752fa6999',1,'fplot_core::plot_label::get_command_string()'],['../structfplot__core_1_1plot__arrow.html#acdc8d52f5af979888d88401811f7f199',1,'fplot_core::plot_arrow::get_command_string()'],['../structfplot__core_1_1terminal.html#a5167d5b60a3a9dde0ddfdd9bd6a41f9c',1,'fplot_core::terminal::get_command_string()'],['../structfplot__core_1_1png__terminal.html#a54f5f9a908cdfb83a849015ca574b22f',1,'fplot_core::png_terminal::get_command_string()'],['../structfplot__core_1_1latex__terminal.html#a7b000e38ed8bb89bdeb10077855714a6',1,'fplot_core::latex_terminal::get_command_string()'],['../structfplot__core_1_1plot__axis.html#a00d4833c85b699bdff381ae05100cf6a',1,'fplot_core::plot_axis::get_command_string()'],['../structfplot__core_1_1legend.html#af7e10649da6f0aeb6c94ddad33496ed4',1,'fplot_core::legend::get_command_string()'],['../structfplot__core_1_1colormap.html#a6c06d5831f8e2bb173f2cabfc89b471e',1,'fplot_core::colormap::get_command_string()'],['../structfplot__core_1_1plot.html#a9a16fc8a4c67e031c1202754f32d1153',1,'fplot_core::plot::get_command_string()'],['../structfplot__core_1_1scatter__plot__data.html#a38752353ad9e2129840b07df8836e400',1,'fplot_core::scatter_plot_data::get_command_string()'],['../structfplot__core_1_1surface__plot__data.html#ac7a97a7065529fbf23cc78ed003d3e6b',1,'fplot_core::surface_plot_data::get_command_string()'],['../structfplot__core_1_1plot__2d.html#a82afa27b47f88385d430dd3c9b145d20',1,'fplot_core::plot_2d::get_command_string()'],['../structfplot__core_1_1plot__3d.html#a374d3655b53b1f429d2db81f375b8d86',1,'fplot_core::plot_3d::get_command_string()'],['../structfplot__core_1_1surface__plot.html#a1fc12a0c4034588eb95d67b8dc3d010b',1,'fplot_core::surface_plot::get_command_string()'],['../structfplot__core_1_1multiplot.html#a38da5245525925cd37f7dc32a88aedd7',1,'fplot_core::multiplot::get_command_string()'],['../structfplot__core_1_1plot__data__error__bars.html#ab80a5fe8b5abe4ed9b18594ad11b4e43',1,'fplot_core::plot_data_error_bars::get_command_string()'],['../structfplot__core_1_1plot__data__bar.html#a9711b599bf9cb178ed7c45ec1588aa46',1,'fplot_core::plot_data_bar::get_command_string()'],['../structfplot__core_1_1plot__bar.html#aaf330bd04f03f6f56e8c74b00bdd123e',1,'fplot_core::plot_bar::get_command_string()'],['../structfplot__core_1_1plot__data__tri__2d.html#afc5f53c3238bd1dfd1a5a0c3ade8c567',1,'fplot_core::plot_data_tri_2d::get_command_string()'],['../structfplot__core_1_1tri__surface__plot__data.html#a469efa44e12737b0ec95737f5cd3aabb',1,'fplot_core::tri_surface_plot_data::get_command_string()'],['../structfplot__core_1_1vector__field__plot__data.html#acb5a624f5190d33c63bef21abd6d191e',1,'fplot_core::vector_field_plot_data::get_command_string()'],['../structfplot__core_1_1plot__polar.html#ad1a4a767c50e8fe86d5526d45b95f794',1,'fplot_core::plot_polar::get_command_string()'],['../structfplot__core_1_1filled__plot__data.html#a5a173b2b8171077de2d77ee10a24904b',1,'fplot_core::filled_plot_data::get_command_string()']]], - ['get_5fcoordinate_5fsystem_16',['get_coordinate_system',['../structfplot__core_1_1plot__3d.html#a56ffdd5bb6cd107c22bc8a699681d993',1,'fplot_core::plot_3d']]], - ['get_5fcount_17',['get_count',['../structfplot__core_1_1plot.html#a949ae875c30e1b06cb86bb7bb8958e73',1,'fplot_core::plot::get_count()'],['../structfplot__core_1_1scatter__plot__data.html#af220d3b0ebfaba65fb9c2b9326d39d0f',1,'fplot_core::scatter_plot_data::get_count()'],['../structfplot__core_1_1plot__data__2d.html#a99a502c8e85b4eedb161e2bcab2f88c6',1,'fplot_core::plot_data_2d::get_count()'],['../structfplot__core_1_1plot__data__3d.html#a98903845197a0e6985f61e24f62b970e',1,'fplot_core::plot_data_3d::get_count()'],['../structfplot__core_1_1plot__data__error__bars.html#a3cdda0b5155304b1ce26a99c1efbb965',1,'fplot_core::plot_data_error_bars::get_count()']]], - ['get_5fdata_5fstring_18',['get_data_string',['../structfplot__core_1_1plot__data.html#a5b4c937341b806a85419f5d6968aea2d',1,'fplot_core::plot_data::get_data_string()'],['../structfplot__core_1_1plot__data__2d.html#a198cd94a65ba98cbd2423b749a572154',1,'fplot_core::plot_data_2d::get_data_string()'],['../structfplot__core_1_1plot__data__3d.html#a55720af848b61039e8de8a7357800221',1,'fplot_core::plot_data_3d::get_data_string()'],['../structfplot__core_1_1surface__plot__data.html#a41149a1d16e0dfbdeda8667abf0f50c2',1,'fplot_core::surface_plot_data::get_data_string()'],['../structfplot__core_1_1plot__data__error__bars.html#aaf126505fb7cb60f95190dccc89d0d4a',1,'fplot_core::plot_data_error_bars::get_data_string()'],['../structfplot__core_1_1plot__data__bar.html#aa5fa7de9642e1f9e520b4a43cd6f7ae7',1,'fplot_core::plot_data_bar::get_data_string()'],['../structfplot__core_1_1plot__data__tri__2d.html#a6a3428fb27e8b2d557075e605781a5bc',1,'fplot_core::plot_data_tri_2d::get_data_string()'],['../structfplot__core_1_1tri__surface__plot__data.html#abf08b1c7f2c4980d238a2a8c649af522',1,'fplot_core::tri_surface_plot_data::get_data_string()'],['../structfplot__core_1_1vector__field__plot__data.html#a35f10299e5447c27a670ec648d4dff9a',1,'fplot_core::vector_field_plot_data::get_data_string()'],['../structfplot__core_1_1filled__plot__data.html#a1a29d4771e4255a27dc5236407d14144',1,'fplot_core::filled_plot_data::get_data_string()']]], - ['get_5fdraw_5fagainst_5fy2_19',['get_draw_against_y2',['../structfplot__core_1_1plot__data__2d.html#afcbdba943a724904ce1099d8c48c8b50',1,'fplot_core::plot_data_2d::get_draw_against_y2()'],['../structfplot__core_1_1filled__plot__data.html#a2946d6a05362b47c7f01603edf4a6690',1,'fplot_core::filled_plot_data::get_draw_against_y2()']]], - ['get_5fdraw_5fborder_20',['get_draw_border',['../structfplot__core_1_1legend.html#a1ed58a0a0f295b937932dc954d154464',1,'fplot_core::legend::get_draw_border()'],['../structfplot__core_1_1colormap.html#adfde936a6669f562b17fba87e8ae8588',1,'fplot_core::colormap::get_draw_border()'],['../structfplot__core_1_1plot.html#af6ce304fe4acb418af76d672f99c1fb9',1,'fplot_core::plot::get_draw_border()']]], - ['get_5fdraw_5finside_5faxes_21',['get_draw_inside_axes',['../structfplot__core_1_1legend.html#a88c74437f8906b6d1247e662b95d8a52',1,'fplot_core::legend']]], - ['get_5fdraw_5fline_22',['get_draw_line',['../structfplot__core_1_1scatter__plot__data.html#a5f8e8427299c380b69eef4207fdac6fd',1,'fplot_core::scatter_plot_data']]], - ['get_5fdraw_5fmarkers_23',['get_draw_markers',['../structfplot__core_1_1scatter__plot__data.html#aa78996b052703cd440b579a3f19c0323',1,'fplot_core::scatter_plot_data']]], - ['get_5felevation_24',['get_elevation',['../structfplot__core_1_1plot__3d.html#a6a5612c5ea70d90368de4e738e662ee8',1,'fplot_core::plot_3d']]], - ['get_5ffilename_25',['get_filename',['../structfplot__core_1_1png__terminal.html#af9f9678ab852cd1cdf1ba93607045ad0',1,'fplot_core::png_terminal::get_filename()'],['../structfplot__core_1_1latex__terminal.html#a4a9465f48c206d9953fd9540b9d28129',1,'fplot_core::latex_terminal::get_filename()']]], - ['get_5ffill_5farrow_26',['get_fill_arrow',['../structfplot__core_1_1vector__field__plot__data.html#ac83b7d14395a9c7894ae89f86c3aeb96',1,'fplot_core::vector_field_plot_data']]], - ['get_5ffill_5fcurve_27',['get_fill_curve',['../structfplot__core_1_1scatter__plot__data.html#a574f1a94ca7ad3fbb1a1da445a50cbee',1,'fplot_core::scatter_plot_data']]], - ['get_5ffont_5fname_28',['get_font_name',['../structfplot__core_1_1terminal.html#a4958475366c740ba22f15aea8ca61efb',1,'fplot_core::terminal::get_font_name()'],['../structfplot__core_1_1plot.html#af6528d0d7a8e62f968e8818012732b09',1,'fplot_core::plot::get_font_name()'],['../structfplot__core_1_1multiplot.html#ae37d626915c86f2068a90aa643b7ec7d',1,'fplot_core::multiplot::get_font_name()']]], - ['get_5ffont_5fsize_29',['get_font_size',['../structfplot__core_1_1terminal.html#a1d21543a70c7aa857b8f6104671d3770',1,'fplot_core::terminal::get_font_size()'],['../structfplot__core_1_1plot.html#abc559881bc8d4bea9b716964e37e92ed',1,'fplot_core::plot::get_font_size()'],['../structfplot__core_1_1multiplot.html#a31171ee8993d645c5e8d60212002e1b1',1,'fplot_core::multiplot::get_font_size()']]], - ['get_5fhead_5fangle_30',['get_head_angle',['../structfplot__core_1_1plot__arrow.html#a2ac66de42f97cf794d6184c9e092f85e',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5fback_5fangle_31',['get_head_back_angle',['../structfplot__core_1_1plot__arrow.html#abfd19a819ab33659213588cd0d7dfe9c',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5ffill_32',['get_head_fill',['../structfplot__core_1_1plot__arrow.html#a4cd206c5596dbab50b91472260646f29',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5flocation_33',['get_head_location',['../structfplot__core_1_1plot__arrow.html#a65d9efb1c3a6874ffb9745b6ba67d9ae',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5fsize_34',['get_head_size',['../structfplot__core_1_1plot__arrow.html#a80eff3e2ee043866d69c4074006e00d2',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5ftype_35',['get_head_type',['../structfplot__core_1_1plot__arrow.html#a3c95cde3a7e4748f8a2906ec9404d477',1,'fplot_core::plot_arrow']]], - ['get_5fhorizontal_36',['get_horizontal',['../structfplot__core_1_1colormap.html#a11e1d8c4d776814ba9b931dea5eba55f',1,'fplot_core::colormap']]], - ['get_5fhorizontal_5fposition_37',['get_horizontal_position',['../structfplot__core_1_1legend.html#a6e4a288471d81d99105f2781dbc0944a',1,'fplot_core::legend']]], - ['get_5fid_5fstring_38',['get_id_string',['../structfplot__core_1_1terminal.html#a806a00204a80a6cc2676d2fd05179ba4',1,'fplot_core::terminal::get_id_string()'],['../structfplot__core_1_1windows__terminal.html#aa9422d9df32df6bae76145d27663f32b',1,'fplot_core::windows_terminal::get_id_string()'],['../structfplot__core_1_1qt__terminal.html#a2544ce4552975f086ec0f20ae702657d',1,'fplot_core::qt_terminal::get_id_string()'],['../structfplot__core_1_1wxt__terminal.html#aeea16e93a4be79e2687a207c405db431',1,'fplot_core::wxt_terminal::get_id_string()'],['../structfplot__core_1_1png__terminal.html#a7fc33aaa61a2ecd8d1786b573c1194e9',1,'fplot_core::png_terminal::get_id_string()'],['../structfplot__core_1_1latex__terminal.html#ae59d44e616fbad4e93bf1fc7159a44d2',1,'fplot_core::latex_terminal::get_id_string()'],['../structfplot__core_1_1plot__axis.html#a503b9d12d8a13992bdcf2d2698a90b10',1,'fplot_core::plot_axis::get_id_string()'],['../structfplot__core_1_1x__axis.html#a7cb8753743161cd7e18a3df9721b5129',1,'fplot_core::x_axis::get_id_string()'],['../structfplot__core_1_1y__axis.html#a0e82d7adc90762d6885b22d2abb9651b',1,'fplot_core::y_axis::get_id_string()'],['../structfplot__core_1_1y2__axis.html#afa3ce73eceaade01e8b3488e5dac9eea',1,'fplot_core::y2_axis::get_id_string()'],['../structfplot__core_1_1z__axis.html#a9a72041ffd57f8e2cb109e4d49d0f922',1,'fplot_core::z_axis::get_id_string()']]], - ['get_5findices_39',['get_indices',['../structfplot__core_1_1delaunay__tri__2d.html#a2a39c08bcaa4819d25684d8dbb3ee508',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fis_5flog_5fscaled_40',['get_is_log_scaled',['../structfplot__core_1_1plot__axis.html#a1826e039d7a1726fc8c19a5215158708',1,'fplot_core::plot_axis']]], - ['get_5fis_5fopaque_41',['get_is_opaque',['../structfplot__core_1_1legend.html#a116ec03262065d54826f531c5b2e636e',1,'fplot_core::legend']]], - ['get_5fis_5fvisible_42',['get_is_visible',['../structfplot__core_1_1plot__label.html#a6a58bbc93d4a081c10b912da6273fa03',1,'fplot_core::plot_label::get_is_visible()'],['../structfplot__core_1_1plot__arrow.html#aa8b6628e7136aa166c1e6205dc4dc169',1,'fplot_core::plot_arrow::get_is_visible()'],['../structfplot__core_1_1legend.html#aba8ff6b836a1fd2fefe41fc58751834b',1,'fplot_core::legend::get_is_visible()']]], - ['get_5flabel_43',['get_label',['../structfplot__core_1_1colormap.html#ae06b58a108c1805c3ab2138dc31bd326',1,'fplot_core::colormap::get_label()'],['../structfplot__core_1_1plot.html#a05d9262e904709835f79533d63eba64e',1,'fplot_core::plot::get_labelplt_get_label']]], - ['get_5flabel_5fcount_44',['get_label_count',['../structfplot__core_1_1plot.html#ab6240e8f98ecc508d3bc39adc44e8a6c',1,'fplot_core::plot']]], - ['get_5flayout_45',['get_layout',['../structfplot__core_1_1legend.html#a0692cc15c73eac64351831d3d4d28eb0',1,'fplot_core::legend']]], - ['get_5flegend_46',['get_legend',['../structfplot__core_1_1plot.html#abf7fb454462b1d553fe3995575f77d15',1,'fplot_core::plot']]], - ['get_5flight_5fintensity_47',['get_light_intensity',['../structfplot__core_1_1surface__plot.html#a23afb86c55364a3669f9e995d256c55c',1,'fplot_core::surface_plot']]], - ['get_5flimits_48',['get_limits',['../structfplot__core_1_1plot__axis.html#a025972a1e5bdd167cfd1e605798f3236',1,'fplot_core::plot_axis']]], - ['get_5fline_5fcolor_49',['get_line_color',['../structfplot__core_1_1plot__data__colored.html#aafd241043c19b55b90412b77766da1bd',1,'fplot_core::plot_data_colored']]], - ['get_5fline_5fstyle_50',['get_line_style',['../structfplot__core_1_1plot__arrow.html#a5689908ce348e110e19a14968bb41315',1,'fplot_core::plot_arrow::get_line_style()'],['../structfplot__core_1_1scatter__plot__data.html#a207dc9773f6dd173799dd607c4e321b6',1,'fplot_core::scatter_plot_data::get_line_style()'],['../structfplot__core_1_1plot__data__tri__2d.html#acd24f81dd3ea6e560ef8967762365c59',1,'fplot_core::plot_data_tri_2d::get_line_style()']]], - ['get_5fline_5fwidth_51',['get_line_width',['../structfplot__core_1_1plot__arrow.html#aa054166ee5ab324006aa3a79bcccb2d7',1,'fplot_core::plot_arrow::get_line_width()'],['../structfplot__core_1_1scatter__plot__data.html#acfab9f133dae8af4eee2a0151d3cb8e7',1,'fplot_core::scatter_plot_data::get_line_width()'],['../structfplot__core_1_1plot__data__tri__2d.html#a1d6f55f5124ea7fed1db1e1682415f72',1,'fplot_core::plot_data_tri_2d::get_line_width()']]], - ['get_5fmarker_5ffrequency_52',['get_marker_frequency',['../structfplot__core_1_1scatter__plot__data.html#abecca27ba9033242c9cb76692bb8d9ec',1,'fplot_core::scatter_plot_data']]], - ['get_5fmarker_5fscaling_53',['get_marker_scaling',['../structfplot__core_1_1scatter__plot__data.html#a3a09033deefd1c5d3157dff1a0b4c05d',1,'fplot_core::scatter_plot_data']]], - ['get_5fmarker_5fstyle_54',['get_marker_style',['../structfplot__core_1_1scatter__plot__data.html#af7386b5c9cecb7c57e619185f0284ee6',1,'fplot_core::scatter_plot_data']]], - ['get_5fmove_5fto_5ffront_55',['get_move_to_front',['../structfplot__core_1_1plot__arrow.html#a6beddd6f29376f864ed6515b2936badb',1,'fplot_core::plot_arrow']]], - ['get_5fname_56',['get_name',['../structfplot__core_1_1plot__data.html#a445f80b716146d6087d2f1adaa4b98bf',1,'fplot_core::plot_data']]], - ['get_5fplot_5fcount_57',['get_plot_count',['../structfplot__core_1_1multiplot.html#a354b6419ea8889d27a789c11d19d30ae',1,'fplot_core::multiplot']]], - ['get_5fplot_5fwindow_5fnumber_58',['get_plot_window_number',['../structfplot__core_1_1terminal.html#a791d7842cbb35ef499cbc9089f5921eb',1,'fplot_core::terminal']]], - ['get_5fplot_5fx_5ferror_5fbars_59',['get_plot_x_error_bars',['../structfplot__core_1_1plot__data__error__bars.html#a680ba7316765bc7c4b00c603ccf96a05',1,'fplot_core::plot_data_error_bars']]], - ['get_5fplot_5fy_5ferror_5fbars_60',['get_plot_y_error_bars',['../structfplot__core_1_1plot__data__error__bars.html#a44eac08eca6a448fb2424a3ca4e9b3cc',1,'fplot_core::plot_data_error_bars']]], - ['get_5fpoint_5fcount_61',['get_point_count',['../structfplot__core_1_1delaunay__tri__2d.html#ae0e68fb12ac6ce70da9bf03a4f77778d',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fpoint_5fsize_5fdata_62',['get_point_size_data',['../structfplot__core_1_1plot__data__2d.html#a703b322285b948322b82b1450ddb89f3',1,'fplot_core::plot_data_2d::get_point_size_data()'],['../structfplot__core_1_1plot__data__3d.html#ae49068baed9bb95fed74268ea24ac3ac',1,'fplot_core::plot_data_3d::get_point_size_data()']]], - ['get_5fpoints_5fx_63',['get_points_x',['../structfplot__core_1_1delaunay__tri__2d.html#abdaa5a6e385627ba0c0525c4b9d7427b',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fpoints_5fy_64',['get_points_y',['../structfplot__core_1_1delaunay__tri__2d.html#acaac501f173450d34594d3b6f36caa51',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fpoints_5fz_65',['get_points_z',['../structfplot__core_1_1delaunay__tri__surface.html#a87a65ab9d6e614217b738e40bcca3688',1,'fplot_core::delaunay_tri_surface']]], - ['get_5fposition_66',['get_position',['../structfplot__core_1_1plot__label.html#a683715b72ba17d79b0f7f75ce6223ab2',1,'fplot_core::plot_label']]], - ['get_5fradial_5flimits_67',['get_radial_limits',['../structfplot__core_1_1plot__polar.html#a24177754fa37e095f2500a8f0d9cf269',1,'fplot_core::plot_polar']]], - ['get_5frow_5fcount_68',['get_row_count',['../structfplot__core_1_1multiplot.html#af8e5de63b2d4424ef31c6454f0b4a441',1,'fplot_core::multiplot']]], - ['get_5fshow_5fcolorbar_69',['get_show_colorbar',['../structfplot__core_1_1plot.html#a5b11d0a4762b08daa7176b50d2d445fd',1,'fplot_core::plot']]], - ['get_5fshow_5fcontours_70',['get_show_contours',['../structfplot__core_1_1surface__plot.html#a3a41ac572a7b31cf23e582ee8023d651',1,'fplot_core::surface_plot']]], - ['get_5fshow_5fgridlines_71',['get_show_gridlines',['../structfplot__core_1_1plot.html#ad6c6e15a4b1d960252b5bfe1d380a5f3',1,'fplot_core::plot']]], - ['get_5fshow_5fhidden_72',['get_show_hidden',['../structfplot__core_1_1surface__plot.html#ab30c5358ab2f8852753150774befd898',1,'fplot_core::surface_plot']]], - ['get_5fshow_5ftics_73',['get_show_tics',['../structfplot__core_1_1colormap.html#a0800d95684d4756cae09f365a8e93b5d',1,'fplot_core::colormap']]], - ['get_5fsimplification_5ffactor_74',['get_simplification_factor',['../structfplot__core_1_1scatter__plot__data.html#a9e1b45badadfa1bda1b20ea8d9a2f1fe',1,'fplot_core::scatter_plot_data']]], - ['get_5fsimplify_5fdata_75',['get_simplify_data',['../structfplot__core_1_1scatter__plot__data.html#a0d0755bca68c8c758bc7f5ab880f65e3',1,'fplot_core::scatter_plot_data']]], - ['get_5fsize_76',['get_size',['../structfplot__core_1_1surface__plot__data.html#a3a90bfbfccf24c272e1bd151167cf8ae',1,'fplot_core::surface_plot_data']]], - ['get_5fspecular_5fintensity_77',['get_specular_intensity',['../structfplot__core_1_1surface__plot.html#a88ad210fb239e4ef9943c805b73add68',1,'fplot_core::surface_plot']]], - ['get_5fsquare_5faxes_78',['get_square_axes',['../structfplot__core_1_1plot__2d.html#ae408393a833c5978996701ab198ba0bb',1,'fplot_core::plot_2d']]], - ['get_5fstring_5fresult_79',['get_string_result',['../interfacefplot__core_1_1get__string__result.html',1,'fplot_core']]], - ['get_5ftail_5flocation_80',['get_tail_location',['../structfplot__core_1_1plot__arrow.html#a4ad925efaa9bb101c20799ba29028d52',1,'fplot_core::plot_arrow']]], - ['get_5fterminal_81',['get_terminal',['../structfplot__core_1_1plot.html#ad2401d852a81076fe72cf8a808fde792',1,'fplot_core::plot::get_terminal()'],['../structfplot__core_1_1multiplot.html#a3e773ed8f697086383a91cfc88be412b',1,'fplot_core::multiplot::get_terminal()']]], - ['get_5ftext_82',['get_text',['../structfplot__core_1_1plot__label.html#a7c60aed4792e8700e1154e213d0cb92e',1,'fplot_core::plot_label']]], - ['get_5ftheta_5fdirection_83',['get_theta_direction',['../structfplot__core_1_1plot__polar.html#aa2baa0c84a23e7c3069ce2fcd4050e7e',1,'fplot_core::plot_polar']]], - ['get_5ftheta_5fstart_5fposition_84',['get_theta_start_position',['../structfplot__core_1_1plot__polar.html#afeb1ddee4cb09260fd4f92a4e70e8e18',1,'fplot_core::plot_polar']]], - ['get_5ftic_5flabel_5fformat_85',['get_tic_label_format',['../structfplot__core_1_1plot__axis.html#adf896e948d36fc834734ba6abccbe9d1',1,'fplot_core::plot_axis']]], - ['get_5ftics_5finward_86',['get_tics_inward',['../structfplot__core_1_1plot.html#a688f3645c69308cf608231a21b0aed64',1,'fplot_core::plot']]], - ['get_5ftitle_87',['get_title',['../structfplot__core_1_1terminal.html#ac706187861e60e83f2d327ed86175bb3',1,'fplot_core::terminal::get_title()'],['../structfplot__core_1_1plot__axis.html#af93e4f7ff1f6ea1823a45a92a272f91c',1,'fplot_core::plot_axis::get_title()'],['../structfplot__core_1_1plot.html#a133ef2de58d480ba1a3192cc26a5c58d',1,'fplot_core::plot::get_title()'],['../structfplot__core_1_1multiplot.html#a53b06b534a0fd70fb17323ec5bb9b063',1,'fplot_core::multiplot::get_title()']]], - ['get_5ftransparency_88',['get_transparency',['../structfplot__core_1_1surface__plot.html#a16dbdc679951a0f58e449349d7d5c3c0',1,'fplot_core::surface_plot']]], - ['get_5ftriangle_5fcount_89',['get_triangle_count',['../structfplot__core_1_1delaunay__tri__2d.html#a74c3e196311190b91f8889f756edf630',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fuse_5fdata_5fdependent_5fcolors_90',['get_use_data_dependent_colors',['../structfplot__core_1_1scatter__plot__data.html#a65e5e58525b877b9bfd4873dc7b2e9e4',1,'fplot_core::scatter_plot_data::get_use_data_dependent_colors()'],['../structfplot__core_1_1vector__field__plot__data.html#a1c8d0b54c39a88ec703fe887395d9de1',1,'fplot_core::vector_field_plot_data::get_use_data_dependent_colors()']]], - ['get_5fuse_5fdefault_5fsize_91',['get_use_default_size',['../structfplot__core_1_1plot__arrow.html#aacd237f46dd75db4cd7da3e6149b4dae',1,'fplot_core::plot_arrow']]], - ['get_5fuse_5fdefault_5ftic_5flabel_5fformat_92',['get_use_default_tic_label_format',['../structfplot__core_1_1plot__axis.html#a43b1a4ecac087b3b84d9019383d1030e',1,'fplot_core::plot_axis']]], - ['get_5fuse_5ferror_5fbox_93',['get_use_error_box',['../structfplot__core_1_1plot__data__error__bars.html#a8420ea83599f290a9cd54754b292b2b4',1,'fplot_core::plot_data_error_bars']]], - ['get_5fuse_5flighting_94',['get_use_lighting',['../structfplot__core_1_1surface__plot.html#a66de771aa5424068059cc90db5150393',1,'fplot_core::surface_plot']]], - ['get_5fuse_5fmap_5fview_95',['get_use_map_view',['../structfplot__core_1_1plot__3d.html#ad61ad94ee9d573d1d51aa8cf463c59b4',1,'fplot_core::plot_3d']]], - ['get_5fuse_5frange_96',['get_use_range',['../structfplot__core_1_1plot__data__error__bars.html#adba3954ad57120529148371629340091',1,'fplot_core::plot_data_error_bars']]], - ['get_5fuse_5fvariable_5fsize_5fpoints_97',['get_use_variable_size_points',['../structfplot__core_1_1scatter__plot__data.html#ae7263aa5d4f1fb5fdd8941a7c69a19a3',1,'fplot_core::scatter_plot_data']]], - ['get_5fuse_5fwireframe_98',['get_use_wireframe',['../structfplot__core_1_1surface__plot__data.html#a0d2cebb75afa92984e700aaa36251683',1,'fplot_core::surface_plot_data::get_use_wireframe()'],['../structfplot__core_1_1tri__surface__plot__data.html#a3fc771c7f1bdb8104ae08fabf6c665dd',1,'fplot_core::tri_surface_plot_data::get_use_wireframe()']]], - ['get_5fuse_5fy2_5faxis_99',['get_use_y2_axis',['../structfplot__core_1_1plot__2d.html#a90474e948b36c694223ab528dedcd2bc',1,'fplot_core::plot_2d']]], - ['get_5fvertical_5fposition_100',['get_vertical_position',['../structfplot__core_1_1legend.html#abb44e0b424ee3a9170fc4ddecf39c481',1,'fplot_core::legend']]], - ['get_5fwindow_5fheight_101',['get_window_height',['../structfplot__core_1_1terminal.html#ab368a38267c496220bea42ea79be8413',1,'fplot_core::terminal']]], - ['get_5fwindow_5fwidth_102',['get_window_width',['../structfplot__core_1_1terminal.html#adc47a1a1c7156f8f2adf8510193ee26c',1,'fplot_core::terminal']]], - ['get_5fx_103',['get_x',['../structfplot__core_1_1scatter__plot__data.html#a12a4a9e221cd17546332eab66ee3587f',1,'fplot_core::scatter_plot_data::get_x()'],['../structfplot__core_1_1plot__data__2d.html#a83fd2bbcc7a8db64d64fa2e4f8540698',1,'fplot_core::plot_data_2d::get_x()'],['../structfplot__core_1_1plot__data__3d.html#a73ca5dfd8f294a9c6b5f84767bebaad2',1,'fplot_core::plot_data_3d::get_x()'],['../structfplot__core_1_1surface__plot__data.html#aaf4084060174d016296cf8cedc37b34a',1,'fplot_core::surface_plot_data::get_x()']]], - ['get_5fx_5faxis_104',['get_x_axis',['../structfplot__core_1_1plot__2d.html#af162aeb3b01f1d64c741889a0cd58cc8',1,'fplot_core::plot_2d::get_x_axis()'],['../structfplot__core_1_1plot__3d.html#afe5605d48034ee94fbaf08af6d47e59f',1,'fplot_core::plot_3d::get_x_axis()']]], - ['get_5fx_5fdata_105',['get_x_data',['../structfplot__core_1_1plot__data__2d.html#a191daa9d59fb985eae560be76e826d2c',1,'fplot_core::plot_data_2d::get_x_data()'],['../structfplot__core_1_1plot__data__3d.html#a13c7c8e4c4ecb9fb80aee24b75a5cff3',1,'fplot_core::plot_data_3d::get_x_data()']]], - ['get_5fy_106',['get_y',['../structfplot__core_1_1scatter__plot__data.html#a593db6ad20d55e9f6240d66713352a26',1,'fplot_core::scatter_plot_data::get_y()'],['../structfplot__core_1_1plot__data__2d.html#a97d6c5a96add7522152fe8b3146081d6',1,'fplot_core::plot_data_2d::get_y()'],['../structfplot__core_1_1plot__data__3d.html#a487acf51a34ff00fe81c8b9156fafc5a',1,'fplot_core::plot_data_3d::get_y()'],['../structfplot__core_1_1surface__plot__data.html#ae6395f27b33c147226f04afdd4d08471',1,'fplot_core::surface_plot_data::get_y()']]], - ['get_5fy2_5faxis_107',['get_y2_axis',['../structfplot__core_1_1plot__2d.html#a3f312d0ddd992171e7fef6ac7b142698',1,'fplot_core::plot_2d']]], - ['get_5fy_5faxis_108',['get_y_axis',['../structfplot__core_1_1plot__2d.html#ab423155405406198f9d01bbba1311baf',1,'fplot_core::plot_2d::get_y_axis()'],['../structfplot__core_1_1plot__3d.html#ad39ce86017565371155ce84eacfd2086',1,'fplot_core::plot_3d::get_y_axis()']]], - ['get_5fy_5fdata_109',['get_y_data',['../structfplot__core_1_1plot__data__2d.html#a1f46fa50e4d2a1eaff9d881b614f3122',1,'fplot_core::plot_data_2d::get_y_data()'],['../structfplot__core_1_1plot__data__3d.html#a88c4206070248fb431e0456945669bae',1,'fplot_core::plot_data_3d::get_y_datapd3d_get_y_array']]], - ['get_5fz_110',['get_z',['../structfplot__core_1_1plot__data__3d.html#a6513639ef9e865478e7fcfd556aa1111',1,'fplot_core::plot_data_3d::get_z()'],['../structfplot__core_1_1surface__plot__data.html#a9405a52b7728bef74de50586d23b2f28',1,'fplot_core::surface_plot_data::get_z()']]], - ['get_5fz_5faxis_111',['get_z_axis',['../structfplot__core_1_1plot__3d.html#a3606b1bf32567c8ae6f02b644b2b36ab',1,'fplot_core::plot_3d']]], - ['get_5fz_5fdata_112',['get_z_data',['../structfplot__core_1_1plot__data__3d.html#aa9b1507e1841fda61fc9be8a5a0a7013',1,'fplot_core::plot_data_3d']]], - ['get_5fz_5fintersect_5fxy_113',['get_z_intersect_xy',['../structfplot__core_1_1plot__3d.html#af09cbbc43c987f15e906e5a1b5d0d8cc',1,'fplot_core::plot_3d']]], - ['get_5fzero_5faxis_114',['get_zero_axis',['../structfplot__core_1_1plot__axis.html#a26ec236090b21f9e30770de3a2487f56',1,'fplot_core::plot_axis']]], - ['get_5fzero_5faxis_5fline_5fwidth_115',['get_zero_axis_line_width',['../structfplot__core_1_1plot__axis.html#a89c204ec15cf6688768cc27252316228',1,'fplot_core::plot_axis']]], - ['gnuplot_5fdefault_5ffont_5fsize_116',['gnuplot_default_font_size',['../namespacefplot__core.html#af51438c2c528d43662a1456d4f9fbb33',1,'fplot_core']]], - ['gnuplot_5fdefault_5ffontname_117',['gnuplot_default_fontname',['../namespacefplot__core.html#a41bb6a9ffc3ebb502d54af9a7ce540e7',1,'fplot_core']]], - ['gnuplot_5fdefault_5fwindow_5fheight_118',['gnuplot_default_window_height',['../namespacefplot__core.html#a6210b9335ccb79ff288de84dd741f0e0',1,'fplot_core']]], - ['gnuplot_5fdefault_5fwindow_5fwidth_119',['gnuplot_default_window_width',['../namespacefplot__core.html#a45b6c532e70244ebf23ff21eb596223b',1,'fplot_core']]], - ['gnuplot_5fmax_5flabel_5flength_120',['gnuplot_max_label_length',['../namespacefplot__core.html#a7e9ac1526f3f84a70eb10c98aff73610',1,'fplot_core']]], - ['gnuplot_5fmax_5fpath_5flength_121',['gnuplot_max_path_length',['../namespacefplot__core.html#a40ff0463a668b977d2fab03d3d8a6dde',1,'fplot_core']]], - ['gnuplot_5fterminal_5flatex_122',['gnuplot_terminal_latex',['../namespacefplot__core.html#adadfa5448d65da7362e445ee1fe61b10',1,'fplot_core']]], - ['gnuplot_5fterminal_5fpng_123',['gnuplot_terminal_png',['../namespacefplot__core.html#af1ace6143d83970cbfe69d7289c427d9',1,'fplot_core']]], - ['gnuplot_5fterminal_5fqt_124',['gnuplot_terminal_qt',['../namespacefplot__core.html#a512870ac9b979c4b0ea2804fbbb02a7d',1,'fplot_core']]], - ['gnuplot_5fterminal_5fwin32_125',['gnuplot_terminal_win32',['../namespacefplot__core.html#acf7693c9998a266f3cf50510b2cc06e9',1,'fplot_core']]], - ['gnuplot_5fterminal_5fwxt_126',['gnuplot_terminal_wxt',['../namespacefplot__core.html#a127138d0cab0e51e9c5f3fdcfdf033ac',1,'fplot_core']]], - ['green_127',['green',['../structfplot__core_1_1color.html#aa710db5291759d15263ecfb69a8d693c',1,'fplot_core::color']]], - ['grey_5fcolormap_128',['grey_colormap',['../structfplot__core_1_1grey__colormap.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_7.html b/docs/html/search/all_7.html deleted file mode 100644 index af52f82..0000000 --- a/docs/html/search/all_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js deleted file mode 100644 index fa74e08..0000000 --- a/docs/html/search/all_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['hot_5fcolormap_0',['hot_colormap',['../structfplot__core_1_1hot__colormap.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_8.html b/docs/html/search/all_8.html deleted file mode 100644 index cf2b5df..0000000 --- a/docs/html/search/all_8.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js deleted file mode 100644 index 16efcb2..0000000 --- a/docs/html/search/all_8.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['initialize_0',['initialize',['../structfplot__core_1_1plot.html#ada6347bd02ef1b85a1206ef1a6a72f91',1,'fplot_core::plot::initialize()'],['../structfplot__core_1_1plot__2d.html#a14de301a52d28381d2e20e8b61e7b90f',1,'fplot_core::plot_2d::initialize()'],['../structfplot__core_1_1plot__3d.html#af2f00319633a96dfc5961129671126f1',1,'fplot_core::plot_3d::initialize()'],['../structfplot__core_1_1surface__plot.html#afdc405472449e47ac82e3cc7af3bd63d',1,'fplot_core::surface_plot::initialize()'],['../structfplot__core_1_1multiplot.html#a765c22060cbe884515bc3a73bfef30f7',1,'fplot_core::multiplot::initialize()'],['../structfplot__core_1_1plot__polar.html#a6d386c4b4669e96aa128e17b0d0e3e86',1,'fplot_core::plot_polar::initialize()']]], - ['is_5ftitle_5fdefined_1',['is_title_defined',['../structfplot__core_1_1plot__axis.html#a726c620a8c7921f455900cb5bec1e0c7',1,'fplot_core::plot_axis::is_title_defined()'],['../structfplot__core_1_1plot.html#a49cd3527b815c57b7f0aaf163686c385',1,'fplot_core::plot::is_title_defined()'],['../structfplot__core_1_1multiplot.html#a77d68800c07166876bd9dae972caf094',1,'fplot_core::multiplot::is_title_defined()']]] -]; diff --git a/docs/html/search/all_9.html b/docs/html/search/all_9.html deleted file mode 100644 index 690785a..0000000 --- a/docs/html/search/all_9.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js deleted file mode 100644 index 23c8f48..0000000 --- a/docs/html/search/all_9.js +++ /dev/null @@ -1,17 +0,0 @@ -var searchData= -[ - ['latex_5fterminal_0',['latex_terminal',['../structfplot__core_1_1latex__terminal.html',1,'fplot_core']]], - ['legend_1',['legend',['../structfplot__core_1_1legend.html',1,'fplot_core']]], - ['legend_5farrange_5fhorizontally_2',['legend_arrange_horizontally',['../namespacefplot__core.html#aec8d0376074fdd025c81e810bc4ffc42',1,'fplot_core']]], - ['legend_5farrange_5fvertically_3',['legend_arrange_vertically',['../namespacefplot__core.html#aaf0ef9b39969cd446f0fbb9b53dc6615',1,'fplot_core']]], - ['legend_5fbottom_4',['legend_bottom',['../namespacefplot__core.html#afaa74509b5150505854f6f411109dfdb',1,'fplot_core']]], - ['legend_5fcenter_5',['legend_center',['../namespacefplot__core.html#a0ec74b411859c62e7bf0c1df535d39a5',1,'fplot_core']]], - ['legend_5fleft_6',['legend_left',['../namespacefplot__core.html#a63d667dd9f14cc6ec61c999dd5dda272',1,'fplot_core']]], - ['legend_5fright_7',['legend_right',['../namespacefplot__core.html#a99373c8db502d4106c9597f3303b6fa9',1,'fplot_core']]], - ['legend_5ftop_8',['legend_top',['../namespacefplot__core.html#aeddce321c79b9d2e69356b06ba656c88',1,'fplot_core']]], - ['line_5fdash_5fdot_5fdot_9',['line_dash_dot_dot',['../namespacefplot__core.html#ad6f904d0b43c5063d0f6b41d90abdbea',1,'fplot_core']]], - ['line_5fdash_5fdotted_10',['line_dash_dotted',['../namespacefplot__core.html#a18af0338b6f5f050d826afcf78918bc2',1,'fplot_core']]], - ['line_5fdashed_11',['line_dashed',['../namespacefplot__core.html#ae9305c0a47c3fb21e45154a0b9457353',1,'fplot_core']]], - ['line_5fdotted_12',['line_dotted',['../namespacefplot__core.html#ab81a32face043abe51b8740e56c816b2',1,'fplot_core']]], - ['line_5fsolid_13',['line_solid',['../namespacefplot__core.html#ac41508e74ce45d09f835bd676ea7d3d6',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_a.html b/docs/html/search/all_a.html deleted file mode 100644 index f2f3d3a..0000000 --- a/docs/html/search/all_a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js deleted file mode 100644 index 4dc55b9..0000000 --- a/docs/html/search/all_a.js +++ /dev/null @@ -1,117 +0,0 @@ -var searchData= -[ - ['m_5falpha_0',['m_alpha',['../structfplot__core_1_1plot__data__bar.html#ada9be13d82f4a51e832327bd586c8532',1,'fplot_core::plot_data_bar']]], - ['m_5fangle_1',['m_angle',['../structfplot__core_1_1plot__label.html#ad76a1f42a6fc7701e8eff8a10d456eb4',1,'fplot_core::plot_label']]], - ['m_5farrows_2',['m_arrows',['../structfplot__core_1_1plot.html#a4377389ba8b66d31852367a81eefee27',1,'fplot_core::plot']]], - ['m_5farrowsize_3',['m_arrowsize',['../structfplot__core_1_1vector__field__plot__data.html#adb43db20bfd010f251c8141acf894e23',1,'fplot_core::vector_field_plot_data']]], - ['m_5fautoscale_4',['m_autoscale',['../structfplot__core_1_1plot__axis.html#ae7035c7f62f8ec51ac458edf459655c2',1,'fplot_core::plot_axis::m_autoscale'],['../structfplot__core_1_1plot__polar.html#aae0b529ac9a469cd9ec3e04a125894e7',1,'fplot_core::plot_polar::m_autoscale']]], - ['m_5faxisequal_5',['m_axisequal',['../structfplot__core_1_1plot.html#a9a39b7ef7066651e8acd9cf4777941b0',1,'fplot_core::plot']]], - ['m_5faxislabels_6',['m_axislabels',['../structfplot__core_1_1plot__data__bar.html#ad6ae990580ab689aebe3e4114d650f5f',1,'fplot_core::plot_data_bar']]], - ['m_5faxiswidth_7',['m_axiswidth',['../structfplot__core_1_1plot__axis.html#ac9130dccdf4506356085dc77982f23eb',1,'fplot_core::plot_axis']]], - ['m_5fazimuth_8',['m_azimuth',['../structfplot__core_1_1plot__3d.html#a31e7daa0c6029d65bbe6dfc370e09f75',1,'fplot_core::plot_3d']]], - ['m_5fbardata_9',['m_bardata',['../structfplot__core_1_1plot__data__bar.html#ae3afc4495088f5ec9a7f0414470d97b0',1,'fplot_core::plot_data_bar']]], - ['m_5fbarwidth_10',['m_barwidth',['../structfplot__core_1_1plot__bar.html#a11075431e357389d21760413660a69de',1,'fplot_core::plot_bar']]], - ['m_5fbincount_11',['m_bincount',['../structfplot__core_1_1plot__data__histogram.html#a2ea6672bfb4cdfcf27f3a731f4c6cf4f',1,'fplot_core::plot_data_histogram']]], - ['m_5fbox_12',['m_box',['../structfplot__core_1_1legend.html#a195d911a2ffb3e4d8d8229b21745db72',1,'fplot_core::legend::m_box'],['../structfplot__core_1_1plot__data__error__bars.html#a0e904bfb3fe7d81b6776040af4461f8e',1,'fplot_core::plot_data_error_bars::m_box']]], - ['m_5fcolor_13',['m_color',['../structfplot__core_1_1plot__data__colored.html#aa24c061813c26938c9001c049f6aa40f',1,'fplot_core::plot_data_colored']]], - ['m_5fcolorindex_14',['m_colorindex',['../structfplot__core_1_1plot__data__colored.html#a65e7ab13ce7635e4367dca109b168f76',1,'fplot_core::plot_data_colored::m_colorindex'],['../structfplot__core_1_1plot.html#a423c6b5d5a4077e12672a789d0dd07f4',1,'fplot_core::plot::m_colorindex']]], - ['m_5fcolormap_15',['m_colormap',['../structfplot__core_1_1plot.html#a124d1fc324d2ac66811305862a1818bd',1,'fplot_core::plot']]], - ['m_5fcols_16',['m_cols',['../structfplot__core_1_1multiplot.html#ac43b0757815bd163133a4863314725f9',1,'fplot_core::multiplot']]], - ['m_5fcontour_17',['m_contour',['../structfplot__core_1_1surface__plot.html#a07676b9f7be385dbfb2fcc9c547e86e1',1,'fplot_core::surface_plot']]], - ['m_5fcsys_18',['m_csys',['../structfplot__core_1_1plot__3d.html#a13ce047bd142425ca9c96fd57d126231',1,'fplot_core::plot_3d']]], - ['m_5fdata_19',['m_data',['../structfplot__core_1_1plot.html#a955e9ed1d0626325807467f18928f7af',1,'fplot_core::plot::m_data'],['../structfplot__core_1_1plot__data__2d.html#a35abd4e024ea4e55c55dedcab8e5e3bf',1,'fplot_core::plot_data_2d::m_data'],['../structfplot__core_1_1plot__data__3d.html#a05d33e3351193d2e471083589d3ccb60',1,'fplot_core::plot_data_3d::m_data'],['../structfplot__core_1_1plot__data__error__bars.html#a3082871ea6a5b153a9f9a1dc36ef42f9',1,'fplot_core::plot_data_error_bars::m_data'],['../structfplot__core_1_1vector__field__plot__data.html#ab8f9fd516cb896988615cd6a378eb7e1',1,'fplot_core::vector_field_plot_data::m_data'],['../structfplot__core_1_1filled__plot__data.html#a0237475fa98251222f26abe67f43cf61',1,'fplot_core::filled_plot_data::m_data']]], - ['m_5fdatadependentcolors_20',['m_datadependentcolors',['../structfplot__core_1_1scatter__plot__data.html#a5177e61ef1056be4a7be88c85d129554',1,'fplot_core::scatter_plot_data']]], - ['m_5fdefaultticlabels_21',['m_defaultticlabels',['../structfplot__core_1_1plot__axis.html#af7ffb68c817546118481d46b513397b4',1,'fplot_core::plot_axis']]], - ['m_5fdrawborder_22',['m_drawborder',['../structfplot__core_1_1colormap.html#a3995a2a4d9661f991749686740db28ea',1,'fplot_core::colormap::m_drawborder'],['../structfplot__core_1_1plot.html#aa6041d60ec2b7939ff62dfe315c533bb',1,'fplot_core::plot::m_drawborder']]], - ['m_5fdrawline_23',['m_drawline',['../structfplot__core_1_1scatter__plot__data.html#a06df1b2ace5394328f5cc69c56aae2fe',1,'fplot_core::scatter_plot_data']]], - ['m_5fdrawmarkers_24',['m_drawmarkers',['../structfplot__core_1_1scatter__plot__data.html#ab22889699bb2ac1e437760ae3053e61f',1,'fplot_core::scatter_plot_data']]], - ['m_5felevation_25',['m_elevation',['../structfplot__core_1_1plot__3d.html#a20016816cd703ecc6902755c9506f954',1,'fplot_core::plot_3d']]], - ['m_5ffilled_26',['m_filled',['../structfplot__core_1_1plot__data__bar.html#ab390e7a9d6d8a0ca0ee2e42397e8da36',1,'fplot_core::plot_data_bar']]], - ['m_5ffilledcurve_27',['m_filledcurve',['../structfplot__core_1_1scatter__plot__data.html#ae502a1cb64b81989b2ae30e0498fb2a3',1,'fplot_core::scatter_plot_data']]], - ['m_5ffilledheads_28',['m_filledheads',['../structfplot__core_1_1vector__field__plot__data.html#abfd90138c5821640f049c79d587c6939',1,'fplot_core::vector_field_plot_data']]], - ['m_5ffname_29',['m_fname',['../structfplot__core_1_1png__terminal.html#acea6ab706e5e45c059be85af178adb77',1,'fplot_core::png_terminal::m_fname'],['../structfplot__core_1_1latex__terminal.html#a13910c1c0e215397ebc3125423f2ad3b',1,'fplot_core::latex_terminal::m_fname']]], - ['m_5ffontname_30',['m_fontname',['../structfplot__core_1_1terminal.html#a65c25946f36a8146b5d189cad922259e',1,'fplot_core::terminal']]], - ['m_5ffontsize_31',['m_fontsize',['../structfplot__core_1_1terminal.html#a92e1f3f32996f5ca36f87a4ca73e8406',1,'fplot_core::terminal']]], - ['m_5fhastitle_32',['m_hastitle',['../structfplot__core_1_1terminal.html#a313c30a86f2e84b24394fc88802ac073',1,'fplot_core::terminal::m_hastitle'],['../structfplot__core_1_1plot__axis.html#afaee6697e2ae5d4c15274ef6d1b1bebf',1,'fplot_core::plot_axis::m_hastitle'],['../structfplot__core_1_1plot.html#a3e292f8044d1c963bde7a45a5fd091f5',1,'fplot_core::plot::m_hastitle'],['../structfplot__core_1_1multiplot.html#a6d0402f03382c3bf29b50d4f06fad597',1,'fplot_core::multiplot::m_hastitle']]], - ['m_5fhorizontal_33',['m_horizontal',['../structfplot__core_1_1colormap.html#a85b7ea506d0dfd74b7a851e190e5e9e0',1,'fplot_core::colormap']]], - ['m_5fhorzposition_34',['m_horzposition',['../structfplot__core_1_1legend.html#a4751dde9054923257d25204e3924d11b',1,'fplot_core::legend']]], - ['m_5fid_35',['m_id',['../structfplot__core_1_1windows__terminal.html#af215f20aa2e4e2de14bed3f928a4f40f',1,'fplot_core::windows_terminal::m_id'],['../structfplot__core_1_1qt__terminal.html#ae7f815fdba921412c5befb8778584079',1,'fplot_core::qt_terminal::m_id'],['../structfplot__core_1_1wxt__terminal.html#a1d5b03366bc38e5ae7dab696b40d5ccb',1,'fplot_core::wxt_terminal::m_id'],['../structfplot__core_1_1png__terminal.html#ab960a72618e8aaa0fdda0290b11c33d2',1,'fplot_core::png_terminal::m_id'],['../structfplot__core_1_1latex__terminal.html#a3f10978cef31279b35dda56bdb5bca48',1,'fplot_core::latex_terminal::m_id'],['../structfplot__core_1_1x__axis.html#a1ba3cb85ef3bbd932fa6ada1442aa73f',1,'fplot_core::x_axis::m_id'],['../structfplot__core_1_1y__axis.html#a14850c501203a783fb7aa0e7ac44e140',1,'fplot_core::y_axis::m_id'],['../structfplot__core_1_1y2__axis.html#a3d7f8ca15f441f30f988496c798483cb',1,'fplot_core::y2_axis::m_id'],['../structfplot__core_1_1z__axis.html#addc6091f267c1ac64cb7faaae05f2b63',1,'fplot_core::z_axis::m_id']]], - ['m_5findices_36',['m_indices',['../structfplot__core_1_1delaunay__tri__2d.html#abe18770a04e61374f94b679151c47314',1,'fplot_core::delaunay_tri_2d::m_indices'],['../structfplot__core_1_1plot__data__tri__2d.html#ab6d39a0103f193a8aa8b795144b7c5a9',1,'fplot_core::plot_data_tri_2d::m_indices'],['../structfplot__core_1_1tri__surface__plot__data.html#ae2f7495459a379be5318da146fb893ae',1,'fplot_core::tri_surface_plot_data::m_indices']]], - ['m_5finside_37',['m_inside',['../structfplot__core_1_1legend.html#adc69a36d330318bc97b7fae160cb7960',1,'fplot_core::legend']]], - ['m_5flabel_38',['m_label',['../structfplot__core_1_1colormap.html#a410c0452382dd1965701fd92f3c89db1',1,'fplot_core::colormap']]], - ['m_5flabels_39',['m_labels',['../structfplot__core_1_1plot.html#a749f5e716823b818c276e26d301a43da',1,'fplot_core::plot']]], - ['m_5flayout_40',['m_layout',['../structfplot__core_1_1legend.html#aa0e3a0c975e39520a953b9e36a9336de',1,'fplot_core::legend']]], - ['m_5flegend_41',['m_legend',['../structfplot__core_1_1plot.html#a58b6d2d703429e69ced42f71bb24b587',1,'fplot_core::plot']]], - ['m_5flightintensity_42',['m_lightintensity',['../structfplot__core_1_1surface__plot.html#a899848b6087f3c257c23d22779ff86b8',1,'fplot_core::surface_plot']]], - ['m_5flimits_43',['m_limits',['../structfplot__core_1_1plot__axis.html#a103b7151710f1dca0a4f3a59ab4fc910',1,'fplot_core::plot_axis']]], - ['m_5flinestyle_44',['m_linestyle',['../structfplot__core_1_1scatter__plot__data.html#ad6526edc0a71a3f3a52c90ba6bf2a7b4',1,'fplot_core::scatter_plot_data::m_linestyle'],['../structfplot__core_1_1plot__data__tri__2d.html#afe3e3bbe14b41a52103b5d059936cf07',1,'fplot_core::plot_data_tri_2d::m_linestyle']]], - ['m_5flinewidth_45',['m_linewidth',['../structfplot__core_1_1scatter__plot__data.html#a5f0a764e897869a8b40e5572cf643eff',1,'fplot_core::scatter_plot_data::m_linewidth'],['../structfplot__core_1_1plot__data__tri__2d.html#a64ecd7d92fb4ac2fadcf5103e8e1287e',1,'fplot_core::plot_data_tri_2d::m_linewidth']]], - ['m_5flogscale_46',['m_logscale',['../structfplot__core_1_1plot__axis.html#ae0308633db7a5bc2aa9dfc5aebc0f871',1,'fplot_core::plot_axis']]], - ['m_5fmarkerfrequency_47',['m_markerfrequency',['../structfplot__core_1_1scatter__plot__data.html#afd73c87e0c8333d8e2af840d73aa5467',1,'fplot_core::scatter_plot_data']]], - ['m_5fmarkersize_48',['m_markersize',['../structfplot__core_1_1scatter__plot__data.html#ac32e05719b497dca629b92ccaa2bc40a',1,'fplot_core::scatter_plot_data']]], - ['m_5fmarkertype_49',['m_markertype',['../structfplot__core_1_1scatter__plot__data.html#a5cf90a01f00ed353e00df87c099999ce',1,'fplot_core::scatter_plot_data']]], - ['m_5fmaxrad_50',['m_maxrad',['../structfplot__core_1_1plot__polar.html#a0df675cfa213da3a32e6fa441cec713c',1,'fplot_core::plot_polar']]], - ['m_5fminrad_51',['m_minrad',['../structfplot__core_1_1plot__polar.html#a0e25b033c0faf43fdb1fbb1cd3518f44',1,'fplot_core::plot_polar']]], - ['m_5fname_52',['m_name',['../structfplot__core_1_1plot__data.html#a216bccf5c14d8633926484770e49112a',1,'fplot_core::plot_data']]], - ['m_5fnumberfmt_53',['m_numberfmt',['../structfplot__core_1_1plot__data__histogram.html#aaf1eb78a557ce9d002aaab7ff552a053',1,'fplot_core::plot_data_histogram']]], - ['m_5fopaque_54',['m_opaque',['../structfplot__core_1_1legend.html#a48c213368dcf6ee0cc202c450fbffc4b',1,'fplot_core::legend']]], - ['m_5fplots_55',['m_plots',['../structfplot__core_1_1multiplot.html#af9b41a50d6394721ff548622aa61725d',1,'fplot_core::multiplot']]], - ['m_5fposition_56',['m_position',['../structfplot__core_1_1plot__label.html#a5387d3494c65621d93b54c232e593e49',1,'fplot_core::plot_label']]], - ['m_5frange_57',['m_range',['../structfplot__core_1_1plot__data__error__bars.html#afa0a49c315b65a212f8b3c5dc3ee448d',1,'fplot_core::plot_data_error_bars']]], - ['m_5frows_58',['m_rows',['../structfplot__core_1_1multiplot.html#a65d63e8ce7aa0d1976f8bca150bb33d3',1,'fplot_core::multiplot']]], - ['m_5fset2square_59',['m_set2square',['../structfplot__core_1_1plot__2d.html#a9cd3bd4fc18c1c07e7cb76ca1cf60d7b',1,'fplot_core::plot_2d']]], - ['m_5fsetmap_60',['m_setmap',['../structfplot__core_1_1plot__3d.html#a626a696690a0f9f9851b1764efb1a048',1,'fplot_core::plot_3d']]], - ['m_5fshow_61',['m_show',['../structfplot__core_1_1legend.html#ad57a162b33234017fcacbf6fb5b8c261',1,'fplot_core::legend']]], - ['m_5fshowcolorbar_62',['m_showcolorbar',['../structfplot__core_1_1plot.html#a2835b94785e566562783f2b0e1162c58',1,'fplot_core::plot']]], - ['m_5fshowgrid_63',['m_showgrid',['../structfplot__core_1_1plot.html#a1bb6dd426e8a18a2db83063e68d8270b',1,'fplot_core::plot']]], - ['m_5fshowhidden_64',['m_showhidden',['../structfplot__core_1_1surface__plot.html#ac881849ed85ad0b25e59c00204aa0960',1,'fplot_core::surface_plot']]], - ['m_5fshowtics_65',['m_showtics',['../structfplot__core_1_1colormap.html#ad6a6afb42b139b250b55772c57c4e0bc',1,'fplot_core::colormap']]], - ['m_5fsimplifydata_66',['m_simplifydata',['../structfplot__core_1_1scatter__plot__data.html#a98d9bfb493e1dae5462ac95979fbcbb4',1,'fplot_core::scatter_plot_data']]], - ['m_5fsimplifyfactor_67',['m_simplifyfactor',['../structfplot__core_1_1scatter__plot__data.html#a307b01a8a110ab7a676ac51c05d3074b',1,'fplot_core::scatter_plot_data']]], - ['m_5fsmooth_68',['m_smooth',['../structfplot__core_1_1surface__plot.html#ac54f0f8105db3eb118eb8a05b7ca7857',1,'fplot_core::surface_plot']]], - ['m_5fspecular_69',['m_specular',['../structfplot__core_1_1surface__plot.html#a33443c0ebe2f233cdeb90a2eed6267ad',1,'fplot_core::surface_plot']]], - ['m_5ftermid_70',['m_termid',['../structfplot__core_1_1terminal.html#a3a008d4ce638c31b5fca9866912e7637',1,'fplot_core::terminal']]], - ['m_5fterminal_71',['m_terminal',['../structfplot__core_1_1plot.html#a132bcac346e1cc2fd85c0685ccf7718b',1,'fplot_core::plot::m_terminal'],['../structfplot__core_1_1multiplot.html#a9bae2b4eddaa75ff61ac0abe77175eb1',1,'fplot_core::multiplot::m_terminal']]], - ['m_5ftext_72',['m_text',['../structfplot__core_1_1plot__label.html#a468e4487a8dc9645e105f93f95035f75',1,'fplot_core::plot_label']]], - ['m_5fthetadirection_73',['m_thetadirection',['../structfplot__core_1_1plot__polar.html#a1a0d0c47ed00a432cf4d1911c282a624',1,'fplot_core::plot_polar']]], - ['m_5fthetastart_74',['m_thetastart',['../structfplot__core_1_1plot__polar.html#a1ed3b2f0f0abc341f8da7215764567b9',1,'fplot_core::plot_polar']]], - ['m_5fticlabelfmt_75',['m_ticlabelfmt',['../structfplot__core_1_1plot__axis.html#a3c72c7ce3d24ebdd12ee8d29c85e507f',1,'fplot_core::plot_axis']]], - ['m_5fticsin_76',['m_ticsin',['../structfplot__core_1_1plot.html#a344af6120545e8a12af51866e44709c1',1,'fplot_core::plot']]], - ['m_5ftitle_77',['m_title',['../structfplot__core_1_1terminal.html#af1bc227957d1404beefc0d106cfa72be',1,'fplot_core::terminal::m_title'],['../structfplot__core_1_1plot__axis.html#a42ca46716cc307a467698534f2ce77c7',1,'fplot_core::plot_axis::m_title'],['../structfplot__core_1_1plot.html#a212e144bbc88f69b516a0c268b09c501',1,'fplot_core::plot::m_title'],['../structfplot__core_1_1multiplot.html#ae7b5636092a710de62e0d2ba4eef9752',1,'fplot_core::multiplot::m_title']]], - ['m_5ftransparency_78',['m_transparency',['../structfplot__core_1_1surface__plot.html#acf55e49e1212536b0bca656c8d5f302d',1,'fplot_core::surface_plot']]], - ['m_5fuseautocolor_79',['m_useautocolor',['../structfplot__core_1_1plot__data__colored.html#af7888aadd5a7fa64a6af7875e35eb4b0',1,'fplot_core::plot_data_colored']]], - ['m_5fuseaxislabels_80',['m_useaxislabels',['../structfplot__core_1_1plot__data__bar.html#a5651040ed1984f555b236f97e513c52d',1,'fplot_core::plot_data_bar']]], - ['m_5fuselighting_81',['m_uselighting',['../structfplot__core_1_1surface__plot.html#ad25c21f74ffc0f3b18bce8207621ba70',1,'fplot_core::surface_plot']]], - ['m_5fusevariablesizepoints_82',['m_usevariablesizepoints',['../structfplot__core_1_1scatter__plot__data.html#a720cc3f633f78c871e76ea19b34fe6da',1,'fplot_core::scatter_plot_data']]], - ['m_5fusey2_83',['m_usey2',['../structfplot__core_1_1plot__data__2d.html#a94c27807c2a4c6403514fe5a387624be',1,'fplot_core::plot_data_2d::m_usey2'],['../structfplot__core_1_1plot__2d.html#a5fe52108ffac0ca723f0061111082338',1,'fplot_core::plot_2d::m_usey2'],['../structfplot__core_1_1plot__data__bar.html#a51124b26f051de4150eee0b120942da5',1,'fplot_core::plot_data_bar::m_usey2'],['../structfplot__core_1_1filled__plot__data.html#ae7a3febf099878ab798ce2abf7eba1d9',1,'fplot_core::filled_plot_data::m_usey2']]], - ['m_5fvertposition_84',['m_vertposition',['../structfplot__core_1_1legend.html#add3185b4f64fb74583931a94e4dfb23a',1,'fplot_core::legend']]], - ['m_5fvisible_85',['m_visible',['../structfplot__core_1_1plot__label.html#a83e92e7f824f33f14d4a8f2552f3d28e',1,'fplot_core::plot_label']]], - ['m_5fwindowheight_86',['m_windowheight',['../structfplot__core_1_1terminal.html#a019b0dcd0e49554333c3e71226a30559',1,'fplot_core::terminal']]], - ['m_5fwindowwidth_87',['m_windowwidth',['../structfplot__core_1_1terminal.html#ad4fc168e1f6bac6b589e41b5e4d5d676',1,'fplot_core::terminal']]], - ['m_5fwireframe_88',['m_wireframe',['../structfplot__core_1_1surface__plot__data.html#aa7856569c70fa73c451702de74e3fab6',1,'fplot_core::surface_plot_data::m_wireframe'],['../structfplot__core_1_1tri__surface__plot__data.html#ab488110fbd8508f9c34b62430577dfaf',1,'fplot_core::tri_surface_plot_data::m_wireframe']]], - ['m_5fx_89',['m_x',['../structfplot__core_1_1surface__plot__data.html#aab0f3a84a1a1f29f56da00e954b384e6',1,'fplot_core::surface_plot_data::m_x'],['../structfplot__core_1_1delaunay__tri__2d.html#aaf1c5b0b6f8d17889152d7dc068da75e',1,'fplot_core::delaunay_tri_2d::m_x'],['../structfplot__core_1_1plot__data__tri__2d.html#a7759843e01d8bd9c38aaab6ebbee3968',1,'fplot_core::plot_data_tri_2d::m_x'],['../structfplot__core_1_1tri__surface__plot__data.html#a0d748864ab5f589fdcac1bfa61ac06e1',1,'fplot_core::tri_surface_plot_data::m_x']]], - ['m_5fxaxis_90',['m_xaxis',['../structfplot__core_1_1plot__2d.html#a5c4e65a6726f52d0f2f037615b9250bd',1,'fplot_core::plot_2d::m_xaxis'],['../structfplot__core_1_1plot__3d.html#afd5e9b00e8e1146c9fb84e0d0117c2e3',1,'fplot_core::plot_3d::m_xaxis']]], - ['m_5fxbars_91',['m_xbars',['../structfplot__core_1_1plot__data__error__bars.html#ace03eab48e42aab5b8570d612adc4a75',1,'fplot_core::plot_data_error_bars']]], - ['m_5fy_92',['m_y',['../structfplot__core_1_1surface__plot__data.html#a82294e25bd1321370f5f55e2051bd000',1,'fplot_core::surface_plot_data::m_y'],['../structfplot__core_1_1delaunay__tri__2d.html#a854c12c20c36fc7e9a9dee2e1702bae7',1,'fplot_core::delaunay_tri_2d::m_y'],['../structfplot__core_1_1plot__data__tri__2d.html#a3ee0322ab193a26b6d2e4bdf46894ce3',1,'fplot_core::plot_data_tri_2d::m_y'],['../structfplot__core_1_1tri__surface__plot__data.html#a23462d63b8ffe52541d975e443044f4a',1,'fplot_core::tri_surface_plot_data::m_y']]], - ['m_5fy2axis_93',['m_y2axis',['../structfplot__core_1_1plot__2d.html#a3079dfde8daa66c4a79e3d3454b40e2c',1,'fplot_core::plot_2d']]], - ['m_5fyaxis_94',['m_yaxis',['../structfplot__core_1_1plot__2d.html#ad91b551d76ef69f571f87511de97a3e8',1,'fplot_core::plot_2d::m_yaxis'],['../structfplot__core_1_1plot__3d.html#ade01966b7cbc1f09297e329dafa69e58',1,'fplot_core::plot_3d::m_yaxis']]], - ['m_5fybars_95',['m_ybars',['../structfplot__core_1_1plot__data__error__bars.html#a372aea519cb462cc9e0e31cb5ef1aac9',1,'fplot_core::plot_data_error_bars']]], - ['m_5fz_96',['m_z',['../structfplot__core_1_1surface__plot__data.html#ab528d77583bf8dcde5ab0182f807e6d6',1,'fplot_core::surface_plot_data::m_z'],['../structfplot__core_1_1delaunay__tri__surface.html#a0961e14a2d4ed0d9a7d75e2e2f5619e3',1,'fplot_core::delaunay_tri_surface::m_z'],['../structfplot__core_1_1tri__surface__plot__data.html#a8201960050d3276b59d9bfad7d14ca10',1,'fplot_core::tri_surface_plot_data::m_z']]], - ['m_5fzaxis_97',['m_zaxis',['../structfplot__core_1_1plot__3d.html#acc0b113abeb246892dde2b8782eac0ca',1,'fplot_core::plot_3d']]], - ['m_5fzeroaxis_98',['m_zeroaxis',['../structfplot__core_1_1plot__axis.html#ae1841279b24ce9872404992f5f025265',1,'fplot_core::plot_axis']]], - ['m_5fzintersect_99',['m_zintersect',['../structfplot__core_1_1plot__3d.html#acfcd025c88ae8f15a5ae2ff86021f03c',1,'fplot_core::plot_3d']]], - ['marker_5fasterisk_100',['marker_asterisk',['../namespacefplot__core.html#ad201ee04e5b4c9dacac36626e9db5d17',1,'fplot_core']]], - ['marker_5fempty_5fcircle_101',['marker_empty_circle',['../namespacefplot__core.html#a03ed7e9b32fd8b4242e3c00ac9f1dd90',1,'fplot_core']]], - ['marker_5fempty_5fnabla_102',['marker_empty_nabla',['../namespacefplot__core.html#a1a127e0b722b34196914625744f531fb',1,'fplot_core']]], - ['marker_5fempty_5frhombus_103',['marker_empty_rhombus',['../namespacefplot__core.html#a130b91ed2576d346f9cfa882fce3a370',1,'fplot_core']]], - ['marker_5fempty_5fsquare_104',['marker_empty_square',['../namespacefplot__core.html#a1847a8539a108f2cc75250a0f6d18fc5',1,'fplot_core']]], - ['marker_5fempty_5ftriangle_105',['marker_empty_triangle',['../namespacefplot__core.html#aa8ce197691d6e257ca34c826287661ea',1,'fplot_core']]], - ['marker_5ffilled_5fcircle_106',['marker_filled_circle',['../namespacefplot__core.html#a958ef8c01819437c1bf72976fdf0408c',1,'fplot_core']]], - ['marker_5ffilled_5fnabla_107',['marker_filled_nabla',['../namespacefplot__core.html#a3206bef63b75d34ff4ddd604d347272a',1,'fplot_core']]], - ['marker_5ffilled_5frhombus_108',['marker_filled_rhombus',['../namespacefplot__core.html#a73e3a13a2500d31fe24f6a4e4e6abbe6',1,'fplot_core']]], - ['marker_5ffilled_5fsquare_109',['marker_filled_square',['../namespacefplot__core.html#a925e2ca369cd0c7794c38d6f2c0ae3fc',1,'fplot_core']]], - ['marker_5ffilled_5ftriangle_110',['marker_filled_triangle',['../namespacefplot__core.html#aee19422210a01b45b0a946072071aa89',1,'fplot_core']]], - ['marker_5fplus_111',['marker_plus',['../namespacefplot__core.html#a1c6bffe3a206bcc5400d7e339f482779',1,'fplot_core']]], - ['marker_5fx_112',['marker_x',['../namespacefplot__core.html#aa8584a251e760fd4545d03c0a4506fa6',1,'fplot_core']]], - ['multiplot_113',['multiplot',['../structfplot__core_1_1multiplot.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_b.html b/docs/html/search/all_b.html deleted file mode 100644 index 14f3403..0000000 --- a/docs/html/search/all_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js deleted file mode 100644 index 048d9fd..0000000 --- a/docs/html/search/all_b.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['operator_28_2f_3d_29_0',['operator(/=)',['../interfacefplot__core_1_1operator_07_2_0a_08.html',1,'fplot_core']]], - ['operator_28_3d_3d_29_1',['operator(==)',['../interfacefplot__core_1_1operator_07_0a_0a_08.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_c.html b/docs/html/search/all_c.html deleted file mode 100644 index da60ab8..0000000 --- a/docs/html/search/all_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js deleted file mode 100644 index e8d92f7..0000000 --- a/docs/html/search/all_c.js +++ /dev/null @@ -1,44 +0,0 @@ -var searchData= -[ - ['p2d_5fclean_5fup_0',['p2d_clean_up',['../structfplot__core_1_1plot__2d.html#aeb55d7671f449779041c822189e86048',1,'fplot_core::plot_2d']]], - ['p3d_5fclean_5fup_1',['p3d_clean_up',['../structfplot__core_1_1plot__3d.html#ab0e3abb763cf80ecc9af2d75e5c1035d',1,'fplot_core::plot_3d']]], - ['pa_5fget_5fstring_5fresult_2',['pa_get_string_result',['../interfacefplot__core_1_1pa__get__string__result.html',1,'fplot_core']]], - ['parula_5fcolormap_3',['parula_colormap',['../structfplot__core_1_1parula__colormap.html',1,'fplot_core']]], - ['pd_5fget_5fstring_5fresult_4',['pd_get_string_result',['../interfacefplot__core_1_1pd__get__string__result.html',1,'fplot_core']]], - ['plot_5',['plot',['../structfplot__core_1_1plot.html',1,'fplot_core']]], - ['plot_5f2d_6',['plot_2d',['../structfplot__core_1_1plot__2d.html',1,'fplot_core']]], - ['plot_5f3d_7',['plot_3d',['../structfplot__core_1_1plot__3d.html',1,'fplot_core']]], - ['plot_5farray_5fsize_5fmismatch_5ferror_8',['plot_array_size_mismatch_error',['../namespacefplot__core.html#a2747b79ccd539b6a6b0edf9bee970ece',1,'fplot_core']]], - ['plot_5farrow_9',['plot_arrow',['../structfplot__core_1_1plot__arrow.html',1,'fplot_core']]], - ['plot_5faxis_10',['plot_axis',['../structfplot__core_1_1plot__axis.html',1,'fplot_core']]], - ['plot_5fbar_11',['plot_bar',['../structfplot__core_1_1plot__bar.html',1,'fplot_core']]], - ['plot_5fdata_12',['plot_data',['../structfplot__core_1_1plot__data.html',1,'fplot_core']]], - ['plot_5fdata_5f2d_13',['plot_data_2d',['../structfplot__core_1_1plot__data__2d.html',1,'fplot_core']]], - ['plot_5fdata_5f3d_14',['plot_data_3d',['../structfplot__core_1_1plot__data__3d.html',1,'fplot_core']]], - ['plot_5fdata_5fbar_15',['plot_data_bar',['../structfplot__core_1_1plot__data__bar.html',1,'fplot_core']]], - ['plot_5fdata_5fcolored_16',['plot_data_colored',['../structfplot__core_1_1plot__data__colored.html',1,'fplot_core']]], - ['plot_5fdata_5ferror_5fbars_17',['plot_data_error_bars',['../structfplot__core_1_1plot__data__error__bars.html',1,'fplot_core']]], - ['plot_5fdata_5fhistogram_18',['plot_data_histogram',['../structfplot__core_1_1plot__data__histogram.html',1,'fplot_core']]], - ['plot_5fdata_5ftri_5f2d_19',['plot_data_tri_2d',['../structfplot__core_1_1plot__data__tri__2d.html',1,'fplot_core']]], - ['plot_5fgnuplot_5ffile_5ferror_20',['plot_gnuplot_file_error',['../namespacefplot__core.html#a964aa864e3984d866c12f75323bb6dc1',1,'fplot_core']]], - ['plot_5finvalid_5finput_5ferror_21',['plot_invalid_input_error',['../namespacefplot__core.html#ac53894e99cce3be3c2f7c8ef7e579e98',1,'fplot_core']]], - ['plot_5finvalid_5foperation_5ferror_22',['plot_invalid_operation_error',['../namespacefplot__core.html#adcbe99e541fc04356d322d562e5c67f0',1,'fplot_core']]], - ['plot_5flabel_23',['plot_label',['../structfplot__core_1_1plot__label.html',1,'fplot_core']]], - ['plot_5fobject_24',['plot_object',['../structfplot__core_1_1plot__object.html',1,'fplot_core']]], - ['plot_5fout_5fof_5fmemory_5ferror_25',['plot_out_of_memory_error',['../namespacefplot__core.html#a002195f1f56bc9edc1ec7dd51c3090d8',1,'fplot_core']]], - ['plot_5fpolar_26',['plot_polar',['../structfplot__core_1_1plot__polar.html',1,'fplot_core']]], - ['plotdata_5fmax_5fname_5flength_27',['plotdata_max_name_length',['../namespacefplot__core.html#acfa29ac62a50b61ea009b20a898d45e5',1,'fplot_core']]], - ['png_5fterminal_28',['png_terminal',['../structfplot__core_1_1png__terminal.html',1,'fplot_core']]], - ['polar_5ftheta_5fbottom_29',['polar_theta_bottom',['../namespacefplot__core.html#af3ed8d21802d919dd891a4ea8af0ec91',1,'fplot_core']]], - ['polar_5ftheta_5fccw_30',['polar_theta_ccw',['../namespacefplot__core.html#ae803ea1ff95802b0295be3661e11ce98',1,'fplot_core']]], - ['polar_5ftheta_5fcw_31',['polar_theta_cw',['../namespacefplot__core.html#aff8546dbedb11e1fdf11e0ccdc8d6df0',1,'fplot_core']]], - ['polar_5ftheta_5fleft_32',['polar_theta_left',['../namespacefplot__core.html#a783a98c4f406054602d757133e496c19',1,'fplot_core']]], - ['polar_5ftheta_5fright_33',['polar_theta_right',['../namespacefplot__core.html#ab582c30f182b32ad10fb85a2cdee5a2b',1,'fplot_core']]], - ['polar_5ftheta_5ftop_34',['polar_theta_top',['../namespacefplot__core.html#a4c5d751fa6cfbf02b759a3858d0858f4',1,'fplot_core']]], - ['pop_35',['pop',['../structfplot__core_1_1plot.html#ad33c34e40f57938ecd001e808bf23faa',1,'fplot_core::plot']]], - ['pop_5farrow_36',['pop_arrow',['../structfplot__core_1_1plot.html#acbc277a0af6af597663ea0121ecfbdfa',1,'fplot_core::plot']]], - ['pop_5flabel_37',['pop_label',['../structfplot__core_1_1plot.html#a3b8d7885c017cdea67018693824d2a28',1,'fplot_core::plot']]], - ['push_38',['push',['../structfplot__core_1_1plot.html#a4d990dba35771bb91c4b369e749359b1',1,'fplot_core::plot']]], - ['push_5farrow_39',['push_arrow',['../structfplot__core_1_1plot.html#ac9e18069b5f30cdf389bd2d875e9160a',1,'fplot_core::plot']]], - ['push_5flabel_40',['push_label',['../structfplot__core_1_1plot.html#a52aebc916dcd0daee352bd121f44571b',1,'fplot_core::plot']]] -]; diff --git a/docs/html/search/all_d.html b/docs/html/search/all_d.html deleted file mode 100644 index bc376fe..0000000 --- a/docs/html/search/all_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js deleted file mode 100644 index d2e2271..0000000 --- a/docs/html/search/all_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['qt_5fterminal_0',['qt_terminal',['../structfplot__core_1_1qt__terminal.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/all_e.html b/docs/html/search/all_e.html deleted file mode 100644 index 2e3c74d..0000000 --- a/docs/html/search/all_e.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js deleted file mode 100644 index d19cce1..0000000 --- a/docs/html/search/all_e.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['rainbow_5fcolormap_0',['rainbow_colormap',['../structfplot__core_1_1rainbow__colormap.html',1,'fplot_core']]], - ['red_1',['red',['../structfplot__core_1_1color.html#a5533de88a3f68d6fafd38c0624bb76c8',1,'fplot_core::color']]] -]; diff --git a/docs/html/search/all_f.html b/docs/html/search/all_f.html deleted file mode 100644 index 246f8ab..0000000 --- a/docs/html/search/all_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js deleted file mode 100644 index 0122205..0000000 --- a/docs/html/search/all_f.js +++ /dev/null @@ -1,95 +0,0 @@ -var searchData= -[ - ['save_5ffile_0',['save_file',['../structfplot__core_1_1plot.html#a7e9f2ba3cabac241fc87b08cab6a7964',1,'fplot_core::plot::save_file()'],['../structfplot__core_1_1multiplot.html#a4ffe414eeb41cfb1c6a4090efe0308b6',1,'fplot_core::multiplot::save_file()']]], - ['scatter_5fplot_5fdata_1',['scatter_plot_data',['../structfplot__core_1_1scatter__plot__data.html',1,'fplot_core']]], - ['set_2',['set',['../structfplot__core_1_1plot.html#a60f699ff08a69ffd0639e02cef732fbc',1,'fplot_core::plot::set()'],['../structfplot__core_1_1multiplot.html#a24b7e0d33ad3c66d3031bc0c2c307677',1,'fplot_core::multiplot::set()']]], - ['set_5fallow_5fsmoothing_3',['set_allow_smoothing',['../structfplot__core_1_1surface__plot.html#a9e04fc534b0506d32401d21a695efbae',1,'fplot_core::surface_plot']]], - ['set_5fangle_4',['set_angle',['../structfplot__core_1_1plot__label.html#aa53c460db5af43102ac096d2e9af5fdb',1,'fplot_core::plot_label']]], - ['set_5farrow_5',['set_arrow',['../structfplot__core_1_1plot.html#a97b39f1d655613d423431a225b9ac525',1,'fplot_core::plot']]], - ['set_5farrow_5fsize_6',['set_arrow_size',['../structfplot__core_1_1vector__field__plot__data.html#ac744dea773420c6600c3306311ef2d93',1,'fplot_core::vector_field_plot_data']]], - ['set_5fautoscale_7',['set_autoscale',['../structfplot__core_1_1plot__axis.html#a31ba8659f53c12145bf26884f929a3b6',1,'fplot_core::plot_axis::set_autoscale()'],['../structfplot__core_1_1plot__polar.html#aad0eaf7bd5100040899825fe1281ab86',1,'fplot_core::plot_polar::set_autoscale()']]], - ['set_5faxis_5fequal_8',['set_axis_equal',['../structfplot__core_1_1plot.html#a3ab0098ecdd19537b4b4810e584d6178',1,'fplot_core::plot']]], - ['set_5fazimuth_9',['set_azimuth',['../structfplot__core_1_1plot__3d.html#a925a7a5484ce7fde36ce80e2199f2c2b',1,'fplot_core::plot_3d']]], - ['set_5fcolor_10',['set_color',['../structfplot__core_1_1plot__arrow.html#a62bd3548d5aad7e4a4bc1cc58c3a6935',1,'fplot_core::plot_arrow']]], - ['set_5fcolormap_11',['set_colormap',['../structfplot__core_1_1custom__colormap.html#ae4c07ac867f7fd74ca4219a7e859d0e8',1,'fplot_core::custom_colormap::set_colormap()'],['../structfplot__core_1_1plot.html#a6a2220252ff39e46984cdd41f2f2d408',1,'fplot_core::plot::set_colormap()']]], - ['set_5fcoordinate_5fsystem_12',['set_coordinate_system',['../structfplot__core_1_1plot__3d.html#a66d6237275dbe689d7411ddced7e22c9',1,'fplot_core::plot_3d']]], - ['set_5fdraw_5fagainst_5fy2_13',['set_draw_against_y2',['../structfplot__core_1_1plot__data__2d.html#a77e6f48e4bac69edcf0275d6ad13e550',1,'fplot_core::plot_data_2d::set_draw_against_y2()'],['../structfplot__core_1_1filled__plot__data.html#aecc19b2be5696b2210ea1c7b7bd58a58',1,'fplot_core::filled_plot_data::set_draw_against_y2()']]], - ['set_5fdraw_5fborder_14',['set_draw_border',['../structfplot__core_1_1legend.html#a081df8de03ccc8888b6169608d9b5f17',1,'fplot_core::legend::set_draw_border()'],['../structfplot__core_1_1colormap.html#acb679819160a82793304bcfdde53a623',1,'fplot_core::colormap::set_draw_border()'],['../structfplot__core_1_1plot.html#ae400616706a0cb419a5251c12174d822',1,'fplot_core::plot::set_draw_border()']]], - ['set_5fdraw_5finside_5faxes_15',['set_draw_inside_axes',['../structfplot__core_1_1legend.html#a89b548365548f1e7f0d8756b4145ad93',1,'fplot_core::legend']]], - ['set_5fdraw_5fline_16',['set_draw_line',['../structfplot__core_1_1scatter__plot__data.html#a4219776e9fb097422c3ec43122f031fb',1,'fplot_core::scatter_plot_data']]], - ['set_5fdraw_5fmarkers_17',['set_draw_markers',['../structfplot__core_1_1scatter__plot__data.html#a2d478600f6026a7515f89cb156896654',1,'fplot_core::scatter_plot_data']]], - ['set_5felevation_18',['set_elevation',['../structfplot__core_1_1plot__3d.html#a68d05b37ad04bb9627471b1c20a30c38',1,'fplot_core::plot_3d']]], - ['set_5ffilename_19',['set_filename',['../structfplot__core_1_1png__terminal.html#a11541efbe8bb3036b670ab5bfd234cb8',1,'fplot_core::png_terminal::set_filename()'],['../structfplot__core_1_1latex__terminal.html#a599576bce43bdcbead02d4958d6646ea',1,'fplot_core::latex_terminal::set_filename()']]], - ['set_5ffill_5farrow_20',['set_fill_arrow',['../structfplot__core_1_1vector__field__plot__data.html#aa1c31e27261ed54d1728c6d17a2c0db0',1,'fplot_core::vector_field_plot_data']]], - ['set_5ffill_5fcurve_21',['set_fill_curve',['../structfplot__core_1_1scatter__plot__data.html#a6305c7c347d54e042186e197e63d4572',1,'fplot_core::scatter_plot_data']]], - ['set_5ffont_5fname_22',['set_font_name',['../structfplot__core_1_1terminal.html#acd92729e62790df27b3c1003ef821593',1,'fplot_core::terminal::set_font_name()'],['../structfplot__core_1_1plot.html#a3687c06edaac5f2e47c3a04266effd1f',1,'fplot_core::plot::set_font_name()'],['../structfplot__core_1_1multiplot.html#a1ea580b7916e02cbb84a3ee6325802be',1,'fplot_core::multiplot::set_font_name()']]], - ['set_5ffont_5fsize_23',['set_font_size',['../structfplot__core_1_1terminal.html#a27f4875d74e90fef7f4555de55543abd',1,'fplot_core::terminal::set_font_size()'],['../structfplot__core_1_1plot.html#a755597835c9d424143b8942f4d699a34',1,'fplot_core::plot::set_font_size()'],['../structfplot__core_1_1multiplot.html#ad751ab2a57ec9af423468603a3fc5a75',1,'fplot_core::multiplot::set_font_size()']]], - ['set_5fhead_5fangle_24',['set_head_angle',['../structfplot__core_1_1plot__arrow.html#aa976a527ccaf267e9d5b7c06342a3b56',1,'fplot_core::plot_arrow']]], - ['set_5fhead_5fback_5fangle_25',['set_head_back_angle',['../structfplot__core_1_1plot__arrow.html#aaff2d428d8feeda35da15f1c92bf624a',1,'fplot_core::plot_arrow']]], - ['set_5fhead_5ffill_26',['set_head_fill',['../structfplot__core_1_1plot__arrow.html#add82908c1efdf34d701762bf29763a24',1,'fplot_core::plot_arrow']]], - ['set_5fhead_5flocation_27',['set_head_location',['../structfplot__core_1_1plot__arrow.html#a49ab5d25adbf97b8b6aeb9172c68947a',1,'fplot_core::plot_arrow::set_head_locationpar_set_head_1'],['../structfplot__core_1_1plot__arrow.html#aaa8b4e0f0e2e7138a4fb849989bd7753',1,'fplot_core::plot_arrow::set_head_locationpar_set_head_2'],['../structfplot__core_1_1plot__arrow.html#a2a90f330e8f387beff52a66cd48b1ef3',1,'fplot_core::plot_arrow::set_head_locationpar_set_head_3']]], - ['set_5fhead_5fsize_28',['set_head_size',['../structfplot__core_1_1plot__arrow.html#ab2aa4033c8337c3307ea4036a6e10d16',1,'fplot_core::plot_arrow']]], - ['set_5fhead_5ftype_29',['set_head_type',['../structfplot__core_1_1plot__arrow.html#adfe5552a5c01b59b9bc1025d8e583a57',1,'fplot_core::plot_arrow']]], - ['set_5fhorizontal_30',['set_horizontal',['../structfplot__core_1_1colormap.html#a8530b43520ee1929a510dc8aec57e324',1,'fplot_core::colormap']]], - ['set_5fhorizontal_5fposition_31',['set_horizontal_position',['../structfplot__core_1_1legend.html#a39f311ee80c51cbc637cc946c7a44397',1,'fplot_core::legend']]], - ['set_5fis_5flog_5fscaled_32',['set_is_log_scaled',['../structfplot__core_1_1plot__axis.html#a7ea2e86ed7e730aacad368f67c247a79',1,'fplot_core::plot_axis']]], - ['set_5fis_5fopaque_33',['set_is_opaque',['../structfplot__core_1_1legend.html#af006f78db694a74d57a9861f038b3971',1,'fplot_core::legend']]], - ['set_5fis_5fvisible_34',['set_is_visible',['../structfplot__core_1_1plot__label.html#acc5b95b081e578d0d05e9ee768579ba9',1,'fplot_core::plot_label::set_is_visible()'],['../structfplot__core_1_1plot__arrow.html#a15fa92a1a0ba898995bfcc2e5b5ee790',1,'fplot_core::plot_arrow::set_is_visible()'],['../structfplot__core_1_1legend.html#aa9c45f3a136694b9e8c0c3c83d9a7cd8',1,'fplot_core::legend::set_is_visible()']]], - ['set_5flabel_35',['set_label',['../structfplot__core_1_1colormap.html#ac595c1361a36891870faf9d676a66d78',1,'fplot_core::colormap::set_label()'],['../structfplot__core_1_1plot.html#a1bae57bcb9098707fba5267fa22a433d',1,'fplot_core::plot::set_label()']]], - ['set_5flayout_36',['set_layout',['../structfplot__core_1_1legend.html#a24b91299a6a9382c91a15b0093e1cdaa',1,'fplot_core::legend']]], - ['set_5flight_5fintensity_37',['set_light_intensity',['../structfplot__core_1_1surface__plot.html#aadd6772415d91480a12ee88a49216cc7',1,'fplot_core::surface_plot']]], - ['set_5flimits_38',['set_limits',['../structfplot__core_1_1plot__axis.html#ac4636b37253874b8b072c7916cac4686',1,'fplot_core::plot_axis']]], - ['set_5fline_5fcolor_39',['set_line_color',['../structfplot__core_1_1plot__data__colored.html#ac266099a66e8f024d142e14a8c5077c2',1,'fplot_core::plot_data_colored']]], - ['set_5fline_5fstyle_40',['set_line_style',['../structfplot__core_1_1plot__arrow.html#aceea0ccadce0c4737eaad80ac0a10b98',1,'fplot_core::plot_arrow::set_line_style()'],['../structfplot__core_1_1scatter__plot__data.html#ab03c2603a873c9065c83650ac7b59577',1,'fplot_core::scatter_plot_data::set_line_style()'],['../structfplot__core_1_1plot__data__tri__2d.html#a83fd7aeaaf49e87feca48e47e45dc4f0',1,'fplot_core::plot_data_tri_2d::set_line_style()']]], - ['set_5fline_5fwidth_41',['set_line_width',['../structfplot__core_1_1plot__arrow.html#a48af7ed9faba3494666634819c1b0078',1,'fplot_core::plot_arrow::set_line_width()'],['../structfplot__core_1_1scatter__plot__data.html#ad2169acc049adff557adfa5a7da7a047',1,'fplot_core::scatter_plot_data::set_line_width()'],['../structfplot__core_1_1plot__data__tri__2d.html#a89979cf628a8d1bbe58616a134d84de4',1,'fplot_core::plot_data_tri_2d::set_line_width()']]], - ['set_5fmarker_5ffrequency_42',['set_marker_frequency',['../structfplot__core_1_1scatter__plot__data.html#afbe660fce6672bf6dc20f3f594a14361',1,'fplot_core::scatter_plot_data']]], - ['set_5fmarker_5fscaling_43',['set_marker_scaling',['../structfplot__core_1_1scatter__plot__data.html#afc01fb76af6a0a422b9a9f8571959e88',1,'fplot_core::scatter_plot_data']]], - ['set_5fmarker_5fstyle_44',['set_marker_style',['../structfplot__core_1_1scatter__plot__data.html#a149b23714fce0691b4131c7701ff6166',1,'fplot_core::scatter_plot_data']]], - ['set_5fmove_5fto_5ffront_45',['set_move_to_front',['../structfplot__core_1_1plot__arrow.html#a835f541854392fcdfa62e42a40d0f1be',1,'fplot_core::plot_arrow']]], - ['set_5fname_46',['set_name',['../structfplot__core_1_1plot__data.html#a94aed3f692e4f61414f2681cc105ee52',1,'fplot_core::plot_data']]], - ['set_5fplot_5fwindow_5fnumber_47',['set_plot_window_number',['../structfplot__core_1_1terminal.html#a97e236d25bfdfb88c47aac07ac636baf',1,'fplot_core::terminal']]], - ['set_5fposition_48',['set_position',['../structfplot__core_1_1plot__label.html#a2ad61a55279d21ae6ebc29ee1fd0b464',1,'fplot_core::plot_label']]], - ['set_5fradial_5flimits_49',['set_radial_limits',['../structfplot__core_1_1plot__polar.html#a00dbfab2c6a3dc1f814d076574e5fd17',1,'fplot_core::plot_polar']]], - ['set_5fshow_5fcolorbar_50',['set_show_colorbar',['../structfplot__core_1_1plot.html#a6f9b326354b3d8dfa707e871a7519713',1,'fplot_core::plot']]], - ['set_5fshow_5fcontours_51',['set_show_contours',['../structfplot__core_1_1surface__plot.html#a8aeebb0ceda2d5f18c960bea089f2c58',1,'fplot_core::surface_plot']]], - ['set_5fshow_5fgridlines_52',['set_show_gridlines',['../structfplot__core_1_1plot.html#a929a7d1f892cd92b7ce9387adb4168c0',1,'fplot_core::plot']]], - ['set_5fshow_5fhidden_53',['set_show_hidden',['../structfplot__core_1_1surface__plot.html#a4dfb89ce7bea300b0baf615df28666be',1,'fplot_core::surface_plot']]], - ['set_5fshow_5ftics_54',['set_show_tics',['../structfplot__core_1_1colormap.html#a4cfc2819c20b439ba562026d5ca54615',1,'fplot_core::colormap']]], - ['set_5fsimplification_5ffactor_55',['set_simplification_factor',['../structfplot__core_1_1scatter__plot__data.html#a8a4056fe6969456124db007f962b9c7b',1,'fplot_core::scatter_plot_data']]], - ['set_5fsimplify_5fdata_56',['set_simplify_data',['../structfplot__core_1_1scatter__plot__data.html#a1fd9079ccba6a8227501584208f2991e',1,'fplot_core::scatter_plot_data']]], - ['set_5fspecular_5fintensity_57',['set_specular_intensity',['../structfplot__core_1_1surface__plot.html#ab40b141891860f87ec370bba31d83b8a',1,'fplot_core::surface_plot']]], - ['set_5fsquare_5faxes_58',['set_square_axes',['../structfplot__core_1_1plot__2d.html#afc8ab071b8c099aebcf795a3cf10fe9e',1,'fplot_core::plot_2d']]], - ['set_5ftail_5flocation_59',['set_tail_location',['../structfplot__core_1_1plot__arrow.html#aca84bef4ddb730b1fed90d2386874b7a',1,'fplot_core::plot_arrow::set_tail_locationpar_set_tail_1'],['../structfplot__core_1_1plot__arrow.html#a452292e58f05cd3afdcdb38c858799d8',1,'fplot_core::plot_arrow::set_tail_locationpar_set_tail_2'],['../structfplot__core_1_1plot__arrow.html#a255beb96b7024c5bb7cd9ef41836ae94',1,'fplot_core::plot_arrow::set_tail_locationpar_set_tail_3']]], - ['set_5ftext_60',['set_text',['../structfplot__core_1_1plot__label.html#ae23e191969f98f47b32ee694fe22c993',1,'fplot_core::plot_label']]], - ['set_5ftheta_5fdirection_61',['set_theta_direction',['../structfplot__core_1_1plot__polar.html#ab1bf8924f14b0833ca12ded69d6df738',1,'fplot_core::plot_polar']]], - ['set_5ftheta_5fstart_5fposition_62',['set_theta_start_position',['../structfplot__core_1_1plot__polar.html#a6c09839428e51e17d6ad88608d1d92ae',1,'fplot_core::plot_polar']]], - ['set_5ftic_5flabel_5fformat_63',['set_tic_label_format',['../structfplot__core_1_1plot__axis.html#a65519918c3bc51c7c55856f4ab70de47',1,'fplot_core::plot_axis']]], - ['set_5ftics_5finward_64',['set_tics_inward',['../structfplot__core_1_1plot.html#aa9b08eb0848255279f04d7ff4c5bf5f2',1,'fplot_core::plot']]], - ['set_5ftitle_65',['set_title',['../structfplot__core_1_1terminal.html#a4c433fb993c05ba8f2485d76dac5d571',1,'fplot_core::terminal::set_title()'],['../structfplot__core_1_1plot__axis.html#ae48c3bbf59663fd54efc7b814d4e1662',1,'fplot_core::plot_axis::set_title()'],['../structfplot__core_1_1plot.html#a1925b89a6abe05c4728c839844b507f1',1,'fplot_core::plot::set_title()'],['../structfplot__core_1_1multiplot.html#a22818257b677d5f45a1ac13435cc27ae',1,'fplot_core::multiplot::set_title()']]], - ['set_5ftransparency_66',['set_transparency',['../structfplot__core_1_1surface__plot.html#a94436759af21d4fcd87a2358e4afe569',1,'fplot_core::surface_plot']]], - ['set_5fuse_5fdata_5fdependent_5fcolors_67',['set_use_data_dependent_colors',['../structfplot__core_1_1scatter__plot__data.html#a9ea43c66bf884fc5380dc82b178e2634',1,'fplot_core::scatter_plot_data']]], - ['set_5fuse_5fdefault_5fsize_68',['set_use_default_size',['../structfplot__core_1_1plot__arrow.html#afa8a544cb4f1d33d35518d65b1303543',1,'fplot_core::plot_arrow']]], - ['set_5fuse_5fdefault_5ftic_5flabel_5fformat_69',['set_use_default_tic_label_format',['../structfplot__core_1_1plot__axis.html#a5fb4b8b807033d2d7e81ee3e7077a1e5',1,'fplot_core::plot_axis']]], - ['set_5fuse_5ferror_5fbox_70',['set_use_error_box',['../structfplot__core_1_1plot__data__error__bars.html#a86f2731ad612871fea02c6a8a4d1e7c1',1,'fplot_core::plot_data_error_bars']]], - ['set_5fuse_5flighting_71',['set_use_lighting',['../structfplot__core_1_1surface__plot.html#a238591a3e35fea687b802ee34d3f3bdf',1,'fplot_core::surface_plot']]], - ['set_5fuse_5fmap_5fview_72',['set_use_map_view',['../structfplot__core_1_1plot__3d.html#a702f48c41af5fa7b33d1555904ca5823',1,'fplot_core::plot_3d']]], - ['set_5fuse_5fvariable_5fsize_5fpoints_73',['set_use_variable_size_points',['../structfplot__core_1_1scatter__plot__data.html#a4b8720c814de24f0a8c54de333f6b192',1,'fplot_core::scatter_plot_data']]], - ['set_5fuse_5fwireframe_74',['set_use_wireframe',['../structfplot__core_1_1surface__plot__data.html#a2dd4d9da621cc049e8d9acb772d64b27',1,'fplot_core::surface_plot_data::set_use_wireframe()'],['../structfplot__core_1_1tri__surface__plot__data.html#a920b578a7bd5dda514379761daad8d87',1,'fplot_core::tri_surface_plot_data::set_use_wireframe()']]], - ['set_5fuse_5fy2_5faxis_75',['set_use_y2_axis',['../structfplot__core_1_1plot__2d.html#a60849bb67d78d07ebb62ae2aedd298ad',1,'fplot_core::plot_2d']]], - ['set_5fvertical_5fposition_76',['set_vertical_position',['../structfplot__core_1_1legend.html#aafce387b80da438eb00b49107bcde5df',1,'fplot_core::legend']]], - ['set_5fwindow_5fheight_77',['set_window_height',['../structfplot__core_1_1terminal.html#a7bfbe230aacd2ebfc66a48f45e3b7c02',1,'fplot_core::terminal']]], - ['set_5fwindow_5fwidth_78',['set_window_width',['../structfplot__core_1_1terminal.html#adc7393357e996438ef5afec36dde7054',1,'fplot_core::terminal']]], - ['set_5fx_79',['set_x',['../structfplot__core_1_1scatter__plot__data.html#a767bed829c0dc83b2b265910b3834608',1,'fplot_core::scatter_plot_data::set_x()'],['../structfplot__core_1_1plot__data__2d.html#aa605fb042bd378ebf5ba6fd94563d13a',1,'fplot_core::plot_data_2d::set_x()'],['../structfplot__core_1_1plot__data__3d.html#a1013a895c610e3f412701624c60c18a4',1,'fplot_core::plot_data_3d::set_x()'],['../structfplot__core_1_1surface__plot__data.html#a2ef34c8a632cf6fdb9f6247eaf817d57',1,'fplot_core::surface_plot_data::set_x()']]], - ['set_5fy_80',['set_y',['../structfplot__core_1_1scatter__plot__data.html#a313f4dd3f4a4596772901c0cfbf15a97',1,'fplot_core::scatter_plot_data::set_y()'],['../structfplot__core_1_1plot__data__2d.html#a28d89209520ffd1728ff34aaa853f314',1,'fplot_core::plot_data_2d::set_y()'],['../structfplot__core_1_1plot__data__3d.html#abcaab55223d65976eb07ab58908ccd66',1,'fplot_core::plot_data_3d::set_y()'],['../structfplot__core_1_1surface__plot__data.html#a4d709bdb48e019c6a7f167e2712a11e9',1,'fplot_core::surface_plot_data::set_y()']]], - ['set_5fz_81',['set_z',['../structfplot__core_1_1plot__data__3d.html#a5adf3d8c20b3b839a76175ca986fcff4',1,'fplot_core::plot_data_3d::set_z()'],['../structfplot__core_1_1surface__plot__data.html#a32ff64443790d15faf76401d2c06c0f9',1,'fplot_core::surface_plot_data::set_z()']]], - ['set_5fz_5fintersect_5fxy_82',['set_z_intersect_xy',['../structfplot__core_1_1plot__3d.html#a58f3645f94801662c0f10736804da580',1,'fplot_core::plot_3d']]], - ['set_5fzero_5faxis_83',['set_zero_axis',['../structfplot__core_1_1plot__axis.html#a19f1868adac5ac661c5b7d33d02f35c9',1,'fplot_core::plot_axis']]], - ['set_5fzero_5faxis_5fline_5fwidth_84',['set_zero_axis_line_width',['../structfplot__core_1_1plot__axis.html#abd2dce525007a33e050ccb0c92024824',1,'fplot_core::plot_axis']]], - ['simplify_5fpolyline_85',['simplify_polyline',['../interfacefplot__core_1_1simplify__polyline.html',1,'fplot_core']]], - ['spd_5fget_5fint_5fvalue_86',['spd_get_int_value',['../interfacefplot__core_1_1spd__get__int__value.html',1,'fplot_core']]], - ['spd_5fget_5fstring_5fresult_87',['spd_get_string_result',['../interfacefplot__core_1_1spd__get__string__result.html',1,'fplot_core']]], - ['spd_5fget_5fvalue_88',['spd_get_value',['../interfacefplot__core_1_1spd__get__value.html',1,'fplot_core']]], - ['spd_5fset_5fvalue_89',['spd_set_value',['../interfacefplot__core_1_1spd__set__value.html',1,'fplot_core']]], - ['surface_5fplot_90',['surface_plot',['../structfplot__core_1_1surface__plot.html',1,'fplot_core']]], - ['surface_5fplot_5fdata_91',['surface_plot_data',['../structfplot__core_1_1surface__plot__data.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_0.html b/docs/html/search/classes_0.html deleted file mode 100644 index f7e4c14..0000000 --- a/docs/html/search/classes_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js deleted file mode 100644 index d0fccb9..0000000 --- a/docs/html/search/classes_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['assignment_28_3d_29_0',['assignment(=)',['../interfacefplot__core_1_1assignment_07_0a_08.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_1.html b/docs/html/search/classes_1.html deleted file mode 100644 index c7ff4b3..0000000 --- a/docs/html/search/classes_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js deleted file mode 100644 index 4bfbd0c..0000000 --- a/docs/html/search/classes_1.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['cm_5fget_5fstring_5fresult_0',['cm_get_string_result',['../interfacefplot__core_1_1cm__get__string__result.html',1,'fplot_core']]], - ['color_1',['color',['../structfplot__core_1_1color.html',1,'fplot_core']]], - ['colormap_2',['colormap',['../structfplot__core_1_1colormap.html',1,'fplot_core']]], - ['cool_5fcolormap_3',['cool_colormap',['../structfplot__core_1_1cool__colormap.html',1,'fplot_core']]], - ['custom_5fcolormap_4',['custom_colormap',['../structfplot__core_1_1custom__colormap.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_10.html b/docs/html/search/classes_10.html deleted file mode 100644 index abf37f5..0000000 --- a/docs/html/search/classes_10.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_10.js b/docs/html/search/classes_10.js deleted file mode 100644 index 17bc0fe..0000000 --- a/docs/html/search/classes_10.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['windows_5fterminal_0',['windows_terminal',['../structfplot__core_1_1windows__terminal.html',1,'fplot_core']]], - ['wxt_5fterminal_1',['wxt_terminal',['../structfplot__core_1_1wxt__terminal.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_11.html b/docs/html/search/classes_11.html deleted file mode 100644 index 29283b0..0000000 --- a/docs/html/search/classes_11.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_11.js b/docs/html/search/classes_11.js deleted file mode 100644 index 8596b67..0000000 --- a/docs/html/search/classes_11.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['x_5faxis_0',['x_axis',['../structfplot__core_1_1x__axis.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_12.js b/docs/html/search/classes_12.js deleted file mode 100644 index ebd6bba..0000000 --- a/docs/html/search/classes_12.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['y2_5faxis_0',['y2_axis',['../structfplot__core_1_1y2__axis.html',1,'fplot_core']]], - ['y_5faxis_1',['y_axis',['../structfplot__core_1_1y__axis.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_13.js b/docs/html/search/classes_13.js deleted file mode 100644 index f3d6cb5..0000000 --- a/docs/html/search/classes_13.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['z_5faxis_0',['z_axis',['../structfplot__core_1_1z__axis.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_2.html b/docs/html/search/classes_2.html deleted file mode 100644 index 0d1e8a0..0000000 --- a/docs/html/search/classes_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js deleted file mode 100644 index 660391e..0000000 --- a/docs/html/search/classes_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['delaunay_5ftri_5f2d_0',['delaunay_tri_2d',['../structfplot__core_1_1delaunay__tri__2d.html',1,'fplot_core']]], - ['delaunay_5ftri_5fsurface_1',['delaunay_tri_surface',['../structfplot__core_1_1delaunay__tri__surface.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_3.html b/docs/html/search/classes_3.html deleted file mode 100644 index 2102545..0000000 --- a/docs/html/search/classes_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js deleted file mode 100644 index ee0ff6f..0000000 --- a/docs/html/search/classes_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['earth_5fcolormap_0',['earth_colormap',['../structfplot__core_1_1earth__colormap.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_4.html b/docs/html/search/classes_4.html deleted file mode 100644 index 095ab59..0000000 --- a/docs/html/search/classes_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_4.js b/docs/html/search/classes_4.js deleted file mode 100644 index 52c5c44..0000000 --- a/docs/html/search/classes_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['filled_5fplot_5fdata_0',['filled_plot_data',['../structfplot__core_1_1filled__plot__data.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_5.html b/docs/html/search/classes_5.html deleted file mode 100644 index fc9cdc9..0000000 --- a/docs/html/search/classes_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_5.js b/docs/html/search/classes_5.js deleted file mode 100644 index 5f3460d..0000000 --- a/docs/html/search/classes_5.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['get_5fstring_5fresult_0',['get_string_result',['../interfacefplot__core_1_1get__string__result.html',1,'fplot_core']]], - ['grey_5fcolormap_1',['grey_colormap',['../structfplot__core_1_1grey__colormap.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_6.html b/docs/html/search/classes_6.html deleted file mode 100644 index 1ecfddd..0000000 --- a/docs/html/search/classes_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_6.js b/docs/html/search/classes_6.js deleted file mode 100644 index fa74e08..0000000 --- a/docs/html/search/classes_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['hot_5fcolormap_0',['hot_colormap',['../structfplot__core_1_1hot__colormap.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_7.html b/docs/html/search/classes_7.html deleted file mode 100644 index 0fc6fc3..0000000 --- a/docs/html/search/classes_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_7.js b/docs/html/search/classes_7.js deleted file mode 100644 index 37e5f71..0000000 --- a/docs/html/search/classes_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['latex_5fterminal_0',['latex_terminal',['../structfplot__core_1_1latex__terminal.html',1,'fplot_core']]], - ['legend_1',['legend',['../structfplot__core_1_1legend.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_8.html b/docs/html/search/classes_8.html deleted file mode 100644 index ac8af7d..0000000 --- a/docs/html/search/classes_8.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_8.js b/docs/html/search/classes_8.js deleted file mode 100644 index ddb0599..0000000 --- a/docs/html/search/classes_8.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['multiplot_0',['multiplot',['../structfplot__core_1_1multiplot.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_9.html b/docs/html/search/classes_9.html deleted file mode 100644 index 86cad04..0000000 --- a/docs/html/search/classes_9.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_9.js b/docs/html/search/classes_9.js deleted file mode 100644 index 048d9fd..0000000 --- a/docs/html/search/classes_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['operator_28_2f_3d_29_0',['operator(/=)',['../interfacefplot__core_1_1operator_07_2_0a_08.html',1,'fplot_core']]], - ['operator_28_3d_3d_29_1',['operator(==)',['../interfacefplot__core_1_1operator_07_0a_0a_08.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_a.html b/docs/html/search/classes_a.html deleted file mode 100644 index 4201e97..0000000 --- a/docs/html/search/classes_a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_a.js b/docs/html/search/classes_a.js deleted file mode 100644 index de66f67..0000000 --- a/docs/html/search/classes_a.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['pa_5fget_5fstring_5fresult_0',['pa_get_string_result',['../interfacefplot__core_1_1pa__get__string__result.html',1,'fplot_core']]], - ['parula_5fcolormap_1',['parula_colormap',['../structfplot__core_1_1parula__colormap.html',1,'fplot_core']]], - ['pd_5fget_5fstring_5fresult_2',['pd_get_string_result',['../interfacefplot__core_1_1pd__get__string__result.html',1,'fplot_core']]], - ['plot_3',['plot',['../structfplot__core_1_1plot.html',1,'fplot_core']]], - ['plot_5f2d_4',['plot_2d',['../structfplot__core_1_1plot__2d.html',1,'fplot_core']]], - ['plot_5f3d_5',['plot_3d',['../structfplot__core_1_1plot__3d.html',1,'fplot_core']]], - ['plot_5farrow_6',['plot_arrow',['../structfplot__core_1_1plot__arrow.html',1,'fplot_core']]], - ['plot_5faxis_7',['plot_axis',['../structfplot__core_1_1plot__axis.html',1,'fplot_core']]], - ['plot_5fbar_8',['plot_bar',['../structfplot__core_1_1plot__bar.html',1,'fplot_core']]], - ['plot_5fdata_9',['plot_data',['../structfplot__core_1_1plot__data.html',1,'fplot_core']]], - ['plot_5fdata_5f2d_10',['plot_data_2d',['../structfplot__core_1_1plot__data__2d.html',1,'fplot_core']]], - ['plot_5fdata_5f3d_11',['plot_data_3d',['../structfplot__core_1_1plot__data__3d.html',1,'fplot_core']]], - ['plot_5fdata_5fbar_12',['plot_data_bar',['../structfplot__core_1_1plot__data__bar.html',1,'fplot_core']]], - ['plot_5fdata_5fcolored_13',['plot_data_colored',['../structfplot__core_1_1plot__data__colored.html',1,'fplot_core']]], - ['plot_5fdata_5ferror_5fbars_14',['plot_data_error_bars',['../structfplot__core_1_1plot__data__error__bars.html',1,'fplot_core']]], - ['plot_5fdata_5fhistogram_15',['plot_data_histogram',['../structfplot__core_1_1plot__data__histogram.html',1,'fplot_core']]], - ['plot_5fdata_5ftri_5f2d_16',['plot_data_tri_2d',['../structfplot__core_1_1plot__data__tri__2d.html',1,'fplot_core']]], - ['plot_5flabel_17',['plot_label',['../structfplot__core_1_1plot__label.html',1,'fplot_core']]], - ['plot_5fobject_18',['plot_object',['../structfplot__core_1_1plot__object.html',1,'fplot_core']]], - ['plot_5fpolar_19',['plot_polar',['../structfplot__core_1_1plot__polar.html',1,'fplot_core']]], - ['png_5fterminal_20',['png_terminal',['../structfplot__core_1_1png__terminal.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_b.html b/docs/html/search/classes_b.html deleted file mode 100644 index f88a578..0000000 --- a/docs/html/search/classes_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_b.js b/docs/html/search/classes_b.js deleted file mode 100644 index d2e2271..0000000 --- a/docs/html/search/classes_b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['qt_5fterminal_0',['qt_terminal',['../structfplot__core_1_1qt__terminal.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_c.html b/docs/html/search/classes_c.html deleted file mode 100644 index fa0cf4d..0000000 --- a/docs/html/search/classes_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_c.js b/docs/html/search/classes_c.js deleted file mode 100644 index fb76893..0000000 --- a/docs/html/search/classes_c.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['rainbow_5fcolormap_0',['rainbow_colormap',['../structfplot__core_1_1rainbow__colormap.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_d.html b/docs/html/search/classes_d.html deleted file mode 100644 index 0b6b137..0000000 --- a/docs/html/search/classes_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_d.js b/docs/html/search/classes_d.js deleted file mode 100644 index 8b445a6..0000000 --- a/docs/html/search/classes_d.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['scatter_5fplot_5fdata_0',['scatter_plot_data',['../structfplot__core_1_1scatter__plot__data.html',1,'fplot_core']]], - ['simplify_5fpolyline_1',['simplify_polyline',['../interfacefplot__core_1_1simplify__polyline.html',1,'fplot_core']]], - ['spd_5fget_5fint_5fvalue_2',['spd_get_int_value',['../interfacefplot__core_1_1spd__get__int__value.html',1,'fplot_core']]], - ['spd_5fget_5fstring_5fresult_3',['spd_get_string_result',['../interfacefplot__core_1_1spd__get__string__result.html',1,'fplot_core']]], - ['spd_5fget_5fvalue_4',['spd_get_value',['../interfacefplot__core_1_1spd__get__value.html',1,'fplot_core']]], - ['spd_5fset_5fvalue_5',['spd_set_value',['../interfacefplot__core_1_1spd__set__value.html',1,'fplot_core']]], - ['surface_5fplot_6',['surface_plot',['../structfplot__core_1_1surface__plot.html',1,'fplot_core']]], - ['surface_5fplot_5fdata_7',['surface_plot_data',['../structfplot__core_1_1surface__plot__data.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_e.html b/docs/html/search/classes_e.html deleted file mode 100644 index 2e42779..0000000 --- a/docs/html/search/classes_e.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_e.js b/docs/html/search/classes_e.js deleted file mode 100644 index 654a4a2..0000000 --- a/docs/html/search/classes_e.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['term_5fget_5fstring_5fresult_0',['term_get_string_result',['../interfacefplot__core_1_1term__get__string__result.html',1,'fplot_core']]], - ['terminal_1',['terminal',['../structfplot__core_1_1terminal.html',1,'fplot_core']]], - ['tri_5fsurface_5fplot_5fdata_2',['tri_surface_plot_data',['../structfplot__core_1_1tri__surface__plot__data.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/classes_f.html b/docs/html/search/classes_f.html deleted file mode 100644 index e664ccd..0000000 --- a/docs/html/search/classes_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/classes_f.js b/docs/html/search/classes_f.js deleted file mode 100644 index adf0ba7..0000000 --- a/docs/html/search/classes_f.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['vector_5ffield_5fplot_5fdata_0',['vector_field_plot_data',['../structfplot__core_1_1vector__field__plot__data.html',1,'fplot_core']]] -]; diff --git a/docs/html/search/close.png b/docs/html/search/close.png deleted file mode 100644 index 9342d3d..0000000 Binary files a/docs/html/search/close.png and /dev/null differ diff --git a/docs/html/search/close.svg b/docs/html/search/close.svg deleted file mode 100644 index 337d6cc..0000000 --- a/docs/html/search/close.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - diff --git a/docs/html/search/functions_0.html b/docs/html/search/functions_0.html deleted file mode 100644 index e17c711..0000000 --- a/docs/html/search/functions_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js deleted file mode 100644 index c26c3c3..0000000 --- a/docs/html/search/functions_0.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['clear_5fall_0',['clear_all',['../structfplot__core_1_1plot.html#a34d776a2c321b9ac7676945d95990e16',1,'fplot_core::plot']]], - ['clear_5fall_5flabels_1',['clear_all_labels',['../structfplot__core_1_1plot.html#abf9538a6514fb1ed53d5715aacd58e2a',1,'fplot_core::plot']]], - ['clear_5farrows_2',['clear_arrows',['../structfplot__core_1_1plot.html#aef6ccd30310590087ea05f427a799b80',1,'fplot_core::plot']]], - ['copy_5ffrom_3',['copy_from',['../structfplot__core_1_1color.html#a08fa8d6f601ba8641ec91e1f43e1c586',1,'fplot_core::color']]], - ['create_4',['create',['../structfplot__core_1_1delaunay__tri__2d.html#aba77dca84f08dbfb2b115d9d9fdd9aba',1,'fplot_core::delaunay_tri_2d']]] -]; diff --git a/docs/html/search/functions_1.html b/docs/html/search/functions_1.html deleted file mode 100644 index 0ddac0a..0000000 --- a/docs/html/search/functions_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js deleted file mode 100644 index 1ddd4c1..0000000 --- a/docs/html/search/functions_1.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['define_5fdata_0',['define_data',['../structfplot__core_1_1plot__data__2d.html#aff2e615bf20ac66b403695ce10e5be4d',1,'fplot_core::plot_data_2d::define_datapd2d_set_data_1'],['../structfplot__core_1_1plot__data__2d.html#a4ef9823b92c13db70504897adac11e70',1,'fplot_core::plot_data_2d::define_datapd2d_set_data_2'],['../structfplot__core_1_1plot__data__3d.html#ade9ee50a99ab15f4cfcc8a0ecd75e69c',1,'fplot_core::plot_data_3d::define_data()'],['../structfplot__core_1_1surface__plot__data.html#a1dbe06af4e164ada4b80277e70d0320e',1,'fplot_core::surface_plot_data::define_data()'],['../structfplot__core_1_1plot__data__tri__2d.html#a3ce95ac57b2dfda69e754d7314d5e113',1,'fplot_core::plot_data_tri_2d::define_data()'],['../structfplot__core_1_1tri__surface__plot__data.html#ad2fa70d7577676babf477c89d3562060',1,'fplot_core::tri_surface_plot_data::define_data()'],['../structfplot__core_1_1vector__field__plot__data.html#a833b60ff6a9ca8c533e089f2968d335e',1,'fplot_core::vector_field_plot_data::define_data()'],['../structfplot__core_1_1filled__plot__data.html#a3913a71653b75380dc1012c5006d773b',1,'fplot_core::filled_plot_data::define_data()']]], - ['define_5ffunction_5fvalues_1',['define_function_values',['../structfplot__core_1_1delaunay__tri__surface.html#a79ce4c8ed7d243417890fc037f474170',1,'fplot_core::delaunay_tri_surface']]], - ['define_5fx_5ferror_5fdata_2',['define_x_error_data',['../structfplot__core_1_1plot__data__error__bars.html#a897524f1b8098654b9963e1d62b69910',1,'fplot_core::plot_data_error_bars::define_x_error_datapde_define_x_err'],['../structfplot__core_1_1plot__data__error__bars.html#a43b64e7f217392ce49969bbed71a940d',1,'fplot_core::plot_data_error_bars::define_x_error_datapde_define_x_err_lim']]], - ['define_5fxy_5ferror_5fdata_3',['define_xy_error_data',['../structfplot__core_1_1plot__data__error__bars.html#a49891b23e0387645cbea89ad2405c1c9',1,'fplot_core::plot_data_error_bars::define_xy_error_datapde_define_xy_err'],['../structfplot__core_1_1plot__data__error__bars.html#ac0fb40f8ce85f194948a10d91b887d58',1,'fplot_core::plot_data_error_bars::define_xy_error_datapde_define_xy_err_lim']]], - ['define_5fy_5ferror_5fdata_4',['define_y_error_data',['../structfplot__core_1_1plot__data__error__bars.html#a8312de543a61854de5f12c25329f0e49',1,'fplot_core::plot_data_error_bars::define_y_error_datapde_define_y_err'],['../structfplot__core_1_1plot__data__error__bars.html#a8549600a4cd1d3a124292939252f08ba',1,'fplot_core::plot_data_error_bars::define_y_error_datapde_define_y_err_lim']]], - ['draw_5',['draw',['../structfplot__core_1_1plot.html#a9d4351a5ce5288b8f1b8a0e67d5bc5b2',1,'fplot_core::plot::draw()'],['../structfplot__core_1_1multiplot.html#a37bd89e10d4dcf8a97577713eaeb4143',1,'fplot_core::multiplot::draw()']]] -]; diff --git a/docs/html/search/functions_2.html b/docs/html/search/functions_2.html deleted file mode 100644 index 2737c5a..0000000 --- a/docs/html/search/functions_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js deleted file mode 100644 index d82a2ab..0000000 --- a/docs/html/search/functions_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['evaluate_0',['evaluate',['../structfplot__core_1_1delaunay__tri__surface.html#a7f77f147b8d68123f4a782ffa7bdd0be',1,'fplot_core::delaunay_tri_surface::evaluatedts_interp_1'],['../structfplot__core_1_1delaunay__tri__surface.html#aaed4c47865165797dab80d6fd11762b8',1,'fplot_core::delaunay_tri_surface::evaluatedts_interp_2']]] -]; diff --git a/docs/html/search/functions_3.html b/docs/html/search/functions_3.html deleted file mode 100644 index 6da86e7..0000000 --- a/docs/html/search/functions_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js deleted file mode 100644 index ffaee33..0000000 --- a/docs/html/search/functions_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['find_5ftriangle_0',['find_triangle',['../structfplot__core_1_1delaunay__tri__2d.html#aa0c1780f8231cd2abf87151a1914a318',1,'fplot_core::delaunay_tri_2d']]], - ['free_5fresources_1',['free_resources',['../structfplot__core_1_1plot.html#a8747b4e5569b5a025ba6264252358cfd',1,'fplot_core::plot']]] -]; diff --git a/docs/html/search/functions_4.html b/docs/html/search/functions_4.html deleted file mode 100644 index 911304e..0000000 --- a/docs/html/search/functions_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js deleted file mode 100644 index 8227adb..0000000 --- a/docs/html/search/functions_4.js +++ /dev/null @@ -1,118 +0,0 @@ -var searchData= -[ - ['get_0',['get',['../structfplot__core_1_1plot.html#aa98ef8753bb01d52623636be3b496129',1,'fplot_core::plot::get()'],['../structfplot__core_1_1multiplot.html#a3cb5a2d2f473e118f6adeb481cc8ae80',1,'fplot_core::multiplot::get()']]], - ['get_5fallow_5fsmoothing_1',['get_allow_smoothing',['../structfplot__core_1_1surface__plot.html#abb567cd750a1388b1130514713fc8c38',1,'fplot_core::surface_plot']]], - ['get_5fangle_2',['get_angle',['../structfplot__core_1_1plot__label.html#a1363a76ce4b2124cf606610f34c5289d',1,'fplot_core::plot_label']]], - ['get_5farrow_3',['get_arrow',['../structfplot__core_1_1plot.html#a95d3fb67a1e5a8be3881c98ef3dc88bd',1,'fplot_core::plot']]], - ['get_5farrow_5fcount_4',['get_arrow_count',['../structfplot__core_1_1plot.html#a3e928c6fed0bfd47b4875fa409f592c2',1,'fplot_core::plot']]], - ['get_5farrow_5fsize_5',['get_arrow_size',['../structfplot__core_1_1vector__field__plot__data.html#aa081611ba3786ab60023567662d1ab39',1,'fplot_core::vector_field_plot_data']]], - ['get_5fautoscale_6',['get_autoscale',['../structfplot__core_1_1plot__axis.html#aaaf9ace8a7b41b32aaee34f103e10ca0',1,'fplot_core::plot_axis::get_autoscale()'],['../structfplot__core_1_1plot__polar.html#adb315455f8ef25ef6a861b02ee4ef771',1,'fplot_core::plot_polar::get_autoscale()']]], - ['get_5faxes_5fstring_7',['get_axes_string',['../structfplot__core_1_1scatter__plot__data.html#a7ab0b579124a815634cbdcac8c81dde0',1,'fplot_core::scatter_plot_data::get_axes_string()'],['../structfplot__core_1_1plot__data__2d.html#abff268284715672d150a629a1f91f3fe',1,'fplot_core::plot_data_2d::get_axes_string()'],['../structfplot__core_1_1plot__data__3d.html#aafb795e54877133e338807877845ee53',1,'fplot_core::plot_data_3d::get_axes_string()'],['../structfplot__core_1_1filled__plot__data.html#a032e1917321920d2a04cf03b03f67946',1,'fplot_core::filled_plot_data::get_axes_string()']]], - ['get_5faxis_5fequal_8',['get_axis_equal',['../structfplot__core_1_1plot.html#ac7bc0d5bc86c478ec9cf19345b84c5ed',1,'fplot_core::plot']]], - ['get_5fazimuth_9',['get_azimuth',['../structfplot__core_1_1plot__3d.html#acee2c2a674fa5aadb08211e4a18a0d5a',1,'fplot_core::plot_3d']]], - ['get_5fcolor_10',['get_color',['../structfplot__core_1_1plot__arrow.html#a419e8b0aae89c5f8fd11c93787209bca',1,'fplot_core::plot_arrow']]], - ['get_5fcolor_5fdata_11',['get_color_data',['../structfplot__core_1_1plot__data__2d.html#a44277af64f3ac00c1b8891d9ab07d097',1,'fplot_core::plot_data_2d::get_color_data()'],['../structfplot__core_1_1plot__data__3d.html#a85627d579d5879fcbe35d3129e9035c3',1,'fplot_core::plot_data_3d::get_color_data()']]], - ['get_5fcolor_5fstring_12',['get_color_string',['../structfplot__core_1_1colormap.html#a03f0bef95c6a9c61ad04c63b84f8b6d5',1,'fplot_core::colormap::get_color_string()'],['../structfplot__core_1_1rainbow__colormap.html#a3acc19f954331a6310d5eb3425519f75',1,'fplot_core::rainbow_colormap::get_color_string()'],['../structfplot__core_1_1hot__colormap.html#af5a6ff4e313cf7c2f2b0091e8d25396b',1,'fplot_core::hot_colormap::get_color_string()'],['../structfplot__core_1_1cool__colormap.html#ab2806549f28dd4a194d79904497f03ce',1,'fplot_core::cool_colormap::get_color_string()'],['../structfplot__core_1_1parula__colormap.html#aab47b0c74c9a87e1a42b792cac59355e',1,'fplot_core::parula_colormap::get_color_string()'],['../structfplot__core_1_1grey__colormap.html#aec585307d1ab8f9fb7a039ac9695f58f',1,'fplot_core::grey_colormap::get_color_string()'],['../structfplot__core_1_1earth__colormap.html#ab54eea4aa31fdbb7368e0245143200ea',1,'fplot_core::earth_colormap::get_color_string()'],['../structfplot__core_1_1custom__colormap.html#acfb9922b4fc8f462310c166156b7d898',1,'fplot_core::custom_colormap::get_color_stringcustom_get_clr']]], - ['get_5fcolormap_13',['get_colormap',['../structfplot__core_1_1custom__colormap.html#ae99878b9e1218314af1adc982af6092d',1,'fplot_core::custom_colormap::get_colormap()'],['../structfplot__core_1_1plot.html#a132b8951071c0f8f15a0282625c2975e',1,'fplot_core::plot::get_colormap()']]], - ['get_5fcolumn_5fcount_14',['get_column_count',['../structfplot__core_1_1multiplot.html#afa4b9ef0d7c48a5d0365fd14147a0945',1,'fplot_core::multiplot']]], - ['get_5fcommand_5fstring_15',['get_command_string',['../structfplot__core_1_1plot__object.html#a986486fd0e463722c0d2e46d765d19d3',1,'fplot_core::plot_object::get_command_string()'],['../structfplot__core_1_1plot__label.html#a24d375efbdb3f3a4859a4f9752fa6999',1,'fplot_core::plot_label::get_command_string()'],['../structfplot__core_1_1plot__arrow.html#acdc8d52f5af979888d88401811f7f199',1,'fplot_core::plot_arrow::get_command_string()'],['../structfplot__core_1_1terminal.html#a5167d5b60a3a9dde0ddfdd9bd6a41f9c',1,'fplot_core::terminal::get_command_string()'],['../structfplot__core_1_1png__terminal.html#a54f5f9a908cdfb83a849015ca574b22f',1,'fplot_core::png_terminal::get_command_string()'],['../structfplot__core_1_1latex__terminal.html#a7b000e38ed8bb89bdeb10077855714a6',1,'fplot_core::latex_terminal::get_command_string()'],['../structfplot__core_1_1plot__axis.html#a00d4833c85b699bdff381ae05100cf6a',1,'fplot_core::plot_axis::get_command_string()'],['../structfplot__core_1_1legend.html#af7e10649da6f0aeb6c94ddad33496ed4',1,'fplot_core::legend::get_command_string()'],['../structfplot__core_1_1colormap.html#a6c06d5831f8e2bb173f2cabfc89b471e',1,'fplot_core::colormap::get_command_string()'],['../structfplot__core_1_1plot.html#a9a16fc8a4c67e031c1202754f32d1153',1,'fplot_core::plot::get_command_string()'],['../structfplot__core_1_1scatter__plot__data.html#a38752353ad9e2129840b07df8836e400',1,'fplot_core::scatter_plot_data::get_command_string()'],['../structfplot__core_1_1surface__plot__data.html#ac7a97a7065529fbf23cc78ed003d3e6b',1,'fplot_core::surface_plot_data::get_command_string()'],['../structfplot__core_1_1plot__2d.html#a82afa27b47f88385d430dd3c9b145d20',1,'fplot_core::plot_2d::get_command_string()'],['../structfplot__core_1_1plot__3d.html#a374d3655b53b1f429d2db81f375b8d86',1,'fplot_core::plot_3d::get_command_string()'],['../structfplot__core_1_1surface__plot.html#a1fc12a0c4034588eb95d67b8dc3d010b',1,'fplot_core::surface_plot::get_command_string()'],['../structfplot__core_1_1multiplot.html#a38da5245525925cd37f7dc32a88aedd7',1,'fplot_core::multiplot::get_command_string()'],['../structfplot__core_1_1plot__data__error__bars.html#ab80a5fe8b5abe4ed9b18594ad11b4e43',1,'fplot_core::plot_data_error_bars::get_command_string()'],['../structfplot__core_1_1plot__data__bar.html#a9711b599bf9cb178ed7c45ec1588aa46',1,'fplot_core::plot_data_bar::get_command_string()'],['../structfplot__core_1_1plot__bar.html#aaf330bd04f03f6f56e8c74b00bdd123e',1,'fplot_core::plot_bar::get_command_string()'],['../structfplot__core_1_1plot__data__tri__2d.html#afc5f53c3238bd1dfd1a5a0c3ade8c567',1,'fplot_core::plot_data_tri_2d::get_command_string()'],['../structfplot__core_1_1tri__surface__plot__data.html#a469efa44e12737b0ec95737f5cd3aabb',1,'fplot_core::tri_surface_plot_data::get_command_string()'],['../structfplot__core_1_1vector__field__plot__data.html#acb5a624f5190d33c63bef21abd6d191e',1,'fplot_core::vector_field_plot_data::get_command_string()'],['../structfplot__core_1_1plot__polar.html#ad1a4a767c50e8fe86d5526d45b95f794',1,'fplot_core::plot_polar::get_command_string()'],['../structfplot__core_1_1filled__plot__data.html#a5a173b2b8171077de2d77ee10a24904b',1,'fplot_core::filled_plot_data::get_command_string()']]], - ['get_5fcoordinate_5fsystem_16',['get_coordinate_system',['../structfplot__core_1_1plot__3d.html#a56ffdd5bb6cd107c22bc8a699681d993',1,'fplot_core::plot_3d']]], - ['get_5fcount_17',['get_count',['../structfplot__core_1_1plot.html#a949ae875c30e1b06cb86bb7bb8958e73',1,'fplot_core::plot::get_count()'],['../structfplot__core_1_1scatter__plot__data.html#af220d3b0ebfaba65fb9c2b9326d39d0f',1,'fplot_core::scatter_plot_data::get_count()'],['../structfplot__core_1_1plot__data__2d.html#a99a502c8e85b4eedb161e2bcab2f88c6',1,'fplot_core::plot_data_2d::get_count()'],['../structfplot__core_1_1plot__data__3d.html#a98903845197a0e6985f61e24f62b970e',1,'fplot_core::plot_data_3d::get_count()'],['../structfplot__core_1_1plot__data__error__bars.html#a3cdda0b5155304b1ce26a99c1efbb965',1,'fplot_core::plot_data_error_bars::get_count()']]], - ['get_5fdata_5fstring_18',['get_data_string',['../structfplot__core_1_1plot__data.html#a5b4c937341b806a85419f5d6968aea2d',1,'fplot_core::plot_data::get_data_string()'],['../structfplot__core_1_1plot__data__2d.html#a198cd94a65ba98cbd2423b749a572154',1,'fplot_core::plot_data_2d::get_data_string()'],['../structfplot__core_1_1plot__data__3d.html#a55720af848b61039e8de8a7357800221',1,'fplot_core::plot_data_3d::get_data_string()'],['../structfplot__core_1_1surface__plot__data.html#a41149a1d16e0dfbdeda8667abf0f50c2',1,'fplot_core::surface_plot_data::get_data_string()'],['../structfplot__core_1_1plot__data__error__bars.html#aaf126505fb7cb60f95190dccc89d0d4a',1,'fplot_core::plot_data_error_bars::get_data_string()'],['../structfplot__core_1_1plot__data__bar.html#aa5fa7de9642e1f9e520b4a43cd6f7ae7',1,'fplot_core::plot_data_bar::get_data_string()'],['../structfplot__core_1_1plot__data__tri__2d.html#a6a3428fb27e8b2d557075e605781a5bc',1,'fplot_core::plot_data_tri_2d::get_data_string()'],['../structfplot__core_1_1tri__surface__plot__data.html#abf08b1c7f2c4980d238a2a8c649af522',1,'fplot_core::tri_surface_plot_data::get_data_string()'],['../structfplot__core_1_1vector__field__plot__data.html#a35f10299e5447c27a670ec648d4dff9a',1,'fplot_core::vector_field_plot_data::get_data_string()'],['../structfplot__core_1_1filled__plot__data.html#a1a29d4771e4255a27dc5236407d14144',1,'fplot_core::filled_plot_data::get_data_string()']]], - ['get_5fdraw_5fagainst_5fy2_19',['get_draw_against_y2',['../structfplot__core_1_1plot__data__2d.html#afcbdba943a724904ce1099d8c48c8b50',1,'fplot_core::plot_data_2d::get_draw_against_y2()'],['../structfplot__core_1_1filled__plot__data.html#a2946d6a05362b47c7f01603edf4a6690',1,'fplot_core::filled_plot_data::get_draw_against_y2()']]], - ['get_5fdraw_5fborder_20',['get_draw_border',['../structfplot__core_1_1legend.html#a1ed58a0a0f295b937932dc954d154464',1,'fplot_core::legend::get_draw_border()'],['../structfplot__core_1_1colormap.html#adfde936a6669f562b17fba87e8ae8588',1,'fplot_core::colormap::get_draw_border()'],['../structfplot__core_1_1plot.html#af6ce304fe4acb418af76d672f99c1fb9',1,'fplot_core::plot::get_draw_border()']]], - ['get_5fdraw_5finside_5faxes_21',['get_draw_inside_axes',['../structfplot__core_1_1legend.html#a88c74437f8906b6d1247e662b95d8a52',1,'fplot_core::legend']]], - ['get_5fdraw_5fline_22',['get_draw_line',['../structfplot__core_1_1scatter__plot__data.html#a5f8e8427299c380b69eef4207fdac6fd',1,'fplot_core::scatter_plot_data']]], - ['get_5fdraw_5fmarkers_23',['get_draw_markers',['../structfplot__core_1_1scatter__plot__data.html#aa78996b052703cd440b579a3f19c0323',1,'fplot_core::scatter_plot_data']]], - ['get_5felevation_24',['get_elevation',['../structfplot__core_1_1plot__3d.html#a6a5612c5ea70d90368de4e738e662ee8',1,'fplot_core::plot_3d']]], - ['get_5ffilename_25',['get_filename',['../structfplot__core_1_1png__terminal.html#af9f9678ab852cd1cdf1ba93607045ad0',1,'fplot_core::png_terminal::get_filename()'],['../structfplot__core_1_1latex__terminal.html#a4a9465f48c206d9953fd9540b9d28129',1,'fplot_core::latex_terminal::get_filename()']]], - ['get_5ffill_5farrow_26',['get_fill_arrow',['../structfplot__core_1_1vector__field__plot__data.html#ac83b7d14395a9c7894ae89f86c3aeb96',1,'fplot_core::vector_field_plot_data']]], - ['get_5ffill_5fcurve_27',['get_fill_curve',['../structfplot__core_1_1scatter__plot__data.html#a574f1a94ca7ad3fbb1a1da445a50cbee',1,'fplot_core::scatter_plot_data']]], - ['get_5ffont_5fname_28',['get_font_name',['../structfplot__core_1_1terminal.html#a4958475366c740ba22f15aea8ca61efb',1,'fplot_core::terminal::get_font_name()'],['../structfplot__core_1_1plot.html#af6528d0d7a8e62f968e8818012732b09',1,'fplot_core::plot::get_font_name()'],['../structfplot__core_1_1multiplot.html#ae37d626915c86f2068a90aa643b7ec7d',1,'fplot_core::multiplot::get_font_name()']]], - ['get_5ffont_5fsize_29',['get_font_size',['../structfplot__core_1_1terminal.html#a1d21543a70c7aa857b8f6104671d3770',1,'fplot_core::terminal::get_font_size()'],['../structfplot__core_1_1plot.html#abc559881bc8d4bea9b716964e37e92ed',1,'fplot_core::plot::get_font_size()'],['../structfplot__core_1_1multiplot.html#a31171ee8993d645c5e8d60212002e1b1',1,'fplot_core::multiplot::get_font_size()']]], - ['get_5fhead_5fangle_30',['get_head_angle',['../structfplot__core_1_1plot__arrow.html#a2ac66de42f97cf794d6184c9e092f85e',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5fback_5fangle_31',['get_head_back_angle',['../structfplot__core_1_1plot__arrow.html#abfd19a819ab33659213588cd0d7dfe9c',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5ffill_32',['get_head_fill',['../structfplot__core_1_1plot__arrow.html#a4cd206c5596dbab50b91472260646f29',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5flocation_33',['get_head_location',['../structfplot__core_1_1plot__arrow.html#a65d9efb1c3a6874ffb9745b6ba67d9ae',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5fsize_34',['get_head_size',['../structfplot__core_1_1plot__arrow.html#a80eff3e2ee043866d69c4074006e00d2',1,'fplot_core::plot_arrow']]], - ['get_5fhead_5ftype_35',['get_head_type',['../structfplot__core_1_1plot__arrow.html#a3c95cde3a7e4748f8a2906ec9404d477',1,'fplot_core::plot_arrow']]], - ['get_5fhorizontal_36',['get_horizontal',['../structfplot__core_1_1colormap.html#a11e1d8c4d776814ba9b931dea5eba55f',1,'fplot_core::colormap']]], - ['get_5fhorizontal_5fposition_37',['get_horizontal_position',['../structfplot__core_1_1legend.html#a6e4a288471d81d99105f2781dbc0944a',1,'fplot_core::legend']]], - ['get_5fid_5fstring_38',['get_id_string',['../structfplot__core_1_1terminal.html#a806a00204a80a6cc2676d2fd05179ba4',1,'fplot_core::terminal::get_id_string()'],['../structfplot__core_1_1windows__terminal.html#aa9422d9df32df6bae76145d27663f32b',1,'fplot_core::windows_terminal::get_id_string()'],['../structfplot__core_1_1qt__terminal.html#a2544ce4552975f086ec0f20ae702657d',1,'fplot_core::qt_terminal::get_id_string()'],['../structfplot__core_1_1wxt__terminal.html#aeea16e93a4be79e2687a207c405db431',1,'fplot_core::wxt_terminal::get_id_string()'],['../structfplot__core_1_1png__terminal.html#a7fc33aaa61a2ecd8d1786b573c1194e9',1,'fplot_core::png_terminal::get_id_string()'],['../structfplot__core_1_1latex__terminal.html#ae59d44e616fbad4e93bf1fc7159a44d2',1,'fplot_core::latex_terminal::get_id_string()'],['../structfplot__core_1_1plot__axis.html#a503b9d12d8a13992bdcf2d2698a90b10',1,'fplot_core::plot_axis::get_id_string()'],['../structfplot__core_1_1x__axis.html#a7cb8753743161cd7e18a3df9721b5129',1,'fplot_core::x_axis::get_id_string()'],['../structfplot__core_1_1y__axis.html#a0e82d7adc90762d6885b22d2abb9651b',1,'fplot_core::y_axis::get_id_string()'],['../structfplot__core_1_1y2__axis.html#afa3ce73eceaade01e8b3488e5dac9eea',1,'fplot_core::y2_axis::get_id_string()'],['../structfplot__core_1_1z__axis.html#a9a72041ffd57f8e2cb109e4d49d0f922',1,'fplot_core::z_axis::get_id_string()']]], - ['get_5findices_39',['get_indices',['../structfplot__core_1_1delaunay__tri__2d.html#a2a39c08bcaa4819d25684d8dbb3ee508',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fis_5flog_5fscaled_40',['get_is_log_scaled',['../structfplot__core_1_1plot__axis.html#a1826e039d7a1726fc8c19a5215158708',1,'fplot_core::plot_axis']]], - ['get_5fis_5fopaque_41',['get_is_opaque',['../structfplot__core_1_1legend.html#a116ec03262065d54826f531c5b2e636e',1,'fplot_core::legend']]], - ['get_5fis_5fvisible_42',['get_is_visible',['../structfplot__core_1_1plot__label.html#a6a58bbc93d4a081c10b912da6273fa03',1,'fplot_core::plot_label::get_is_visible()'],['../structfplot__core_1_1plot__arrow.html#aa8b6628e7136aa166c1e6205dc4dc169',1,'fplot_core::plot_arrow::get_is_visible()'],['../structfplot__core_1_1legend.html#aba8ff6b836a1fd2fefe41fc58751834b',1,'fplot_core::legend::get_is_visible()']]], - ['get_5flabel_43',['get_label',['../structfplot__core_1_1colormap.html#ae06b58a108c1805c3ab2138dc31bd326',1,'fplot_core::colormap::get_label()'],['../structfplot__core_1_1plot.html#a05d9262e904709835f79533d63eba64e',1,'fplot_core::plot::get_labelplt_get_label']]], - ['get_5flabel_5fcount_44',['get_label_count',['../structfplot__core_1_1plot.html#ab6240e8f98ecc508d3bc39adc44e8a6c',1,'fplot_core::plot']]], - ['get_5flayout_45',['get_layout',['../structfplot__core_1_1legend.html#a0692cc15c73eac64351831d3d4d28eb0',1,'fplot_core::legend']]], - ['get_5flegend_46',['get_legend',['../structfplot__core_1_1plot.html#abf7fb454462b1d553fe3995575f77d15',1,'fplot_core::plot']]], - ['get_5flight_5fintensity_47',['get_light_intensity',['../structfplot__core_1_1surface__plot.html#a23afb86c55364a3669f9e995d256c55c',1,'fplot_core::surface_plot']]], - ['get_5flimits_48',['get_limits',['../structfplot__core_1_1plot__axis.html#a025972a1e5bdd167cfd1e605798f3236',1,'fplot_core::plot_axis']]], - ['get_5fline_5fcolor_49',['get_line_color',['../structfplot__core_1_1plot__data__colored.html#aafd241043c19b55b90412b77766da1bd',1,'fplot_core::plot_data_colored']]], - ['get_5fline_5fstyle_50',['get_line_style',['../structfplot__core_1_1plot__arrow.html#a5689908ce348e110e19a14968bb41315',1,'fplot_core::plot_arrow::get_line_style()'],['../structfplot__core_1_1scatter__plot__data.html#a207dc9773f6dd173799dd607c4e321b6',1,'fplot_core::scatter_plot_data::get_line_style()'],['../structfplot__core_1_1plot__data__tri__2d.html#acd24f81dd3ea6e560ef8967762365c59',1,'fplot_core::plot_data_tri_2d::get_line_style()']]], - ['get_5fline_5fwidth_51',['get_line_width',['../structfplot__core_1_1plot__arrow.html#aa054166ee5ab324006aa3a79bcccb2d7',1,'fplot_core::plot_arrow::get_line_width()'],['../structfplot__core_1_1scatter__plot__data.html#acfab9f133dae8af4eee2a0151d3cb8e7',1,'fplot_core::scatter_plot_data::get_line_width()'],['../structfplot__core_1_1plot__data__tri__2d.html#a1d6f55f5124ea7fed1db1e1682415f72',1,'fplot_core::plot_data_tri_2d::get_line_width()']]], - ['get_5fmarker_5ffrequency_52',['get_marker_frequency',['../structfplot__core_1_1scatter__plot__data.html#abecca27ba9033242c9cb76692bb8d9ec',1,'fplot_core::scatter_plot_data']]], - ['get_5fmarker_5fscaling_53',['get_marker_scaling',['../structfplot__core_1_1scatter__plot__data.html#a3a09033deefd1c5d3157dff1a0b4c05d',1,'fplot_core::scatter_plot_data']]], - ['get_5fmarker_5fstyle_54',['get_marker_style',['../structfplot__core_1_1scatter__plot__data.html#af7386b5c9cecb7c57e619185f0284ee6',1,'fplot_core::scatter_plot_data']]], - ['get_5fmove_5fto_5ffront_55',['get_move_to_front',['../structfplot__core_1_1plot__arrow.html#a6beddd6f29376f864ed6515b2936badb',1,'fplot_core::plot_arrow']]], - ['get_5fname_56',['get_name',['../structfplot__core_1_1plot__data.html#a445f80b716146d6087d2f1adaa4b98bf',1,'fplot_core::plot_data']]], - ['get_5fplot_5fcount_57',['get_plot_count',['../structfplot__core_1_1multiplot.html#a354b6419ea8889d27a789c11d19d30ae',1,'fplot_core::multiplot']]], - ['get_5fplot_5fwindow_5fnumber_58',['get_plot_window_number',['../structfplot__core_1_1terminal.html#a791d7842cbb35ef499cbc9089f5921eb',1,'fplot_core::terminal']]], - ['get_5fplot_5fx_5ferror_5fbars_59',['get_plot_x_error_bars',['../structfplot__core_1_1plot__data__error__bars.html#a680ba7316765bc7c4b00c603ccf96a05',1,'fplot_core::plot_data_error_bars']]], - ['get_5fplot_5fy_5ferror_5fbars_60',['get_plot_y_error_bars',['../structfplot__core_1_1plot__data__error__bars.html#a44eac08eca6a448fb2424a3ca4e9b3cc',1,'fplot_core::plot_data_error_bars']]], - ['get_5fpoint_5fcount_61',['get_point_count',['../structfplot__core_1_1delaunay__tri__2d.html#ae0e68fb12ac6ce70da9bf03a4f77778d',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fpoint_5fsize_5fdata_62',['get_point_size_data',['../structfplot__core_1_1plot__data__2d.html#a703b322285b948322b82b1450ddb89f3',1,'fplot_core::plot_data_2d::get_point_size_data()'],['../structfplot__core_1_1plot__data__3d.html#ae49068baed9bb95fed74268ea24ac3ac',1,'fplot_core::plot_data_3d::get_point_size_data()']]], - ['get_5fpoints_5fx_63',['get_points_x',['../structfplot__core_1_1delaunay__tri__2d.html#abdaa5a6e385627ba0c0525c4b9d7427b',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fpoints_5fy_64',['get_points_y',['../structfplot__core_1_1delaunay__tri__2d.html#acaac501f173450d34594d3b6f36caa51',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fpoints_5fz_65',['get_points_z',['../structfplot__core_1_1delaunay__tri__surface.html#a87a65ab9d6e614217b738e40bcca3688',1,'fplot_core::delaunay_tri_surface']]], - ['get_5fposition_66',['get_position',['../structfplot__core_1_1plot__label.html#a683715b72ba17d79b0f7f75ce6223ab2',1,'fplot_core::plot_label']]], - ['get_5fradial_5flimits_67',['get_radial_limits',['../structfplot__core_1_1plot__polar.html#a24177754fa37e095f2500a8f0d9cf269',1,'fplot_core::plot_polar']]], - ['get_5frow_5fcount_68',['get_row_count',['../structfplot__core_1_1multiplot.html#af8e5de63b2d4424ef31c6454f0b4a441',1,'fplot_core::multiplot']]], - ['get_5fshow_5fcolorbar_69',['get_show_colorbar',['../structfplot__core_1_1plot.html#a5b11d0a4762b08daa7176b50d2d445fd',1,'fplot_core::plot']]], - ['get_5fshow_5fcontours_70',['get_show_contours',['../structfplot__core_1_1surface__plot.html#a3a41ac572a7b31cf23e582ee8023d651',1,'fplot_core::surface_plot']]], - ['get_5fshow_5fgridlines_71',['get_show_gridlines',['../structfplot__core_1_1plot.html#ad6c6e15a4b1d960252b5bfe1d380a5f3',1,'fplot_core::plot']]], - ['get_5fshow_5fhidden_72',['get_show_hidden',['../structfplot__core_1_1surface__plot.html#ab30c5358ab2f8852753150774befd898',1,'fplot_core::surface_plot']]], - ['get_5fshow_5ftics_73',['get_show_tics',['../structfplot__core_1_1colormap.html#a0800d95684d4756cae09f365a8e93b5d',1,'fplot_core::colormap']]], - ['get_5fsimplification_5ffactor_74',['get_simplification_factor',['../structfplot__core_1_1scatter__plot__data.html#a9e1b45badadfa1bda1b20ea8d9a2f1fe',1,'fplot_core::scatter_plot_data']]], - ['get_5fsimplify_5fdata_75',['get_simplify_data',['../structfplot__core_1_1scatter__plot__data.html#a0d0755bca68c8c758bc7f5ab880f65e3',1,'fplot_core::scatter_plot_data']]], - ['get_5fsize_76',['get_size',['../structfplot__core_1_1surface__plot__data.html#a3a90bfbfccf24c272e1bd151167cf8ae',1,'fplot_core::surface_plot_data']]], - ['get_5fspecular_5fintensity_77',['get_specular_intensity',['../structfplot__core_1_1surface__plot.html#a88ad210fb239e4ef9943c805b73add68',1,'fplot_core::surface_plot']]], - ['get_5fsquare_5faxes_78',['get_square_axes',['../structfplot__core_1_1plot__2d.html#ae408393a833c5978996701ab198ba0bb',1,'fplot_core::plot_2d']]], - ['get_5ftail_5flocation_79',['get_tail_location',['../structfplot__core_1_1plot__arrow.html#a4ad925efaa9bb101c20799ba29028d52',1,'fplot_core::plot_arrow']]], - ['get_5fterminal_80',['get_terminal',['../structfplot__core_1_1plot.html#ad2401d852a81076fe72cf8a808fde792',1,'fplot_core::plot::get_terminal()'],['../structfplot__core_1_1multiplot.html#a3e773ed8f697086383a91cfc88be412b',1,'fplot_core::multiplot::get_terminal()']]], - ['get_5ftext_81',['get_text',['../structfplot__core_1_1plot__label.html#a7c60aed4792e8700e1154e213d0cb92e',1,'fplot_core::plot_label']]], - ['get_5ftheta_5fdirection_82',['get_theta_direction',['../structfplot__core_1_1plot__polar.html#aa2baa0c84a23e7c3069ce2fcd4050e7e',1,'fplot_core::plot_polar']]], - ['get_5ftheta_5fstart_5fposition_83',['get_theta_start_position',['../structfplot__core_1_1plot__polar.html#afeb1ddee4cb09260fd4f92a4e70e8e18',1,'fplot_core::plot_polar']]], - ['get_5ftic_5flabel_5fformat_84',['get_tic_label_format',['../structfplot__core_1_1plot__axis.html#adf896e948d36fc834734ba6abccbe9d1',1,'fplot_core::plot_axis']]], - ['get_5ftics_5finward_85',['get_tics_inward',['../structfplot__core_1_1plot.html#a688f3645c69308cf608231a21b0aed64',1,'fplot_core::plot']]], - ['get_5ftitle_86',['get_title',['../structfplot__core_1_1terminal.html#ac706187861e60e83f2d327ed86175bb3',1,'fplot_core::terminal::get_title()'],['../structfplot__core_1_1plot__axis.html#af93e4f7ff1f6ea1823a45a92a272f91c',1,'fplot_core::plot_axis::get_title()'],['../structfplot__core_1_1plot.html#a133ef2de58d480ba1a3192cc26a5c58d',1,'fplot_core::plot::get_title()'],['../structfplot__core_1_1multiplot.html#a53b06b534a0fd70fb17323ec5bb9b063',1,'fplot_core::multiplot::get_title()']]], - ['get_5ftransparency_87',['get_transparency',['../structfplot__core_1_1surface__plot.html#a16dbdc679951a0f58e449349d7d5c3c0',1,'fplot_core::surface_plot']]], - ['get_5ftriangle_5fcount_88',['get_triangle_count',['../structfplot__core_1_1delaunay__tri__2d.html#a74c3e196311190b91f8889f756edf630',1,'fplot_core::delaunay_tri_2d']]], - ['get_5fuse_5fdata_5fdependent_5fcolors_89',['get_use_data_dependent_colors',['../structfplot__core_1_1scatter__plot__data.html#a65e5e58525b877b9bfd4873dc7b2e9e4',1,'fplot_core::scatter_plot_data::get_use_data_dependent_colors()'],['../structfplot__core_1_1vector__field__plot__data.html#a1c8d0b54c39a88ec703fe887395d9de1',1,'fplot_core::vector_field_plot_data::get_use_data_dependent_colors()']]], - ['get_5fuse_5fdefault_5fsize_90',['get_use_default_size',['../structfplot__core_1_1plot__arrow.html#aacd237f46dd75db4cd7da3e6149b4dae',1,'fplot_core::plot_arrow']]], - ['get_5fuse_5fdefault_5ftic_5flabel_5fformat_91',['get_use_default_tic_label_format',['../structfplot__core_1_1plot__axis.html#a43b1a4ecac087b3b84d9019383d1030e',1,'fplot_core::plot_axis']]], - ['get_5fuse_5ferror_5fbox_92',['get_use_error_box',['../structfplot__core_1_1plot__data__error__bars.html#a8420ea83599f290a9cd54754b292b2b4',1,'fplot_core::plot_data_error_bars']]], - ['get_5fuse_5flighting_93',['get_use_lighting',['../structfplot__core_1_1surface__plot.html#a66de771aa5424068059cc90db5150393',1,'fplot_core::surface_plot']]], - ['get_5fuse_5fmap_5fview_94',['get_use_map_view',['../structfplot__core_1_1plot__3d.html#ad61ad94ee9d573d1d51aa8cf463c59b4',1,'fplot_core::plot_3d']]], - ['get_5fuse_5frange_95',['get_use_range',['../structfplot__core_1_1plot__data__error__bars.html#adba3954ad57120529148371629340091',1,'fplot_core::plot_data_error_bars']]], - ['get_5fuse_5fvariable_5fsize_5fpoints_96',['get_use_variable_size_points',['../structfplot__core_1_1scatter__plot__data.html#ae7263aa5d4f1fb5fdd8941a7c69a19a3',1,'fplot_core::scatter_plot_data']]], - ['get_5fuse_5fwireframe_97',['get_use_wireframe',['../structfplot__core_1_1surface__plot__data.html#a0d2cebb75afa92984e700aaa36251683',1,'fplot_core::surface_plot_data::get_use_wireframe()'],['../structfplot__core_1_1tri__surface__plot__data.html#a3fc771c7f1bdb8104ae08fabf6c665dd',1,'fplot_core::tri_surface_plot_data::get_use_wireframe()']]], - ['get_5fuse_5fy2_5faxis_98',['get_use_y2_axis',['../structfplot__core_1_1plot__2d.html#a90474e948b36c694223ab528dedcd2bc',1,'fplot_core::plot_2d']]], - ['get_5fvertical_5fposition_99',['get_vertical_position',['../structfplot__core_1_1legend.html#abb44e0b424ee3a9170fc4ddecf39c481',1,'fplot_core::legend']]], - ['get_5fwindow_5fheight_100',['get_window_height',['../structfplot__core_1_1terminal.html#ab368a38267c496220bea42ea79be8413',1,'fplot_core::terminal']]], - ['get_5fwindow_5fwidth_101',['get_window_width',['../structfplot__core_1_1terminal.html#adc47a1a1c7156f8f2adf8510193ee26c',1,'fplot_core::terminal']]], - ['get_5fx_102',['get_x',['../structfplot__core_1_1scatter__plot__data.html#a12a4a9e221cd17546332eab66ee3587f',1,'fplot_core::scatter_plot_data::get_x()'],['../structfplot__core_1_1plot__data__2d.html#a83fd2bbcc7a8db64d64fa2e4f8540698',1,'fplot_core::plot_data_2d::get_x()'],['../structfplot__core_1_1plot__data__3d.html#a73ca5dfd8f294a9c6b5f84767bebaad2',1,'fplot_core::plot_data_3d::get_x()'],['../structfplot__core_1_1surface__plot__data.html#aaf4084060174d016296cf8cedc37b34a',1,'fplot_core::surface_plot_data::get_x()']]], - ['get_5fx_5faxis_103',['get_x_axis',['../structfplot__core_1_1plot__2d.html#af162aeb3b01f1d64c741889a0cd58cc8',1,'fplot_core::plot_2d::get_x_axis()'],['../structfplot__core_1_1plot__3d.html#afe5605d48034ee94fbaf08af6d47e59f',1,'fplot_core::plot_3d::get_x_axis()']]], - ['get_5fx_5fdata_104',['get_x_data',['../structfplot__core_1_1plot__data__2d.html#a191daa9d59fb985eae560be76e826d2c',1,'fplot_core::plot_data_2d::get_x_data()'],['../structfplot__core_1_1plot__data__3d.html#a13c7c8e4c4ecb9fb80aee24b75a5cff3',1,'fplot_core::plot_data_3d::get_x_data()']]], - ['get_5fy_105',['get_y',['../structfplot__core_1_1scatter__plot__data.html#a593db6ad20d55e9f6240d66713352a26',1,'fplot_core::scatter_plot_data::get_y()'],['../structfplot__core_1_1plot__data__2d.html#a97d6c5a96add7522152fe8b3146081d6',1,'fplot_core::plot_data_2d::get_y()'],['../structfplot__core_1_1plot__data__3d.html#a487acf51a34ff00fe81c8b9156fafc5a',1,'fplot_core::plot_data_3d::get_y()'],['../structfplot__core_1_1surface__plot__data.html#ae6395f27b33c147226f04afdd4d08471',1,'fplot_core::surface_plot_data::get_y()']]], - ['get_5fy2_5faxis_106',['get_y2_axis',['../structfplot__core_1_1plot__2d.html#a3f312d0ddd992171e7fef6ac7b142698',1,'fplot_core::plot_2d']]], - ['get_5fy_5faxis_107',['get_y_axis',['../structfplot__core_1_1plot__2d.html#ab423155405406198f9d01bbba1311baf',1,'fplot_core::plot_2d::get_y_axis()'],['../structfplot__core_1_1plot__3d.html#ad39ce86017565371155ce84eacfd2086',1,'fplot_core::plot_3d::get_y_axis()']]], - ['get_5fy_5fdata_108',['get_y_data',['../structfplot__core_1_1plot__data__2d.html#a1f46fa50e4d2a1eaff9d881b614f3122',1,'fplot_core::plot_data_2d::get_y_data()'],['../structfplot__core_1_1plot__data__3d.html#a88c4206070248fb431e0456945669bae',1,'fplot_core::plot_data_3d::get_y_datapd3d_get_y_array']]], - ['get_5fz_109',['get_z',['../structfplot__core_1_1plot__data__3d.html#a6513639ef9e865478e7fcfd556aa1111',1,'fplot_core::plot_data_3d::get_z()'],['../structfplot__core_1_1surface__plot__data.html#a9405a52b7728bef74de50586d23b2f28',1,'fplot_core::surface_plot_data::get_z()']]], - ['get_5fz_5faxis_110',['get_z_axis',['../structfplot__core_1_1plot__3d.html#a3606b1bf32567c8ae6f02b644b2b36ab',1,'fplot_core::plot_3d']]], - ['get_5fz_5fdata_111',['get_z_data',['../structfplot__core_1_1plot__data__3d.html#aa9b1507e1841fda61fc9be8a5a0a7013',1,'fplot_core::plot_data_3d']]], - ['get_5fz_5fintersect_5fxy_112',['get_z_intersect_xy',['../structfplot__core_1_1plot__3d.html#af09cbbc43c987f15e906e5a1b5d0d8cc',1,'fplot_core::plot_3d']]], - ['get_5fzero_5faxis_113',['get_zero_axis',['../structfplot__core_1_1plot__axis.html#a26ec236090b21f9e30770de3a2487f56',1,'fplot_core::plot_axis']]], - ['get_5fzero_5faxis_5fline_5fwidth_114',['get_zero_axis_line_width',['../structfplot__core_1_1plot__axis.html#a89c204ec15cf6688768cc27252316228',1,'fplot_core::plot_axis']]] -]; diff --git a/docs/html/search/functions_5.html b/docs/html/search/functions_5.html deleted file mode 100644 index 61b920d..0000000 --- a/docs/html/search/functions_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js deleted file mode 100644 index 16efcb2..0000000 --- a/docs/html/search/functions_5.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['initialize_0',['initialize',['../structfplot__core_1_1plot.html#ada6347bd02ef1b85a1206ef1a6a72f91',1,'fplot_core::plot::initialize()'],['../structfplot__core_1_1plot__2d.html#a14de301a52d28381d2e20e8b61e7b90f',1,'fplot_core::plot_2d::initialize()'],['../structfplot__core_1_1plot__3d.html#af2f00319633a96dfc5961129671126f1',1,'fplot_core::plot_3d::initialize()'],['../structfplot__core_1_1surface__plot.html#afdc405472449e47ac82e3cc7af3bd63d',1,'fplot_core::surface_plot::initialize()'],['../structfplot__core_1_1multiplot.html#a765c22060cbe884515bc3a73bfef30f7',1,'fplot_core::multiplot::initialize()'],['../structfplot__core_1_1plot__polar.html#a6d386c4b4669e96aa128e17b0d0e3e86',1,'fplot_core::plot_polar::initialize()']]], - ['is_5ftitle_5fdefined_1',['is_title_defined',['../structfplot__core_1_1plot__axis.html#a726c620a8c7921f455900cb5bec1e0c7',1,'fplot_core::plot_axis::is_title_defined()'],['../structfplot__core_1_1plot.html#a49cd3527b815c57b7f0aaf163686c385',1,'fplot_core::plot::is_title_defined()'],['../structfplot__core_1_1multiplot.html#a77d68800c07166876bd9dae972caf094',1,'fplot_core::multiplot::is_title_defined()']]] -]; diff --git a/docs/html/search/functions_6.html b/docs/html/search/functions_6.html deleted file mode 100644 index dc70a4a..0000000 --- a/docs/html/search/functions_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js deleted file mode 100644 index 3d4fe48..0000000 --- a/docs/html/search/functions_6.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['p2d_5fclean_5fup_0',['p2d_clean_up',['../structfplot__core_1_1plot__2d.html#aeb55d7671f449779041c822189e86048',1,'fplot_core::plot_2d']]], - ['p3d_5fclean_5fup_1',['p3d_clean_up',['../structfplot__core_1_1plot__3d.html#ab0e3abb763cf80ecc9af2d75e5c1035d',1,'fplot_core::plot_3d']]], - ['pop_2',['pop',['../structfplot__core_1_1plot.html#ad33c34e40f57938ecd001e808bf23faa',1,'fplot_core::plot']]], - ['pop_5farrow_3',['pop_arrow',['../structfplot__core_1_1plot.html#acbc277a0af6af597663ea0121ecfbdfa',1,'fplot_core::plot']]], - ['pop_5flabel_4',['pop_label',['../structfplot__core_1_1plot.html#a3b8d7885c017cdea67018693824d2a28',1,'fplot_core::plot']]], - ['push_5',['push',['../structfplot__core_1_1plot.html#a4d990dba35771bb91c4b369e749359b1',1,'fplot_core::plot']]], - ['push_5farrow_6',['push_arrow',['../structfplot__core_1_1plot.html#ac9e18069b5f30cdf389bd2d875e9160a',1,'fplot_core::plot']]], - ['push_5flabel_7',['push_label',['../structfplot__core_1_1plot.html#a52aebc916dcd0daee352bd121f44571b',1,'fplot_core::plot']]] -]; diff --git a/docs/html/search/functions_7.html b/docs/html/search/functions_7.html deleted file mode 100644 index 7de3106..0000000 --- a/docs/html/search/functions_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js deleted file mode 100644 index 85af585..0000000 --- a/docs/html/search/functions_7.js +++ /dev/null @@ -1,87 +0,0 @@ -var searchData= -[ - ['save_5ffile_0',['save_file',['../structfplot__core_1_1plot.html#a7e9f2ba3cabac241fc87b08cab6a7964',1,'fplot_core::plot::save_file()'],['../structfplot__core_1_1multiplot.html#a4ffe414eeb41cfb1c6a4090efe0308b6',1,'fplot_core::multiplot::save_file()']]], - ['set_1',['set',['../structfplot__core_1_1plot.html#a60f699ff08a69ffd0639e02cef732fbc',1,'fplot_core::plot::set()'],['../structfplot__core_1_1multiplot.html#a24b7e0d33ad3c66d3031bc0c2c307677',1,'fplot_core::multiplot::set()']]], - ['set_5fallow_5fsmoothing_2',['set_allow_smoothing',['../structfplot__core_1_1surface__plot.html#a9e04fc534b0506d32401d21a695efbae',1,'fplot_core::surface_plot']]], - ['set_5fangle_3',['set_angle',['../structfplot__core_1_1plot__label.html#aa53c460db5af43102ac096d2e9af5fdb',1,'fplot_core::plot_label']]], - ['set_5farrow_4',['set_arrow',['../structfplot__core_1_1plot.html#a97b39f1d655613d423431a225b9ac525',1,'fplot_core::plot']]], - ['set_5farrow_5fsize_5',['set_arrow_size',['../structfplot__core_1_1vector__field__plot__data.html#ac744dea773420c6600c3306311ef2d93',1,'fplot_core::vector_field_plot_data']]], - ['set_5fautoscale_6',['set_autoscale',['../structfplot__core_1_1plot__axis.html#a31ba8659f53c12145bf26884f929a3b6',1,'fplot_core::plot_axis::set_autoscale()'],['../structfplot__core_1_1plot__polar.html#aad0eaf7bd5100040899825fe1281ab86',1,'fplot_core::plot_polar::set_autoscale()']]], - ['set_5faxis_5fequal_7',['set_axis_equal',['../structfplot__core_1_1plot.html#a3ab0098ecdd19537b4b4810e584d6178',1,'fplot_core::plot']]], - ['set_5fazimuth_8',['set_azimuth',['../structfplot__core_1_1plot__3d.html#a925a7a5484ce7fde36ce80e2199f2c2b',1,'fplot_core::plot_3d']]], - ['set_5fcolor_9',['set_color',['../structfplot__core_1_1plot__arrow.html#a62bd3548d5aad7e4a4bc1cc58c3a6935',1,'fplot_core::plot_arrow']]], - ['set_5fcolormap_10',['set_colormap',['../structfplot__core_1_1custom__colormap.html#ae4c07ac867f7fd74ca4219a7e859d0e8',1,'fplot_core::custom_colormap::set_colormap()'],['../structfplot__core_1_1plot.html#a6a2220252ff39e46984cdd41f2f2d408',1,'fplot_core::plot::set_colormap()']]], - ['set_5fcoordinate_5fsystem_11',['set_coordinate_system',['../structfplot__core_1_1plot__3d.html#a66d6237275dbe689d7411ddced7e22c9',1,'fplot_core::plot_3d']]], - ['set_5fdraw_5fagainst_5fy2_12',['set_draw_against_y2',['../structfplot__core_1_1plot__data__2d.html#a77e6f48e4bac69edcf0275d6ad13e550',1,'fplot_core::plot_data_2d::set_draw_against_y2()'],['../structfplot__core_1_1filled__plot__data.html#aecc19b2be5696b2210ea1c7b7bd58a58',1,'fplot_core::filled_plot_data::set_draw_against_y2()']]], - ['set_5fdraw_5fborder_13',['set_draw_border',['../structfplot__core_1_1legend.html#a081df8de03ccc8888b6169608d9b5f17',1,'fplot_core::legend::set_draw_border()'],['../structfplot__core_1_1colormap.html#acb679819160a82793304bcfdde53a623',1,'fplot_core::colormap::set_draw_border()'],['../structfplot__core_1_1plot.html#ae400616706a0cb419a5251c12174d822',1,'fplot_core::plot::set_draw_border()']]], - ['set_5fdraw_5finside_5faxes_14',['set_draw_inside_axes',['../structfplot__core_1_1legend.html#a89b548365548f1e7f0d8756b4145ad93',1,'fplot_core::legend']]], - ['set_5fdraw_5fline_15',['set_draw_line',['../structfplot__core_1_1scatter__plot__data.html#a4219776e9fb097422c3ec43122f031fb',1,'fplot_core::scatter_plot_data']]], - ['set_5fdraw_5fmarkers_16',['set_draw_markers',['../structfplot__core_1_1scatter__plot__data.html#a2d478600f6026a7515f89cb156896654',1,'fplot_core::scatter_plot_data']]], - ['set_5felevation_17',['set_elevation',['../structfplot__core_1_1plot__3d.html#a68d05b37ad04bb9627471b1c20a30c38',1,'fplot_core::plot_3d']]], - ['set_5ffilename_18',['set_filename',['../structfplot__core_1_1png__terminal.html#a11541efbe8bb3036b670ab5bfd234cb8',1,'fplot_core::png_terminal::set_filename()'],['../structfplot__core_1_1latex__terminal.html#a599576bce43bdcbead02d4958d6646ea',1,'fplot_core::latex_terminal::set_filename()']]], - ['set_5ffill_5farrow_19',['set_fill_arrow',['../structfplot__core_1_1vector__field__plot__data.html#aa1c31e27261ed54d1728c6d17a2c0db0',1,'fplot_core::vector_field_plot_data']]], - ['set_5ffill_5fcurve_20',['set_fill_curve',['../structfplot__core_1_1scatter__plot__data.html#a6305c7c347d54e042186e197e63d4572',1,'fplot_core::scatter_plot_data']]], - ['set_5ffont_5fname_21',['set_font_name',['../structfplot__core_1_1terminal.html#acd92729e62790df27b3c1003ef821593',1,'fplot_core::terminal::set_font_name()'],['../structfplot__core_1_1plot.html#a3687c06edaac5f2e47c3a04266effd1f',1,'fplot_core::plot::set_font_name()'],['../structfplot__core_1_1multiplot.html#a1ea580b7916e02cbb84a3ee6325802be',1,'fplot_core::multiplot::set_font_name()']]], - ['set_5ffont_5fsize_22',['set_font_size',['../structfplot__core_1_1terminal.html#a27f4875d74e90fef7f4555de55543abd',1,'fplot_core::terminal::set_font_size()'],['../structfplot__core_1_1plot.html#a755597835c9d424143b8942f4d699a34',1,'fplot_core::plot::set_font_size()'],['../structfplot__core_1_1multiplot.html#ad751ab2a57ec9af423468603a3fc5a75',1,'fplot_core::multiplot::set_font_size()']]], - ['set_5fhead_5fangle_23',['set_head_angle',['../structfplot__core_1_1plot__arrow.html#aa976a527ccaf267e9d5b7c06342a3b56',1,'fplot_core::plot_arrow']]], - ['set_5fhead_5fback_5fangle_24',['set_head_back_angle',['../structfplot__core_1_1plot__arrow.html#aaff2d428d8feeda35da15f1c92bf624a',1,'fplot_core::plot_arrow']]], - ['set_5fhead_5ffill_25',['set_head_fill',['../structfplot__core_1_1plot__arrow.html#add82908c1efdf34d701762bf29763a24',1,'fplot_core::plot_arrow']]], - ['set_5fhead_5flocation_26',['set_head_location',['../structfplot__core_1_1plot__arrow.html#a49ab5d25adbf97b8b6aeb9172c68947a',1,'fplot_core::plot_arrow::set_head_locationpar_set_head_1'],['../structfplot__core_1_1plot__arrow.html#aaa8b4e0f0e2e7138a4fb849989bd7753',1,'fplot_core::plot_arrow::set_head_locationpar_set_head_2'],['../structfplot__core_1_1plot__arrow.html#a2a90f330e8f387beff52a66cd48b1ef3',1,'fplot_core::plot_arrow::set_head_locationpar_set_head_3']]], - ['set_5fhead_5fsize_27',['set_head_size',['../structfplot__core_1_1plot__arrow.html#ab2aa4033c8337c3307ea4036a6e10d16',1,'fplot_core::plot_arrow']]], - ['set_5fhead_5ftype_28',['set_head_type',['../structfplot__core_1_1plot__arrow.html#adfe5552a5c01b59b9bc1025d8e583a57',1,'fplot_core::plot_arrow']]], - ['set_5fhorizontal_29',['set_horizontal',['../structfplot__core_1_1colormap.html#a8530b43520ee1929a510dc8aec57e324',1,'fplot_core::colormap']]], - ['set_5fhorizontal_5fposition_30',['set_horizontal_position',['../structfplot__core_1_1legend.html#a39f311ee80c51cbc637cc946c7a44397',1,'fplot_core::legend']]], - ['set_5fis_5flog_5fscaled_31',['set_is_log_scaled',['../structfplot__core_1_1plot__axis.html#a7ea2e86ed7e730aacad368f67c247a79',1,'fplot_core::plot_axis']]], - ['set_5fis_5fopaque_32',['set_is_opaque',['../structfplot__core_1_1legend.html#af006f78db694a74d57a9861f038b3971',1,'fplot_core::legend']]], - ['set_5fis_5fvisible_33',['set_is_visible',['../structfplot__core_1_1plot__label.html#acc5b95b081e578d0d05e9ee768579ba9',1,'fplot_core::plot_label::set_is_visible()'],['../structfplot__core_1_1plot__arrow.html#a15fa92a1a0ba898995bfcc2e5b5ee790',1,'fplot_core::plot_arrow::set_is_visible()'],['../structfplot__core_1_1legend.html#aa9c45f3a136694b9e8c0c3c83d9a7cd8',1,'fplot_core::legend::set_is_visible()']]], - ['set_5flabel_34',['set_label',['../structfplot__core_1_1colormap.html#ac595c1361a36891870faf9d676a66d78',1,'fplot_core::colormap::set_label()'],['../structfplot__core_1_1plot.html#a1bae57bcb9098707fba5267fa22a433d',1,'fplot_core::plot::set_label()']]], - ['set_5flayout_35',['set_layout',['../structfplot__core_1_1legend.html#a24b91299a6a9382c91a15b0093e1cdaa',1,'fplot_core::legend']]], - ['set_5flight_5fintensity_36',['set_light_intensity',['../structfplot__core_1_1surface__plot.html#aadd6772415d91480a12ee88a49216cc7',1,'fplot_core::surface_plot']]], - ['set_5flimits_37',['set_limits',['../structfplot__core_1_1plot__axis.html#ac4636b37253874b8b072c7916cac4686',1,'fplot_core::plot_axis']]], - ['set_5fline_5fcolor_38',['set_line_color',['../structfplot__core_1_1plot__data__colored.html#ac266099a66e8f024d142e14a8c5077c2',1,'fplot_core::plot_data_colored']]], - ['set_5fline_5fstyle_39',['set_line_style',['../structfplot__core_1_1plot__arrow.html#aceea0ccadce0c4737eaad80ac0a10b98',1,'fplot_core::plot_arrow::set_line_style()'],['../structfplot__core_1_1scatter__plot__data.html#ab03c2603a873c9065c83650ac7b59577',1,'fplot_core::scatter_plot_data::set_line_style()'],['../structfplot__core_1_1plot__data__tri__2d.html#a83fd7aeaaf49e87feca48e47e45dc4f0',1,'fplot_core::plot_data_tri_2d::set_line_style()']]], - ['set_5fline_5fwidth_40',['set_line_width',['../structfplot__core_1_1plot__arrow.html#a48af7ed9faba3494666634819c1b0078',1,'fplot_core::plot_arrow::set_line_width()'],['../structfplot__core_1_1scatter__plot__data.html#ad2169acc049adff557adfa5a7da7a047',1,'fplot_core::scatter_plot_data::set_line_width()'],['../structfplot__core_1_1plot__data__tri__2d.html#a89979cf628a8d1bbe58616a134d84de4',1,'fplot_core::plot_data_tri_2d::set_line_width()']]], - ['set_5fmarker_5ffrequency_41',['set_marker_frequency',['../structfplot__core_1_1scatter__plot__data.html#afbe660fce6672bf6dc20f3f594a14361',1,'fplot_core::scatter_plot_data']]], - ['set_5fmarker_5fscaling_42',['set_marker_scaling',['../structfplot__core_1_1scatter__plot__data.html#afc01fb76af6a0a422b9a9f8571959e88',1,'fplot_core::scatter_plot_data']]], - ['set_5fmarker_5fstyle_43',['set_marker_style',['../structfplot__core_1_1scatter__plot__data.html#a149b23714fce0691b4131c7701ff6166',1,'fplot_core::scatter_plot_data']]], - ['set_5fmove_5fto_5ffront_44',['set_move_to_front',['../structfplot__core_1_1plot__arrow.html#a835f541854392fcdfa62e42a40d0f1be',1,'fplot_core::plot_arrow']]], - ['set_5fname_45',['set_name',['../structfplot__core_1_1plot__data.html#a94aed3f692e4f61414f2681cc105ee52',1,'fplot_core::plot_data']]], - ['set_5fplot_5fwindow_5fnumber_46',['set_plot_window_number',['../structfplot__core_1_1terminal.html#a97e236d25bfdfb88c47aac07ac636baf',1,'fplot_core::terminal']]], - ['set_5fposition_47',['set_position',['../structfplot__core_1_1plot__label.html#a2ad61a55279d21ae6ebc29ee1fd0b464',1,'fplot_core::plot_label']]], - ['set_5fradial_5flimits_48',['set_radial_limits',['../structfplot__core_1_1plot__polar.html#a00dbfab2c6a3dc1f814d076574e5fd17',1,'fplot_core::plot_polar']]], - ['set_5fshow_5fcolorbar_49',['set_show_colorbar',['../structfplot__core_1_1plot.html#a6f9b326354b3d8dfa707e871a7519713',1,'fplot_core::plot']]], - ['set_5fshow_5fcontours_50',['set_show_contours',['../structfplot__core_1_1surface__plot.html#a8aeebb0ceda2d5f18c960bea089f2c58',1,'fplot_core::surface_plot']]], - ['set_5fshow_5fgridlines_51',['set_show_gridlines',['../structfplot__core_1_1plot.html#a929a7d1f892cd92b7ce9387adb4168c0',1,'fplot_core::plot']]], - ['set_5fshow_5fhidden_52',['set_show_hidden',['../structfplot__core_1_1surface__plot.html#a4dfb89ce7bea300b0baf615df28666be',1,'fplot_core::surface_plot']]], - ['set_5fshow_5ftics_53',['set_show_tics',['../structfplot__core_1_1colormap.html#a4cfc2819c20b439ba562026d5ca54615',1,'fplot_core::colormap']]], - ['set_5fsimplification_5ffactor_54',['set_simplification_factor',['../structfplot__core_1_1scatter__plot__data.html#a8a4056fe6969456124db007f962b9c7b',1,'fplot_core::scatter_plot_data']]], - ['set_5fsimplify_5fdata_55',['set_simplify_data',['../structfplot__core_1_1scatter__plot__data.html#a1fd9079ccba6a8227501584208f2991e',1,'fplot_core::scatter_plot_data']]], - ['set_5fspecular_5fintensity_56',['set_specular_intensity',['../structfplot__core_1_1surface__plot.html#ab40b141891860f87ec370bba31d83b8a',1,'fplot_core::surface_plot']]], - ['set_5fsquare_5faxes_57',['set_square_axes',['../structfplot__core_1_1plot__2d.html#afc8ab071b8c099aebcf795a3cf10fe9e',1,'fplot_core::plot_2d']]], - ['set_5ftail_5flocation_58',['set_tail_location',['../structfplot__core_1_1plot__arrow.html#aca84bef4ddb730b1fed90d2386874b7a',1,'fplot_core::plot_arrow::set_tail_locationpar_set_tail_1'],['../structfplot__core_1_1plot__arrow.html#a452292e58f05cd3afdcdb38c858799d8',1,'fplot_core::plot_arrow::set_tail_locationpar_set_tail_2'],['../structfplot__core_1_1plot__arrow.html#a255beb96b7024c5bb7cd9ef41836ae94',1,'fplot_core::plot_arrow::set_tail_locationpar_set_tail_3']]], - ['set_5ftext_59',['set_text',['../structfplot__core_1_1plot__label.html#ae23e191969f98f47b32ee694fe22c993',1,'fplot_core::plot_label']]], - ['set_5ftheta_5fdirection_60',['set_theta_direction',['../structfplot__core_1_1plot__polar.html#ab1bf8924f14b0833ca12ded69d6df738',1,'fplot_core::plot_polar']]], - ['set_5ftheta_5fstart_5fposition_61',['set_theta_start_position',['../structfplot__core_1_1plot__polar.html#a6c09839428e51e17d6ad88608d1d92ae',1,'fplot_core::plot_polar']]], - ['set_5ftic_5flabel_5fformat_62',['set_tic_label_format',['../structfplot__core_1_1plot__axis.html#a65519918c3bc51c7c55856f4ab70de47',1,'fplot_core::plot_axis']]], - ['set_5ftics_5finward_63',['set_tics_inward',['../structfplot__core_1_1plot.html#aa9b08eb0848255279f04d7ff4c5bf5f2',1,'fplot_core::plot']]], - ['set_5ftitle_64',['set_title',['../structfplot__core_1_1terminal.html#a4c433fb993c05ba8f2485d76dac5d571',1,'fplot_core::terminal::set_title()'],['../structfplot__core_1_1plot__axis.html#ae48c3bbf59663fd54efc7b814d4e1662',1,'fplot_core::plot_axis::set_title()'],['../structfplot__core_1_1plot.html#a1925b89a6abe05c4728c839844b507f1',1,'fplot_core::plot::set_title()'],['../structfplot__core_1_1multiplot.html#a22818257b677d5f45a1ac13435cc27ae',1,'fplot_core::multiplot::set_title()']]], - ['set_5ftransparency_65',['set_transparency',['../structfplot__core_1_1surface__plot.html#a94436759af21d4fcd87a2358e4afe569',1,'fplot_core::surface_plot']]], - ['set_5fuse_5fdata_5fdependent_5fcolors_66',['set_use_data_dependent_colors',['../structfplot__core_1_1scatter__plot__data.html#a9ea43c66bf884fc5380dc82b178e2634',1,'fplot_core::scatter_plot_data']]], - ['set_5fuse_5fdefault_5fsize_67',['set_use_default_size',['../structfplot__core_1_1plot__arrow.html#afa8a544cb4f1d33d35518d65b1303543',1,'fplot_core::plot_arrow']]], - ['set_5fuse_5fdefault_5ftic_5flabel_5fformat_68',['set_use_default_tic_label_format',['../structfplot__core_1_1plot__axis.html#a5fb4b8b807033d2d7e81ee3e7077a1e5',1,'fplot_core::plot_axis']]], - ['set_5fuse_5ferror_5fbox_69',['set_use_error_box',['../structfplot__core_1_1plot__data__error__bars.html#a86f2731ad612871fea02c6a8a4d1e7c1',1,'fplot_core::plot_data_error_bars']]], - ['set_5fuse_5flighting_70',['set_use_lighting',['../structfplot__core_1_1surface__plot.html#a238591a3e35fea687b802ee34d3f3bdf',1,'fplot_core::surface_plot']]], - ['set_5fuse_5fmap_5fview_71',['set_use_map_view',['../structfplot__core_1_1plot__3d.html#a702f48c41af5fa7b33d1555904ca5823',1,'fplot_core::plot_3d']]], - ['set_5fuse_5fvariable_5fsize_5fpoints_72',['set_use_variable_size_points',['../structfplot__core_1_1scatter__plot__data.html#a4b8720c814de24f0a8c54de333f6b192',1,'fplot_core::scatter_plot_data']]], - ['set_5fuse_5fwireframe_73',['set_use_wireframe',['../structfplot__core_1_1surface__plot__data.html#a2dd4d9da621cc049e8d9acb772d64b27',1,'fplot_core::surface_plot_data::set_use_wireframe()'],['../structfplot__core_1_1tri__surface__plot__data.html#a920b578a7bd5dda514379761daad8d87',1,'fplot_core::tri_surface_plot_data::set_use_wireframe()']]], - ['set_5fuse_5fy2_5faxis_74',['set_use_y2_axis',['../structfplot__core_1_1plot__2d.html#a60849bb67d78d07ebb62ae2aedd298ad',1,'fplot_core::plot_2d']]], - ['set_5fvertical_5fposition_75',['set_vertical_position',['../structfplot__core_1_1legend.html#aafce387b80da438eb00b49107bcde5df',1,'fplot_core::legend']]], - ['set_5fwindow_5fheight_76',['set_window_height',['../structfplot__core_1_1terminal.html#a7bfbe230aacd2ebfc66a48f45e3b7c02',1,'fplot_core::terminal']]], - ['set_5fwindow_5fwidth_77',['set_window_width',['../structfplot__core_1_1terminal.html#adc7393357e996438ef5afec36dde7054',1,'fplot_core::terminal']]], - ['set_5fx_78',['set_x',['../structfplot__core_1_1scatter__plot__data.html#a767bed829c0dc83b2b265910b3834608',1,'fplot_core::scatter_plot_data::set_x()'],['../structfplot__core_1_1plot__data__2d.html#aa605fb042bd378ebf5ba6fd94563d13a',1,'fplot_core::plot_data_2d::set_x()'],['../structfplot__core_1_1plot__data__3d.html#a1013a895c610e3f412701624c60c18a4',1,'fplot_core::plot_data_3d::set_x()'],['../structfplot__core_1_1surface__plot__data.html#a2ef34c8a632cf6fdb9f6247eaf817d57',1,'fplot_core::surface_plot_data::set_x()']]], - ['set_5fy_79',['set_y',['../structfplot__core_1_1scatter__plot__data.html#a313f4dd3f4a4596772901c0cfbf15a97',1,'fplot_core::scatter_plot_data::set_y()'],['../structfplot__core_1_1plot__data__2d.html#a28d89209520ffd1728ff34aaa853f314',1,'fplot_core::plot_data_2d::set_y()'],['../structfplot__core_1_1plot__data__3d.html#abcaab55223d65976eb07ab58908ccd66',1,'fplot_core::plot_data_3d::set_y()'],['../structfplot__core_1_1surface__plot__data.html#a4d709bdb48e019c6a7f167e2712a11e9',1,'fplot_core::surface_plot_data::set_y()']]], - ['set_5fz_80',['set_z',['../structfplot__core_1_1plot__data__3d.html#a5adf3d8c20b3b839a76175ca986fcff4',1,'fplot_core::plot_data_3d::set_z()'],['../structfplot__core_1_1surface__plot__data.html#a32ff64443790d15faf76401d2c06c0f9',1,'fplot_core::surface_plot_data::set_z()']]], - ['set_5fz_5fintersect_5fxy_81',['set_z_intersect_xy',['../structfplot__core_1_1plot__3d.html#a58f3645f94801662c0f10736804da580',1,'fplot_core::plot_3d']]], - ['set_5fzero_5faxis_82',['set_zero_axis',['../structfplot__core_1_1plot__axis.html#a19f1868adac5ac661c5b7d33d02f35c9',1,'fplot_core::plot_axis']]], - ['set_5fzero_5faxis_5fline_5fwidth_83',['set_zero_axis_line_width',['../structfplot__core_1_1plot__axis.html#abd2dce525007a33e050ccb0c92024824',1,'fplot_core::plot_axis']]] -]; diff --git a/docs/html/search/functions_8.html b/docs/html/search/functions_8.html deleted file mode 100644 index 7422be2..0000000 --- a/docs/html/search/functions_8.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js deleted file mode 100644 index 85b979a..0000000 --- a/docs/html/search/functions_8.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['to_5fhex_5fstring_0',['to_hex_string',['../structfplot__core_1_1color.html#a82f6fa701820ba719c3e3266a4e6ebd0',1,'fplot_core::color']]] -]; diff --git a/docs/html/search/functions_9.html b/docs/html/search/functions_9.html deleted file mode 100644 index 5ccec42..0000000 --- a/docs/html/search/functions_9.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js deleted file mode 100644 index 2602d8d..0000000 --- a/docs/html/search/functions_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['to_5fhex_5fstring_0',['to_hex_string',['../structfplot__core_1_1color.html#a42eb9db85bdfba9b95d4208a78a5c00e',1,'fplot_core::color']]], - ['to_5fstring_1',['to_string',['../structfplot__string__builder_1_1string__builder.html#ac2c78b1d71b5d922a3a02c910256a89a',1,'fplot_string_builder::string_builder']]] -]; diff --git a/docs/html/search/functions_a.html b/docs/html/search/functions_a.html deleted file mode 100644 index 3958eb7..0000000 --- a/docs/html/search/functions_a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js deleted file mode 100644 index b05eb8d..0000000 --- a/docs/html/search/functions_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['za_5fget_5fid',['za_get_id',['../namespacefplot__core.html#a514f88ef7641f894dc122c73c759112f',1,'fplot_core']]] -]; diff --git a/docs/html/search/functions_b.html b/docs/html/search/functions_b.html deleted file mode 100644 index fa9cff5..0000000 --- a/docs/html/search/functions_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js deleted file mode 100644 index 6ed9920..0000000 --- a/docs/html/search/functions_b.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['y2a_5fget_5fid',['y2a_get_id',['../namespacefplot__core.html#a62c9f837dd159586219c04f07681224f',1,'fplot_core']]], - ['ya_5fget_5fid',['ya_get_id',['../namespacefplot__core.html#a5d91b63dd3d6b770639cfbf710a88f36',1,'fplot_core']]] -]; diff --git a/docs/html/search/functions_c.html b/docs/html/search/functions_c.html deleted file mode 100644 index fce7a6b..0000000 --- a/docs/html/search/functions_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js deleted file mode 100644 index b05eb8d..0000000 --- a/docs/html/search/functions_c.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['za_5fget_5fid',['za_get_id',['../namespacefplot__core.html#a514f88ef7641f894dc122c73c759112f',1,'fplot_core']]] -]; diff --git a/docs/html/search/functions_d.html b/docs/html/search/functions_d.html deleted file mode 100644 index 82b2b0c..0000000 --- a/docs/html/search/functions_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js deleted file mode 100644 index b05eb8d..0000000 --- a/docs/html/search/functions_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['za_5fget_5fid',['za_get_id',['../namespacefplot__core.html#a514f88ef7641f894dc122c73c759112f',1,'fplot_core']]] -]; diff --git a/docs/html/search/functions_e.html b/docs/html/search/functions_e.html deleted file mode 100644 index cddb9bb..0000000 --- a/docs/html/search/functions_e.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_e.js b/docs/html/search/functions_e.js deleted file mode 100644 index 6ed9920..0000000 --- a/docs/html/search/functions_e.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['y2a_5fget_5fid',['y2a_get_id',['../namespacefplot__core.html#a62c9f837dd159586219c04f07681224f',1,'fplot_core']]], - ['ya_5fget_5fid',['ya_get_id',['../namespacefplot__core.html#a5d91b63dd3d6b770639cfbf710a88f36',1,'fplot_core']]] -]; diff --git a/docs/html/search/functions_f.html b/docs/html/search/functions_f.html deleted file mode 100644 index 4967292..0000000 --- a/docs/html/search/functions_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/functions_f.js b/docs/html/search/functions_f.js deleted file mode 100644 index b05eb8d..0000000 --- a/docs/html/search/functions_f.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['za_5fget_5fid',['za_get_id',['../namespacefplot__core.html#a514f88ef7641f894dc122c73c759112f',1,'fplot_core']]] -]; diff --git a/docs/html/search/mag.svg b/docs/html/search/mag.svg deleted file mode 100644 index ffb6cf0..0000000 --- a/docs/html/search/mag.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/docs/html/search/mag_d.svg b/docs/html/search/mag_d.svg deleted file mode 100644 index 4122773..0000000 --- a/docs/html/search/mag_d.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/docs/html/search/mag_sel.png b/docs/html/search/mag_sel.png deleted file mode 100644 index 39c0ed5..0000000 Binary files a/docs/html/search/mag_sel.png and /dev/null differ diff --git a/docs/html/search/mag_sel.svg b/docs/html/search/mag_sel.svg deleted file mode 100644 index 553dba8..0000000 --- a/docs/html/search/mag_sel.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - diff --git a/docs/html/search/mag_seld.svg b/docs/html/search/mag_seld.svg deleted file mode 100644 index c906f84..0000000 --- a/docs/html/search/mag_seld.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - diff --git a/docs/html/search/namespaces_0.html b/docs/html/search/namespaces_0.html deleted file mode 100644 index 76996d1..0000000 --- a/docs/html/search/namespaces_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/namespaces_0.js b/docs/html/search/namespaces_0.js deleted file mode 100644 index ff542e6..0000000 --- a/docs/html/search/namespaces_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['fplot_5fcore_0',['fplot_core',['../namespacefplot__core.html',1,'']]] -]; diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html deleted file mode 100644 index 4377320..0000000 --- a/docs/html/search/nomatches.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - -
    -
    No Matches
    -
    - - diff --git a/docs/html/search/search.css b/docs/html/search/search.css deleted file mode 100644 index 19f76f9..0000000 --- a/docs/html/search/search.css +++ /dev/null @@ -1,291 +0,0 @@ -/*---------------- Search Box positioning */ - -#main-menu > li:last-child { - /* This
  • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} - -/*---------------- Search box styling */ - -.SRPage * { - font-weight: normal; - line-height: normal; -} - -dark-mode-toggle { - margin-left: 5px; - display: flex; - float: right; -} - -#MSearchBox { - display: inline-block; - white-space : nowrap; - background: var(--search-background-color); - border-radius: 0.65em; - box-shadow: var(--search-box-shadow); - z-index: 102; -} - -#MSearchBox .left { - display: inline-block; - vertical-align: middle; - height: 1.4em; -} - -#MSearchSelect { - display: inline-block; - vertical-align: middle; - width: 20px; - height: 19px; - background-image: var(--search-magnification-select-image); - margin: 0 0 0 0.3em; - padding: 0; -} - -#MSearchSelectExt { - display: inline-block; - vertical-align: middle; - width: 10px; - height: 19px; - background-image: var(--search-magnification-image); - margin: 0 0 0 0.5em; - padding: 0; -} - - -#MSearchField { - display: inline-block; - vertical-align: middle; - width: 7.5em; - height: 19px; - margin: 0 0.15em; - padding: 0; - line-height: 1em; - border:none; - color: var(--search-foreground-color); - outline: none; - font-family: var(--font-family-search); - -webkit-border-radius: 0px; - border-radius: 0px; - background: none; -} - -@media(hover: none) { - /* to avoid zooming on iOS */ - #MSearchField { - font-size: 16px; - } -} - -#MSearchBox .right { - display: inline-block; - vertical-align: middle; - width: 1.4em; - height: 1.4em; -} - -#MSearchClose { - display: none; - font-size: inherit; - background : none; - border: none; - margin: 0; - padding: 0; - outline: none; - -} - -#MSearchCloseImg { - padding: 0.3em; - margin: 0; -} - -.MSearchBoxActive #MSearchField { - color: var(--search-active-color); -} - - - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid var(--search-filter-border-color); - background-color: var(--search-filter-background-color); - z-index: 10001; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt var(--font-family-search); - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: var(--font-family-monospace); - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: var(--search-filter-foreground-color); - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: var(--search-filter-foreground-color); - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: var(--search-filter-highlight-text-color); - background-color: var(--search-filter-highlight-bg-color); - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - /*width: 60ex;*/ - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid var(--search-results-border-color); - background-color: var(--search-results-background-color); - z-index:10000; - width: 300px; - height: 400px; - overflow: auto; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -div.SRPage { - margin: 5px 2px; - background-color: var(--search-results-background-color); -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: var(--search-results-foreground-color); - font-family: var(--font-family-search); - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: var(--search-results-foreground-color); - font-family: var(--font-family-search); - font-size: 8pt; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; - font-family: var(--font-family-search); -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - font-family: var(--font-family-search); -} - -.SRResult { - display: none; -} - -div.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: var(--nav-gradient-active-image-parent); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/docs/html/search/search.js b/docs/html/search/search.js deleted file mode 100644 index 666af01..0000000 --- a/docs/html/search/search.js +++ /dev/null @@ -1,694 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - 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. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -const SEARCH_COOKIE_NAME = ''+'search_grp'; - -const searchResults = new SearchResults(); - -/* A class handling everything associated with the search panel. - - Parameters: - name - The name of the global variable that will be - storing this instance. Is needed to be able to set timeouts. - resultPath - path to use for external files -*/ -function SearchBox(name, resultsPath, extension) { - if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } - if (!extension || extension == "") { extension = ".html"; } - - function getXPos(item) { - let x = 0; - if (item.offsetWidth) { - while (item && item!=document.body) { - x += item.offsetLeft; - item = item.offsetParent; - } - } - return x; - } - - function getYPos(item) { - let y = 0; - if (item.offsetWidth) { - while (item && item!=document.body) { - y += item.offsetTop; - item = item.offsetParent; - } - } - return y; - } - - // ---------- Instance variables - this.name = name; - this.resultsPath = resultsPath; - this.keyTimeout = 0; - this.keyTimeoutLength = 500; - this.closeSelectionTimeout = 300; - this.lastSearchValue = ""; - this.lastResultsPage = ""; - this.hideTimeout = 0; - this.searchIndex = 0; - this.searchActive = false; - this.extension = extension; - - // ----------- DOM Elements - - this.DOMSearchField = () => document.getElementById("MSearchField"); - this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); - this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); - this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); - this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); - this.DOMSearchClose = () => document.getElementById("MSearchClose"); - this.DOMSearchBox = () => document.getElementById("MSearchBox"); - - // ------------ Event Handlers - - // Called when focus is added or removed from the search field. - this.OnSearchFieldFocus = function(isActive) { - this.Activate(isActive); - } - - this.OnSearchSelectShow = function() { - const searchSelectWindow = this.DOMSearchSelectWindow(); - const searchField = this.DOMSearchSelect(); - - const left = getXPos(searchField); - const top = getYPos(searchField) + searchField.offsetHeight; - - // show search selection popup - searchSelectWindow.style.display='block'; - searchSelectWindow.style.left = left + 'px'; - searchSelectWindow.style.top = top + 'px'; - - // stop selection hide timer - if (this.hideTimeout) { - clearTimeout(this.hideTimeout); - this.hideTimeout=0; - } - return false; // to avoid "image drag" default event - } - - this.OnSearchSelectHide = function() { - this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), - this.closeSelectionTimeout); - } - - // Called when the content of the search field is changed. - this.OnSearchFieldChange = function(evt) { - if (this.keyTimeout) { // kill running timer - clearTimeout(this.keyTimeout); - this.keyTimeout = 0; - } - - const e = evt ? evt : window.event; // for IE - if (e.keyCode==40 || e.keyCode==13) { - if (e.shiftKey==1) { - this.OnSearchSelectShow(); - const win=this.DOMSearchSelectWindow(); - for (let i=0;i do a search - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) { - const e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) { // Up - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } else if (e.keyCode==13 || e.keyCode==27) { - e.stopPropagation(); - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() { - this.keyTimeout = 0; - - // strip leading whitespace - const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - const code = searchValue.toLowerCase().charCodeAt(0); - let idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair - idxChar = searchValue.substr(0, 2); - } - - let jsFile; - let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) { - const hexCode=idx.toString(16); - jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; - } - - const loadJS = function(url, impl, loc) { - const scriptTag = document.createElement('script'); - scriptTag.src = url; - scriptTag.onload = impl; - scriptTag.onreadystatechange = impl; - loc.appendChild(scriptTag); - } - - const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - const domSearchBox = this.DOMSearchBox(); - const domPopupSearchResults = this.DOMPopupSearchResults(); - const domSearchClose = this.DOMSearchClose(); - const resultsPath = this.resultsPath; - - const handleResults = function() { - document.getElementById("Loading").style.display="none"; - if (typeof searchData !== 'undefined') { - createResults(resultsPath); - document.getElementById("NoMatches").style.display="none"; - } - - if (idx!=-1) { - searchResults.Search(searchValue); - } else { // no file with search results => force empty search results - searchResults.Search('===='); - } - - if (domPopupSearchResultsWindow.style.display!='block') { - domSearchClose.style.display = 'inline-block'; - let left = getXPos(domSearchBox) + 150; - let top = getYPos(domSearchBox) + 20; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - const maxWidth = document.body.clientWidth; - const maxHeight = document.body.clientHeight; - let width = 300; - if (left<10) left=10; - if (width+left+8>maxWidth) width=maxWidth-left-8; - let height = 400; - if (height+top+8>maxHeight) height=maxHeight-top-8; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResultsWindow.style.height = height + 'px'; - } - } - - if (jsFile) { - loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); - } else { - handleResults(); - } - - this.lastSearchValue = searchValue; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) { - this.DOMSearchBox().className = 'MSearchBoxActive'; - this.searchActive = true; - } else if (!isActive) { // directly remove the panel - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - this.DOMSearchField().value = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults() { - - function convertToId(search) { - let result = ''; - for (let i=0;i. - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) { - const parentElement = document.getElementById(id); - let element = parentElement.firstChild; - - while (element && element!=parentElement) { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { - return element; - } - - if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { - element = element.firstChild; - } else if (element.nextSibling) { - element = element.nextSibling; - } else { - do { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) { - const element = this.FindChildElement(id); - if (element) { - if (element.style.display == 'block') { - element.style.display = 'none'; - } else { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) { - if (!search) { // get search word from URL - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - const resultRows = document.getElementsByTagName("div"); - let matches = 0; - - let i = 0; - while (i < resultRows.length) { - const row = resultRows.item(i); - if (row.className == "SRResult") { - let rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) { - row.style.display = 'block'; - matches++; - } else { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) { // no results - document.getElementById("NoMatches").style.display='block'; - } else { // at least one result - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) { - let focusItem; - for (;;) { - const focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { - break; - } else if (!focusItem) { // last element - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) { - let focusItem; - for (;;) { - const focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { - break; - } else if (!focusItem) { // last element - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) { - if (e.type == "keydown") { - this.repeatOn = false; - this.lastKey = e.keyCode; - } else if (e.type == "keypress") { - if (!this.repeatOn) { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } else if (e.type == "keyup") { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) { - const e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) { // Up - const newIndex = itemIndex-1; - let focusItem = this.NavPrev(newIndex); - if (focusItem) { - let child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') { // children visible - let n=0; - let tmpElem; - for (;;) { // search for last child - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) { - focusItem = tmpElem; - } else { // found it! - break; - } - n++; - } - } - } - if (focusItem) { - focusItem.focus(); - } else { // return focus to search field - document.getElementById("MSearchField").focus(); - } - } else if (this.lastKey==40) { // Down - const newIndex = itemIndex+1; - let focusItem; - const item = document.getElementById('Item'+itemIndex); - const elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') { // children visible - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } else if (this.lastKey==39) { // Right - const item = document.getElementById('Item'+itemIndex); - const elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } else if (this.lastKey==37) { // Left - const item = document.getElementById('Item'+itemIndex); - const elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } else if (this.lastKey==27) { // Escape - e.stopPropagation(); - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } else if (this.lastKey==13) { // Enter - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) { - const e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) { // Up - if (childIndex>0) { - const newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } else { // already at first child, jump to parent - document.getElementById('Item'+itemIndex).focus(); - } - } else if (this.lastKey==40) { // Down - const newIndex = childIndex+1; - let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) { // last child, jump to parent next parent - elem = this.NavNext(itemIndex+1); - } - if (elem) { - elem.focus(); - } - } else if (this.lastKey==27) { // Escape - e.stopPropagation(); - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); - } else if (this.lastKey==13) { // Enter - return true; - } - return false; - } -} - -function createResults(resultsPath) { - - function setKeyActions(elem,action) { - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); - } - - function setClassAttr(elem,attr) { - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); - } - - const results = document.getElementById("SRResults"); - results.innerHTML = ''; - searchData.forEach((elem,index) => { - const id = elem[0]; - const srResult = document.createElement('div'); - srResult.setAttribute('id','SR_'+id); - setClassAttr(srResult,'SRResult'); - const srEntry = document.createElement('div'); - setClassAttr(srEntry,'SREntry'); - const srLink = document.createElement('a'); - srLink.setAttribute('id','Item'+index); - setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); - setClassAttr(srLink,'SRSymbol'); - srLink.innerHTML = elem[1][0]; - srEntry.appendChild(srLink); - if (elem[1].length==2) { // single result - srLink.setAttribute('href',resultsPath+elem[1][1][0]); - srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); - if (elem[1][1][1]) { - srLink.setAttribute('target','_parent'); - } else { - srLink.setAttribute('target','_blank'); - } - const srScope = document.createElement('span'); - setClassAttr(srScope,'SRScope'); - srScope.innerHTML = elem[1][1][2]; - srEntry.appendChild(srScope); - } else { // multiple results - srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); - const srChildren = document.createElement('div'); - setClassAttr(srChildren,'SRChildren'); - for (let c=0; c - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js deleted file mode 100644 index 014121c..0000000 --- a/docs/html/search/variables_0.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['arrow_5fbackhead_0',['arrow_backhead',['../namespacefplot__core.html#aec186fc30c149b713c7acbbae501b953',1,'fplot_core']]], - ['arrow_5fempty_1',['arrow_empty',['../namespacefplot__core.html#acf849bac7dab0385a49577f39cd17975',1,'fplot_core']]], - ['arrow_5ffilled_2',['arrow_filled',['../namespacefplot__core.html#a77694d28a29b78d1d4f43f2f813d81a9',1,'fplot_core']]], - ['arrow_5fhead_3',['arrow_head',['../namespacefplot__core.html#ae45226bcbf29c2c1d266891d9492b920',1,'fplot_core']]], - ['arrow_5fheads_4',['arrow_heads',['../namespacefplot__core.html#a9b29a68286be7fc5791e4b7baf472828',1,'fplot_core']]], - ['arrow_5fno_5fborder_5',['arrow_no_border',['../namespacefplot__core.html#a3cb539f373d8c9b192ffba3622bcf7f2',1,'fplot_core']]], - ['arrow_5fno_5ffill_6',['arrow_no_fill',['../namespacefplot__core.html#a466c7931f298261b528697ef344a4e87',1,'fplot_core']]], - ['arrow_5fno_5fhead_7',['arrow_no_head',['../namespacefplot__core.html#ab658b8b914c0cc925c93144eef215a03',1,'fplot_core']]] -]; diff --git a/docs/html/search/variables_1.html b/docs/html/search/variables_1.html deleted file mode 100644 index 49fe59a..0000000 --- a/docs/html/search/variables_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js deleted file mode 100644 index 9ad09a7..0000000 --- a/docs/html/search/variables_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['blue_0',['blue',['../structfplot__core_1_1color.html#a208e32c7d0b0798118575c2234f4cc94',1,'fplot_core::color']]] -]; diff --git a/docs/html/search/variables_2.html b/docs/html/search/variables_2.html deleted file mode 100644 index 0c8a18c..0000000 --- a/docs/html/search/variables_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js deleted file mode 100644 index 211dce8..0000000 --- a/docs/html/search/variables_2.js +++ /dev/null @@ -1,23 +0,0 @@ -var searchData= -[ - ['clr_5fblack_0',['clr_black',['../namespacefplot__core.html#a3f8775edb06de2a90c24009a67ef4f96',1,'fplot_core']]], - ['clr_5fblue_1',['clr_blue',['../namespacefplot__core.html#ae9f20ca4d21fdf9ba84f3b363f3e7d20',1,'fplot_core']]], - ['clr_5fcyan_2',['clr_cyan',['../namespacefplot__core.html#a700047d632ac642f6a949e44451bbc80',1,'fplot_core']]], - ['clr_5fgray_3',['clr_gray',['../namespacefplot__core.html#a828573f8099a6e695b05bb0678289f59',1,'fplot_core']]], - ['clr_5fgreen_4',['clr_green',['../namespacefplot__core.html#a0bd6481a613d00bfb7f92d7b906476dd',1,'fplot_core']]], - ['clr_5flime_5',['clr_lime',['../namespacefplot__core.html#a3f2351d27904192434e3ef78155e51e0',1,'fplot_core']]], - ['clr_5fmagenta_6',['clr_magenta',['../namespacefplot__core.html#a5100f36d74219c9ddc115d9b38d213c1',1,'fplot_core']]], - ['clr_5fmaroon_7',['clr_maroon',['../namespacefplot__core.html#ab68541e171cd4c283eeec74e5165f760',1,'fplot_core']]], - ['clr_5fnavy_8',['clr_navy',['../namespacefplot__core.html#adb6d3eb3275e9c564773cae821a1c4d3',1,'fplot_core']]], - ['clr_5folive_9',['clr_olive',['../namespacefplot__core.html#a7661753bfbb9a5e7ef11a79c279a59e2',1,'fplot_core']]], - ['clr_5forange_10',['clr_orange',['../namespacefplot__core.html#af0a79b640e25da7a7897ff87e2701f86',1,'fplot_core']]], - ['clr_5fpurple_11',['clr_purple',['../namespacefplot__core.html#aa9b8d3f8e41f9a35e05e57abe3e5baf9',1,'fplot_core']]], - ['clr_5fred_12',['clr_red',['../namespacefplot__core.html#a33f5d636354eb4187ba86154037e74e7',1,'fplot_core']]], - ['clr_5fsilver_13',['clr_silver',['../namespacefplot__core.html#a662574b11028022eac8158f9fc846ded',1,'fplot_core']]], - ['clr_5fteal_14',['clr_teal',['../namespacefplot__core.html#aa30407b5d837e2e2c191d99eb115c42b',1,'fplot_core']]], - ['clr_5fwhite_15',['clr_white',['../namespacefplot__core.html#a614ecb87618492f80d7ff4ba4324926b',1,'fplot_core']]], - ['clr_5fyellow_16',['clr_yellow',['../namespacefplot__core.html#a061a6ee4fd7602c096fd5016100ca378',1,'fplot_core']]], - ['coordinates_5fcartesian_17',['coordinates_cartesian',['../namespacefplot__core.html#a383aba6e97a1e427fcf4d2947c7687d3',1,'fplot_core']]], - ['coordinates_5fcylindrical_18',['coordinates_cylindrical',['../namespacefplot__core.html#a31baa8924c3ed9770c90b1ff8656da54',1,'fplot_core']]], - ['coordinates_5fspherical_19',['coordinates_spherical',['../namespacefplot__core.html#af20b219d77cbb2399a33f3981aa720bd',1,'fplot_core']]] -]; diff --git a/docs/html/search/variables_3.html b/docs/html/search/variables_3.html deleted file mode 100644 index 19a31fc..0000000 --- a/docs/html/search/variables_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js deleted file mode 100644 index a694d3f..0000000 --- a/docs/html/search/variables_3.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['gnuplot_5fdefault_5ffont_5fsize_0',['gnuplot_default_font_size',['../namespacefplot__core.html#af51438c2c528d43662a1456d4f9fbb33',1,'fplot_core']]], - ['gnuplot_5fdefault_5ffontname_1',['gnuplot_default_fontname',['../namespacefplot__core.html#a41bb6a9ffc3ebb502d54af9a7ce540e7',1,'fplot_core']]], - ['gnuplot_5fdefault_5fwindow_5fheight_2',['gnuplot_default_window_height',['../namespacefplot__core.html#a6210b9335ccb79ff288de84dd741f0e0',1,'fplot_core']]], - ['gnuplot_5fdefault_5fwindow_5fwidth_3',['gnuplot_default_window_width',['../namespacefplot__core.html#a45b6c532e70244ebf23ff21eb596223b',1,'fplot_core']]], - ['gnuplot_5fmax_5flabel_5flength_4',['gnuplot_max_label_length',['../namespacefplot__core.html#a7e9ac1526f3f84a70eb10c98aff73610',1,'fplot_core']]], - ['gnuplot_5fmax_5fpath_5flength_5',['gnuplot_max_path_length',['../namespacefplot__core.html#a40ff0463a668b977d2fab03d3d8a6dde',1,'fplot_core']]], - ['gnuplot_5fterminal_5flatex_6',['gnuplot_terminal_latex',['../namespacefplot__core.html#adadfa5448d65da7362e445ee1fe61b10',1,'fplot_core']]], - ['gnuplot_5fterminal_5fpng_7',['gnuplot_terminal_png',['../namespacefplot__core.html#af1ace6143d83970cbfe69d7289c427d9',1,'fplot_core']]], - ['gnuplot_5fterminal_5fqt_8',['gnuplot_terminal_qt',['../namespacefplot__core.html#a512870ac9b979c4b0ea2804fbbb02a7d',1,'fplot_core']]], - ['gnuplot_5fterminal_5fwin32_9',['gnuplot_terminal_win32',['../namespacefplot__core.html#acf7693c9998a266f3cf50510b2cc06e9',1,'fplot_core']]], - ['gnuplot_5fterminal_5fwxt_10',['gnuplot_terminal_wxt',['../namespacefplot__core.html#a127138d0cab0e51e9c5f3fdcfdf033ac',1,'fplot_core']]], - ['green_11',['green',['../structfplot__core_1_1color.html#aa710db5291759d15263ecfb69a8d693c',1,'fplot_core::color']]] -]; diff --git a/docs/html/search/variables_4.html b/docs/html/search/variables_4.html deleted file mode 100644 index bdc37be..0000000 --- a/docs/html/search/variables_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js deleted file mode 100644 index d3aeb04..0000000 --- a/docs/html/search/variables_4.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['legend_5farrange_5fhorizontally_0',['legend_arrange_horizontally',['../namespacefplot__core.html#aec8d0376074fdd025c81e810bc4ffc42',1,'fplot_core']]], - ['legend_5farrange_5fvertically_1',['legend_arrange_vertically',['../namespacefplot__core.html#aaf0ef9b39969cd446f0fbb9b53dc6615',1,'fplot_core']]], - ['legend_5fbottom_2',['legend_bottom',['../namespacefplot__core.html#afaa74509b5150505854f6f411109dfdb',1,'fplot_core']]], - ['legend_5fcenter_3',['legend_center',['../namespacefplot__core.html#a0ec74b411859c62e7bf0c1df535d39a5',1,'fplot_core']]], - ['legend_5fleft_4',['legend_left',['../namespacefplot__core.html#a63d667dd9f14cc6ec61c999dd5dda272',1,'fplot_core']]], - ['legend_5fright_5',['legend_right',['../namespacefplot__core.html#a99373c8db502d4106c9597f3303b6fa9',1,'fplot_core']]], - ['legend_5ftop_6',['legend_top',['../namespacefplot__core.html#aeddce321c79b9d2e69356b06ba656c88',1,'fplot_core']]], - ['line_5fdash_5fdot_5fdot_7',['line_dash_dot_dot',['../namespacefplot__core.html#ad6f904d0b43c5063d0f6b41d90abdbea',1,'fplot_core']]], - ['line_5fdash_5fdotted_8',['line_dash_dotted',['../namespacefplot__core.html#a18af0338b6f5f050d826afcf78918bc2',1,'fplot_core']]], - ['line_5fdashed_9',['line_dashed',['../namespacefplot__core.html#ae9305c0a47c3fb21e45154a0b9457353',1,'fplot_core']]], - ['line_5fdotted_10',['line_dotted',['../namespacefplot__core.html#ab81a32face043abe51b8740e56c816b2',1,'fplot_core']]], - ['line_5fsolid_11',['line_solid',['../namespacefplot__core.html#ac41508e74ce45d09f835bd676ea7d3d6',1,'fplot_core']]] -]; diff --git a/docs/html/search/variables_5.html b/docs/html/search/variables_5.html deleted file mode 100644 index 6aa2249..0000000 --- a/docs/html/search/variables_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_5.js b/docs/html/search/variables_5.js deleted file mode 100644 index c5532fe..0000000 --- a/docs/html/search/variables_5.js +++ /dev/null @@ -1,116 +0,0 @@ -var searchData= -[ - ['m_5falpha_0',['m_alpha',['../structfplot__core_1_1plot__data__bar.html#ada9be13d82f4a51e832327bd586c8532',1,'fplot_core::plot_data_bar']]], - ['m_5fangle_1',['m_angle',['../structfplot__core_1_1plot__label.html#ad76a1f42a6fc7701e8eff8a10d456eb4',1,'fplot_core::plot_label']]], - ['m_5farrows_2',['m_arrows',['../structfplot__core_1_1plot.html#a4377389ba8b66d31852367a81eefee27',1,'fplot_core::plot']]], - ['m_5farrowsize_3',['m_arrowsize',['../structfplot__core_1_1vector__field__plot__data.html#adb43db20bfd010f251c8141acf894e23',1,'fplot_core::vector_field_plot_data']]], - ['m_5fautoscale_4',['m_autoscale',['../structfplot__core_1_1plot__axis.html#ae7035c7f62f8ec51ac458edf459655c2',1,'fplot_core::plot_axis::m_autoscale'],['../structfplot__core_1_1plot__polar.html#aae0b529ac9a469cd9ec3e04a125894e7',1,'fplot_core::plot_polar::m_autoscale']]], - ['m_5faxisequal_5',['m_axisequal',['../structfplot__core_1_1plot.html#a9a39b7ef7066651e8acd9cf4777941b0',1,'fplot_core::plot']]], - ['m_5faxislabels_6',['m_axislabels',['../structfplot__core_1_1plot__data__bar.html#ad6ae990580ab689aebe3e4114d650f5f',1,'fplot_core::plot_data_bar']]], - ['m_5faxiswidth_7',['m_axiswidth',['../structfplot__core_1_1plot__axis.html#ac9130dccdf4506356085dc77982f23eb',1,'fplot_core::plot_axis']]], - ['m_5fazimuth_8',['m_azimuth',['../structfplot__core_1_1plot__3d.html#a31e7daa0c6029d65bbe6dfc370e09f75',1,'fplot_core::plot_3d']]], - ['m_5fbardata_9',['m_bardata',['../structfplot__core_1_1plot__data__bar.html#ae3afc4495088f5ec9a7f0414470d97b0',1,'fplot_core::plot_data_bar']]], - ['m_5fbarwidth_10',['m_barwidth',['../structfplot__core_1_1plot__bar.html#a11075431e357389d21760413660a69de',1,'fplot_core::plot_bar']]], - ['m_5fbincount_11',['m_bincount',['../structfplot__core_1_1plot__data__histogram.html#a2ea6672bfb4cdfcf27f3a731f4c6cf4f',1,'fplot_core::plot_data_histogram']]], - ['m_5fbox_12',['m_box',['../structfplot__core_1_1legend.html#a195d911a2ffb3e4d8d8229b21745db72',1,'fplot_core::legend::m_box'],['../structfplot__core_1_1plot__data__error__bars.html#a0e904bfb3fe7d81b6776040af4461f8e',1,'fplot_core::plot_data_error_bars::m_box']]], - ['m_5fcolor_13',['m_color',['../structfplot__core_1_1plot__data__colored.html#aa24c061813c26938c9001c049f6aa40f',1,'fplot_core::plot_data_colored']]], - ['m_5fcolorindex_14',['m_colorindex',['../structfplot__core_1_1plot__data__colored.html#a65e7ab13ce7635e4367dca109b168f76',1,'fplot_core::plot_data_colored::m_colorindex'],['../structfplot__core_1_1plot.html#a423c6b5d5a4077e12672a789d0dd07f4',1,'fplot_core::plot::m_colorindex']]], - ['m_5fcolormap_15',['m_colormap',['../structfplot__core_1_1plot.html#a124d1fc324d2ac66811305862a1818bd',1,'fplot_core::plot']]], - ['m_5fcols_16',['m_cols',['../structfplot__core_1_1multiplot.html#ac43b0757815bd163133a4863314725f9',1,'fplot_core::multiplot']]], - ['m_5fcontour_17',['m_contour',['../structfplot__core_1_1surface__plot.html#a07676b9f7be385dbfb2fcc9c547e86e1',1,'fplot_core::surface_plot']]], - ['m_5fcsys_18',['m_csys',['../structfplot__core_1_1plot__3d.html#a13ce047bd142425ca9c96fd57d126231',1,'fplot_core::plot_3d']]], - ['m_5fdata_19',['m_data',['../structfplot__core_1_1plot.html#a955e9ed1d0626325807467f18928f7af',1,'fplot_core::plot::m_data'],['../structfplot__core_1_1plot__data__2d.html#a35abd4e024ea4e55c55dedcab8e5e3bf',1,'fplot_core::plot_data_2d::m_data'],['../structfplot__core_1_1plot__data__3d.html#a05d33e3351193d2e471083589d3ccb60',1,'fplot_core::plot_data_3d::m_data'],['../structfplot__core_1_1plot__data__error__bars.html#a3082871ea6a5b153a9f9a1dc36ef42f9',1,'fplot_core::plot_data_error_bars::m_data'],['../structfplot__core_1_1vector__field__plot__data.html#ab8f9fd516cb896988615cd6a378eb7e1',1,'fplot_core::vector_field_plot_data::m_data'],['../structfplot__core_1_1filled__plot__data.html#a0237475fa98251222f26abe67f43cf61',1,'fplot_core::filled_plot_data::m_data']]], - ['m_5fdatadependentcolors_20',['m_datadependentcolors',['../structfplot__core_1_1scatter__plot__data.html#a5177e61ef1056be4a7be88c85d129554',1,'fplot_core::scatter_plot_data']]], - ['m_5fdefaultticlabels_21',['m_defaultticlabels',['../structfplot__core_1_1plot__axis.html#af7ffb68c817546118481d46b513397b4',1,'fplot_core::plot_axis']]], - ['m_5fdrawborder_22',['m_drawborder',['../structfplot__core_1_1colormap.html#a3995a2a4d9661f991749686740db28ea',1,'fplot_core::colormap::m_drawborder'],['../structfplot__core_1_1plot.html#aa6041d60ec2b7939ff62dfe315c533bb',1,'fplot_core::plot::m_drawborder']]], - ['m_5fdrawline_23',['m_drawline',['../structfplot__core_1_1scatter__plot__data.html#a06df1b2ace5394328f5cc69c56aae2fe',1,'fplot_core::scatter_plot_data']]], - ['m_5fdrawmarkers_24',['m_drawmarkers',['../structfplot__core_1_1scatter__plot__data.html#ab22889699bb2ac1e437760ae3053e61f',1,'fplot_core::scatter_plot_data']]], - ['m_5felevation_25',['m_elevation',['../structfplot__core_1_1plot__3d.html#a20016816cd703ecc6902755c9506f954',1,'fplot_core::plot_3d']]], - ['m_5ffilled_26',['m_filled',['../structfplot__core_1_1plot__data__bar.html#ab390e7a9d6d8a0ca0ee2e42397e8da36',1,'fplot_core::plot_data_bar']]], - ['m_5ffilledcurve_27',['m_filledcurve',['../structfplot__core_1_1scatter__plot__data.html#ae502a1cb64b81989b2ae30e0498fb2a3',1,'fplot_core::scatter_plot_data']]], - ['m_5ffilledheads_28',['m_filledheads',['../structfplot__core_1_1vector__field__plot__data.html#abfd90138c5821640f049c79d587c6939',1,'fplot_core::vector_field_plot_data']]], - ['m_5ffname_29',['m_fname',['../structfplot__core_1_1png__terminal.html#acea6ab706e5e45c059be85af178adb77',1,'fplot_core::png_terminal::m_fname'],['../structfplot__core_1_1latex__terminal.html#a13910c1c0e215397ebc3125423f2ad3b',1,'fplot_core::latex_terminal::m_fname']]], - ['m_5ffontname_30',['m_fontname',['../structfplot__core_1_1terminal.html#a65c25946f36a8146b5d189cad922259e',1,'fplot_core::terminal']]], - ['m_5ffontsize_31',['m_fontsize',['../structfplot__core_1_1terminal.html#a92e1f3f32996f5ca36f87a4ca73e8406',1,'fplot_core::terminal']]], - ['m_5fhastitle_32',['m_hastitle',['../structfplot__core_1_1terminal.html#a313c30a86f2e84b24394fc88802ac073',1,'fplot_core::terminal::m_hastitle'],['../structfplot__core_1_1plot__axis.html#afaee6697e2ae5d4c15274ef6d1b1bebf',1,'fplot_core::plot_axis::m_hastitle'],['../structfplot__core_1_1plot.html#a3e292f8044d1c963bde7a45a5fd091f5',1,'fplot_core::plot::m_hastitle'],['../structfplot__core_1_1multiplot.html#a6d0402f03382c3bf29b50d4f06fad597',1,'fplot_core::multiplot::m_hastitle']]], - ['m_5fhorizontal_33',['m_horizontal',['../structfplot__core_1_1colormap.html#a85b7ea506d0dfd74b7a851e190e5e9e0',1,'fplot_core::colormap']]], - ['m_5fhorzposition_34',['m_horzposition',['../structfplot__core_1_1legend.html#a4751dde9054923257d25204e3924d11b',1,'fplot_core::legend']]], - ['m_5fid_35',['m_id',['../structfplot__core_1_1windows__terminal.html#af215f20aa2e4e2de14bed3f928a4f40f',1,'fplot_core::windows_terminal::m_id'],['../structfplot__core_1_1qt__terminal.html#ae7f815fdba921412c5befb8778584079',1,'fplot_core::qt_terminal::m_id'],['../structfplot__core_1_1wxt__terminal.html#a1d5b03366bc38e5ae7dab696b40d5ccb',1,'fplot_core::wxt_terminal::m_id'],['../structfplot__core_1_1png__terminal.html#ab960a72618e8aaa0fdda0290b11c33d2',1,'fplot_core::png_terminal::m_id'],['../structfplot__core_1_1latex__terminal.html#a3f10978cef31279b35dda56bdb5bca48',1,'fplot_core::latex_terminal::m_id'],['../structfplot__core_1_1x__axis.html#a1ba3cb85ef3bbd932fa6ada1442aa73f',1,'fplot_core::x_axis::m_id'],['../structfplot__core_1_1y__axis.html#a14850c501203a783fb7aa0e7ac44e140',1,'fplot_core::y_axis::m_id'],['../structfplot__core_1_1y2__axis.html#a3d7f8ca15f441f30f988496c798483cb',1,'fplot_core::y2_axis::m_id'],['../structfplot__core_1_1z__axis.html#addc6091f267c1ac64cb7faaae05f2b63',1,'fplot_core::z_axis::m_id']]], - ['m_5findices_36',['m_indices',['../structfplot__core_1_1delaunay__tri__2d.html#abe18770a04e61374f94b679151c47314',1,'fplot_core::delaunay_tri_2d::m_indices'],['../structfplot__core_1_1plot__data__tri__2d.html#ab6d39a0103f193a8aa8b795144b7c5a9',1,'fplot_core::plot_data_tri_2d::m_indices'],['../structfplot__core_1_1tri__surface__plot__data.html#ae2f7495459a379be5318da146fb893ae',1,'fplot_core::tri_surface_plot_data::m_indices']]], - ['m_5finside_37',['m_inside',['../structfplot__core_1_1legend.html#adc69a36d330318bc97b7fae160cb7960',1,'fplot_core::legend']]], - ['m_5flabel_38',['m_label',['../structfplot__core_1_1colormap.html#a410c0452382dd1965701fd92f3c89db1',1,'fplot_core::colormap']]], - ['m_5flabels_39',['m_labels',['../structfplot__core_1_1plot.html#a749f5e716823b818c276e26d301a43da',1,'fplot_core::plot']]], - ['m_5flayout_40',['m_layout',['../structfplot__core_1_1legend.html#aa0e3a0c975e39520a953b9e36a9336de',1,'fplot_core::legend']]], - ['m_5flegend_41',['m_legend',['../structfplot__core_1_1plot.html#a58b6d2d703429e69ced42f71bb24b587',1,'fplot_core::plot']]], - ['m_5flightintensity_42',['m_lightintensity',['../structfplot__core_1_1surface__plot.html#a899848b6087f3c257c23d22779ff86b8',1,'fplot_core::surface_plot']]], - ['m_5flimits_43',['m_limits',['../structfplot__core_1_1plot__axis.html#a103b7151710f1dca0a4f3a59ab4fc910',1,'fplot_core::plot_axis']]], - ['m_5flinestyle_44',['m_linestyle',['../structfplot__core_1_1scatter__plot__data.html#ad6526edc0a71a3f3a52c90ba6bf2a7b4',1,'fplot_core::scatter_plot_data::m_linestyle'],['../structfplot__core_1_1plot__data__tri__2d.html#afe3e3bbe14b41a52103b5d059936cf07',1,'fplot_core::plot_data_tri_2d::m_linestyle']]], - ['m_5flinewidth_45',['m_linewidth',['../structfplot__core_1_1scatter__plot__data.html#a5f0a764e897869a8b40e5572cf643eff',1,'fplot_core::scatter_plot_data::m_linewidth'],['../structfplot__core_1_1plot__data__tri__2d.html#a64ecd7d92fb4ac2fadcf5103e8e1287e',1,'fplot_core::plot_data_tri_2d::m_linewidth']]], - ['m_5flogscale_46',['m_logscale',['../structfplot__core_1_1plot__axis.html#ae0308633db7a5bc2aa9dfc5aebc0f871',1,'fplot_core::plot_axis']]], - ['m_5fmarkerfrequency_47',['m_markerfrequency',['../structfplot__core_1_1scatter__plot__data.html#afd73c87e0c8333d8e2af840d73aa5467',1,'fplot_core::scatter_plot_data']]], - ['m_5fmarkersize_48',['m_markersize',['../structfplot__core_1_1scatter__plot__data.html#ac32e05719b497dca629b92ccaa2bc40a',1,'fplot_core::scatter_plot_data']]], - ['m_5fmarkertype_49',['m_markertype',['../structfplot__core_1_1scatter__plot__data.html#a5cf90a01f00ed353e00df87c099999ce',1,'fplot_core::scatter_plot_data']]], - ['m_5fmaxrad_50',['m_maxrad',['../structfplot__core_1_1plot__polar.html#a0df675cfa213da3a32e6fa441cec713c',1,'fplot_core::plot_polar']]], - ['m_5fminrad_51',['m_minrad',['../structfplot__core_1_1plot__polar.html#a0e25b033c0faf43fdb1fbb1cd3518f44',1,'fplot_core::plot_polar']]], - ['m_5fname_52',['m_name',['../structfplot__core_1_1plot__data.html#a216bccf5c14d8633926484770e49112a',1,'fplot_core::plot_data']]], - ['m_5fnumberfmt_53',['m_numberfmt',['../structfplot__core_1_1plot__data__histogram.html#aaf1eb78a557ce9d002aaab7ff552a053',1,'fplot_core::plot_data_histogram']]], - ['m_5fopaque_54',['m_opaque',['../structfplot__core_1_1legend.html#a48c213368dcf6ee0cc202c450fbffc4b',1,'fplot_core::legend']]], - ['m_5fplots_55',['m_plots',['../structfplot__core_1_1multiplot.html#af9b41a50d6394721ff548622aa61725d',1,'fplot_core::multiplot']]], - ['m_5fposition_56',['m_position',['../structfplot__core_1_1plot__label.html#a5387d3494c65621d93b54c232e593e49',1,'fplot_core::plot_label']]], - ['m_5frange_57',['m_range',['../structfplot__core_1_1plot__data__error__bars.html#afa0a49c315b65a212f8b3c5dc3ee448d',1,'fplot_core::plot_data_error_bars']]], - ['m_5frows_58',['m_rows',['../structfplot__core_1_1multiplot.html#a65d63e8ce7aa0d1976f8bca150bb33d3',1,'fplot_core::multiplot']]], - ['m_5fset2square_59',['m_set2square',['../structfplot__core_1_1plot__2d.html#a9cd3bd4fc18c1c07e7cb76ca1cf60d7b',1,'fplot_core::plot_2d']]], - ['m_5fsetmap_60',['m_setmap',['../structfplot__core_1_1plot__3d.html#a626a696690a0f9f9851b1764efb1a048',1,'fplot_core::plot_3d']]], - ['m_5fshow_61',['m_show',['../structfplot__core_1_1legend.html#ad57a162b33234017fcacbf6fb5b8c261',1,'fplot_core::legend']]], - ['m_5fshowcolorbar_62',['m_showcolorbar',['../structfplot__core_1_1plot.html#a2835b94785e566562783f2b0e1162c58',1,'fplot_core::plot']]], - ['m_5fshowgrid_63',['m_showgrid',['../structfplot__core_1_1plot.html#a1bb6dd426e8a18a2db83063e68d8270b',1,'fplot_core::plot']]], - ['m_5fshowhidden_64',['m_showhidden',['../structfplot__core_1_1surface__plot.html#ac881849ed85ad0b25e59c00204aa0960',1,'fplot_core::surface_plot']]], - ['m_5fshowtics_65',['m_showtics',['../structfplot__core_1_1colormap.html#ad6a6afb42b139b250b55772c57c4e0bc',1,'fplot_core::colormap']]], - ['m_5fsimplifydata_66',['m_simplifydata',['../structfplot__core_1_1scatter__plot__data.html#a98d9bfb493e1dae5462ac95979fbcbb4',1,'fplot_core::scatter_plot_data']]], - ['m_5fsimplifyfactor_67',['m_simplifyfactor',['../structfplot__core_1_1scatter__plot__data.html#a307b01a8a110ab7a676ac51c05d3074b',1,'fplot_core::scatter_plot_data']]], - ['m_5fsmooth_68',['m_smooth',['../structfplot__core_1_1surface__plot.html#ac54f0f8105db3eb118eb8a05b7ca7857',1,'fplot_core::surface_plot']]], - ['m_5fspecular_69',['m_specular',['../structfplot__core_1_1surface__plot.html#a33443c0ebe2f233cdeb90a2eed6267ad',1,'fplot_core::surface_plot']]], - ['m_5ftermid_70',['m_termid',['../structfplot__core_1_1terminal.html#a3a008d4ce638c31b5fca9866912e7637',1,'fplot_core::terminal']]], - ['m_5fterminal_71',['m_terminal',['../structfplot__core_1_1plot.html#a132bcac346e1cc2fd85c0685ccf7718b',1,'fplot_core::plot::m_terminal'],['../structfplot__core_1_1multiplot.html#a9bae2b4eddaa75ff61ac0abe77175eb1',1,'fplot_core::multiplot::m_terminal']]], - ['m_5ftext_72',['m_text',['../structfplot__core_1_1plot__label.html#a468e4487a8dc9645e105f93f95035f75',1,'fplot_core::plot_label']]], - ['m_5fthetadirection_73',['m_thetadirection',['../structfplot__core_1_1plot__polar.html#a1a0d0c47ed00a432cf4d1911c282a624',1,'fplot_core::plot_polar']]], - ['m_5fthetastart_74',['m_thetastart',['../structfplot__core_1_1plot__polar.html#a1ed3b2f0f0abc341f8da7215764567b9',1,'fplot_core::plot_polar']]], - ['m_5fticlabelfmt_75',['m_ticlabelfmt',['../structfplot__core_1_1plot__axis.html#a3c72c7ce3d24ebdd12ee8d29c85e507f',1,'fplot_core::plot_axis']]], - ['m_5fticsin_76',['m_ticsin',['../structfplot__core_1_1plot.html#a344af6120545e8a12af51866e44709c1',1,'fplot_core::plot']]], - ['m_5ftitle_77',['m_title',['../structfplot__core_1_1terminal.html#af1bc227957d1404beefc0d106cfa72be',1,'fplot_core::terminal::m_title'],['../structfplot__core_1_1plot__axis.html#a42ca46716cc307a467698534f2ce77c7',1,'fplot_core::plot_axis::m_title'],['../structfplot__core_1_1plot.html#a212e144bbc88f69b516a0c268b09c501',1,'fplot_core::plot::m_title'],['../structfplot__core_1_1multiplot.html#ae7b5636092a710de62e0d2ba4eef9752',1,'fplot_core::multiplot::m_title']]], - ['m_5ftransparency_78',['m_transparency',['../structfplot__core_1_1surface__plot.html#acf55e49e1212536b0bca656c8d5f302d',1,'fplot_core::surface_plot']]], - ['m_5fuseautocolor_79',['m_useautocolor',['../structfplot__core_1_1plot__data__colored.html#af7888aadd5a7fa64a6af7875e35eb4b0',1,'fplot_core::plot_data_colored']]], - ['m_5fuseaxislabels_80',['m_useaxislabels',['../structfplot__core_1_1plot__data__bar.html#a5651040ed1984f555b236f97e513c52d',1,'fplot_core::plot_data_bar']]], - ['m_5fuselighting_81',['m_uselighting',['../structfplot__core_1_1surface__plot.html#ad25c21f74ffc0f3b18bce8207621ba70',1,'fplot_core::surface_plot']]], - ['m_5fusevariablesizepoints_82',['m_usevariablesizepoints',['../structfplot__core_1_1scatter__plot__data.html#a720cc3f633f78c871e76ea19b34fe6da',1,'fplot_core::scatter_plot_data']]], - ['m_5fusey2_83',['m_usey2',['../structfplot__core_1_1plot__data__2d.html#a94c27807c2a4c6403514fe5a387624be',1,'fplot_core::plot_data_2d::m_usey2'],['../structfplot__core_1_1plot__2d.html#a5fe52108ffac0ca723f0061111082338',1,'fplot_core::plot_2d::m_usey2'],['../structfplot__core_1_1plot__data__bar.html#a51124b26f051de4150eee0b120942da5',1,'fplot_core::plot_data_bar::m_usey2'],['../structfplot__core_1_1filled__plot__data.html#ae7a3febf099878ab798ce2abf7eba1d9',1,'fplot_core::filled_plot_data::m_usey2']]], - ['m_5fvertposition_84',['m_vertposition',['../structfplot__core_1_1legend.html#add3185b4f64fb74583931a94e4dfb23a',1,'fplot_core::legend']]], - ['m_5fvisible_85',['m_visible',['../structfplot__core_1_1plot__label.html#a83e92e7f824f33f14d4a8f2552f3d28e',1,'fplot_core::plot_label']]], - ['m_5fwindowheight_86',['m_windowheight',['../structfplot__core_1_1terminal.html#a019b0dcd0e49554333c3e71226a30559',1,'fplot_core::terminal']]], - ['m_5fwindowwidth_87',['m_windowwidth',['../structfplot__core_1_1terminal.html#ad4fc168e1f6bac6b589e41b5e4d5d676',1,'fplot_core::terminal']]], - ['m_5fwireframe_88',['m_wireframe',['../structfplot__core_1_1surface__plot__data.html#aa7856569c70fa73c451702de74e3fab6',1,'fplot_core::surface_plot_data::m_wireframe'],['../structfplot__core_1_1tri__surface__plot__data.html#ab488110fbd8508f9c34b62430577dfaf',1,'fplot_core::tri_surface_plot_data::m_wireframe']]], - ['m_5fx_89',['m_x',['../structfplot__core_1_1surface__plot__data.html#aab0f3a84a1a1f29f56da00e954b384e6',1,'fplot_core::surface_plot_data::m_x'],['../structfplot__core_1_1delaunay__tri__2d.html#aaf1c5b0b6f8d17889152d7dc068da75e',1,'fplot_core::delaunay_tri_2d::m_x'],['../structfplot__core_1_1plot__data__tri__2d.html#a7759843e01d8bd9c38aaab6ebbee3968',1,'fplot_core::plot_data_tri_2d::m_x'],['../structfplot__core_1_1tri__surface__plot__data.html#a0d748864ab5f589fdcac1bfa61ac06e1',1,'fplot_core::tri_surface_plot_data::m_x']]], - ['m_5fxaxis_90',['m_xaxis',['../structfplot__core_1_1plot__2d.html#a5c4e65a6726f52d0f2f037615b9250bd',1,'fplot_core::plot_2d::m_xaxis'],['../structfplot__core_1_1plot__3d.html#afd5e9b00e8e1146c9fb84e0d0117c2e3',1,'fplot_core::plot_3d::m_xaxis']]], - ['m_5fxbars_91',['m_xbars',['../structfplot__core_1_1plot__data__error__bars.html#ace03eab48e42aab5b8570d612adc4a75',1,'fplot_core::plot_data_error_bars']]], - ['m_5fy_92',['m_y',['../structfplot__core_1_1surface__plot__data.html#a82294e25bd1321370f5f55e2051bd000',1,'fplot_core::surface_plot_data::m_y'],['../structfplot__core_1_1delaunay__tri__2d.html#a854c12c20c36fc7e9a9dee2e1702bae7',1,'fplot_core::delaunay_tri_2d::m_y'],['../structfplot__core_1_1plot__data__tri__2d.html#a3ee0322ab193a26b6d2e4bdf46894ce3',1,'fplot_core::plot_data_tri_2d::m_y'],['../structfplot__core_1_1tri__surface__plot__data.html#a23462d63b8ffe52541d975e443044f4a',1,'fplot_core::tri_surface_plot_data::m_y']]], - ['m_5fy2axis_93',['m_y2axis',['../structfplot__core_1_1plot__2d.html#a3079dfde8daa66c4a79e3d3454b40e2c',1,'fplot_core::plot_2d']]], - ['m_5fyaxis_94',['m_yaxis',['../structfplot__core_1_1plot__2d.html#ad91b551d76ef69f571f87511de97a3e8',1,'fplot_core::plot_2d::m_yaxis'],['../structfplot__core_1_1plot__3d.html#ade01966b7cbc1f09297e329dafa69e58',1,'fplot_core::plot_3d::m_yaxis']]], - ['m_5fybars_95',['m_ybars',['../structfplot__core_1_1plot__data__error__bars.html#a372aea519cb462cc9e0e31cb5ef1aac9',1,'fplot_core::plot_data_error_bars']]], - ['m_5fz_96',['m_z',['../structfplot__core_1_1surface__plot__data.html#ab528d77583bf8dcde5ab0182f807e6d6',1,'fplot_core::surface_plot_data::m_z'],['../structfplot__core_1_1delaunay__tri__surface.html#a0961e14a2d4ed0d9a7d75e2e2f5619e3',1,'fplot_core::delaunay_tri_surface::m_z'],['../structfplot__core_1_1tri__surface__plot__data.html#a8201960050d3276b59d9bfad7d14ca10',1,'fplot_core::tri_surface_plot_data::m_z']]], - ['m_5fzaxis_97',['m_zaxis',['../structfplot__core_1_1plot__3d.html#acc0b113abeb246892dde2b8782eac0ca',1,'fplot_core::plot_3d']]], - ['m_5fzeroaxis_98',['m_zeroaxis',['../structfplot__core_1_1plot__axis.html#ae1841279b24ce9872404992f5f025265',1,'fplot_core::plot_axis']]], - ['m_5fzintersect_99',['m_zintersect',['../structfplot__core_1_1plot__3d.html#acfcd025c88ae8f15a5ae2ff86021f03c',1,'fplot_core::plot_3d']]], - ['marker_5fasterisk_100',['marker_asterisk',['../namespacefplot__core.html#ad201ee04e5b4c9dacac36626e9db5d17',1,'fplot_core']]], - ['marker_5fempty_5fcircle_101',['marker_empty_circle',['../namespacefplot__core.html#a03ed7e9b32fd8b4242e3c00ac9f1dd90',1,'fplot_core']]], - ['marker_5fempty_5fnabla_102',['marker_empty_nabla',['../namespacefplot__core.html#a1a127e0b722b34196914625744f531fb',1,'fplot_core']]], - ['marker_5fempty_5frhombus_103',['marker_empty_rhombus',['../namespacefplot__core.html#a130b91ed2576d346f9cfa882fce3a370',1,'fplot_core']]], - ['marker_5fempty_5fsquare_104',['marker_empty_square',['../namespacefplot__core.html#a1847a8539a108f2cc75250a0f6d18fc5',1,'fplot_core']]], - ['marker_5fempty_5ftriangle_105',['marker_empty_triangle',['../namespacefplot__core.html#aa8ce197691d6e257ca34c826287661ea',1,'fplot_core']]], - ['marker_5ffilled_5fcircle_106',['marker_filled_circle',['../namespacefplot__core.html#a958ef8c01819437c1bf72976fdf0408c',1,'fplot_core']]], - ['marker_5ffilled_5fnabla_107',['marker_filled_nabla',['../namespacefplot__core.html#a3206bef63b75d34ff4ddd604d347272a',1,'fplot_core']]], - ['marker_5ffilled_5frhombus_108',['marker_filled_rhombus',['../namespacefplot__core.html#a73e3a13a2500d31fe24f6a4e4e6abbe6',1,'fplot_core']]], - ['marker_5ffilled_5fsquare_109',['marker_filled_square',['../namespacefplot__core.html#a925e2ca369cd0c7794c38d6f2c0ae3fc',1,'fplot_core']]], - ['marker_5ffilled_5ftriangle_110',['marker_filled_triangle',['../namespacefplot__core.html#aee19422210a01b45b0a946072071aa89',1,'fplot_core']]], - ['marker_5fplus_111',['marker_plus',['../namespacefplot__core.html#a1c6bffe3a206bcc5400d7e339f482779',1,'fplot_core']]], - ['marker_5fx_112',['marker_x',['../namespacefplot__core.html#aa8584a251e760fd4545d03c0a4506fa6',1,'fplot_core']]] -]; diff --git a/docs/html/search/variables_6.html b/docs/html/search/variables_6.html deleted file mode 100644 index ce4a906..0000000 --- a/docs/html/search/variables_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/html/search/variables_6.js b/docs/html/search/variables_6.js deleted file mode 100644 index 01fc0dd..0000000 --- a/docs/html/search/variables_6.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['plot_5farray_5fsize_5fmismatch_5ferror_0',['plot_array_size_mismatch_error',['../namespacefplot__core.html#a2747b79ccd539b6a6b0edf9bee970ece',1,'fplot_core']]], - ['plot_5fgnuplot_5ffile_5ferror_1',['plot_gnuplot_file_error',['../namespacefplot__core.html#a964aa864e3984d866c12f75323bb6dc1',1,'fplot_core']]], - ['plot_5finvalid_5finput_5ferror_2',['plot_invalid_input_error',['../namespacefplot__core.html#ac53894e99cce3be3c2f7c8ef7e579e98',1,'fplot_core']]], - ['plot_5finvalid_5foperation_5ferror_3',['plot_invalid_operation_error',['../namespacefplot__core.html#adcbe99e541fc04356d322d562e5c67f0',1,'fplot_core']]], - ['plot_5fout_5fof_5fmemory_5ferror_4',['plot_out_of_memory_error',['../namespacefplot__core.html#a002195f1f56bc9edc1ec7dd51c3090d8',1,'fplot_core']]], - ['plotdata_5fmax_5fname_5flength_5',['plotdata_max_name_length',['../namespacefplot__core.html#acfa29ac62a50b61ea009b20a898d45e5',1,'fplot_core']]], - ['polar_5ftheta_5fbottom_6',['polar_theta_bottom',['../namespacefplot__core.html#af3ed8d21802d919dd891a4ea8af0ec91',1,'fplot_core']]], - ['polar_5ftheta_5fccw_7',['polar_theta_ccw',['../namespacefplot__core.html#ae803ea1ff95802b0295be3661e11ce98',1,'fplot_core']]], - ['polar_5ftheta_5fcw_8',['polar_theta_cw',['../namespacefplot__core.html#aff8546dbedb11e1fdf11e0ccdc8d6df0',1,'fplot_core']]], - ['polar_5ftheta_5fleft_9',['polar_theta_left',['../namespacefplot__core.html#a783a98c4f406054602d757133e496c19',1,'fplot_core']]], - ['polar_5ftheta_5fright_10',['polar_theta_right',['../namespacefplot__core.html#ab582c30f182b32ad10fb85a2cdee5a2b',1,'fplot_core']]], - ['polar_5ftheta_5ftop_11',['polar_theta_top',['../namespacefplot__core.html#a4c5d751fa6cfbf02b759a3858d0858f4',1,'fplot_core']]] -]; diff --git a/docs/html/search/variables_7.js b/docs/html/search/variables_7.js deleted file mode 100644 index 3526f50..0000000 --- a/docs/html/search/variables_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['red_0',['red',['../structfplot__core_1_1color.html#a5533de88a3f68d6fafd38c0624bb76c8',1,'fplot_core::color']]] -]; diff --git a/docs/html/splitbar.png b/docs/html/splitbar.png deleted file mode 100644 index fe895f2..0000000 Binary files a/docs/html/splitbar.png and /dev/null differ diff --git a/docs/html/splitbard.png b/docs/html/splitbard.png deleted file mode 100644 index 8367416..0000000 Binary files a/docs/html/splitbard.png and /dev/null differ diff --git a/docs/html/square_2d_example.png b/docs/html/square_2d_example.png deleted file mode 100644 index 1abb747..0000000 Binary files a/docs/html/square_2d_example.png and /dev/null differ diff --git a/docs/html/structdelaunay__s-members.html b/docs/html/structdelaunay__s-members.html deleted file mode 100644 index c1cf66b..0000000 --- a/docs/html/structdelaunay__s-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    delaunay_s Member List
    -
    -
    - -

    This is the complete list of members for delaunay_s, including all inherited members.

    - - - - - - - - -
    end_point (defined in delaunay_s)delaunay_s
    faces (defined in delaunay_s)delaunay_s
    leftmost_he (defined in delaunay_s)delaunay_s
    num_faces (defined in delaunay_s)delaunay_s
    points (defined in delaunay_s)delaunay_s
    rightmost_he (defined in delaunay_s)delaunay_s
    start_point (defined in delaunay_s)delaunay_s
    -
    - - - - diff --git a/docs/html/structdelaunay__s.html b/docs/html/structdelaunay__s.html deleted file mode 100644 index ba9ce88..0000000 --- a/docs/html/structdelaunay__s.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - -fplot: delaunay_s Struct Reference - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    delaunay_s Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - -

    -Public Attributes

    -halfedge_trightmost_he
     
    -halfedge_tleftmost_he
     
    -point2d_tpoints
     
    -face_tfaces
     
    -unsigned int num_faces
     
    -unsigned int start_point
     
    -unsigned int end_point
     
    -

    Detailed Description

    -
    -

    Definition at line 76 of file delaunay.c.

    -

    The documentation for this struct was generated from the following file:
      -
    • C:/Users/jchri/Documents/github/fplot/src/delaunay.c
    • -
    -
    -
    - - - - diff --git a/docs/html/structdelaunay__s.js b/docs/html/structdelaunay__s.js deleted file mode 100644 index b3d1294..0000000 --- a/docs/html/structdelaunay__s.js +++ /dev/null @@ -1,10 +0,0 @@ -var structdelaunay__s = -[ - [ "end_point", "structdelaunay__s.html#a7d813ecb66af0f8915c3c12716bac454", null ], - [ "faces", "structdelaunay__s.html#a467e64a45b77a33c380acbe9755619bc", null ], - [ "leftmost_he", "structdelaunay__s.html#a8f6dab799cf1e2bd667a8233bdfc7bdb", null ], - [ "num_faces", "structdelaunay__s.html#ad28b79be55758109d928b53d144467c5", null ], - [ "points", "structdelaunay__s.html#aef4dea51bcfd8e97f75c17a21da36602", null ], - [ "rightmost_he", "structdelaunay__s.html#ad57f8a1f4caa4cd79f29b81e02cc4f96", null ], - [ "start_point", "structdelaunay__s.html#a480aba060c5153cd433390ab18880537", null ] -]; \ No newline at end of file diff --git a/docs/html/structface__s-members.html b/docs/html/structface__s-members.html deleted file mode 100644 index 913f325..0000000 --- a/docs/html/structface__s-members.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    face_s Member List
    -
    -
    - -

    This is the complete list of members for face_s, including all inherited members.

    - - - -
    he (defined in face_s)face_s
    num_verts (defined in face_s)face_s
    -
    - - - - diff --git a/docs/html/structface__s.html b/docs/html/structface__s.html deleted file mode 100644 index 3a2d3d2..0000000 --- a/docs/html/structface__s.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - -fplot: face_s Struct Reference - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    face_s Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -halfedge_the
     
    -unsigned int num_verts
     
    -

    Detailed Description

    -
    -

    Definition at line 63 of file delaunay.c.

    -

    The documentation for this struct was generated from the following file:
      -
    • C:/Users/jchri/Documents/github/fplot/src/delaunay.c
    • -
    -
    -
    - - - - diff --git a/docs/html/structface__s.js b/docs/html/structface__s.js deleted file mode 100644 index f6d7d89..0000000 --- a/docs/html/structface__s.js +++ /dev/null @@ -1,5 +0,0 @@ -var structface__s = -[ - [ "he", "structface__s.html#a4d8cdae83dd5edce54a0f2cf6c6dda83", null ], - [ "num_verts", "structface__s.html#a35bc4eab3a58a1d2067dd35f665b9845", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1color-members.html b/docs/html/structfplot__core_1_1color-members.html deleted file mode 100644 index 4fe68ee..0000000 --- a/docs/html/structfplot__core_1_1color-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::color Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::color, including all inherited members.

    - - - - - - -
    bluefplot_core::color
    copy_fromclr_copy_fromfplot_core::color
    greenfplot_core::color
    redfplot_core::color
    to_hex_stringclr_to_hex_stringfplot_core::color
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1color.html b/docs/html/structfplot__core_1_1color.html deleted file mode 100644 index 8a1c78a..0000000 --- a/docs/html/structfplot__core_1_1color.html +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - - -fplot: fplot_core::color Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::color Type Reference
    -
    -
    - -

    Constructs a linearly spaced array. - More...

    - - - - - - - - -

    -Public Member Functions

    procedure, pass, public to_hex_string clr_to_hex_string
     Returns the color in hexadecimal format.
     
    procedure, pass, public copy_from clr_copy_from
     Copies another color to this color.
     
    - - - - - - - - - - -

    -Public Attributes

    integer(int32), public red = 0
     The red component of the color (must be between 0 and 255).
     
    integer(int32), public green = 0
     The green component of the color (must be between 0 and 255).
     
    integer(int32), public blue = 255
     The blue component of the color (must be between 0 and 255).
     
    -

    Detailed Description

    -

    Constructs a linearly spaced array.

    -
    Parameters
    - - - - -
    [in]startThe first value in the array.
    [in]finishThe last value in the array.
    [in]nptsThe number of values in the array.
    -
    -
    -
    Returns
    The resulting array.
    -

    Construcst a logarithmically spaced array.

    -
    Parameters
    - - - - -
    [in]startThe exponent of the first value in the array.
    [in]finishThe exponent of the final value in the array.
    [in]nptsThe number of values in the array.
    -
    -
    -
    Returns
    The resulting array.
    -

    Constructs two matrices (X and Y) from x and y data arrays.

    -
    Parameters
    - - - -
    [in]xAn M-element array of x data points.
    [in]yAn N-element array of y data points.
    -
    -
    -
    Returns
    An N-by-M-by-2 array containing the x data matrix on the first page of the array, and the y data matrix on the second page.
    -

    Describes an RGB color.

    - -

    Definition at line 358 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ copy_from()

    - -
    -
    - - - - -
    procedure, pass, public fplot_core::color::copy_from
    -
    - -

    Copies another color to this color.

    -
    Syntax
    subroutine copy_from(class(color) this, class(color) clr)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe color object.
    [in]clrThe color to copy.
    -
    -
    - -

    Definition at line 385 of file fplot_core.f90.

    - -
    -
    - -

    ◆ to_hex_string()

    - -
    -
    - - - - -
    procedure, pass, public fplot_core::color::to_hex_string
    -
    - -

    Returns the color in hexadecimal format.

    -
    Syntax
    pure character(6) function clr_to_hex_string(class(color) this)
    -
    -
    Parameters
    - - -
    [in]thisThe color object.
    -
    -
    -
    Returns
    A string containing the hexadecimal equivalent.
    - -

    Definition at line 375 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ blue

    - -
    -
    - - - - -
    integer(int32), public fplot_core::color::blue = 255
    -
    - -

    The blue component of the color (must be between 0 and 255).

    - -

    Definition at line 364 of file fplot_core.f90.

    - -
    -
    - -

    ◆ green

    - -
    -
    - - - - -
    integer(int32), public fplot_core::color::green = 0
    -
    - -

    The green component of the color (must be between 0 and 255).

    - -

    Definition at line 362 of file fplot_core.f90.

    - -
    -
    - -

    ◆ red

    - -
    -
    - - - - -
    integer(int32), public fplot_core::color::red = 0
    -
    - -

    The red component of the color (must be between 0 and 255).

    - -

    Definition at line 360 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1color.js b/docs/html/structfplot__core_1_1color.js deleted file mode 100644 index e209a94..0000000 --- a/docs/html/structfplot__core_1_1color.js +++ /dev/null @@ -1,8 +0,0 @@ -var structfplot__core_1_1color = -[ - [ "copy_from", "structfplot__core_1_1color.html#a08fa8d6f601ba8641ec91e1f43e1c586", null ], - [ "to_hex_string", "structfplot__core_1_1color.html#a82f6fa701820ba719c3e3266a4e6ebd0", null ], - [ "blue", "structfplot__core_1_1color.html#a208e32c7d0b0798118575c2234f4cc94", null ], - [ "green", "structfplot__core_1_1color.html#aa710db5291759d15263ecfb69a8d693c", null ], - [ "red", "structfplot__core_1_1color.html#a5533de88a3f68d6fafd38c0624bb76c8", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1colormap-members.html b/docs/html/structfplot__core_1_1colormap-members.html deleted file mode 100644 index 07ae4ee..0000000 --- a/docs/html/structfplot__core_1_1colormap-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::colormap Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1colormap.html b/docs/html/structfplot__core_1_1colormap.html deleted file mode 100644 index 5365967..0000000 --- a/docs/html/structfplot__core_1_1colormap.html +++ /dev/null @@ -1,564 +0,0 @@ - - - - - - - -fplot: fplot_core::colormap Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::colormap Type Referenceabstract
    -
    -
    - -

    A colormap object for a surface plot. - More...

    -
    -Inheritance diagram for fplot_core::colormap:
    -
    -
    - - -fplot_core::plot_object -fplot_core::cool_colormap -fplot_core::custom_colormap -fplot_core::earth_colormap -fplot_core::grey_colormap -fplot_core::hot_colormap -fplot_core::parula_colormap -fplot_core::rainbow_colormap - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_command_string cm_get_cmd
     Gets the GNUPLOT command string to represent this colormap object.
     
    procedure(cm_get_string_result), deferred, public get_color_string cm_get_string_result
     Gets the GNUPLOT string defining the color distribution. For instance, this routine could return the string: '0 "dark-blue", 1 "blue", 2 "cyan", 3 "green", 4 "yellow", 5 "orange", 6 "red", 7 "dark-red"'. This string would result in a rainbow type map.
     
    procedure, public get_label cm_get_label
     Gets the label to associate with the colorbar.
     
    procedure, public set_label cm_set_label
     Sets the label to associate with the colorbar.
     
    procedure, public get_horizontal cm_get_horizontal
     Gets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public set_horizontal cm_set_horizontal
     Sets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public get_draw_border cm_get_draw_border
     Gets a logical value determining if the border should be drawn.
     
    procedure, public set_draw_border cm_set_draw_border
     Sets a logical value determining if the border should be drawn.
     
    procedure, public get_show_tics cm_get_show_tics
     Gets a logical value determining if the tic marks should be drawn.
     
    procedure, public set_show_tics cm_set_show_tics
     Sets a logical value determining if the tic marks should be drawn.
     
    - - - - - - - - - - -

    -Public Attributes

    logical m_horizontal = .false.
     The colormap should be drawn horizontally.
     
    logical m_drawborder = .true.
     Draw the colormap border.
     
    logical m_showtics = .true.
     Show the tic marks.
     
    - - - - -

    -Private Attributes

    character(len=:), allocatable m_label
     The label to associate with the colormap.
     
    -

    Detailed Description

    -

    A colormap object for a surface plot.

    - -

    Definition at line 2377 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure(cm_get_string_result), deferred, public fplot_core::colormap::get_color_string
    -
    -pure virtual
    -
    - -

    Gets the GNUPLOT string defining the color distribution. For instance, this routine could return the string: '0 "dark-blue", 1 "blue", 2 "cyan", 3 "green", 4 "yellow", 5 "orange", 6 "red", 7 "dark-red"'. This string would result in a rainbow type map.

    - -

    Implemented in fplot_core::cool_colormap, fplot_core::custom_colormap, fplot_core::earth_colormap, fplot_core::grey_colormap, fplot_core::hot_colormap, fplot_core::parula_colormap, and fplot_core::rainbow_colormap.

    - -

    Definition at line 2403 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::colormap::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this colormap object.

    -
    Syntax
    character(len = :) function, allocatable :: get_command_string(class(colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe colormap object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 2398 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_draw_border()

    - -
    -
    - - - - -
    procedure, public fplot_core::colormap::get_draw_border
    -
    - -

    Gets a logical value determining if the border should be drawn.

    -
    Syntax
    logical get_draw_border(class(colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe colormap object.
    -
    -
    -
    Returns
    Returns true if the border should be drawn; else, false.
    - -

    Definition at line 2458 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_horizontal()

    - -
    -
    - - - - -
    procedure, public fplot_core::colormap::get_horizontal
    -
    - -

    Gets a logical value determining if the colormap should be drawn horizontally and below the plot.

    -
    Syntax
    logical get_horizontal(class(colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe colormap object.
    -
    -
    -
    Returns
    Returns true if the colormap should be drawn horizontally; else, false.
    - -

    Definition at line 2435 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_label()

    - -
    -
    - - - - -
    procedure, public fplot_core::colormap::get_label
    -
    - -

    Gets the label to associate with the colorbar.

    -
    Syntax
    character(len = :) get_label(class(colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe colormap object.
    -
    -
    -
    Returns
    The label.
    - -

    Definition at line 2413 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_show_tics()

    - -
    -
    - - - - -
    procedure, public fplot_core::colormap::get_show_tics
    -
    - -

    Gets a logical value determining if the tic marks should be drawn.

    -
    Syntax
    logical get_show_tics(class(colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe colormap object.
    -
    -
    -
    Returns
    Returns true if the tic marks should be drawn; else, false.
    - -

    Definition at line 2480 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_draw_border()

    - -
    -
    - - - - -
    procedure, public fplot_core::colormap::set_draw_border
    -
    - -

    Sets a logical value determining if the border should be drawn.

    -
    Syntax
    subroutine set_draw_border(class(colormap) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe colormap object.
    [in]xSet to true if the border should be drawn; else, false.
    -
    -
    - -

    Definition at line 2469 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_horizontal()

    - -
    -
    - - - - -
    procedure, public fplot_core::colormap::set_horizontal
    -
    - -

    Sets a logical value determining if the colormap should be drawn horizontally and below the plot.

    -
    Syntax
    subroutine set_horizontal(class(colormap) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe colormap object.
    [in]xSet to true if the colormap should be drawn horizontally; else, false.
    -
    -
    - -

    Definition at line 2447 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_label()

    - -
    -
    - - - - -
    procedure, public fplot_core::colormap::set_label
    -
    - -

    Sets the label to associate with the colorbar.

    -
    Syntax
    subroutine set_label(class(colormap) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe colormap object.
    [in]xThe label.
    -
    -
    - -

    Definition at line 2423 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_show_tics()

    - -
    -
    - - - - -
    procedure, public fplot_core::colormap::set_show_tics
    -
    - -

    Sets a logical value determining if the tic marks should be drawn.

    -
    Syntax
    subroutine set_show_tics(class(colormap) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe colormap object.
    [in]xSet to true if the tic marks should be drawn; else, false.
    -
    -
    -

    Sets a logical value determining if the border should be drawn.

    -
    Syntax
    subroutine set_draw_border(class(colormap) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe colormap object.
    [in]xSet to true if the border should be drawn; else, false.
    -
    -
    - -

    Definition at line 2502 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_drawborder

    - -
    -
    - - - - -
    logical fplot_core::colormap::m_drawborder = .true.
    -
    - -

    Draw the colormap border.

    - -

    Definition at line 2384 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_horizontal

    - -
    -
    - - - - -
    logical fplot_core::colormap::m_horizontal = .false.
    -
    - -

    The colormap should be drawn horizontally.

    - -

    Definition at line 2382 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_label

    - -
    -
    - - - - - -
    - - - - -
    character(len = :), allocatable fplot_core::colormap::m_label
    -
    -private
    -
    - -

    The label to associate with the colormap.

    - -

    Definition at line 2380 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_showtics

    - -
    -
    - - - - -
    logical fplot_core::colormap::m_showtics = .true.
    -
    - -

    Show the tic marks.

    - -

    Definition at line 2386 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1colormap.js b/docs/html/structfplot__core_1_1colormap.js deleted file mode 100644 index 1c0df66..0000000 --- a/docs/html/structfplot__core_1_1colormap.js +++ /dev/null @@ -1,17 +0,0 @@ -var structfplot__core_1_1colormap = -[ - [ "get_color_string", "structfplot__core_1_1colormap.html#a03f0bef95c6a9c61ad04c63b84f8b6d5", null ], - [ "get_command_string", "structfplot__core_1_1colormap.html#a6c06d5831f8e2bb173f2cabfc89b471e", null ], - [ "get_draw_border", "structfplot__core_1_1colormap.html#adfde936a6669f562b17fba87e8ae8588", null ], - [ "get_horizontal", "structfplot__core_1_1colormap.html#a11e1d8c4d776814ba9b931dea5eba55f", null ], - [ "get_label", "structfplot__core_1_1colormap.html#ae06b58a108c1805c3ab2138dc31bd326", null ], - [ "get_show_tics", "structfplot__core_1_1colormap.html#a0800d95684d4756cae09f365a8e93b5d", null ], - [ "set_draw_border", "structfplot__core_1_1colormap.html#acb679819160a82793304bcfdde53a623", null ], - [ "set_horizontal", "structfplot__core_1_1colormap.html#a8530b43520ee1929a510dc8aec57e324", null ], - [ "set_label", "structfplot__core_1_1colormap.html#ac595c1361a36891870faf9d676a66d78", null ], - [ "set_show_tics", "structfplot__core_1_1colormap.html#a4cfc2819c20b439ba562026d5ca54615", null ], - [ "m_drawborder", "structfplot__core_1_1colormap.html#a3995a2a4d9661f991749686740db28ea", null ], - [ "m_horizontal", "structfplot__core_1_1colormap.html#a85b7ea506d0dfd74b7a851e190e5e9e0", null ], - [ "m_label", "structfplot__core_1_1colormap.html#a410c0452382dd1965701fd92f3c89db1", null ], - [ "m_showtics", "structfplot__core_1_1colormap.html#ad6a6afb42b139b250b55772c57c4e0bc", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1colormap.png b/docs/html/structfplot__core_1_1colormap.png deleted file mode 100644 index d0664d9..0000000 Binary files a/docs/html/structfplot__core_1_1colormap.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1cool__colormap-members.html b/docs/html/structfplot__core_1_1cool__colormap-members.html deleted file mode 100644 index ea1a1a6..0000000 --- a/docs/html/structfplot__core_1_1cool__colormap-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::cool_colormap Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1cool__colormap.html b/docs/html/structfplot__core_1_1cool__colormap.html deleted file mode 100644 index e0756aa..0000000 --- a/docs/html/structfplot__core_1_1cool__colormap.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -fplot: fplot_core::cool_colormap Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::cool_colormap Type Reference
    -
    -
    - -

    Defines a colormap consisting of "cool" colors. - More...

    -
    -Inheritance diagram for fplot_core::cool_colormap:
    -
    -
    - - -fplot_core::colormap -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_color_string ccm_get_clr
     Gets the GNUPLOT string defining the color distribution.
     
    - Public Member Functions inherited from fplot_core::colormap
    procedure, public get_command_string cm_get_cmd
     Gets the GNUPLOT command string to represent this colormap object.
     
    procedure, public get_label cm_get_label
     Gets the label to associate with the colorbar.
     
    procedure, public set_label cm_set_label
     Sets the label to associate with the colorbar.
     
    procedure, public get_horizontal cm_get_horizontal
     Gets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public set_horizontal cm_set_horizontal
     Sets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public get_draw_border cm_get_draw_border
     Gets a logical value determining if the border should be drawn.
     
    procedure, public set_draw_border cm_set_draw_border
     Sets a logical value determining if the border should be drawn.
     
    procedure, public get_show_tics cm_get_show_tics
     Gets a logical value determining if the tic marks should be drawn.
     
    procedure, public set_show_tics cm_set_show_tics
     Sets a logical value determining if the tic marks should be drawn.
     
    - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::colormap
    logical m_horizontal = .false.
     The colormap should be drawn horizontally.
     
    logical m_drawborder = .true.
     Draw the colormap border.
     
    logical m_showtics = .true.
     Show the tic marks.
     
    -

    Detailed Description

    -

    Defines a colormap consisting of "cool" colors.

    - -

    Definition at line 2539 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::cool_colormap::get_color_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT string defining the color distribution.

    -
    Syntax
    character(len = :) function, allocatable get_color_string(class(cool_colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe cool_colormap object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::colormap.

    - -

    Definition at line 2550 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1cool__colormap.js b/docs/html/structfplot__core_1_1cool__colormap.js deleted file mode 100644 index b6cf772..0000000 --- a/docs/html/structfplot__core_1_1cool__colormap.js +++ /dev/null @@ -1,4 +0,0 @@ -var structfplot__core_1_1cool__colormap = -[ - [ "get_color_string", "structfplot__core_1_1cool__colormap.html#ab2806549f28dd4a194d79904497f03ce", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1cool__colormap.png b/docs/html/structfplot__core_1_1cool__colormap.png deleted file mode 100644 index d1b4cdd..0000000 Binary files a/docs/html/structfplot__core_1_1cool__colormap.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1custom__colormap-members.html b/docs/html/structfplot__core_1_1custom__colormap-members.html deleted file mode 100644 index a970556..0000000 --- a/docs/html/structfplot__core_1_1custom__colormap-members.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::custom_colormap Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1custom__colormap.html b/docs/html/structfplot__core_1_1custom__colormap.html deleted file mode 100644 index 3c327c9..0000000 --- a/docs/html/structfplot__core_1_1custom__colormap.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - -fplot: fplot_core::custom_colormap Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::custom_colormap Type Reference
    -
    -
    - -

    Defines a custom colormap that utilizes the FORCOLORMAP library to provide the map. - More...

    -
    -Inheritance diagram for fplot_core::custom_colormap:
    -
    -
    - - -fplot_core::colormap -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_color_string custom_get_clr
     Gets the GNUPLOT string defining the color distribution.
     
    procedure, public set_colormap custom_set
     Sets the FORCOLORMAP colormap object.
     
    procedure, public get_colormap custom_get
     Gets a pointer to the FORCOLORMAP colormap object.
     
    - Public Member Functions inherited from fplot_core::colormap
    procedure, public get_command_string cm_get_cmd
     Gets the GNUPLOT command string to represent this colormap object.
     
    procedure, public get_label cm_get_label
     Gets the label to associate with the colorbar.
     
    procedure, public set_label cm_set_label
     Sets the label to associate with the colorbar.
     
    procedure, public get_horizontal cm_get_horizontal
     Gets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public set_horizontal cm_set_horizontal
     Sets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public get_draw_border cm_get_draw_border
     Gets a logical value determining if the border should be drawn.
     
    procedure, public set_draw_border cm_set_draw_border
     Sets a logical value determining if the border should be drawn.
     
    procedure, public get_show_tics cm_get_show_tics
     Gets a logical value determining if the tic marks should be drawn.
     
    procedure, public set_show_tics cm_set_show_tics
     Sets a logical value determining if the tic marks should be drawn.
     
    - - - -

    -Private Attributes

    class(cmap), pointer, private m_map => null()
     
    - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::colormap
    logical m_horizontal = .false.
     The colormap should be drawn horizontally.
     
    logical m_drawborder = .true.
     Draw the colormap border.
     
    logical m_showtics = .true.
     Show the tic marks.
     
    -

    Detailed Description

    -

    Defines a custom colormap that utilizes the FORCOLORMAP library to provide the map.

    - -

    Definition at line 2604 of file fplot_core.f90.

    -

    Constructor & Destructor Documentation

    - -

    ◆ custom_final()

    - -
    -
    - - - - - -
    - - - - -
    final fplot_core::custom_colormap::custom_final
    -
    -final
    -
    - -

    Definition at line 2607 of file fplot_core.f90.

    - -
    -
    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::custom_colormap::get_color_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT string defining the color distribution.

    -
    Syntax
    character(len = :) function, allocatable get_color_string(class(custom_colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe custom_colormap object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::colormap.

    - -

    Definition at line 2617 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_colormap()

    - -
    -
    - - - - -
    procedure, public fplot_core::custom_colormap::get_colormap
    -
    - -

    Gets a pointer to the FORCOLORMAP colormap object.

    -
    Syntax
    class(cmap), pointer function get_colormap(class(custom_colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe custom_colormap object.
    -
    -
    -
    Returns
    A pointer to the FORCOLORMAP colormap object.
    - -

    Definition at line 2649 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_colormap()

    - -
    -
    - - - - -
    procedure, public fplot_core::custom_colormap::set_colormap
    -
    - -

    Sets the FORCOLORMAP colormap object.

    -
    Syntax
    subroutine set_colormap(class(custom_colormap) this, class(cmap) x, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe custom_colormap object.
    [in]xThe FORCOLORMAP colormap object. The custom_colormap object stores a copy of this object; therefore, any changes made to x after calls to this routine will not impact the behavior of the custom_colormap object.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if a memory allocation error occurs.
    • -
    -
    -
    -
    - -

    Definition at line 2639 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_map

    - -
    -
    - - - - - -
    - - - - -
    class(cmap), pointer, private fplot_core::custom_colormap::m_map => null()
    -
    -private
    -
    - -

    Definition at line 2605 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1custom__colormap.js b/docs/html/structfplot__core_1_1custom__colormap.js deleted file mode 100644 index c2f5f9a..0000000 --- a/docs/html/structfplot__core_1_1custom__colormap.js +++ /dev/null @@ -1,6 +0,0 @@ -var structfplot__core_1_1custom__colormap = -[ - [ "get_color_string", "structfplot__core_1_1custom__colormap.html#acfb9922b4fc8f462310c166156b7d898", null ], - [ "get_colormap", "structfplot__core_1_1custom__colormap.html#ae99878b9e1218314af1adc982af6092d", null ], - [ "set_colormap", "structfplot__core_1_1custom__colormap.html#ae4c07ac867f7fd74ca4219a7e859d0e8", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1custom__colormap.png b/docs/html/structfplot__core_1_1custom__colormap.png deleted file mode 100644 index caa5ab7..0000000 Binary files a/docs/html/structfplot__core_1_1custom__colormap.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1delaunay__tri__2d-members.html b/docs/html/structfplot__core_1_1delaunay__tri__2d-members.html deleted file mode 100644 index a7b5d42..0000000 --- a/docs/html/structfplot__core_1_1delaunay__tri__2d-members.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::delaunay_tri_2d Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1delaunay__tri__2d.html b/docs/html/structfplot__core_1_1delaunay__tri__2d.html deleted file mode 100644 index cade37d..0000000 --- a/docs/html/structfplot__core_1_1delaunay__tri__2d.html +++ /dev/null @@ -1,434 +0,0 @@ - - - - - - - -fplot: fplot_core::delaunay_tri_2d Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::delaunay_tri_2d Type Reference
    -
    -
    - -

    Provides a container for a 2D Delaunay triangulation. - More...

    -
    -Inheritance diagram for fplot_core::delaunay_tri_2d:
    -
    -
    - - -fplot_core::delaunay_tri_surface - -
    - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public create d2d_init
     Creates an unconstrained 2D Delaunay triangulation given a set of x-y points.
     
    procedure, public get_point_count d2d_get_pt_count
     Gets the number of points in the triangulation.
     
    procedure, public get_triangle_count d2d_get_tri_count
     Gets the number of triangles in the triangulation.
     
    procedure, public get_points_x d2d_get_x_pts
     Gets the x-coordinates of each point.
     
    procedure, public get_points_y d2d_get_y_pts
     Gets the y-coordinates of each point.
     
    procedure, public get_indices d2d_get_tris
     Gets a list of the indices of each triangle vertex.
     
    procedure, public find_triangle d2d_get_tri_with_pt
     Finds the triangle that contains the specified point.
     
    - - - - - - - -

    -Public Attributes

    real(real64), dimension(:), allocatable m_y
     An array of the y-coordinates of each point.
     
    integer(int32), dimension(:,:), allocatable m_indices
     A 3-column matrix containing the indices of each triangle's vertex.
     
    - - - - -

    -Private Attributes

    real(real64), dimension(:), allocatable m_x
     An array of the x-coordinates of each point.
     
    -

    Detailed Description

    -

    Provides a container for a 2D Delaunay triangulation.

    -
    Remarks
    This type utilizes the GEOMPACK triangulation code available at https://people.sc.fsu.edu/~jburkardt/f77_src/geompack/geompack.html.
    - -

    Definition at line 6765 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ create()

    - -
    -
    - - - - -
    procedure, public fplot_core::delaunay_tri_2d::create
    -
    - -

    Creates an unconstrained 2D Delaunay triangulation given a set of x-y points.

    -
    Syntax
    subroutine create(class(delaunay_tri_2d) this, real(real64) x(:), real(real64) y(:), class(errors) err)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe delaunay_tri_2d object.
    [in]xAn N-element array containing the x-coordinates of each data point.
    [in]yAn N-element array containing the y-coordinates of each data point.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not the same size.
    • -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory available.
    • -
    -
    -
    -
    - -

    Definition at line 6798 of file fplot_core.f90.

    - -
    -
    - -

    ◆ find_triangle()

    - -
    -
    - - - - -
    procedure, public fplot_core::delaunay_tri_2d::find_triangle
    -
    - -

    Finds the triangle that contains the specified point.

    -
    Syntax
    integer(int32) function find_triangle(class(delaunay_tri_2d) this, real(real64) x, real(real64) y)
    -
    -
    Parameters
    - - - - -
    [in]thisThe delaunay_tri_2d object.
    [in]xThe x-coordinate of the point.
    [in]yThe y-coordinate of the point.
    -
    -
    -
    Returns
    Returns the index of the triangle containing the specified point. If no triangle contains the specified point, a value of -1 is returned.
    - -

    Definition at line 6864 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_indices()

    - -
    -
    - - - - -
    procedure, public fplot_core::delaunay_tri_2d::get_indices
    -
    - -

    Gets a list of the indices of each triangle vertex.

    -
    Syntax
    integer(int32)(:,:) function get_indices(class(delaunay_tri_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe delaunay_tri_2d object.
    -
    -
    -
    Returns
    An N-by-3 matrix with each column containing the index of the vertex of each triangle where N is the number of triangles.
    - -

    Definition at line 6849 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_point_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::delaunay_tri_2d::get_point_count
    -
    - -

    Gets the number of points in the triangulation.

    -
    Syntax
    integer(int32) function get_point_count(class(delaunay_tri_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe delaunay_tri_2d object.
    -
    -
    -
    Returns
    The number of points in the triangulation.
    - -

    Definition at line 6808 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_points_x()

    - -
    -
    - - - - -
    procedure, public fplot_core::delaunay_tri_2d::get_points_x
    -
    - -

    Gets the x-coordinates of each point.

    -
    Syntax
    real(real64)(:) function get_points_x(class(delaunay_tri_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe delaunay_tri_2d object.
    -
    -
    -
    Returns
    An array of the x-coordinates of each point.
    - -

    Definition at line 6828 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_points_y()

    - -
    -
    - - - - -
    procedure, public fplot_core::delaunay_tri_2d::get_points_y
    -
    - -

    Gets the y-coordinates of each point.

    -
    Syntax
    real(real64)(:) function get_points_y(class(delaunay_tri_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe delaunay_tri_2d object.
    -
    -
    -
    Returns
    An array of the y-coordinates of each point.
    - -

    Definition at line 6838 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_triangle_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::delaunay_tri_2d::get_triangle_count
    -
    - -

    Gets the number of triangles in the triangulation.

    -
    Syntax
    integer(int32) function get_triangle_count(class(delaunay_tri_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe delaunay_tri_2d object.
    -
    -
    -
    Returns
    The number of triangles in the triangulation.
    - -

    Definition at line 6818 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_indices

    - -
    -
    - - - - -
    integer(int32), dimension(:,:), allocatable fplot_core::delaunay_tri_2d::m_indices
    -
    - -

    A 3-column matrix containing the indices of each triangle's vertex.

    - -

    Definition at line 6773 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_x

    - -
    -
    - - - - - -
    - - - - -
    real(real64), dimension(:), allocatable fplot_core::delaunay_tri_2d::m_x
    -
    -private
    -
    - -

    An array of the x-coordinates of each point.

    - -

    Definition at line 6768 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_y

    - -
    -
    - - - - -
    real(real64), dimension(:), allocatable fplot_core::delaunay_tri_2d::m_y
    -
    - -

    An array of the y-coordinates of each point.

    - -

    Definition at line 6770 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1delaunay__tri__2d.js b/docs/html/structfplot__core_1_1delaunay__tri__2d.js deleted file mode 100644 index 086d215..0000000 --- a/docs/html/structfplot__core_1_1delaunay__tri__2d.js +++ /dev/null @@ -1,13 +0,0 @@ -var structfplot__core_1_1delaunay__tri__2d = -[ - [ "create", "structfplot__core_1_1delaunay__tri__2d.html#aba77dca84f08dbfb2b115d9d9fdd9aba", null ], - [ "find_triangle", "structfplot__core_1_1delaunay__tri__2d.html#aa0c1780f8231cd2abf87151a1914a318", null ], - [ "get_indices", "structfplot__core_1_1delaunay__tri__2d.html#a2a39c08bcaa4819d25684d8dbb3ee508", null ], - [ "get_point_count", "structfplot__core_1_1delaunay__tri__2d.html#ae0e68fb12ac6ce70da9bf03a4f77778d", null ], - [ "get_points_x", "structfplot__core_1_1delaunay__tri__2d.html#abdaa5a6e385627ba0c0525c4b9d7427b", null ], - [ "get_points_y", "structfplot__core_1_1delaunay__tri__2d.html#acaac501f173450d34594d3b6f36caa51", null ], - [ "get_triangle_count", "structfplot__core_1_1delaunay__tri__2d.html#a74c3e196311190b91f8889f756edf630", null ], - [ "m_indices", "structfplot__core_1_1delaunay__tri__2d.html#abe18770a04e61374f94b679151c47314", null ], - [ "m_x", "structfplot__core_1_1delaunay__tri__2d.html#aaf1c5b0b6f8d17889152d7dc068da75e", null ], - [ "m_y", "structfplot__core_1_1delaunay__tri__2d.html#a854c12c20c36fc7e9a9dee2e1702bae7", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1delaunay__tri__2d.png b/docs/html/structfplot__core_1_1delaunay__tri__2d.png deleted file mode 100644 index fd462a3..0000000 Binary files a/docs/html/structfplot__core_1_1delaunay__tri__2d.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1delaunay__tri__surface-members.html b/docs/html/structfplot__core_1_1delaunay__tri__surface-members.html deleted file mode 100644 index 391552e..0000000 --- a/docs/html/structfplot__core_1_1delaunay__tri__surface-members.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - - - - - - diff --git a/docs/html/structfplot__core_1_1delaunay__tri__surface.html b/docs/html/structfplot__core_1_1delaunay__tri__surface.html deleted file mode 100644 index f3f2c65..0000000 --- a/docs/html/structfplot__core_1_1delaunay__tri__surface.html +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - -fplot: fplot_core::delaunay_tri_surface Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::delaunay_tri_surface Type Reference
    -
    -
    - -

    Provides a type describing a triangulated surface. - More...

    -
    -Inheritance diagram for fplot_core::delaunay_tri_surface:
    -
    -
    - - -fplot_core::delaunay_tri_2d - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public define_function_values dts_define_fcn
     Defines the function values that correspond to the x and y data points.
     
    procedure, public get_points_z dts_get_z
     Gets the z-coordinates of each point.
     
    generic, public evaluate dts_interp_1
     Evaluates the function at the requested point by means of linear interpolation.
     
    generic, public evaluate dts_interp_2
     Evaluates the function at the requested point by means of linear interpolation.
     
    procedure dts_interp_1 dts_interp_1
     
    procedure dts_interp_2 dts_interp_2
     
    - Public Member Functions inherited from fplot_core::delaunay_tri_2d
    procedure, public create d2d_init
     Creates an unconstrained 2D Delaunay triangulation given a set of x-y points.
     
    procedure, public get_point_count d2d_get_pt_count
     Gets the number of points in the triangulation.
     
    procedure, public get_triangle_count d2d_get_tri_count
     Gets the number of triangles in the triangulation.
     
    procedure, public get_points_x d2d_get_x_pts
     Gets the x-coordinates of each point.
     
    procedure, public get_points_y d2d_get_y_pts
     Gets the y-coordinates of each point.
     
    procedure, public get_indices d2d_get_tris
     Gets a list of the indices of each triangle vertex.
     
    procedure, public find_triangle d2d_get_tri_with_pt
     Finds the triangle that contains the specified point.
     
    - - - - -

    -Private Attributes

    real(real64), dimension(:), allocatable m_z
     An array of the z-coordinates of each point.
     
    - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::delaunay_tri_2d
    real(real64), dimension(:), allocatable m_y
     An array of the y-coordinates of each point.
     
    integer(int32), dimension(:,:), allocatable m_indices
     A 3-column matrix containing the indices of each triangle's vertex.
     
    -

    Detailed Description

    -

    Provides a type describing a triangulated surface.

    - -

    Definition at line 7032 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_function_values()

    - -
    -
    - - - - -
    procedure, public fplot_core::delaunay_tri_surface::define_function_values
    -
    - -

    Defines the function values that correspond to the x and y data points.

    -
    Syntax
    subroutine define_function_values(class(delaunay_tri_surface) this, real(real64) z(:), class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe delaunay_tri_surface object.
    [in]zAn N-element array containing the function values for each x and y coordinate. Notice, the x and y coordinates must already be defined prior to calling this routine.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if z is not the same size as the number of x-y data points.
    • -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory available.
    • -
    • PLOT_INVALID_OPERATION_ERROR: Occurs if the x-y point data has not been defined.
    • -
    -
    -
    -
    - -

    Definition at line 7061 of file fplot_core.f90.

    - -
    -
    - -

    ◆ dts_interp_1()

    - -
    -
    - - - - -
    procedure fplot_core::delaunay_tri_surface::dts_interp_1
    -
    - -

    Definition at line 7088 of file fplot_core.f90.

    - -
    -
    - -

    ◆ dts_interp_2()

    - -
    -
    - - - - -
    procedure fplot_core::delaunay_tri_surface::dts_interp_2
    -
    - -

    Definition at line 7089 of file fplot_core.f90.

    - -
    -
    - -

    ◆ evaluate() [1/2]

    - -
    -
    - - - - -
    generic, public fplot_core::delaunay_tri_surface::evaluate
    -
    - -

    Evaluates the function at the requested point by means of linear interpolation.

    -
    Syntax
    real(real64) function evaluate(class(delaunay_tri_surface) this, real(real64) x, real(real64) y)
    -
    -
    Parameters
    - - - - -
    [in]thisThe delaunay_tri_surface object.
    [in]xThe x-coordinate at which to evaluate the function.
    [in]yThe y-coordinate at which to evaluate the function.
    -
    -
    -
    Returns
    The function value. If the point (x, y) does not lie within the range of defined values, then a value of NaN is returned.
    - -

    Definition at line 7086 of file fplot_core.f90.

    - -
    -
    - -

    ◆ evaluate() [2/2]

    - -
    -
    - - - - -
    generic, public fplot_core::delaunay_tri_surface::evaluate
    -
    - -

    Evaluates the function at the requested point by means of linear interpolation.

    -
    Syntax
    real(real64) function evaluate(class(delaunay_tri_surface) this, real(real64) x, real(real64) y)
    -
    -
    Parameters
    - - - - -
    [in]thisThe delaunay_tri_surface object.
    [in]xThe x-coordinate at which to evaluate the function.
    [in]yThe y-coordinate at which to evaluate the function.
    -
    -
    -
    Returns
    The function value. If the point (x, y) does not lie within the range of defined values, then a value of NaN is returned.
    - -

    Definition at line 7086 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_points_z()

    - -
    -
    - - - - -
    procedure, public fplot_core::delaunay_tri_surface::get_points_z
    -
    - -

    Gets the z-coordinates of each point.

    -
    Syntax
    real(real64)(:) function get_points_x(class(delaunay_tri_surface) this)
    -
    -
    Parameters
    - - -
    [in]thisThe delaunay_tri_2d object.
    -
    -
    -
    Returns
    An array of the z-coordinates of each point.
    - -

    Definition at line 7071 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_z

    - -
    -
    - - - - - -
    - - - - -
    real(real64), dimension(:), allocatable fplot_core::delaunay_tri_surface::m_z
    -
    -private
    -
    - -

    An array of the z-coordinates of each point.

    - -

    Definition at line 7035 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1delaunay__tri__surface.js b/docs/html/structfplot__core_1_1delaunay__tri__surface.js deleted file mode 100644 index 0d9044a..0000000 --- a/docs/html/structfplot__core_1_1delaunay__tri__surface.js +++ /dev/null @@ -1,8 +0,0 @@ -var structfplot__core_1_1delaunay__tri__surface = -[ - [ "define_function_values", "structfplot__core_1_1delaunay__tri__surface.html#a79ce4c8ed7d243417890fc037f474170", null ], - [ "evaluate", "structfplot__core_1_1delaunay__tri__surface.html#a7f77f147b8d68123f4a782ffa7bdd0be", null ], - [ "evaluate", "structfplot__core_1_1delaunay__tri__surface.html#aaed4c47865165797dab80d6fd11762b8", null ], - [ "get_points_z", "structfplot__core_1_1delaunay__tri__surface.html#a87a65ab9d6e614217b738e40bcca3688", null ], - [ "m_z", "structfplot__core_1_1delaunay__tri__surface.html#a0961e14a2d4ed0d9a7d75e2e2f5619e3", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1delaunay__tri__surface.png b/docs/html/structfplot__core_1_1delaunay__tri__surface.png deleted file mode 100644 index 8f68888..0000000 Binary files a/docs/html/structfplot__core_1_1delaunay__tri__surface.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1earth__colormap-members.html b/docs/html/structfplot__core_1_1earth__colormap-members.html deleted file mode 100644 index a839501..0000000 --- a/docs/html/structfplot__core_1_1earth__colormap-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::earth_colormap Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1earth__colormap.html b/docs/html/structfplot__core_1_1earth__colormap.html deleted file mode 100644 index 33bb3ab..0000000 --- a/docs/html/structfplot__core_1_1earth__colormap.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -fplot: fplot_core::earth_colormap Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::earth_colormap Type Reference
    -
    -
    - -

    Defines an earthy-colored colormap. - More...

    -
    -Inheritance diagram for fplot_core::earth_colormap:
    -
    -
    - - -fplot_core::colormap -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_color_string ecm_get_clr
     Gets the GNUPLOT string defining the color distribution.
     
    - Public Member Functions inherited from fplot_core::colormap
    procedure, public get_command_string cm_get_cmd
     Gets the GNUPLOT command string to represent this colormap object.
     
    procedure, public get_label cm_get_label
     Gets the label to associate with the colorbar.
     
    procedure, public set_label cm_set_label
     Sets the label to associate with the colorbar.
     
    procedure, public get_horizontal cm_get_horizontal
     Gets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public set_horizontal cm_set_horizontal
     Sets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public get_draw_border cm_get_draw_border
     Gets a logical value determining if the border should be drawn.
     
    procedure, public set_draw_border cm_set_draw_border
     Sets a logical value determining if the border should be drawn.
     
    procedure, public get_show_tics cm_get_show_tics
     Gets a logical value determining if the tic marks should be drawn.
     
    procedure, public set_show_tics cm_set_show_tics
     Sets a logical value determining if the tic marks should be drawn.
     
    - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::colormap
    logical m_horizontal = .false.
     The colormap should be drawn horizontally.
     
    logical m_drawborder = .true.
     Draw the colormap border.
     
    logical m_showtics = .true.
     Show the tic marks.
     
    -

    Detailed Description

    -

    Defines an earthy-colored colormap.

    - -

    Definition at line 2587 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::earth_colormap::get_color_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT string defining the color distribution.

    -
    Syntax
    character(len = :) function, allocatable get_color_string(class(earth_colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe earth_colormap object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::colormap.

    - -

    Definition at line 2598 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1earth__colormap.js b/docs/html/structfplot__core_1_1earth__colormap.js deleted file mode 100644 index e4c3b3b..0000000 --- a/docs/html/structfplot__core_1_1earth__colormap.js +++ /dev/null @@ -1,4 +0,0 @@ -var structfplot__core_1_1earth__colormap = -[ - [ "get_color_string", "structfplot__core_1_1earth__colormap.html#ab54eea4aa31fdbb7368e0245143200ea", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1earth__colormap.png b/docs/html/structfplot__core_1_1earth__colormap.png deleted file mode 100644 index b7973f9..0000000 Binary files a/docs/html/structfplot__core_1_1earth__colormap.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1filled__plot__data-members.html b/docs/html/structfplot__core_1_1filled__plot__data-members.html deleted file mode 100644 index cf3b50a..0000000 --- a/docs/html/structfplot__core_1_1filled__plot__data-members.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::filled_plot_data Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1filled__plot__data.html b/docs/html/structfplot__core_1_1filled__plot__data.html deleted file mode 100644 index 0871c85..0000000 --- a/docs/html/structfplot__core_1_1filled__plot__data.html +++ /dev/null @@ -1,424 +0,0 @@ - - - - - - - -fplot: fplot_core::filled_plot_data Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::filled_plot_data Type Reference
    -
    -
    - -

    Defines a two-dimensional filled plot data set. - More...

    -
    -Inheritance diagram for fplot_core::filled_plot_data:
    -
    -
    - - -fplot_core::plot_data_colored -fplot_core::plot_data -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_axes_string fpd_get_axes_cmd
     Gets the GNUPLOT command string defining which axes the data is to be plotted against.
     
    procedure, public get_draw_against_y2 fpd_get_draw_against_y2
     Gets a value determining if the data should be plotted against the secondary y-axis.
     
    procedure, public set_draw_against_y2 fpd_set_draw_against_y2
     Sets a value determining if the data should be plotted against the secondary y-axis.
     
    procedure, public get_command_string fpd_get_cmd
     Gets the GNUPLOT command string to represent this filled_plot_data object.
     
    procedure, public get_data_string fpd_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    procedure, public define_data fpd_define_data
     Defines the data set.
     
    - Public Member Functions inherited from fplot_core::plot_data_colored
    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - - - - - - - - -

    -Public Attributes

    real(real64), dimension(:,:), allocatable m_data
     The data set (column 1 = x, column 2 = y, column 3 = constraint y)
     
    - Public Attributes inherited from fplot_core::plot_data_colored
    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    - - - - -

    -Private Attributes

    logical m_usey2 = .false.
     Plot against the secondary y-axis.
     
    -

    Detailed Description

    -

    Defines a two-dimensional filled plot data set.

    - -

    Definition at line 7586 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::filled_plot_data::define_data
    -
    - -

    Defines the data set.

    -
    Syntax
    subroutine define_data(class(filled_plot_data) this, real(real64) x(:), real(real64) y(:), real(real64) yc(:))
    -
    -
    Parameters
    - - - - - - -
    [in,out]thisThe filled_plot_data object.
    [in]xAn N-element array containing the x coordinate data.
    [in]yAn N-element array containing the y coordinate data.
    [in]ycAn N-element array containing the constraining curve y coordinate data.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if x and y are not the same size.
    • -
    -
    -
    -
    - -

    Definition at line 7669 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_axes_string()

    - -
    -
    - - - - -
    procedure, public fplot_core::filled_plot_data::get_axes_string
    -
    - -

    Gets the GNUPLOT command string defining which axes the data is to be plotted against.

    -
    Syntax
    character(len = :) function, allocatable get_axis_string(class(filled_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe filled_plot_data object.
    -
    -
    -
    Returns
    The command string.
    - -

    Definition at line 7603 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::filled_plot_data::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this filled_plot_data object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(filled_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe filled_plot_data object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 7638 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::filled_plot_data::get_data_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string containing the actual data to plot.

    -
    Syntax
    character(len = :) function, allocatable get_data_string(class(filled_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe filled_plot_data object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_data.

    - -

    Definition at line 7649 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_draw_against_y2()

    - -
    -
    - - - - -
    procedure, public fplot_core::filled_plot_data::get_draw_against_y2
    -
    - -

    Gets a value determining if the data should be plotted against the secondary y-axis.

    -
    Syntax
    pure logical function get_draw_against_y2(class(filled_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe filled_plot_data object.
    -
    -
    -
    Returns
    Returns true if the data should be plotted against the secondary y-axis; else, false to plot against the primary y-axis.
    - -

    Definition at line 7615 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_draw_against_y2()

    - -
    -
    - - - - -
    procedure, public fplot_core::filled_plot_data::set_draw_against_y2
    -
    - -

    Sets a value determining if the data should be plotted against the secondary y-axis.

    -
    Syntax
    subroutine set_draw_against_y2(class(filled_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe filled_plot_data object.
    [in]xSet to true if the data should be plotted against the secondary y-axis; else, false to plot against the primary y-axis.
    -
    -
    - -

    Definition at line 7627 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_data

    - -
    -
    - - - - -
    real(real64), dimension(:,:), allocatable fplot_core::filled_plot_data::m_data
    -
    - -

    The data set (column 1 = x, column 2 = y, column 3 = constraint y)

    - -

    Definition at line 7591 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_usey2

    - -
    -
    - - - - - -
    - - - - -
    logical fplot_core::filled_plot_data::m_usey2 = .false.
    -
    -private
    -
    - -

    Plot against the secondary y-axis.

    - -

    Definition at line 7589 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1filled__plot__data.js b/docs/html/structfplot__core_1_1filled__plot__data.js deleted file mode 100644 index 21d9f8d..0000000 --- a/docs/html/structfplot__core_1_1filled__plot__data.js +++ /dev/null @@ -1,11 +0,0 @@ -var structfplot__core_1_1filled__plot__data = -[ - [ "define_data", "structfplot__core_1_1filled__plot__data.html#a3913a71653b75380dc1012c5006d773b", null ], - [ "get_axes_string", "structfplot__core_1_1filled__plot__data.html#a032e1917321920d2a04cf03b03f67946", null ], - [ "get_command_string", "structfplot__core_1_1filled__plot__data.html#a5a173b2b8171077de2d77ee10a24904b", null ], - [ "get_data_string", "structfplot__core_1_1filled__plot__data.html#a1a29d4771e4255a27dc5236407d14144", null ], - [ "get_draw_against_y2", "structfplot__core_1_1filled__plot__data.html#a2946d6a05362b47c7f01603edf4a6690", null ], - [ "set_draw_against_y2", "structfplot__core_1_1filled__plot__data.html#aecc19b2be5696b2210ea1c7b7bd58a58", null ], - [ "m_data", "structfplot__core_1_1filled__plot__data.html#a0237475fa98251222f26abe67f43cf61", null ], - [ "m_usey2", "structfplot__core_1_1filled__plot__data.html#ae7a3febf099878ab798ce2abf7eba1d9", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1filled__plot__data.png b/docs/html/structfplot__core_1_1filled__plot__data.png deleted file mode 100644 index dea4e25..0000000 Binary files a/docs/html/structfplot__core_1_1filled__plot__data.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1grey__colormap-members.html b/docs/html/structfplot__core_1_1grey__colormap-members.html deleted file mode 100644 index b8ec19b..0000000 --- a/docs/html/structfplot__core_1_1grey__colormap-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::grey_colormap Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1grey__colormap.html b/docs/html/structfplot__core_1_1grey__colormap.html deleted file mode 100644 index 18c11ac..0000000 --- a/docs/html/structfplot__core_1_1grey__colormap.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -fplot: fplot_core::grey_colormap Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::grey_colormap Type Reference
    -
    -
    - -

    Defines a grey-scaled colormap. - More...

    -
    -Inheritance diagram for fplot_core::grey_colormap:
    -
    -
    - - -fplot_core::colormap -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_color_string gcm_get_clr
     Gets the GNUPLOT string defining the color distribution.
     
    - Public Member Functions inherited from fplot_core::colormap
    procedure, public get_command_string cm_get_cmd
     Gets the GNUPLOT command string to represent this colormap object.
     
    procedure, public get_label cm_get_label
     Gets the label to associate with the colorbar.
     
    procedure, public set_label cm_set_label
     Sets the label to associate with the colorbar.
     
    procedure, public get_horizontal cm_get_horizontal
     Gets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public set_horizontal cm_set_horizontal
     Sets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public get_draw_border cm_get_draw_border
     Gets a logical value determining if the border should be drawn.
     
    procedure, public set_draw_border cm_set_draw_border
     Sets a logical value determining if the border should be drawn.
     
    procedure, public get_show_tics cm_get_show_tics
     Gets a logical value determining if the tic marks should be drawn.
     
    procedure, public set_show_tics cm_set_show_tics
     Sets a logical value determining if the tic marks should be drawn.
     
    - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::colormap
    logical m_horizontal = .false.
     The colormap should be drawn horizontally.
     
    logical m_drawborder = .true.
     Draw the colormap border.
     
    logical m_showtics = .true.
     Show the tic marks.
     
    -

    Detailed Description

    -

    Defines a grey-scaled colormap.

    - -

    Definition at line 2571 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::grey_colormap::get_color_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT string defining the color distribution.

    -
    Syntax
    character(len = :) function, allocatable get_color_string(class(grey_colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe grey_colormap object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::colormap.

    - -

    Definition at line 2582 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1grey__colormap.js b/docs/html/structfplot__core_1_1grey__colormap.js deleted file mode 100644 index b00f510..0000000 --- a/docs/html/structfplot__core_1_1grey__colormap.js +++ /dev/null @@ -1,4 +0,0 @@ -var structfplot__core_1_1grey__colormap = -[ - [ "get_color_string", "structfplot__core_1_1grey__colormap.html#aec585307d1ab8f9fb7a039ac9695f58f", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1grey__colormap.png b/docs/html/structfplot__core_1_1grey__colormap.png deleted file mode 100644 index e5ad9b8..0000000 Binary files a/docs/html/structfplot__core_1_1grey__colormap.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1hot__colormap-members.html b/docs/html/structfplot__core_1_1hot__colormap-members.html deleted file mode 100644 index 0a75840..0000000 --- a/docs/html/structfplot__core_1_1hot__colormap-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::hot_colormap Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1hot__colormap.html b/docs/html/structfplot__core_1_1hot__colormap.html deleted file mode 100644 index b288dca..0000000 --- a/docs/html/structfplot__core_1_1hot__colormap.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -fplot: fplot_core::hot_colormap Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::hot_colormap Type Reference
    -
    -
    - -

    Defines a colormap consisting of "hot" colors. - More...

    -
    -Inheritance diagram for fplot_core::hot_colormap:
    -
    -
    - - -fplot_core::colormap -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_color_string hcm_get_clr
     Gets the GNUPLOT string defining the color distribution.
     
    - Public Member Functions inherited from fplot_core::colormap
    procedure, public get_command_string cm_get_cmd
     Gets the GNUPLOT command string to represent this colormap object.
     
    procedure, public get_label cm_get_label
     Gets the label to associate with the colorbar.
     
    procedure, public set_label cm_set_label
     Sets the label to associate with the colorbar.
     
    procedure, public get_horizontal cm_get_horizontal
     Gets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public set_horizontal cm_set_horizontal
     Sets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public get_draw_border cm_get_draw_border
     Gets a logical value determining if the border should be drawn.
     
    procedure, public set_draw_border cm_set_draw_border
     Sets a logical value determining if the border should be drawn.
     
    procedure, public get_show_tics cm_get_show_tics
     Gets a logical value determining if the tic marks should be drawn.
     
    procedure, public set_show_tics cm_set_show_tics
     Sets a logical value determining if the tic marks should be drawn.
     
    - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::colormap
    logical m_horizontal = .false.
     The colormap should be drawn horizontally.
     
    logical m_drawborder = .true.
     Draw the colormap border.
     
    logical m_showtics = .true.
     Show the tic marks.
     
    -

    Detailed Description

    -

    Defines a colormap consisting of "hot" colors.

    - -

    Definition at line 2523 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::hot_colormap::get_color_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT string defining the color distribution.

    -
    Syntax
    character(len = :) function, allocatable get_color_string(class(hot_colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe hot_colormap object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::colormap.

    - -

    Definition at line 2534 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1hot__colormap.js b/docs/html/structfplot__core_1_1hot__colormap.js deleted file mode 100644 index 2fc8ca3..0000000 --- a/docs/html/structfplot__core_1_1hot__colormap.js +++ /dev/null @@ -1,4 +0,0 @@ -var structfplot__core_1_1hot__colormap = -[ - [ "get_color_string", "structfplot__core_1_1hot__colormap.html#af5a6ff4e313cf7c2f2b0091e8d25396b", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1hot__colormap.png b/docs/html/structfplot__core_1_1hot__colormap.png deleted file mode 100644 index dd0fe1c..0000000 Binary files a/docs/html/structfplot__core_1_1hot__colormap.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1latex__terminal-members.html b/docs/html/structfplot__core_1_1latex__terminal-members.html deleted file mode 100644 index 796f020..0000000 --- a/docs/html/structfplot__core_1_1latex__terminal-members.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::latex_terminal Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1latex__terminal.html b/docs/html/structfplot__core_1_1latex__terminal.html deleted file mode 100644 index 94174b3..0000000 --- a/docs/html/structfplot__core_1_1latex__terminal.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - -fplot: fplot_core::latex_terminal Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::latex_terminal Type Reference
    -
    -
    - -

    Defines a GNUPLOT LATEX terminal object. - More...

    -
    -Inheritance diagram for fplot_core::latex_terminal:
    -
    -
    - - -fplot_core::terminal -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_filename tex_get_filename
     Gets the filename for the output LATEX file.
     
    procedure, public set_filename tex_set_filename
     Sets the filename for the output LATEX file.
     
    procedure, public get_id_string tex_get_term_string
     Retrieves a GNUPLOT terminal identifier string.
     
    procedure, public get_command_string tex_get_command_string
     Returns the appropriate GNUPLOT command string to establish appropriate parameters.
     
    - Public Member Functions inherited from fplot_core::terminal
    procedure, public get_window_width term_get_window_width
     Gets the width of the plot window.
     
    procedure, public set_window_width term_set_window_width
     Sets the width of the plot window.
     
    procedure, public get_window_height term_get_window_height
     Gets the height of the plot window.
     
    procedure, public set_window_height term_set_window_height
     Sets the height of the plot window.
     
    procedure, public get_command_string term_get_command_string
     Returns the appropriate GNUPLOT command string to establish appropriate parameters.
     
    procedure, public get_plot_window_number term_get_plot_window_number
     Gets the targeted plot window number.
     
    procedure, public set_plot_window_number term_set_plot_window_number
     Sets the targeted plot window number.
     
    procedure, public get_title term_get_title
     Gets the plot window's title.
     
    procedure, public set_title term_set_title
     Sets the plot window's title.
     
    procedure, public get_font_name term_get_font_name
     Gets the name of the font used for text displayed by the graph.
     
    procedure, public set_font_name term_set_font_name
     Sets the name of the font used for text displayed by the graph.
     
    procedure, public get_font_size term_get_font_size
     Gets the size of the font used by the graph.
     
    procedure, public set_font_size term_set_font_size
     Sets the size of the font used by the graph.
     
    - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    character(len=gnuplot_max_path_lengthm_fname = "default.tex"
     The filename of the PNG file to write.
     
    - Public Attributes inherited from fplot_core::terminal
    integer(int32) m_windowwidth = GNUPLOT_DEFAULT_WINDOW_WIDTH
     The window width, in pixels.
     
    integer(int32) m_termid = 0
     The plot window number.
     
    character(len=gnuplot_max_label_lengthm_title = ""
     The plot window title.
     
    logical m_hastitle = .false.
     Determines if a plot title is defined.
     
    character(len=gnuplot_max_label_lengthm_fontname = GNUPLOT_DEFAULT_FONTNAME
     The font used by the graph.
     
    integer(int32) m_fontsize = GNUPLOT_DEFAULT_FONT_SIZE
     The size of the font used by the graph.
     
    - - - - -

    -Private Attributes

    character(len=14) m_id = "epslatex color"
     The terminal ID string.
     
    -

    Detailed Description

    -

    Defines a GNUPLOT LATEX terminal object.

    - -

    Definition at line 1599 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::latex_terminal::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to establish appropriate parameters.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(latex_terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe terminal object.
    -
    -
    -
    Returns
    The GNUPLOT command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 1646 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_filename()

    - -
    -
    - - - - -
    procedure, public fplot_core::latex_terminal::get_filename
    -
    - -

    Gets the filename for the output LATEX file.

    -
    Syntax
    character(len = :) function, allocatable get_filename(class(latex_terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe latex_terminal object.
    -
    -
    -
    Returns
    The filename, including the file extension (.tex).
    - -

    Definition at line 1615 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::latex_terminal::get_id_string
    -
    -virtual
    -
    - -

    Retrieves a GNUPLOT terminal identifier string.

    -
    Syntax
    character(len = :) function, allocatable get_id_string(class(latex_terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe latex_terminal object.
    -
    -
    -
    Returns
    The string.
    - -

    Implements fplot_core::terminal.

    - -

    Definition at line 1635 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_filename()

    - -
    -
    - - - - -
    procedure, public fplot_core::latex_terminal::set_filename
    -
    - -

    Sets the filename for the output LATEX file.

    -
    Syntax
    subroutine set_filename(class(latex_terminal) this, character(len = *) txt)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe latex_terminal object.
    [in]txtThe filename, including the file extension (.tex).
    -
    -
    - -

    Definition at line 1625 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_fname

    - -
    -
    - - - - -
    character(len = gnuplot_max_path_length) fplot_core::latex_terminal::m_fname = "default.tex"
    -
    - -

    The filename of the PNG file to write.

    - -

    Definition at line 1604 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_id

    - -
    -
    - - - - - -
    - - - - -
    character(len = 14) fplot_core::latex_terminal::m_id = "epslatex color"
    -
    -private
    -
    - -

    The terminal ID string.

    - -

    Definition at line 1602 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1latex__terminal.js b/docs/html/structfplot__core_1_1latex__terminal.js deleted file mode 100644 index 7d589d5..0000000 --- a/docs/html/structfplot__core_1_1latex__terminal.js +++ /dev/null @@ -1,9 +0,0 @@ -var structfplot__core_1_1latex__terminal = -[ - [ "get_command_string", "structfplot__core_1_1latex__terminal.html#a7b000e38ed8bb89bdeb10077855714a6", null ], - [ "get_filename", "structfplot__core_1_1latex__terminal.html#a4a9465f48c206d9953fd9540b9d28129", null ], - [ "get_id_string", "structfplot__core_1_1latex__terminal.html#ae59d44e616fbad4e93bf1fc7159a44d2", null ], - [ "set_filename", "structfplot__core_1_1latex__terminal.html#a599576bce43bdcbead02d4958d6646ea", null ], - [ "m_fname", "structfplot__core_1_1latex__terminal.html#a13910c1c0e215397ebc3125423f2ad3b", null ], - [ "m_id", "structfplot__core_1_1latex__terminal.html#a3f10978cef31279b35dda56bdb5bca48", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1latex__terminal.png b/docs/html/structfplot__core_1_1latex__terminal.png deleted file mode 100644 index 107f319..0000000 Binary files a/docs/html/structfplot__core_1_1latex__terminal.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1legend-members.html b/docs/html/structfplot__core_1_1legend-members.html deleted file mode 100644 index c4bbb89..0000000 --- a/docs/html/structfplot__core_1_1legend-members.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - - - - - - diff --git a/docs/html/structfplot__core_1_1legend.html b/docs/html/structfplot__core_1_1legend.html deleted file mode 100644 index 93e65bd..0000000 --- a/docs/html/structfplot__core_1_1legend.html +++ /dev/null @@ -1,759 +0,0 @@ - - - - - - - -fplot: fplot_core::legend Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::legend Type Reference
    -
    -
    - -

    Defines a legend object. - More...

    -
    -Inheritance diagram for fplot_core::legend:
    -
    -
    - - -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_draw_inside_axes leg_get_inside
     Gets a value determining if the legend should be drawn inside the axes border (true), or outside the axes border (false).
     
    procedure, public set_draw_inside_axes leg_set_inside
     Sets a value determining if the legend should be drawn inside the axes border (true), or outside the axes border (false).
     
    procedure, public get_draw_border leg_get_box
     Gets a value determining if the legend should have a border.
     
    procedure, public set_draw_border leg_set_box
     Sets a value determining if the legend should have a border.
     
    procedure, public get_horizontal_position leg_get_horz_pos
     Gets the horizontal position of the legend.
     
    procedure, public set_horizontal_position leg_set_horz_pos
     Sets the horizontal position of the legend.
     
    procedure, public get_vertical_position leg_get_vert_pos
     Gets the vertical position of the legend.
     
    procedure, public set_vertical_position leg_set_vert_pos
     Gets the vertical position of the legend.
     
    procedure, public get_is_visible leg_get_visible
     Gets a value determining if the legend is visible.
     
    procedure, public set_is_visible leg_set_visible
     Sets a value determining if the legend is visible.
     
    procedure, public get_command_string leg_get_command_txt
     Gets the command string defining the legend properties.
     
    procedure, public get_layout leg_get_layout
     Gets the layout of the legend.
     
    procedure, public set_layout leg_set_layout
     Sets the layout of the legend.
     
    procedure, public get_is_opaque leg_get_opaque
     Gets a value determining if the legend is to be opaque.
     
    procedure, public set_is_opaque leg_set_opaque
     Sets a value determining if the legend is to be opaque.
     
    - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    logical m_box = .true.
     Draw a box around the legend.
     
    character(len=20) m_horzposition = LEGEND_RIGHT
     Defines the horizontal position.
     
    character(len=20) m_vertposition = LEGEND_TOP
     Defines the vertical position.
     
    logical m_show = .false.
     Determines if the legend is visible.
     
    character(len=20) m_layout = LEGEND_ARRANGE_VERTICALLY
     Determines the legend layout.
     
    logical m_opaque = .true.
     Opaque background?
     
    - - - - -

    -Private Attributes

    logical m_inside = .true.
     Legend on inside or outside of axes.
     
    -

    Detailed Description

    -

    Defines a legend object.

    - -

    Definition at line 2115 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::legend::get_command_string
    -
    -virtual
    -
    - -

    Gets the command string defining the legend properties.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(legend) this)
    -
    -
    Parameters
    - - -
    [in]thisThe legend object.
    -
    -
    -
    Returns
    The GNUPLOT command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 2249 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_draw_border()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::get_draw_border
    -
    - -

    Gets a value determining if the legend should have a border.

    -
    Syntax
    pure logical function get_draw_border(class(legend) this)
    -
    -
    Parameters
    - - -
    [in]thisThe legend object.
    -
    -
    -
    Returns
    The logical value.
    - -

    Definition at line 2163 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_draw_inside_axes()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::get_draw_inside_axes
    -
    - -

    Gets a value determining if the legend should be drawn inside the axes border (true), or outside the axes border (false).

    -
    Syntax
    pure logical function get_draw_inside_axes(class(legend) this)
    -
    -
    Parameters
    - - -
    [in]thisThe legend object.
    -
    -
    -
    Returns
    The logical value.
    - -

    Definition at line 2142 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_horizontal_position()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::get_horizontal_position
    -
    - -

    Gets the horizontal position of the legend.

    -
    Syntax
    character(len = :) function, allocatable get_horizontal_position(class(legend) this)
    -
    -
    Parameters
    - - -
    [in]thisThe legend object.
    -
    -
    -
    Returns
    The horizontal position of the legend (LEGEND_LEFT, LEGEND_CENTER, or LEGEND_RIGHT).
    - -

    Definition at line 2184 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_is_opaque()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::get_is_opaque
    -
    - -

    Gets a value determining if the legend is to be opaque.

    -
    Syntax
    logical pure function get_is_opaque(class(legend) this)
    -
    -
    Parameters
    - - -
    [in]thisThe legend object.
    -
    -
    -
    Returns
    True if the legend is to be opaque; else, false.
    - -

    Definition at line 2281 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_is_visible()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::get_is_visible
    -
    - -

    Gets a value determining if the legend is visible.

    -
    Syntax
    pure logical function get_is_visible(class(legend) this)
    -
    -
    Parameters
    - - -
    [in]thisThe legend object.
    -
    -
    -
    Returns
    The logical value.
    - -

    Definition at line 2229 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_layout()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::get_layout
    -
    - -

    Gets the layout of the legend.

    -
    Syntax
    character(len = :) pure function get_layout(class(legend) this)
    -
    -
    Parameters
    - - -
    [in]thisThe legend object.
    -
    -
    -
    Returns
    The layout type, either LEGEND_ARRANGE_VERTICALLY or LEGEND_ARRANGE_HORIZONTALLY.
    - -

    Definition at line 2260 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_vertical_position()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::get_vertical_position
    -
    - -

    Gets the vertical position of the legend.

    -
    Syntax
    character(len = :) function, allocatable get_vertical_position(class(legend) this)
    -
    -
    Parameters
    - - -
    [in]thisThe legend object.
    -
    -
    -
    Returns
    The vertical position of the legend (LEGEND_TOP, LEGEND_CENTER, or LEGEND_BOTTOM).
    - -

    Definition at line 2207 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_draw_border()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::set_draw_border
    -
    - -

    Sets a value determining if the legend should have a border.

    -
    Syntax
    subroutine set_draw_border(class(legend) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe legend object.
    [in]xThe logical value.
    -
    -
    - -

    Definition at line 2173 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_draw_inside_axes()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::set_draw_inside_axes
    -
    - -

    Sets a value determining if the legend should be drawn inside the axes border (true), or outside the axes border (false).

    -
    Syntax
    subroutine set_draw_inside_axes(class(legend) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe legend object.
    [in]xThe logical value.
    -
    -
    - -

    Definition at line 2153 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_horizontal_position()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::set_horizontal_position
    -
    - -

    Sets the horizontal position of the legend.

    -
    Syntax
    subroutine set_horizontal_position(class(legend) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe legend object.
    xThe horizontal position of the legend. The parameter must be set to one of the following: LEGEND_LEFT, LEGEND_CENTER, or LEGEND_RIGHT. If not, the default LEGEND_RIGHT will be used.
    -
    -
    - -

    Definition at line 2196 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_is_opaque()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::set_is_opaque
    -
    - -

    Sets a value determining if the legend is to be opaque.

    -
    Syntax
    subroutine set_is_opaque(class(legend) this)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe legend object.
    [in]xTrue if the legend is to be opaque; else, false.
    -
    -
    - -

    Definition at line 2291 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_is_visible()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::set_is_visible
    -
    - -

    Sets a value determining if the legend is visible.

    -
    Syntax
    subroutine set_is_visible(class(legend) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe legend object.
    [in]xThe logical value.
    -
    -
    - -

    Definition at line 2239 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_layout()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::set_layout
    -
    - -

    Sets the layout of the legend.

    -
    Syntax
    subroutine set_layout(class(legend) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe legend object.
    [in]xThe layout type, either LEGEND_ARRANGE_VERTICALLY or LEGEND_ARRANGE_HORIZONTALLY.
    -
    -
    - -

    Definition at line 2271 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_vertical_position()

    - -
    -
    - - - - -
    procedure, public fplot_core::legend::set_vertical_position
    -
    - -

    Gets the vertical position of the legend.

    -
    Syntax
    subroutine set_vertical_position(class(legend) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe legend object.
    xThe vertical position of the legend. The parameter must be set to one of the following: LEGEND_TOP, LEGEND_CENTER, or LEGEND_BOTTOM. If not, the default LEGEND_TOP will be used.
    -
    -
    - -

    Definition at line 2219 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_box

    - -
    -
    - - - - -
    logical fplot_core::legend::m_box = .true.
    -
    - -

    Draw a box around the legend.

    - -

    Definition at line 2120 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_horzposition

    - -
    -
    - - - - -
    character(len = 20) fplot_core::legend::m_horzposition = LEGEND_RIGHT
    -
    - -

    Defines the horizontal position.

    - -

    Definition at line 2122 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_inside

    - -
    -
    - - - - - -
    - - - - -
    logical fplot_core::legend::m_inside = .true.
    -
    -private
    -
    - -

    Legend on inside or outside of axes.

    - -

    Definition at line 2118 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_layout

    - -
    -
    - - - - -
    character(len = 20) fplot_core::legend::m_layout = LEGEND_ARRANGE_VERTICALLY
    -
    - -

    Determines the legend layout.

    - -

    Definition at line 2128 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_opaque

    - -
    -
    - - - - -
    logical fplot_core::legend::m_opaque = .true.
    -
    - -

    Opaque background?

    - -

    Definition at line 2130 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_show

    - -
    -
    - - - - -
    logical fplot_core::legend::m_show = .false.
    -
    - -

    Determines if the legend is visible.

    - -

    Definition at line 2126 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_vertposition

    - -
    -
    - - - - -
    character(len = 20) fplot_core::legend::m_vertposition = LEGEND_TOP
    -
    - -

    Defines the vertical position.

    - -

    Definition at line 2124 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1legend.js b/docs/html/structfplot__core_1_1legend.js deleted file mode 100644 index 4fa3501..0000000 --- a/docs/html/structfplot__core_1_1legend.js +++ /dev/null @@ -1,25 +0,0 @@ -var structfplot__core_1_1legend = -[ - [ "get_command_string", "structfplot__core_1_1legend.html#af7e10649da6f0aeb6c94ddad33496ed4", null ], - [ "get_draw_border", "structfplot__core_1_1legend.html#a1ed58a0a0f295b937932dc954d154464", null ], - [ "get_draw_inside_axes", "structfplot__core_1_1legend.html#a88c74437f8906b6d1247e662b95d8a52", null ], - [ "get_horizontal_position", "structfplot__core_1_1legend.html#a6e4a288471d81d99105f2781dbc0944a", null ], - [ "get_is_opaque", "structfplot__core_1_1legend.html#a116ec03262065d54826f531c5b2e636e", null ], - [ "get_is_visible", "structfplot__core_1_1legend.html#aba8ff6b836a1fd2fefe41fc58751834b", null ], - [ "get_layout", "structfplot__core_1_1legend.html#a0692cc15c73eac64351831d3d4d28eb0", null ], - [ "get_vertical_position", "structfplot__core_1_1legend.html#abb44e0b424ee3a9170fc4ddecf39c481", null ], - [ "set_draw_border", "structfplot__core_1_1legend.html#a081df8de03ccc8888b6169608d9b5f17", null ], - [ "set_draw_inside_axes", "structfplot__core_1_1legend.html#a89b548365548f1e7f0d8756b4145ad93", null ], - [ "set_horizontal_position", "structfplot__core_1_1legend.html#a39f311ee80c51cbc637cc946c7a44397", null ], - [ "set_is_opaque", "structfplot__core_1_1legend.html#af006f78db694a74d57a9861f038b3971", null ], - [ "set_is_visible", "structfplot__core_1_1legend.html#aa9c45f3a136694b9e8c0c3c83d9a7cd8", null ], - [ "set_layout", "structfplot__core_1_1legend.html#a24b91299a6a9382c91a15b0093e1cdaa", null ], - [ "set_vertical_position", "structfplot__core_1_1legend.html#aafce387b80da438eb00b49107bcde5df", null ], - [ "m_box", "structfplot__core_1_1legend.html#a195d911a2ffb3e4d8d8229b21745db72", null ], - [ "m_horzposition", "structfplot__core_1_1legend.html#a4751dde9054923257d25204e3924d11b", null ], - [ "m_inside", "structfplot__core_1_1legend.html#adc69a36d330318bc97b7fae160cb7960", null ], - [ "m_layout", "structfplot__core_1_1legend.html#aa0e3a0c975e39520a953b9e36a9336de", null ], - [ "m_opaque", "structfplot__core_1_1legend.html#a48c213368dcf6ee0cc202c450fbffc4b", null ], - [ "m_show", "structfplot__core_1_1legend.html#ad57a162b33234017fcacbf6fb5b8c261", null ], - [ "m_vertposition", "structfplot__core_1_1legend.html#add3185b4f64fb74583931a94e4dfb23a", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1legend.png b/docs/html/structfplot__core_1_1legend.png deleted file mode 100644 index 68b11ae..0000000 Binary files a/docs/html/structfplot__core_1_1legend.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1multiplot-members.html b/docs/html/structfplot__core_1_1multiplot-members.html deleted file mode 100644 index f553ccd..0000000 --- a/docs/html/structfplot__core_1_1multiplot-members.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - - - - - - diff --git a/docs/html/structfplot__core_1_1multiplot.html b/docs/html/structfplot__core_1_1multiplot.html deleted file mode 100644 index c03b9d7..0000000 --- a/docs/html/structfplot__core_1_1multiplot.html +++ /dev/null @@ -1,825 +0,0 @@ - - - - - - - -fplot: fplot_core::multiplot Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::multiplot Type Reference
    -
    -
    - -

    Defines a multi-plot layout. - More...

    -
    -Inheritance diagram for fplot_core::multiplot:
    -
    -
    - - -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_command_string mp_get_command
     Returns the appropriate GNUPLOT command string to define the plot object properties.
     
    procedure, public initialize mp_init
     Initializes the multiplot object.
     
    procedure, public get_row_count mp_get_rows
     Gets the number of rows of plots.
     
    procedure, public get_column_count mp_get_cols
     Gets the number of columns of plots.
     
    procedure, public get_plot_count mp_get_count
     Gets the number of plots.
     
    procedure, public get_title mp_get_title
     Gets the multiplot's title.
     
    procedure, public set_title mp_set_title
     Sets the multiplot's title.
     
    procedure, public draw mp_draw
     Launches GNUPLOT and draws the multiplot per the current state of the command list.
     
    procedure, public get mp_get
     Gets the requested plot object.
     
    procedure, public set mp_set
     Sets the requested plot object.
     
    procedure, public is_title_defined mp_has_title
     Gets a value determining if a title has been defined for the multiplot object.
     
    procedure, public get_terminal mp_get_term
     Gets the GNUPLOT terminal object.
     
    procedure, public save_file mp_save
     Saves a GNUPLOT command file.
     
    procedure, public get_font_name mp_get_font
     Gets the name of the font used for plot text.
     
    procedure, public set_font_name mp_set_font
     Sets the name of the font used for plot text.
     
    procedure, public get_font_size mp_get_font_size
     Gets the size of the font used by the plot.
     
    procedure, public set_font_size mp_set_font_size
     Sets the size of the font used by the plot.
     
    - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    type(list) m_plots
     The collection of plot objects.
     
    integer(int32) m_rows = 0
     The number of rows of plots.
     
    integer(int32) m_cols = 0
     The number of columns of plots.
     
    character(len=plotdata_max_name_lengthm_title
     The page title.
     
    logical m_hastitle = .false.
     Has a title?
     
    class(terminal), pointer m_terminal => null()
     The BNUPLOT terminal object to target.
     
    -

    Detailed Description

    -

    Defines a multi-plot layout.

    - -

    Definition at line 5857 of file fplot_core.f90.

    -

    Constructor & Destructor Documentation

    - -

    ◆ mp_clean()

    - -
    -
    - - - - - -
    - - - - -
    final fplot_core::multiplot::mp_clean
    -
    -final
    -
    - -

    Definition at line 5871 of file fplot_core.f90.

    - -
    -
    -

    Member Function/Subroutine Documentation

    - -

    ◆ draw()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::draw
    -
    - -

    Launches GNUPLOT and draws the multiplot per the current state of the command list.

    -
    Syntax
    subroutine draw(class(multiplot) this, optional logical persist, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in]thisThe multiplot object.
    [in]persistAn optional parameter that can be used to keep GNUPLOT open. Set to true to force GNUPLOT to remain open; else, set to false to allow GNUPLOT to close after drawing. The default is true.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_GNUPLOT_FILE_ERROR: Occurs if the command file cannot be written.
    • -
    -
    -
    -
    - -

    Definition at line 5965 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::get
    -
    - -

    Gets the requested plot object.

    -
    Syntax
    class(plot) pointer function get(class(multiplot) this, integer(int32) i, integer(int32) j)
    -
    -
    Parameters
    - - - - -
    [in]thisThe multiplot object.
    [in]iThe row index of the plot to retrieve.
    [in]jThe column index of the plot to retrieve.
    -
    -
    -
    Returns
    A pointer to the requested plot object.
    - -

    Definition at line 5977 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_column_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::get_column_count
    -
    - -

    Gets the number of columns of plots.

    -
    Syntax
    pure integer(int32) function get_column_count(class(multiplot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe multiplot object.
    -
    -
    -
    Returns
    The number of columns.
    - -

    Definition at line 5914 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::multiplot::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to define the plot object properties.

    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 5872 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_font_name()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::get_font_name
    -
    - -

    Gets the name of the font used for plot text.

    -
    Syntax
    character(len = :) function, allocatable get_font_name(class(multiplot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe multiplot object.
    -
    -
    -
    Returns
    The font name.
    - -

    Definition at line 6037 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_font_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::get_font_size
    -
    - -

    Gets the size of the font used by the plot.

    -
    Syntax
    integer(int32) function get_font_size(class(multiplot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe multiplot object.
    -
    -
    -
    Returns
    The size of the font, in points.
    - -

    Definition at line 6057 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_plot_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::get_plot_count
    -
    - -

    Gets the number of plots.

    -
    Syntax
    pure integer(int32) function get_plot_count(class(multiplot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe multiplot object.
    -
    -
    -
    Returns
    The number of plots.
    - -

    Definition at line 5924 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_row_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::get_row_count
    -
    - -

    Gets the number of rows of plots.

    -
    Syntax
    pure integer(int32) function get_row_count(class(multiplot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe multiplot object.
    -
    -
    -
    Returns
    The number of rows.
    - -

    Definition at line 5904 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_terminal()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::get_terminal
    -
    - -

    Gets the GNUPLOT terminal object.

    -
    Syntax
    class(terminal) function, pointer get_terminal(class(multiplot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe multiplot object.
    -
    -
    -
    Returns
    A pointer to the GNUPLOT terminal object.
    - -

    Definition at line 6011 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_title()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::get_title
    -
    - -

    Gets the multiplot's title.

    -
    Syntax
    character(len = :) function, allocatable get_title(class(multiplot))
    -
    -
    Parameters
    - - -
    [in]thisThe multiplot object.
    -
    -
    -
    Returns
    The multiplot's title.
    - -

    Definition at line 5934 of file fplot_core.f90.

    - -
    -
    - -

    ◆ initialize()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::initialize
    -
    - -

    Initializes the multiplot object.

    -
    Syntax
    subroutine initialize(class(multiplot) this, optional class(terminal) term, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe multiplot object.
    [in]termAn optional input that is used to define the terminal. The default terminal is a WXT terminal. The acceptable inputs are:
      -
    • GNUPLOT_TERMINAL_PNG
    • -
    • GNUPLOT_TERMINAL_QT
    • -
    • GNUPLOT_TERMINAL_WIN32
    • -
    • GNUPLOT_TERMINAL_WXT
    • -
    • GNUPLOT_TERMINAL_LATEX
    • -
    -
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    - -

    Definition at line 5894 of file fplot_core.f90.

    - -
    -
    - -

    ◆ is_title_defined()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::is_title_defined
    -
    - -

    Gets a value determining if a title has been defined for the multiplot object.

    -
    Syntax
    pure logical function is_title_defined(class(multiplot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe multiplot object.
    -
    -
    -
    Returns
    Returns true if a title has been defined for this multiplot; else, returns false.
    - -

    Definition at line 6001 of file fplot_core.f90.

    - -
    -
    - -

    ◆ save_file()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::save_file
    -
    - -

    Saves a GNUPLOT command file.

    -
    Syntax
    subroutine save_file(class(multiplot) this, character(len = *) fname, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in]thisThe multiplot object.
    [in]fnameThe filename.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_GNUPLOT_FILE_ERROR: Occurs if the command file cannot be written.
    • -
    -
    -
    -
    - -

    Definition at line 6027 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::set
    -
    - -

    Sets the requested plot object.

    -
    Syntax
    subroutine set(class(multiplot) this, integer(int32) i, integer(int32) j, class(plot) pointer x)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe multiplot object.
    [in]iThe row index of the plot to retrieve.
    [in]jThe column index of the plot to retrieve.
    [in]xA pointer to the requested plot object.
    -
    -
    - -

    Definition at line 5989 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_font_name()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::set_font_name
    -
    - -

    Sets the name of the font used for plot text.

    -
    Syntax
    subroutine set_font_name(class(multiplot) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe multiplot object.
    [in]xThe font name.
    -
    -
    - -

    Definition at line 6047 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_font_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::set_font_size
    -
    - -

    Sets the size of the font used by the plot.

    -
    Syntax
    subroutine set_font_size(class(multiplot) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe multiplot object.
    [in]xThe font size, in points. If a value of zero is provided, the font size is reset to its default value; or, if a negative value is provided, the absolute value of the supplied value is utilized.
    -
    -
    - -

    Definition at line 6069 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_title()

    - -
    -
    - - - - -
    procedure, public fplot_core::multiplot::set_title
    -
    - -

    Sets the multiplot's title.

    -
    Syntax
    subroutine set_title(class(multiplot) this, character(len = *) txt)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe multiplot object.
    [in]txtThe multiplot's title. The number of characters must be less than or equal to PLOTDATA_MAX_NAME_LENGTH; else, the text string is truncated.
    -
    -
    - -

    Definition at line 5946 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_cols

    - -
    -
    - - - - -
    integer(int32) fplot_core::multiplot::m_cols = 0
    -
    - -

    The number of columns of plots.

    - -

    Definition at line 5863 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_hastitle

    - -
    -
    - - - - -
    logical fplot_core::multiplot::m_hastitle = .false.
    -
    - -

    Has a title?

    - -

    Definition at line 5867 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_plots

    - -
    -
    - - - - -
    type(list) fplot_core::multiplot::m_plots
    -
    - -

    The collection of plot objects.

    - -

    Definition at line 5859 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_rows

    - -
    -
    - - - - -
    integer(int32) fplot_core::multiplot::m_rows = 0
    -
    - -

    The number of rows of plots.

    - -

    Definition at line 5861 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_terminal

    - -
    -
    - - - - -
    class(terminal), pointer fplot_core::multiplot::m_terminal => null()
    -
    - -

    The BNUPLOT terminal object to target.

    - -

    Definition at line 5869 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_title

    - -
    -
    - - - - -
    character(len = plotdata_max_name_length) fplot_core::multiplot::m_title
    -
    - -

    The page title.

    - -

    Definition at line 5865 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1multiplot.js b/docs/html/structfplot__core_1_1multiplot.js deleted file mode 100644 index 306cc44..0000000 --- a/docs/html/structfplot__core_1_1multiplot.js +++ /dev/null @@ -1,26 +0,0 @@ -var structfplot__core_1_1multiplot = -[ - [ "draw", "structfplot__core_1_1multiplot.html#a37bd89e10d4dcf8a97577713eaeb4143", null ], - [ "get", "structfplot__core_1_1multiplot.html#a3cb5a2d2f473e118f6adeb481cc8ae80", null ], - [ "get_column_count", "structfplot__core_1_1multiplot.html#afa4b9ef0d7c48a5d0365fd14147a0945", null ], - [ "get_command_string", "structfplot__core_1_1multiplot.html#a38da5245525925cd37f7dc32a88aedd7", null ], - [ "get_font_name", "structfplot__core_1_1multiplot.html#ae37d626915c86f2068a90aa643b7ec7d", null ], - [ "get_font_size", "structfplot__core_1_1multiplot.html#a31171ee8993d645c5e8d60212002e1b1", null ], - [ "get_plot_count", "structfplot__core_1_1multiplot.html#a354b6419ea8889d27a789c11d19d30ae", null ], - [ "get_row_count", "structfplot__core_1_1multiplot.html#af8e5de63b2d4424ef31c6454f0b4a441", null ], - [ "get_terminal", "structfplot__core_1_1multiplot.html#a3e773ed8f697086383a91cfc88be412b", null ], - [ "get_title", "structfplot__core_1_1multiplot.html#a53b06b534a0fd70fb17323ec5bb9b063", null ], - [ "initialize", "structfplot__core_1_1multiplot.html#a765c22060cbe884515bc3a73bfef30f7", null ], - [ "is_title_defined", "structfplot__core_1_1multiplot.html#a77d68800c07166876bd9dae972caf094", null ], - [ "save_file", "structfplot__core_1_1multiplot.html#a4ffe414eeb41cfb1c6a4090efe0308b6", null ], - [ "set", "structfplot__core_1_1multiplot.html#a24b7e0d33ad3c66d3031bc0c2c307677", null ], - [ "set_font_name", "structfplot__core_1_1multiplot.html#a1ea580b7916e02cbb84a3ee6325802be", null ], - [ "set_font_size", "structfplot__core_1_1multiplot.html#ad751ab2a57ec9af423468603a3fc5a75", null ], - [ "set_title", "structfplot__core_1_1multiplot.html#a22818257b677d5f45a1ac13435cc27ae", null ], - [ "m_cols", "structfplot__core_1_1multiplot.html#ac43b0757815bd163133a4863314725f9", null ], - [ "m_hastitle", "structfplot__core_1_1multiplot.html#a6d0402f03382c3bf29b50d4f06fad597", null ], - [ "m_plots", "structfplot__core_1_1multiplot.html#af9b41a50d6394721ff548622aa61725d", null ], - [ "m_rows", "structfplot__core_1_1multiplot.html#a65d63e8ce7aa0d1976f8bca150bb33d3", null ], - [ "m_terminal", "structfplot__core_1_1multiplot.html#a9bae2b4eddaa75ff61ac0abe77175eb1", null ], - [ "m_title", "structfplot__core_1_1multiplot.html#ae7b5636092a710de62e0d2ba4eef9752", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1multiplot.png b/docs/html/structfplot__core_1_1multiplot.png deleted file mode 100644 index 9b23970..0000000 Binary files a/docs/html/structfplot__core_1_1multiplot.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1parula__colormap-members.html b/docs/html/structfplot__core_1_1parula__colormap-members.html deleted file mode 100644 index 05c0dcb..0000000 --- a/docs/html/structfplot__core_1_1parula__colormap-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::parula_colormap Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1parula__colormap.html b/docs/html/structfplot__core_1_1parula__colormap.html deleted file mode 100644 index fb7797e..0000000 --- a/docs/html/structfplot__core_1_1parula__colormap.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -fplot: fplot_core::parula_colormap Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::parula_colormap Type Reference
    -
    -
    - -

    Defines a colormap equivalent to the MATLAB parula colormap. - More...

    -
    -Inheritance diagram for fplot_core::parula_colormap:
    -
    -
    - - -fplot_core::colormap -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_color_string pcm_get_clr
     Gets the GNUPLOT string defining the color distribution.
     
    - Public Member Functions inherited from fplot_core::colormap
    procedure, public get_command_string cm_get_cmd
     Gets the GNUPLOT command string to represent this colormap object.
     
    procedure, public get_label cm_get_label
     Gets the label to associate with the colorbar.
     
    procedure, public set_label cm_set_label
     Sets the label to associate with the colorbar.
     
    procedure, public get_horizontal cm_get_horizontal
     Gets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public set_horizontal cm_set_horizontal
     Sets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public get_draw_border cm_get_draw_border
     Gets a logical value determining if the border should be drawn.
     
    procedure, public set_draw_border cm_set_draw_border
     Sets a logical value determining if the border should be drawn.
     
    procedure, public get_show_tics cm_get_show_tics
     Gets a logical value determining if the tic marks should be drawn.
     
    procedure, public set_show_tics cm_set_show_tics
     Sets a logical value determining if the tic marks should be drawn.
     
    - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::colormap
    logical m_horizontal = .false.
     The colormap should be drawn horizontally.
     
    logical m_drawborder = .true.
     Draw the colormap border.
     
    logical m_showtics = .true.
     Show the tic marks.
     
    -

    Detailed Description

    -

    Defines a colormap equivalent to the MATLAB parula colormap.

    - -

    Definition at line 2555 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::parula_colormap::get_color_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT string defining the color distribution.

    -
    Syntax
    character(len = :) function, allocatable get_color_string(class(parula_colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe parula_colormap object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::colormap.

    - -

    Definition at line 2566 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1parula__colormap.js b/docs/html/structfplot__core_1_1parula__colormap.js deleted file mode 100644 index 68f4d9d..0000000 --- a/docs/html/structfplot__core_1_1parula__colormap.js +++ /dev/null @@ -1,4 +0,0 @@ -var structfplot__core_1_1parula__colormap = -[ - [ "get_color_string", "structfplot__core_1_1parula__colormap.html#aab47b0c74c9a87e1a42b792cac59355e", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1parula__colormap.png b/docs/html/structfplot__core_1_1parula__colormap.png deleted file mode 100644 index a1dc80c..0000000 Binary files a/docs/html/structfplot__core_1_1parula__colormap.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot-members.html b/docs/html/structfplot__core_1_1plot-members.html deleted file mode 100644 index faa4189..0000000 --- a/docs/html/structfplot__core_1_1plot-members.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_allplt_clear_allfplot_core::plot
    clear_all_labelsplt_clear_labelsfplot_core::plot
    clear_arrowsplt_clear_arrowsfplot_core::plot
    drawplt_drawfplot_core::plot
    free_resourcesplt_clean_upfplot_core::plot
    getplt_getfplot_core::plot
    get_arrowplt_get_arrowfplot_core::plot
    get_arrow_countplt_get_arrow_countfplot_core::plot
    get_axis_equalplt_get_axis_equalfplot_core::plot
    get_colormapplt_get_colormapfplot_core::plot
    get_command_stringplt_get_cmdfplot_core::plotvirtual
    get_countplt_get_countfplot_core::plot
    get_draw_borderplt_get_draw_borderfplot_core::plot
    get_font_nameplt_get_fontfplot_core::plot
    get_font_sizeplt_get_font_sizefplot_core::plot
    get_labelplt_get_labelfplot_core::plot
    get_label_countplt_get_label_countfplot_core::plot
    get_legendplt_get_legendfplot_core::plot
    get_show_colorbarplt_get_show_colorbarfplot_core::plot
    get_show_gridlinesplt_get_show_gridfplot_core::plot
    get_terminalplt_get_termfplot_core::plot
    get_tics_inwardplt_get_tics_infplot_core::plot
    get_titleplt_get_titlefplot_core::plot
    initializeplt_initfplot_core::plot
    is_title_definedplt_has_titlefplot_core::plot
    m_arrowsfplot_core::plot
    m_axisequalfplot_core::plot
    m_colorindexfplot_core::plot
    m_colormapfplot_core::plot
    m_datafplot_core::plot
    m_drawborderfplot_core::plot
    m_hastitlefplot_core::plot
    m_labelsfplot_core::plot
    m_legendfplot_core::plot
    m_showcolorbarfplot_core::plot
    m_showgridfplot_core::plot
    m_terminalfplot_core::plot
    m_ticsinfplot_core::plot
    m_titlefplot_core::plotprivate
    popplt_pop_datafplot_core::plot
    pop_arrowplt_pop_arrowfplot_core::plot
    pop_labelplt_pop_labelfplot_core::plot
    pushplt_push_datafplot_core::plot
    push_arrowplt_push_arrowfplot_core::plot
    push_labelplt_push_labelfplot_core::plot
    save_fileplt_savefplot_core::plot
    setplt_setfplot_core::plot
    set_arrowplt_set_arrowfplot_core::plot
    set_axis_equalplt_set_axis_equalfplot_core::plot
    set_colormapplt_set_colormapfplot_core::plot
    set_draw_borderplt_set_draw_borderfplot_core::plot
    set_font_nameplt_set_fontfplot_core::plot
    set_font_sizeplt_set_font_sizefplot_core::plot
    set_labelplt_set_labelfplot_core::plot
    set_show_colorbarplt_set_show_colorbarfplot_core::plot
    set_show_gridlinesplt_set_show_gridfplot_core::plot
    set_tics_inwardplt_set_tics_infplot_core::plot
    set_titleplt_set_titlefplot_core::plot
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot.html b/docs/html/structfplot__core_1_1plot.html deleted file mode 100644 index 22b249e..0000000 --- a/docs/html/structfplot__core_1_1plot.html +++ /dev/null @@ -1,1811 +0,0 @@ - - - - - - - -fplot: fplot_core::plot Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot Type Reference
    -
    -
    - -

    Defines the basic GNUPLOT plot. - More...

    -
    -Inheritance diagram for fplot_core::plot:
    -
    -
    - - -fplot_core::plot_object -fplot_core::plot_2d -fplot_core::plot_3d -fplot_core::plot_polar -fplot_core::plot_bar -fplot_core::surface_plot - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public free_resources plt_clean_up
     Cleans up resources held by the plot object. Inheriting classes are expected to call this routine to free internally held resources.
     
    procedure, public initialize plt_init
     Initializes the plot object.
     
    procedure, public get_title plt_get_title
     Gets the plot's title.
     
    procedure, public set_title plt_set_title
     Sets the plot's title.
     
    procedure, public is_title_defined plt_has_title
     Gets a value determining if a title has been defined for the plot object.
     
    procedure, public get_legend plt_get_legend
     Gets the plot's legend object.
     
    procedure, public get_count plt_get_count
     Gets the number of stored plot_data objects.
     
    procedure, public push plt_push_data
     Pushes a plot_data object onto the stack.
     
    procedure, public pop plt_pop_data
     Pops the last plot_data object from the stack.
     
    procedure, public clear_all plt_clear_all
     Removes all plot_data objects from the plot.
     
    procedure, public get plt_get
     Gets a pointer to the requested plot_data object.
     
    procedure, public set plt_set
     Sets the requested plot_data object into the plot.
     
    procedure, public get_terminal plt_get_term
     Gets the GNUPLOT terminal object.
     
    procedure, public get_show_gridlines plt_get_show_grid
     Gets a flag determining if the grid lines should be shown.
     
    procedure, public set_show_gridlines plt_set_show_grid
     Sets a flag determining if the grid lines should be shown.
     
    procedure, public draw plt_draw
     Launches GNUPLOT and draws the plot per the current state of the command list.
     
    procedure, public save_file plt_save
     Saves a GNUPLOT command file.
     
    procedure, public get_font_name plt_get_font
     Gets the name of the font used for plot text.
     
    procedure, public set_font_name plt_set_font
     Sets the name of the font used for plot text.
     
    procedure, public get_font_size plt_get_font_size
     Gets the size of the font used by the plot.
     
    procedure, public set_font_size plt_set_font_size
     Sets the size of the font used by the plot.
     
    procedure, public get_tics_inward plt_get_tics_in
     Gets a value determining if the axis tic marks should point inwards.
     
    procedure, public set_tics_inward plt_set_tics_in
     Sets a value determining if the axis tic marks should point inwards.
     
    procedure, public get_draw_border plt_get_draw_border
     Gets a value determining if the border should be drawn.
     
    procedure, public set_draw_border plt_set_draw_border
     Sets a value determining if the border should be drawn.
     
    procedure, public push_label plt_push_label
     Adds a label to the plot.
     
    procedure, public pop_label plt_pop_label
     Removes the last label from the plot.
     
    procedure, public get_label plt_get_label
     Gets the requested plot_label from the plot.
     
    procedure, public set_label plt_set_label
     Sets the specified plot_label object.
     
    procedure, public get_label_count plt_get_label_count
     Gets the number of plot_label objects belonging to the plot.
     
    procedure, public clear_all_labels plt_clear_labels
     Clears all plot_label objects from the plot.
     
    procedure, public get_axis_equal plt_get_axis_equal
     Gets a flag determining if the axes should be equally scaled.
     
    procedure, public set_axis_equal plt_set_axis_equal
     Sets a flag determining if the axes should be equally scaled.
     
    procedure, public get_colormap plt_get_colormap
     Gets a pointer to the colormap object.
     
    procedure, public set_colormap plt_set_colormap
     Sets the colormap object.
     
    procedure, public get_show_colorbar plt_get_show_colorbar
     Gets a value determining if the colorbar should be shown.
     
    procedure, public set_show_colorbar plt_set_show_colorbar
     Sets a value determining if the colorbar should be shown.
     
    procedure, public get_command_string plt_get_cmd
     Gets the GNUPLOT command string to represent this plot object.
     
    procedure, public push_arrow plt_push_arrow
     Pushes a new plot_arrow object onto the plot.
     
    procedure, public pop_arrow plt_pop_arrow
     Pops a plot_arrow object from the plot.
     
    procedure, public get_arrow plt_get_arrow
     Gets a pointer to the requested plot_arrow object.
     
    procedure, public set_arrow plt_set_arrow
     Sets a plot_arrow into the plot.
     
    procedure, public get_arrow_count plt_get_arrow_count
     Gets the number of plot_arrow objects held by the plot object.
     
    procedure, public clear_arrows plt_clear_arrows
     Clears all plot_arrow objects from the plot.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    logical m_hastitle = .false.
     Has a title?
     
    class(terminal), pointer m_terminal => null()
     The GNUPLOT terminal object to target.
     
    type(list) m_data
     A collection of plot_data items to plot.
     
    type(legend), pointer m_legend => null()
     The legend.
     
    logical m_showgrid = .true.
     Show grid lines?
     
    logical m_ticsin = .true.
     Point tic marks in?
     
    logical m_drawborder = .true.
     Draw the border?
     
    type(list) m_labels
     A collection of plot_label items to draw.
     
    integer(int32) m_colorindex = 1
     The color index to use for automatic line coloring for scatter plots.
     
    logical m_axisequal = .false.
     Determines if the axes should be scaled proportionally.
     
    class(colormap), pointer m_colormap
     The colormap.
     
    logical m_showcolorbar = .true.
     Show the colorbar?
     
    type(list) m_arrows
     A collection of plot_arrow items to draw.
     
    - - - - -

    -Private Attributes

    character(len=plotdata_max_name_lengthm_title = ""
     The plot title.
     
    -

    Detailed Description

    -

    Defines the basic GNUPLOT plot.

    - -

    Definition at line 2772 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ clear_all()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::clear_all
    -
    - -

    Removes all plot_data objects from the plot.

    -
    Syntax
    subroutine clear(class(plot) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe plot object.
    -
    -
    - -

    Definition at line 2925 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clear_all_labels()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::clear_all_labels
    -
    - -

    Clears all plot_label objects from the plot.

    -
    Syntax
    subroutine clear_all_labels(class(plot) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe plot object.
    -
    -
    - -

    Definition at line 3161 of file fplot_core.f90.

    - -
    -
    - -

    ◆ clear_arrows()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::clear_arrows
    -
    - -

    Clears all plot_arrow objects from the plot.

    -
    Syntax
    subroutine clear_arrows(class(plot) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe plot object.
    -
    -
    - -

    Definition at line 3309 of file fplot_core.f90.

    - -
    -
    - -

    ◆ draw()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::draw
    -
    - -

    Launches GNUPLOT and draws the plot per the current state of the command list.

    -
    Syntax
    subroutine draw(class(plot) this, optional logical persist, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in]thisThe plot object.
    [in]persistAn optional parameter that can be used to keep GNUPLOT open. Set to true to force GNUPLOT to remain open; else, set to false to allow GNUPLOT to close after drawing. The default is true.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_GNUPLOT_FILE_ERROR: Occurs if the command file cannot be written.
    • -
    -
    -
    -
    - -

    Definition at line 2996 of file fplot_core.f90.

    - -
    -
    - -

    ◆ free_resources()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::free_resources
    -
    - -

    Cleans up resources held by the plot object. Inheriting classes are expected to call this routine to free internally held resources.

    -
    Syntax
    module free_resources(class(plot) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe plot object.
    -
    -
    - -

    Definition at line 2813 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get
    -
    - -

    Gets a pointer to the requested plot_data object.

    -
    Syntax
    class(plot_data) function, pointer get(class(plot), integer(int32) i)
    -
    -
    Parameters
    - - - -
    [in]thisThe plot object.
    [in]iThe index of the plot_data object.
    -
    -
    -
    Returns
    A pointer to the requested plot_data object.
    - -

    Definition at line 2936 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_arrow()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_arrow
    -
    - -

    Gets a pointer to the requested plot_arrow object.

    -
    Syntax
    class(plot_arrow), pointer function get_arrow(class(plot) this, integer(int32) i)
    -
    -
    Parameters
    - - - -
    [in]thisThe plot object.
    [in]iThe index of the plot_arrow to retrieve.
    -
    -
    - -

    Definition at line 3276 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_arrow_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_arrow_count
    -
    - -

    Gets the number of plot_arrow objects held by the plot object.

    -
    Syntax
    pure integer(int32) function get_arrow_count(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    The number of plot_arrow objects held by the plot object.
    - -

    Definition at line 3300 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_axis_equal()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_axis_equal
    -
    - -

    Gets a flag determining if the axes should be equally scaled.

    -
    Syntax
    logical function get_axis_equal(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    Returns true if the axes should be scaled equally; else, false.
    - -

    Definition at line 3172 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_colormap()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_colormap
    -
    - -

    Gets a pointer to the colormap object.

    -
    Syntax
    class(colormap) function, pointer get_colormap(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    A pointer to the colormap object. If no colormap is defined, a null pointer is returned.
    - -

    Definition at line 3194 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this plot object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Reimplemented in fplot_core::plot_2d, fplot_core::plot_3d, fplot_core::plot_bar, fplot_core::plot_polar, and fplot_core::surface_plot.

    - -

    Definition at line 3243 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_count
    -
    - -

    Gets the number of stored plot_data objects.

    -
    Syntax
    pure integer(int32) function get_count(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    The number of plot_data objects.
    - -

    Definition at line 2891 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_draw_border()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_draw_border
    -
    - -

    Gets a value determining if the border should be drawn.

    -
    Syntax
    pure logical function get_draw_border(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    Returns true if the border should be drawn; else, false.
    - -

    Definition at line 3088 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_font_name()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_font_name
    -
    - -

    Gets the name of the font used for plot text.

    -
    Syntax
    character(len = :) function, allocatable get_font_name(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    The font name.
    - -

    Definition at line 3022 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_font_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_font_size
    -
    - -

    Gets the size of the font used by the plot.

    -
    Syntax
    integer(int32) function get_font_size(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    The size of the font, in points.
    - -

    Definition at line 3042 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_label()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_label
    -
    - -

    Gets the requested plot_label from the plot.

    -
    Syntax
    class(plot_label) pointer function get_label(class(plot) this, integer(int32) i)
    -
    -
    Parameters
    - - - -
    [in]thisThe plot object.
    [in]iThe index of the plot_label object to retrieve.
    -
    -
    -
    Returns
    A pointer to the requested plot_label object.
    - -

    Definition at line 3131 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_label_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_label_count
    -
    - -

    Gets the number of plot_label objects belonging to the plot.

    -
    Syntax
    pure integer(int32) function get_label_count(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    The number of plot_label objects.
    - -

    Definition at line 3152 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_legend()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_legend
    -
    - -

    Gets the plot's legend object.

    -
    Syntax
    class(legend) function, pointer get_legend(class(this) plot)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    A pointer to the legend object.
    - -

    Definition at line 2881 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_show_colorbar()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_show_colorbar
    -
    - -

    Gets a value determining if the colorbar should be shown.

    -
    Syntax
    pure logical function get_show_colorbar(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    Returns true if the colorbar should be drawn; else, false.
    - -

    Definition at line 3222 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_show_gridlines()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_show_gridlines
    -
    - -

    Gets a flag determining if the grid lines should be shown.

    -
    Syntax
    pure logical function get_show_gridlines(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    Returns true if the grid lines should be shown; else, false.
    - -

    Definition at line 2967 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_terminal()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_terminal
    -
    - -

    Gets the GNUPLOT terminal object.

    -
    Syntax
    class(terminal) function, pointer get_terminal(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    A pointer to the GNUPLOT terminal object.
    - -

    Definition at line 2957 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_tics_inward()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_tics_inward
    -
    - -

    Gets a value determining if the axis tic marks should point inwards.

    -
    Syntax
    pure logical function get_tics_inward(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    Returns true if the tic marks should point inwards; else, false if the tic marks should point outwards.
    - -

    Definition at line 3066 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_title()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::get_title
    -
    - -

    Gets the plot's title.

    -
    Syntax
    character(len = :) function, allocatable get_title(class(plot))
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    The plot's title.
    - -

    Definition at line 2847 of file fplot_core.f90.

    - -
    -
    - -

    ◆ initialize()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::initialize
    -
    - -

    Initializes the plot object.

    -
    Syntax
    subroutine initialize(class(plot) this, optional class(terminal) term, optional class(errors) err)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe plot object.
    [in]termAn optional input that is used to define the terminal. The default terminal is a WXT terminal. The acceptable inputs are:
      -
    • GNUPLOT_TERMINAL_PNG
    • -
    • GNUPLOT_TERMINAL_QT
    • -
    • GNUPLOT_TERMINAL_WIN32
    • -
    • GNUPLOT_TERMINAL_WXT
    • -
    • GNUPLOT_TERMINAL_LATEX
    • -
    -
    [in]fnameA filename to pass to the terminal in the event the terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG).
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    - -

    Definition at line 2837 of file fplot_core.f90.

    - -
    -
    - -

    ◆ is_title_defined()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::is_title_defined
    -
    - -

    Gets a value determining if a title has been defined for the plot object.

    -
    Syntax
    pure logical function is_title_defined(class(plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot object.
    -
    -
    -
    Returns
    Returns true if a title has been defined for this plot; else, returns false.
    - -

    Definition at line 2871 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pop()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::pop
    -
    - -

    Pops the last plot_data object from the stack.

    -
    Syntax
    subroutine pop(class(plot) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe plot object.
    -
    -
    - -

    Definition at line 2916 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pop_arrow()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::pop_arrow
    -
    - -

    Pops a plot_arrow object from the plot.

    -
    Syntax
    subroutine pop_arrow(class(plot) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe plot object.
    -
    -
    - -

    Definition at line 3266 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pop_label()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::pop_label
    -
    - -

    Removes the last label from the plot.

    -
    Syntax
    subroutine pop_label(class(plot) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe plot object.
    -
    -
    - -

    Definition at line 3120 of file fplot_core.f90.

    - -
    -
    - -

    ◆ push()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::push
    -
    - -

    Pushes a plot_data object onto the stack.

    -
    Syntax
    subroutine push(class(plot) this, class(plot_data) x, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot object.
    [in]xThe plot_data object.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    - -

    Definition at line 2907 of file fplot_core.f90.

    - -
    -
    - -

    ◆ push_arrow()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::push_arrow
    -
    - -

    Pushes a new plot_arrow object onto the plot.

    -
    Syntax
    subroutine push_arrow(class(plot) this, class(plot_arrow) x, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot object.
    [in]xThe plot_arrow object. This instance is copied, and the copy is stored and managed by the plot object.
    [in,out]errAn optional errors-based object for managing errors. The default implementation of the errors type is used if nothing is supplied.
    -
    -
    - -

    Definition at line 3257 of file fplot_core.f90.

    - -
    -
    - -

    ◆ push_label()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::push_label
    -
    - -

    Adds a label to the plot.

    -
    Syntax
    subroutine push_label(class(plot) this, class(plot_labels) lbl, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot object.
    [in]lblThe plot label.
    [in,out]errAn optional errors-based object for managing errors. The default implementation of the errors type is used if nothing is supplied.
    -
    -
    - -

    Definition at line 3111 of file fplot_core.f90.

    - -
    -
    - -

    ◆ save_file()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::save_file
    -
    - -

    Saves a GNUPLOT command file.

    -
    Syntax
    subroutine save_file(class(plot) this, character(len = *) fname, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in]thisThe plot object.
    [in]fnameThe filename.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_GNUPLOT_FILE_ERROR: Occurs if the command file cannot be written.
    • -
    -
    -
    -
    - -

    Definition at line 3012 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set
    -
    - -

    Sets the requested plot_data object into the plot.

    -
    Syntax
    subroutine set(class(plot) this, integer(int32) i, class(plot_data) x)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot object.
    [in]iThe index of the plot_data object.
    [in]xThe plot_data object.
    -
    -
    - -

    Definition at line 2947 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_arrow()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_arrow
    -
    - -

    Sets a plot_arrow into the plot.

    -
    Syntax
    subroutine set_arrow(class(plot) this, integer(int32) i, class(plot_arrow) x)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot object.
    [in]iThe index of the plot_arrow to retrieve.
    [in]xThe plot_arrow to set. This instance is copied, and the copy is stored and managed by the plot object.
    -
    -
    - -

    Definition at line 3288 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_axis_equal()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_axis_equal
    -
    - -

    Sets a flag determining if the axes should be equally scaled.

    -
    Syntax
    subroutine set_axis_equal(class(plot) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot object.
    [in]xSet to true if the axes should be scaled equally; else, false.
    -
    -
    - -

    Definition at line 3183 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_colormap()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_colormap
    -
    - -

    Sets the colormap object.

    -
    Syntax
    subroutine set_colormap(class(plot) this, class(colormap) x, optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot object.
    [in]xThe colormap object. Notice, a copy of this object is stored, and the plot object then manages the lifetime of the copy.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    - -

    Definition at line 3212 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_draw_border()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_draw_border
    -
    - -

    Sets a value determining if the border should be drawn.

    -
    Syntax
    subroutine set_draw_border(class(plot) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot object.
    [in]xSet to true if the border should be drawn; else, false.
    -
    -
    - -

    Definition at line 3098 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_font_name()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_font_name
    -
    - -

    Sets the name of the font used for plot text.

    -
    Syntax
    subroutine set_font_name(class(plot) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot object.
    [in]xThe font name.
    -
    -
    - -

    Definition at line 3032 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_font_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_font_size
    -
    - -

    Sets the size of the font used by the plot.

    -
    Syntax
    subroutine set_font_size(class(plot) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot object.
    [in]xThe font size, in points. If a value of zero is provided, the font size is reset to its default value; or, if a negative value is provided, the absolute value of the supplied value is utilized.
    -
    -
    - -

    Definition at line 3054 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_label()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_label
    -
    - -

    Sets the specified plot_label object.

    -
    Syntax
    subroutine set_label(class(plot) this, integer(int32) i, class(plot_label) x)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot object.
    [in]iThe index of the plot_label to replace.
    [in]xThe new plot_label object.
    -
    -
    - -

    Definition at line 3142 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_show_colorbar()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_show_colorbar
    -
    - -

    Sets a value determining if the colorbar should be shown.

    -
    Syntax
    subroutine set_show_colorbar(class(plot) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot object.
    [in]xSet to true if the colorbar should be drawn; else, false.
    -
    -
    - -

    Definition at line 3232 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_show_gridlines()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_show_gridlines
    -
    - -

    Sets a flag determining if the grid lines should be shown.

    -
    Syntax
    subroutine set_show_gridlines(class(plot) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot object.
    [in]xSet to true if the grid lines should be shown; else, false.
    -
    -
    - -

    Definition at line 2977 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_tics_inward()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_tics_inward
    -
    - -

    Sets a value determining if the axis tic marks should point inwards.

    -
    Syntax
    subroutine set_tics_inward(class(plot) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot object.
    [in]xSet to true if the tic marks should point inwards; else, false if the tic marks should point outwards.
    -
    -
    - -

    Definition at line 3078 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_title()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot::set_title
    -
    - -

    Sets the plot's title.

    -
    Syntax
    subroutine set_title(class(plot) this, character(len = *) txt)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot object.
    [in]txtThe plot's title. The number of characters must be less than or equal to PLOTDATA_MAX_NAME_LENGTH; else, the text string is truncated.
    -
    -
    - -

    Definition at line 2859 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_arrows

    - -
    -
    - - - - -
    type(list) fplot_core::plot::m_arrows
    -
    - -

    A collection of plot_arrow items to draw.

    - -

    Definition at line 2801 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_axisequal

    - -
    -
    - - - - -
    logical fplot_core::plot::m_axisequal = .false.
    -
    - -

    Determines if the axes should be scaled proportionally.

    - -

    Definition at line 2795 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_colorindex

    - -
    -
    - - - - -
    integer(int32) fplot_core::plot::m_colorindex = 1
    -
    - -

    The color index to use for automatic line coloring for scatter plots.

    - -

    Definition at line 2793 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_colormap

    - -
    -
    - - - - -
    class(colormap), pointer fplot_core::plot::m_colormap
    -
    - -

    The colormap.

    - -

    Definition at line 2797 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_data

    - -
    -
    - - - - -
    type(list) fplot_core::plot::m_data
    -
    - -

    A collection of plot_data items to plot.

    - -

    Definition at line 2781 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_drawborder

    - -
    -
    - - - - -
    logical fplot_core::plot::m_drawborder = .true.
    -
    - -

    Draw the border?

    - -

    Definition at line 2789 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_hastitle

    - -
    -
    - - - - -
    logical fplot_core::plot::m_hastitle = .false.
    -
    - -

    Has a title?

    - -

    Definition at line 2777 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_labels

    - -
    -
    - - - - -
    type(list) fplot_core::plot::m_labels
    -
    - -

    A collection of plot_label items to draw.

    - -

    Definition at line 2791 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_legend

    - -
    -
    - - - - -
    type(legend), pointer fplot_core::plot::m_legend => null()
    -
    - -

    The legend.

    - -

    Definition at line 2783 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_showcolorbar

    - -
    -
    - - - - -
    logical fplot_core::plot::m_showcolorbar = .true.
    -
    - -

    Show the colorbar?

    - -

    Definition at line 2799 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_showgrid

    - -
    -
    - - - - -
    logical fplot_core::plot::m_showgrid = .true.
    -
    - -

    Show grid lines?

    - -

    Definition at line 2785 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_terminal

    - -
    -
    - - - - -
    class(terminal), pointer fplot_core::plot::m_terminal => null()
    -
    - -

    The GNUPLOT terminal object to target.

    - -

    Definition at line 2779 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_ticsin

    - -
    -
    - - - - -
    logical fplot_core::plot::m_ticsin = .true.
    -
    - -

    Point tic marks in?

    - -

    Definition at line 2787 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_title

    - -
    -
    - - - - - -
    - - - - -
    character(len = plotdata_max_name_length) fplot_core::plot::m_title = ""
    -
    -private
    -
    - -

    The plot title.

    - -

    Definition at line 2775 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot.js b/docs/html/structfplot__core_1_1plot.js deleted file mode 100644 index f05dc73..0000000 --- a/docs/html/structfplot__core_1_1plot.js +++ /dev/null @@ -1,61 +0,0 @@ -var structfplot__core_1_1plot = -[ - [ "clear_all", "structfplot__core_1_1plot.html#a34d776a2c321b9ac7676945d95990e16", null ], - [ "clear_all_labels", "structfplot__core_1_1plot.html#abf9538a6514fb1ed53d5715aacd58e2a", null ], - [ "clear_arrows", "structfplot__core_1_1plot.html#aef6ccd30310590087ea05f427a799b80", null ], - [ "draw", "structfplot__core_1_1plot.html#a9d4351a5ce5288b8f1b8a0e67d5bc5b2", null ], - [ "free_resources", "structfplot__core_1_1plot.html#a8747b4e5569b5a025ba6264252358cfd", null ], - [ "get", "structfplot__core_1_1plot.html#aa98ef8753bb01d52623636be3b496129", null ], - [ "get_arrow", "structfplot__core_1_1plot.html#a95d3fb67a1e5a8be3881c98ef3dc88bd", null ], - [ "get_arrow_count", "structfplot__core_1_1plot.html#a3e928c6fed0bfd47b4875fa409f592c2", null ], - [ "get_axis_equal", "structfplot__core_1_1plot.html#ac7bc0d5bc86c478ec9cf19345b84c5ed", null ], - [ "get_colormap", "structfplot__core_1_1plot.html#a132b8951071c0f8f15a0282625c2975e", null ], - [ "get_command_string", "structfplot__core_1_1plot.html#a9a16fc8a4c67e031c1202754f32d1153", null ], - [ "get_count", "structfplot__core_1_1plot.html#a949ae875c30e1b06cb86bb7bb8958e73", null ], - [ "get_draw_border", "structfplot__core_1_1plot.html#af6ce304fe4acb418af76d672f99c1fb9", null ], - [ "get_font_name", "structfplot__core_1_1plot.html#af6528d0d7a8e62f968e8818012732b09", null ], - [ "get_font_size", "structfplot__core_1_1plot.html#abc559881bc8d4bea9b716964e37e92ed", null ], - [ "get_label", "structfplot__core_1_1plot.html#a05d9262e904709835f79533d63eba64e", null ], - [ "get_label_count", "structfplot__core_1_1plot.html#ab6240e8f98ecc508d3bc39adc44e8a6c", null ], - [ "get_legend", "structfplot__core_1_1plot.html#abf7fb454462b1d553fe3995575f77d15", null ], - [ "get_show_colorbar", "structfplot__core_1_1plot.html#a5b11d0a4762b08daa7176b50d2d445fd", null ], - [ "get_show_gridlines", "structfplot__core_1_1plot.html#ad6c6e15a4b1d960252b5bfe1d380a5f3", null ], - [ "get_terminal", "structfplot__core_1_1plot.html#ad2401d852a81076fe72cf8a808fde792", null ], - [ "get_tics_inward", "structfplot__core_1_1plot.html#a688f3645c69308cf608231a21b0aed64", null ], - [ "get_title", "structfplot__core_1_1plot.html#a133ef2de58d480ba1a3192cc26a5c58d", null ], - [ "initialize", "structfplot__core_1_1plot.html#ada6347bd02ef1b85a1206ef1a6a72f91", null ], - [ "is_title_defined", "structfplot__core_1_1plot.html#a49cd3527b815c57b7f0aaf163686c385", null ], - [ "pop", "structfplot__core_1_1plot.html#ad33c34e40f57938ecd001e808bf23faa", null ], - [ "pop_arrow", "structfplot__core_1_1plot.html#acbc277a0af6af597663ea0121ecfbdfa", null ], - [ "pop_label", "structfplot__core_1_1plot.html#a3b8d7885c017cdea67018693824d2a28", null ], - [ "push", "structfplot__core_1_1plot.html#a4d990dba35771bb91c4b369e749359b1", null ], - [ "push_arrow", "structfplot__core_1_1plot.html#ac9e18069b5f30cdf389bd2d875e9160a", null ], - [ "push_label", "structfplot__core_1_1plot.html#a52aebc916dcd0daee352bd121f44571b", null ], - [ "save_file", "structfplot__core_1_1plot.html#a7e9f2ba3cabac241fc87b08cab6a7964", null ], - [ "set", "structfplot__core_1_1plot.html#a60f699ff08a69ffd0639e02cef732fbc", null ], - [ "set_arrow", "structfplot__core_1_1plot.html#a97b39f1d655613d423431a225b9ac525", null ], - [ "set_axis_equal", "structfplot__core_1_1plot.html#a3ab0098ecdd19537b4b4810e584d6178", null ], - [ "set_colormap", "structfplot__core_1_1plot.html#a6a2220252ff39e46984cdd41f2f2d408", null ], - [ "set_draw_border", "structfplot__core_1_1plot.html#ae400616706a0cb419a5251c12174d822", null ], - [ "set_font_name", "structfplot__core_1_1plot.html#a3687c06edaac5f2e47c3a04266effd1f", null ], - [ "set_font_size", "structfplot__core_1_1plot.html#a755597835c9d424143b8942f4d699a34", null ], - [ "set_label", "structfplot__core_1_1plot.html#a1bae57bcb9098707fba5267fa22a433d", null ], - [ "set_show_colorbar", "structfplot__core_1_1plot.html#a6f9b326354b3d8dfa707e871a7519713", null ], - [ "set_show_gridlines", "structfplot__core_1_1plot.html#a929a7d1f892cd92b7ce9387adb4168c0", null ], - [ "set_tics_inward", "structfplot__core_1_1plot.html#aa9b08eb0848255279f04d7ff4c5bf5f2", null ], - [ "set_title", "structfplot__core_1_1plot.html#a1925b89a6abe05c4728c839844b507f1", null ], - [ "m_arrows", "structfplot__core_1_1plot.html#a4377389ba8b66d31852367a81eefee27", null ], - [ "m_axisequal", "structfplot__core_1_1plot.html#a9a39b7ef7066651e8acd9cf4777941b0", null ], - [ "m_colorindex", "structfplot__core_1_1plot.html#a423c6b5d5a4077e12672a789d0dd07f4", null ], - [ "m_colormap", "structfplot__core_1_1plot.html#a124d1fc324d2ac66811305862a1818bd", null ], - [ "m_data", "structfplot__core_1_1plot.html#a955e9ed1d0626325807467f18928f7af", null ], - [ "m_drawborder", "structfplot__core_1_1plot.html#aa6041d60ec2b7939ff62dfe315c533bb", null ], - [ "m_hastitle", "structfplot__core_1_1plot.html#a3e292f8044d1c963bde7a45a5fd091f5", null ], - [ "m_labels", "structfplot__core_1_1plot.html#a749f5e716823b818c276e26d301a43da", null ], - [ "m_legend", "structfplot__core_1_1plot.html#a58b6d2d703429e69ced42f71bb24b587", null ], - [ "m_showcolorbar", "structfplot__core_1_1plot.html#a2835b94785e566562783f2b0e1162c58", null ], - [ "m_showgrid", "structfplot__core_1_1plot.html#a1bb6dd426e8a18a2db83063e68d8270b", null ], - [ "m_terminal", "structfplot__core_1_1plot.html#a132bcac346e1cc2fd85c0685ccf7718b", null ], - [ "m_ticsin", "structfplot__core_1_1plot.html#a344af6120545e8a12af51866e44709c1", null ], - [ "m_title", "structfplot__core_1_1plot.html#a212e144bbc88f69b516a0c268b09c501", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot.png b/docs/html/structfplot__core_1_1plot.png deleted file mode 100644 index 3f84532..0000000 Binary files a/docs/html/structfplot__core_1_1plot.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__2d-members.html b/docs/html/structfplot__core_1_1plot__2d-members.html deleted file mode 100644 index 04e369f..0000000 --- a/docs/html/structfplot__core_1_1plot__2d-members.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_2d Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_2d, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_allplt_clear_allfplot_core::plot
    clear_all_labelsplt_clear_labelsfplot_core::plot
    clear_arrowsplt_clear_arrowsfplot_core::plot
    drawplt_drawfplot_core::plot
    free_resourcesplt_clean_upfplot_core::plot
    getplt_getfplot_core::plot
    get_arrowplt_get_arrowfplot_core::plot
    get_arrow_countplt_get_arrow_countfplot_core::plot
    get_axis_equalplt_get_axis_equalfplot_core::plot
    get_colormapplt_get_colormapfplot_core::plot
    get_command_stringp2d_get_cmdfplot_core::plot_2dvirtual
    get_countplt_get_countfplot_core::plot
    get_draw_borderplt_get_draw_borderfplot_core::plot
    get_font_nameplt_get_fontfplot_core::plot
    get_font_sizeplt_get_font_sizefplot_core::plot
    get_labelplt_get_labelfplot_core::plot
    get_label_countplt_get_label_countfplot_core::plot
    get_legendplt_get_legendfplot_core::plot
    get_show_colorbarplt_get_show_colorbarfplot_core::plot
    get_show_gridlinesplt_get_show_gridfplot_core::plot
    get_square_axesp2d_get_square_axesfplot_core::plot_2d
    get_terminalplt_get_termfplot_core::plot
    get_tics_inwardplt_get_tics_infplot_core::plot
    get_titleplt_get_titlefplot_core::plot
    get_use_y2_axisp2d_get_use_y2fplot_core::plot_2d
    get_x_axisp2d_get_x_axisfplot_core::plot_2d
    get_y2_axisp2d_get_y2_axisfplot_core::plot_2d
    get_y_axisp2d_get_y_axisfplot_core::plot_2d
    initializep2d_initfplot_core::plot_2d
    is_title_definedplt_has_titlefplot_core::plot
    m_arrowsfplot_core::plot
    m_axisequalfplot_core::plot
    m_colorindexfplot_core::plot
    m_colormapfplot_core::plot
    m_datafplot_core::plot
    m_drawborderfplot_core::plot
    m_hastitlefplot_core::plot
    m_labelsfplot_core::plot
    m_legendfplot_core::plot
    m_set2squarefplot_core::plot_2d
    m_showcolorbarfplot_core::plot
    m_showgridfplot_core::plot
    m_terminalfplot_core::plot
    m_ticsinfplot_core::plot
    m_titlefplot_core::plotprivate
    m_usey2fplot_core::plot_2d
    m_xaxisfplot_core::plot_2dprivate
    m_y2axisfplot_core::plot_2d
    m_yaxisfplot_core::plot_2d
    p2d_clean_upp2d_clean_upfplot_core::plot_2d
    popplt_pop_datafplot_core::plot
    pop_arrowplt_pop_arrowfplot_core::plot
    pop_labelplt_pop_labelfplot_core::plot
    pushplt_push_datafplot_core::plot
    push_arrowplt_push_arrowfplot_core::plot
    push_labelplt_push_labelfplot_core::plot
    save_fileplt_savefplot_core::plot
    setplt_setfplot_core::plot
    set_arrowplt_set_arrowfplot_core::plot
    set_axis_equalplt_set_axis_equalfplot_core::plot
    set_colormapplt_set_colormapfplot_core::plot
    set_draw_borderplt_set_draw_borderfplot_core::plot
    set_font_nameplt_set_fontfplot_core::plot
    set_font_sizeplt_set_font_sizefplot_core::plot
    set_labelplt_set_labelfplot_core::plot
    set_show_colorbarplt_set_show_colorbarfplot_core::plot
    set_show_gridlinesplt_set_show_gridfplot_core::plot
    set_square_axesp2d_set_square_axesfplot_core::plot_2d
    set_tics_inwardplt_set_tics_infplot_core::plot
    set_titleplt_set_titlefplot_core::plot
    set_use_y2_axisp2d_set_use_y2fplot_core::plot_2d
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__2d.html b/docs/html/structfplot__core_1_1plot__2d.html deleted file mode 100644 index f954469..0000000 --- a/docs/html/structfplot__core_1_1plot__2d.html +++ /dev/null @@ -1,761 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_2d Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_2d Type Reference
    -
    -
    - -

    A plot object defining a 2D plot. - More...

    -
    -Inheritance diagram for fplot_core::plot_2d:
    -
    -
    - - -fplot_core::plot -fplot_core::plot_object -fplot_core::plot_bar - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    final p2d_clean_up p2d_clean_up
     Cleans up resources held by the plot_2d object.
     
    procedure, public initialize p2d_init
     Initializes the plot_2d object.
     
    procedure, public get_command_string p2d_get_cmd
     Gets the GNUPLOT command string to represent this plot_2d object.
     
    procedure, public get_x_axis p2d_get_x_axis
     Gets the x-axis object.
     
    procedure, public get_y_axis p2d_get_y_axis
     Gets the y-axis object.
     
    procedure, public get_y2_axis p2d_get_y2_axis
     Gets the secondary y-axis object.
     
    procedure, public get_use_y2_axis p2d_get_use_y2
     Gets a flag determining if the secondary y-axis should be displayed.
     
    procedure, public set_use_y2_axis p2d_set_use_y2
     Sets a flag determining if the secondary y-axis should be displayed.
     
    procedure, public get_square_axes p2d_get_square_axes
     Gets a logical flag determining if the axes size should be squared off.
     
    procedure, public set_square_axes p2d_set_square_axes
     Sets a logical flag determining if the axes size should be squared off.
     
    - Public Member Functions inherited from fplot_core::plot
    procedure, public free_resources plt_clean_up
     Cleans up resources held by the plot object. Inheriting classes are expected to call this routine to free internally held resources.
     
    procedure, public initialize plt_init
     Initializes the plot object.
     
    procedure, public get_title plt_get_title
     Gets the plot's title.
     
    procedure, public set_title plt_set_title
     Sets the plot's title.
     
    procedure, public is_title_defined plt_has_title
     Gets a value determining if a title has been defined for the plot object.
     
    procedure, public get_legend plt_get_legend
     Gets the plot's legend object.
     
    procedure, public get_count plt_get_count
     Gets the number of stored plot_data objects.
     
    procedure, public push plt_push_data
     Pushes a plot_data object onto the stack.
     
    procedure, public pop plt_pop_data
     Pops the last plot_data object from the stack.
     
    procedure, public clear_all plt_clear_all
     Removes all plot_data objects from the plot.
     
    procedure, public get plt_get
     Gets a pointer to the requested plot_data object.
     
    procedure, public set plt_set
     Sets the requested plot_data object into the plot.
     
    procedure, public get_terminal plt_get_term
     Gets the GNUPLOT terminal object.
     
    procedure, public get_show_gridlines plt_get_show_grid
     Gets a flag determining if the grid lines should be shown.
     
    procedure, public set_show_gridlines plt_set_show_grid
     Sets a flag determining if the grid lines should be shown.
     
    procedure, public draw plt_draw
     Launches GNUPLOT and draws the plot per the current state of the command list.
     
    procedure, public save_file plt_save
     Saves a GNUPLOT command file.
     
    procedure, public get_font_name plt_get_font
     Gets the name of the font used for plot text.
     
    procedure, public set_font_name plt_set_font
     Sets the name of the font used for plot text.
     
    procedure, public get_font_size plt_get_font_size
     Gets the size of the font used by the plot.
     
    procedure, public set_font_size plt_set_font_size
     Sets the size of the font used by the plot.
     
    procedure, public get_tics_inward plt_get_tics_in
     Gets a value determining if the axis tic marks should point inwards.
     
    procedure, public set_tics_inward plt_set_tics_in
     Sets a value determining if the axis tic marks should point inwards.
     
    procedure, public get_draw_border plt_get_draw_border
     Gets a value determining if the border should be drawn.
     
    procedure, public set_draw_border plt_set_draw_border
     Sets a value determining if the border should be drawn.
     
    procedure, public push_label plt_push_label
     Adds a label to the plot.
     
    procedure, public pop_label plt_pop_label
     Removes the last label from the plot.
     
    procedure, public get_label plt_get_label
     Gets the requested plot_label from the plot.
     
    procedure, public set_label plt_set_label
     Sets the specified plot_label object.
     
    procedure, public get_label_count plt_get_label_count
     Gets the number of plot_label objects belonging to the plot.
     
    procedure, public clear_all_labels plt_clear_labels
     Clears all plot_label objects from the plot.
     
    procedure, public get_axis_equal plt_get_axis_equal
     Gets a flag determining if the axes should be equally scaled.
     
    procedure, public set_axis_equal plt_set_axis_equal
     Sets a flag determining if the axes should be equally scaled.
     
    procedure, public get_colormap plt_get_colormap
     Gets a pointer to the colormap object.
     
    procedure, public set_colormap plt_set_colormap
     Sets the colormap object.
     
    procedure, public get_show_colorbar plt_get_show_colorbar
     Gets a value determining if the colorbar should be shown.
     
    procedure, public set_show_colorbar plt_set_show_colorbar
     Sets a value determining if the colorbar should be shown.
     
    procedure, public push_arrow plt_push_arrow
     Pushes a new plot_arrow object onto the plot.
     
    procedure, public pop_arrow plt_pop_arrow
     Pops a plot_arrow object from the plot.
     
    procedure, public get_arrow plt_get_arrow
     Gets a pointer to the requested plot_arrow object.
     
    procedure, public set_arrow plt_set_arrow
     Sets a plot_arrow into the plot.
     
    procedure, public get_arrow_count plt_get_arrow_count
     Gets the number of plot_arrow objects held by the plot object.
     
    procedure, public clear_arrows plt_clear_arrows
     Clears all plot_arrow objects from the plot.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    type(y_axis), pointer m_yaxis => null()
     The y-axis.
     
    type(y2_axis), pointer m_y2axis => null()
     The secondary y-axis.
     
    logical m_usey2 = .false.
     Display the secondary y axis?
     
    logical m_set2square = .false.
     Set to square scaling.
     
    - Public Attributes inherited from fplot_core::plot
    logical m_hastitle = .false.
     Has a title?
     
    class(terminal), pointer m_terminal => null()
     The GNUPLOT terminal object to target.
     
    type(list) m_data
     A collection of plot_data items to plot.
     
    type(legend), pointer m_legend => null()
     The legend.
     
    logical m_showgrid = .true.
     Show grid lines?
     
    logical m_ticsin = .true.
     Point tic marks in?
     
    logical m_drawborder = .true.
     Draw the border?
     
    type(list) m_labels
     A collection of plot_label items to draw.
     
    integer(int32) m_colorindex = 1
     The color index to use for automatic line coloring for scatter plots.
     
    logical m_axisequal = .false.
     Determines if the axes should be scaled proportionally.
     
    class(colormap), pointer m_colormap
     The colormap.
     
    logical m_showcolorbar = .true.
     Show the colorbar?
     
    type(list) m_arrows
     A collection of plot_arrow items to draw.
     
    - - - - -

    -Private Attributes

    type(x_axis), pointer m_xaxis => null()
     The x-axis.
     
    -

    Detailed Description

    -

    A plot object defining a 2D plot.

    - -

    Definition at line 4838 of file fplot_core.f90.

    -

    Constructor & Destructor Documentation

    - -

    ◆ p2d_clean_up()

    - -
    -
    - - - - - -
    - - - - -
    final fplot_core::plot_2d::p2d_clean_up
    -
    -final
    -
    - -

    Cleans up resources held by the plot_2d object.

    -
    Syntax
    subroutine p2d_clean_up(type(plot_2d) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe plot_2d object.
    -
    -
    - -

    Definition at line 4859 of file fplot_core.f90.

    - -
    -
    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_2d::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this plot_2d object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(plot_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_2d object.
    -
    -
    -
    Returns
    The command string.
    - -

    Reimplemented from fplot_core::plot.

    - -

    Reimplemented in fplot_core::plot_bar.

    - -

    Definition at line 4894 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_square_axes()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_2d::get_square_axes
    -
    - -

    Gets a logical flag determining if the axes size should be squared off.

    -
    Syntax
    logical get_square_axes(class(plot_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_2d object.
    -
    -
    -
    Returns
    Returns true if the axes are to be sized to a square; else, false.
    - -

    Definition at line 4959 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_y2_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_2d::get_use_y2_axis
    -
    - -

    Gets a flag determining if the secondary y-axis should be displayed.

    -
    Syntax
    pure logical function get_use_y2_axis(class(plot_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_2d object.
    -
    -
    -
    Returns
    Returns true if the axis should be displayed; else, false.
    - -

    Definition at line 4936 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_x_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_2d::get_x_axis
    -
    - -

    Gets the x-axis object.

    -
    Syntax
    class(plot_axis) function, pointer get_x_axis(class(plot_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_2d object.
    -
    -
    -
    Returns
    A pointer to the x-axis object.
    - -

    Definition at line 4905 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_y2_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_2d::get_y2_axis
    -
    - -

    Gets the secondary y-axis object.

    -
    Syntax
    class(plot_axis) function, pointer get_y2_axis(class(plot_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_2d object.
    -
    -
    -
    Returns
    A pointer to the secondary y-axis object.
    - -

    Definition at line 4925 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_y_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_2d::get_y_axis
    -
    - -

    Gets the y-axis object.

    -
    Syntax
    class(plot_axis) function, pointer get_y_axis(class(plot_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_2d object.
    -
    -
    -
    Returns
    A pointer to the y-axis object.
    - -

    Definition at line 4915 of file fplot_core.f90.

    - -
    -
    - -

    ◆ initialize()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_2d::initialize
    -
    - -

    Initializes the plot_2d object.

    -
    Syntax
    subroutine initialize(class(plot_2d) this, optional integer(int32) term, optional class(errors) err)
    -
    -
    Parameters
    - - - - - -
    [in]thisThe plot_2d object.
    [in]termAn optional input that is used to define the terminal. The default terminal is a WXT terminal. The acceptable inputs are:
      -
    • GNUPLOT_TERMINAL_PNG
    • -
    • GNUPLOT_TERMINAL_QT
    • -
    • GNUPLOT_TERMINAL_WIN32
    • -
    • GNUPLOT_TERMINAL_WXT
    • -
    • GNUPLOT_TERMINAL_LATEX
    • -
    -
    [in]fnameA filename to pass to the terminal in the event the terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG).
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    - -

    Definition at line 4883 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_square_axes()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_2d::set_square_axes
    -
    - -

    Sets a logical flag determining if the axes size should be squared off.

    -
    Syntax
    subroutine set_square_axes(class(plot_2d) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_2d object.
    [in]Setto true if the axes are to be sized to a square; else, false.
    -
    -
    - -

    Definition at line 4971 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_y2_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_2d::set_use_y2_axis
    -
    - -

    Sets a flag determining if the secondary y-axis should be displayed.

    -
    Syntax
    subroutine set_use_y2_axis(class(plot_2d) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_2d object.
    [in]xSet to true if the axis should be displayed; else, false.
    -
    -
    - -

    Definition at line 4947 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_set2square

    - -
    -
    - - - - -
    logical fplot_core::plot_2d::m_set2square = .false.
    -
    - -

    Set to square scaling.

    - -

    Definition at line 4849 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_usey2

    - -
    -
    - - - - -
    logical fplot_core::plot_2d::m_usey2 = .false.
    -
    - -

    Display the secondary y axis?

    - -

    Definition at line 4847 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_xaxis

    - -
    -
    - - - - - -
    - - - - -
    type(x_axis), pointer fplot_core::plot_2d::m_xaxis => null()
    -
    -private
    -
    - -

    The x-axis.

    - -

    Definition at line 4841 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_y2axis

    - -
    -
    - - - - -
    type(y2_axis), pointer fplot_core::plot_2d::m_y2axis => null()
    -
    - -

    The secondary y-axis.

    - -

    Definition at line 4845 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_yaxis

    - -
    -
    - - - - -
    type(y_axis), pointer fplot_core::plot_2d::m_yaxis => null()
    -
    - -

    The y-axis.

    - -

    Definition at line 4843 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__2d.js b/docs/html/structfplot__core_1_1plot__2d.js deleted file mode 100644 index af12af4..0000000 --- a/docs/html/structfplot__core_1_1plot__2d.js +++ /dev/null @@ -1,18 +0,0 @@ -var structfplot__core_1_1plot__2d = -[ - [ "p2d_clean_up", "structfplot__core_1_1plot__2d.html#aeb55d7671f449779041c822189e86048", null ], - [ "get_command_string", "structfplot__core_1_1plot__2d.html#a82afa27b47f88385d430dd3c9b145d20", null ], - [ "get_square_axes", "structfplot__core_1_1plot__2d.html#ae408393a833c5978996701ab198ba0bb", null ], - [ "get_use_y2_axis", "structfplot__core_1_1plot__2d.html#a90474e948b36c694223ab528dedcd2bc", null ], - [ "get_x_axis", "structfplot__core_1_1plot__2d.html#af162aeb3b01f1d64c741889a0cd58cc8", null ], - [ "get_y2_axis", "structfplot__core_1_1plot__2d.html#a3f312d0ddd992171e7fef6ac7b142698", null ], - [ "get_y_axis", "structfplot__core_1_1plot__2d.html#ab423155405406198f9d01bbba1311baf", null ], - [ "initialize", "structfplot__core_1_1plot__2d.html#a14de301a52d28381d2e20e8b61e7b90f", null ], - [ "set_square_axes", "structfplot__core_1_1plot__2d.html#afc8ab071b8c099aebcf795a3cf10fe9e", null ], - [ "set_use_y2_axis", "structfplot__core_1_1plot__2d.html#a60849bb67d78d07ebb62ae2aedd298ad", null ], - [ "m_set2square", "structfplot__core_1_1plot__2d.html#a9cd3bd4fc18c1c07e7cb76ca1cf60d7b", null ], - [ "m_usey2", "structfplot__core_1_1plot__2d.html#a5fe52108ffac0ca723f0061111082338", null ], - [ "m_xaxis", "structfplot__core_1_1plot__2d.html#a5c4e65a6726f52d0f2f037615b9250bd", null ], - [ "m_y2axis", "structfplot__core_1_1plot__2d.html#a3079dfde8daa66c4a79e3d3454b40e2c", null ], - [ "m_yaxis", "structfplot__core_1_1plot__2d.html#ad91b551d76ef69f571f87511de97a3e8", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__2d.png b/docs/html/structfplot__core_1_1plot__2d.png deleted file mode 100644 index ba34627..0000000 Binary files a/docs/html/structfplot__core_1_1plot__2d.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__3d-members.html b/docs/html/structfplot__core_1_1plot__3d-members.html deleted file mode 100644 index a98b6ce..0000000 --- a/docs/html/structfplot__core_1_1plot__3d-members.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_3d Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_3d, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_allplt_clear_allfplot_core::plot
    clear_all_labelsplt_clear_labelsfplot_core::plot
    clear_arrowsplt_clear_arrowsfplot_core::plot
    drawplt_drawfplot_core::plot
    free_resourcesplt_clean_upfplot_core::plot
    getplt_getfplot_core::plot
    get_arrowplt_get_arrowfplot_core::plot
    get_arrow_countplt_get_arrow_countfplot_core::plot
    get_axis_equalplt_get_axis_equalfplot_core::plot
    get_azimuthp3d_get_azimuthfplot_core::plot_3d
    get_colormapplt_get_colormapfplot_core::plot
    get_command_stringp3d_get_cmdfplot_core::plot_3dvirtual
    get_coordinate_systemp3d_get_csysfplot_core::plot_3d
    get_countplt_get_countfplot_core::plot
    get_draw_borderplt_get_draw_borderfplot_core::plot
    get_elevationp3d_get_elevationfplot_core::plot_3d
    get_font_nameplt_get_fontfplot_core::plot
    get_font_sizeplt_get_font_sizefplot_core::plot
    get_labelplt_get_labelfplot_core::plot
    get_label_countplt_get_label_countfplot_core::plot
    get_legendplt_get_legendfplot_core::plot
    get_show_colorbarplt_get_show_colorbarfplot_core::plot
    get_show_gridlinesplt_get_show_gridfplot_core::plot
    get_terminalplt_get_termfplot_core::plot
    get_tics_inwardplt_get_tics_infplot_core::plot
    get_titleplt_get_titlefplot_core::plot
    get_use_map_viewp3d_get_use_map_viewfplot_core::plot_3d
    get_x_axisp3d_get_x_axisfplot_core::plot_3d
    get_y_axisp3d_get_y_axisfplot_core::plot_3d
    get_z_axisp3d_get_z_axisfplot_core::plot_3d
    get_z_intersect_xyp3d_get_z_axis_intersectfplot_core::plot_3d
    initializep3d_initfplot_core::plot_3d
    is_title_definedplt_has_titlefplot_core::plot
    m_arrowsfplot_core::plot
    m_axisequalfplot_core::plot
    m_azimuthfplot_core::plot_3d
    m_colorindexfplot_core::plot
    m_colormapfplot_core::plot
    m_csysfplot_core::plot_3d
    m_datafplot_core::plot
    m_drawborderfplot_core::plot
    m_elevationfplot_core::plot_3d
    m_hastitlefplot_core::plot
    m_labelsfplot_core::plot
    m_legendfplot_core::plot
    m_setmapfplot_core::plot_3d
    m_showcolorbarfplot_core::plot
    m_showgridfplot_core::plot
    m_terminalfplot_core::plot
    m_ticsinfplot_core::plot
    m_titlefplot_core::plotprivate
    m_xaxisfplot_core::plot_3dprivate
    m_yaxisfplot_core::plot_3d
    m_zaxisfplot_core::plot_3d
    m_zintersectfplot_core::plot_3d
    p3d_clean_upp3d_clean_upfplot_core::plot_3d
    popplt_pop_datafplot_core::plot
    pop_arrowplt_pop_arrowfplot_core::plot
    pop_labelplt_pop_labelfplot_core::plot
    pushplt_push_datafplot_core::plot
    push_arrowplt_push_arrowfplot_core::plot
    push_labelplt_push_labelfplot_core::plot
    save_fileplt_savefplot_core::plot
    setplt_setfplot_core::plot
    set_arrowplt_set_arrowfplot_core::plot
    set_axis_equalplt_set_axis_equalfplot_core::plot
    set_azimuthp3d_set_azimuthfplot_core::plot_3d
    set_colormapplt_set_colormapfplot_core::plot
    set_coordinate_systemp3d_set_csysfplot_core::plot_3d
    set_draw_borderplt_set_draw_borderfplot_core::plot
    set_elevationp3d_set_elevationfplot_core::plot_3d
    set_font_nameplt_set_fontfplot_core::plot
    set_font_sizeplt_set_font_sizefplot_core::plot
    set_labelplt_set_labelfplot_core::plot
    set_show_colorbarplt_set_show_colorbarfplot_core::plot
    set_show_gridlinesplt_set_show_gridfplot_core::plot
    set_tics_inwardplt_set_tics_infplot_core::plot
    set_titleplt_set_titlefplot_core::plot
    set_use_map_viewp3d_set_use_map_viewfplot_core::plot_3d
    set_z_intersect_xyp3d_set_z_axis_intersectfplot_core::plot_3d
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__3d.html b/docs/html/structfplot__core_1_1plot__3d.html deleted file mode 100644 index 5ed861d..0000000 --- a/docs/html/structfplot__core_1_1plot__3d.html +++ /dev/null @@ -1,1012 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_3d Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_3d Type Reference
    -
    -
    - -

    A plot object defining a 3D plot. - More...

    -
    -Inheritance diagram for fplot_core::plot_3d:
    -
    -
    - - -fplot_core::plot -fplot_core::plot_object -fplot_core::surface_plot - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    final p3d_clean_up p3d_clean_up
     Cleans up resources held by the plot_3d object.
     
    procedure, public initialize p3d_init
     Initializes the plot_3d object.
     
    procedure, public get_command_string p3d_get_cmd
     Gets the GNUPLOT command string to represent this plot_3d object.
     
    procedure, public get_x_axis p3d_get_x_axis
     Gets the x-axis object.
     
    procedure, public get_y_axis p3d_get_y_axis
     Gets the y-axis object.
     
    procedure, public get_z_axis p3d_get_z_axis
     Gets the z-axis object.
     
    procedure, public get_elevation p3d_get_elevation
     Gets the plot elevation angle.
     
    procedure, public set_elevation p3d_set_elevation
     Sets the plot elevation angle.
     
    procedure, public get_azimuth p3d_get_azimuth
     Gets the plot azimuth angle.
     
    procedure, public set_azimuth p3d_set_azimuth
     Sets the plot azimuth angle.
     
    procedure, public get_z_intersect_xy p3d_get_z_axis_intersect
     Gets a value determining if the z-axis should intersect the x-y plane.
     
    procedure, public set_z_intersect_xy p3d_set_z_axis_intersect
     Sets a value determining if the z-axis should intersect the x-y plane.
     
    procedure, public get_use_map_view p3d_get_use_map_view
     Gets a value determining if the view should be set to a 2D map view. If true, the azimuth and elevation terms are ignored.
     
    procedure, public set_use_map_view p3d_set_use_map_view
     Sets a value determining if the view should be set to a 2D map view. If true, the azimuth and elevation terms are ignored.
     
    procedure, public get_coordinate_system p3d_get_csys
     Gets a value determining the coordinate system.
     
    procedure, public set_coordinate_system p3d_set_csys
     Sets a value determining the coordinate system.
     
    - Public Member Functions inherited from fplot_core::plot
    procedure, public free_resources plt_clean_up
     Cleans up resources held by the plot object. Inheriting classes are expected to call this routine to free internally held resources.
     
    procedure, public initialize plt_init
     Initializes the plot object.
     
    procedure, public get_title plt_get_title
     Gets the plot's title.
     
    procedure, public set_title plt_set_title
     Sets the plot's title.
     
    procedure, public is_title_defined plt_has_title
     Gets a value determining if a title has been defined for the plot object.
     
    procedure, public get_legend plt_get_legend
     Gets the plot's legend object.
     
    procedure, public get_count plt_get_count
     Gets the number of stored plot_data objects.
     
    procedure, public push plt_push_data
     Pushes a plot_data object onto the stack.
     
    procedure, public pop plt_pop_data
     Pops the last plot_data object from the stack.
     
    procedure, public clear_all plt_clear_all
     Removes all plot_data objects from the plot.
     
    procedure, public get plt_get
     Gets a pointer to the requested plot_data object.
     
    procedure, public set plt_set
     Sets the requested plot_data object into the plot.
     
    procedure, public get_terminal plt_get_term
     Gets the GNUPLOT terminal object.
     
    procedure, public get_show_gridlines plt_get_show_grid
     Gets a flag determining if the grid lines should be shown.
     
    procedure, public set_show_gridlines plt_set_show_grid
     Sets a flag determining if the grid lines should be shown.
     
    procedure, public draw plt_draw
     Launches GNUPLOT and draws the plot per the current state of the command list.
     
    procedure, public save_file plt_save
     Saves a GNUPLOT command file.
     
    procedure, public get_font_name plt_get_font
     Gets the name of the font used for plot text.
     
    procedure, public set_font_name plt_set_font
     Sets the name of the font used for plot text.
     
    procedure, public get_font_size plt_get_font_size
     Gets the size of the font used by the plot.
     
    procedure, public set_font_size plt_set_font_size
     Sets the size of the font used by the plot.
     
    procedure, public get_tics_inward plt_get_tics_in
     Gets a value determining if the axis tic marks should point inwards.
     
    procedure, public set_tics_inward plt_set_tics_in
     Sets a value determining if the axis tic marks should point inwards.
     
    procedure, public get_draw_border plt_get_draw_border
     Gets a value determining if the border should be drawn.
     
    procedure, public set_draw_border plt_set_draw_border
     Sets a value determining if the border should be drawn.
     
    procedure, public push_label plt_push_label
     Adds a label to the plot.
     
    procedure, public pop_label plt_pop_label
     Removes the last label from the plot.
     
    procedure, public get_label plt_get_label
     Gets the requested plot_label from the plot.
     
    procedure, public set_label plt_set_label
     Sets the specified plot_label object.
     
    procedure, public get_label_count plt_get_label_count
     Gets the number of plot_label objects belonging to the plot.
     
    procedure, public clear_all_labels plt_clear_labels
     Clears all plot_label objects from the plot.
     
    procedure, public get_axis_equal plt_get_axis_equal
     Gets a flag determining if the axes should be equally scaled.
     
    procedure, public set_axis_equal plt_set_axis_equal
     Sets a flag determining if the axes should be equally scaled.
     
    procedure, public get_colormap plt_get_colormap
     Gets a pointer to the colormap object.
     
    procedure, public set_colormap plt_set_colormap
     Sets the colormap object.
     
    procedure, public get_show_colorbar plt_get_show_colorbar
     Gets a value determining if the colorbar should be shown.
     
    procedure, public set_show_colorbar plt_set_show_colorbar
     Sets a value determining if the colorbar should be shown.
     
    procedure, public push_arrow plt_push_arrow
     Pushes a new plot_arrow object onto the plot.
     
    procedure, public pop_arrow plt_pop_arrow
     Pops a plot_arrow object from the plot.
     
    procedure, public get_arrow plt_get_arrow
     Gets a pointer to the requested plot_arrow object.
     
    procedure, public set_arrow plt_set_arrow
     Sets a plot_arrow into the plot.
     
    procedure, public get_arrow_count plt_get_arrow_count
     Gets the number of plot_arrow objects held by the plot object.
     
    procedure, public clear_arrows plt_clear_arrows
     Clears all plot_arrow objects from the plot.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    type(y_axis), pointer m_yaxis => null()
     The y-axis.
     
    type(z_axis), pointer m_zaxis => null()
     The z-axis.
     
    real(real64) m_elevation = 60.0d0
     The elevation angle.
     
    real(real64) m_azimuth = 30.0d0
     The azimuth.
     
    logical m_zintersect = .true.
     Z-axis intersect X-Y plane?
     
    logical m_setmap = .false.
     Set map projection.
     
    integer(int32) m_csys = COORDINATES_CARTESIAN
     Plot coordinate system.
     
    - Public Attributes inherited from fplot_core::plot
    logical m_hastitle = .false.
     Has a title?
     
    class(terminal), pointer m_terminal => null()
     The GNUPLOT terminal object to target.
     
    type(list) m_data
     A collection of plot_data items to plot.
     
    type(legend), pointer m_legend => null()
     The legend.
     
    logical m_showgrid = .true.
     Show grid lines?
     
    logical m_ticsin = .true.
     Point tic marks in?
     
    logical m_drawborder = .true.
     Draw the border?
     
    type(list) m_labels
     A collection of plot_label items to draw.
     
    integer(int32) m_colorindex = 1
     The color index to use for automatic line coloring for scatter plots.
     
    logical m_axisequal = .false.
     Determines if the axes should be scaled proportionally.
     
    class(colormap), pointer m_colormap
     The colormap.
     
    logical m_showcolorbar = .true.
     Show the colorbar?
     
    type(list) m_arrows
     A collection of plot_arrow items to draw.
     
    - - - - -

    -Private Attributes

    type(x_axis), pointer m_xaxis => null()
     The x-axis.
     
    -

    Detailed Description

    -

    A plot object defining a 3D plot.

    - -

    Definition at line 5032 of file fplot_core.f90.

    -

    Constructor & Destructor Documentation

    - -

    ◆ p3d_clean_up()

    - -
    -
    - - - - - -
    - - - - -
    final fplot_core::plot_3d::p3d_clean_up
    -
    -final
    -
    - -

    Cleans up resources held by the plot_3d object.

    -
    Parameters
    - - -
    [in,out]thisThe plot_3d object.
    -
    -
    - -

    Definition at line 5054 of file fplot_core.f90.

    - -
    -
    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_azimuth()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::get_azimuth
    -
    - -

    Gets the plot azimuth angle.

    -
    Syntax
    real(real64) function get_azimuth(class(plot_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_3d object.
    -
    -
    -
    Returns
    The azimuth angle, in degrees.
    - -

    Definition at line 5149 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_3d::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this plot_3d object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(plot_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_3d object.
    -
    -
    -
    Returns
    The command string.
    - -

    Reimplemented from fplot_core::plot.

    - -

    Reimplemented in fplot_core::surface_plot.

    - -

    Definition at line 5089 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_coordinate_system()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::get_coordinate_system
    -
    - -

    Gets a value determining the coordinate system.

    -
    Syntax
    pure integer(int32) function get_coordinate_system(class(plot_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_3d object.
    -
    -
    -
    Returns
    The coordinate system ID, which must be one of the following.
      -
    • COORDINATES_CARTESIAN
    • -
    • COORDINATES_CYLINDRICAL
    • -
    • COORDINATES_SPHERICAL
    • -
    -
    - -

    Definition at line 5218 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_elevation()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::get_elevation
    -
    - -

    Gets the plot elevation angle.

    -
    Syntax
    real(real64) function get_elevation(class(plot_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_3d object.
    -
    -
    -
    Returns
    The elevation angle, in degrees.
    - -

    Definition at line 5129 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_map_view()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::get_use_map_view
    -
    - -

    Gets a value determining if the view should be set to a 2D map view. If true, the azimuth and elevation terms are ignored.

    -
    Syntax
    pure logical function get_use_map_view(class(plot_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_3d object.
    -
    -
    -
    Returns
    Returns true if the map view will be used; else, false.
    - -

    Definition at line 5194 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_x_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::get_x_axis
    -
    - -

    Gets the x-axis object.

    -
    Syntax
    class(plot_axis) function, pointer get_x_axis(class(plot_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_3d object.
    -
    -
    -
    Returns
    A pointer to the x-axis object.
    - -

    Definition at line 5099 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_y_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::get_y_axis
    -
    - -

    Gets the y-axis object.

    -
    Syntax
    class(plot_axis) function, pointer get_y_axis(class(plot_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_3d object.
    -
    -
    -
    Returns
    A pointer to the y-axis object.
    - -

    Definition at line 5109 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_z_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::get_z_axis
    -
    - -

    Gets the z-axis object.

    -
    Syntax
    class(plot_axis) function, pointer get_z_axis(class(plot_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_3d object.
    -
    -
    -
    Returns
    A pointer to the z-axis object.
    - -

    Definition at line 5119 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_z_intersect_xy()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::get_z_intersect_xy
    -
    - -

    Gets a value determining if the z-axis should intersect the x-y plane.

    -
    Syntax
    pure logical function get_z_intersect_xy(class(plot_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_3d object.
    -
    -
    -
    Returns
    Returns true if the z-axis should intersect the x-y plane; else, false to allow the z-axis to float.
    - -

    Definition at line 5171 of file fplot_core.f90.

    - -
    -
    - -

    ◆ initialize()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::initialize
    -
    - -

    Initializes the plot_3d object.

    -
    Syntax
    subroutine initialize(class(plot_3d) this, optional integer(int32) term, optional class(errors) err)
    -
    -
    Parameters
    - - - - - -
    [in]thisThe plot_3d object.
    [in]termAn optional input that is used to define the terminal. The default terminal is a WXT terminal. The acceptable inputs are:
      -
    • GNUPLOT_TERMINAL_PNG
    • -
    • GNUPLOT_TERMINAL_QT
    • -
    • GNUPLOT_TERMINAL_WIN32
    • -
    • GNUPLOT_TERMINAL_WXT
    • -
    • GNUPLOT_TERMINAL_LATEX
    • -
    -
    [in]fnameA filename to pass to the terminal in the event the terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG).
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    - -

    Definition at line 5078 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_azimuth()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::set_azimuth
    -
    - -

    Sets the plot azimuth angle.

    -
    Syntax
    subroutine set_azimuth(class(plot_3d) this, real(real64) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_3d object.
    [in]xThe azimuth angle, in degrees.
    -
    -
    - -

    Definition at line 5159 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_coordinate_system()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::set_coordinate_system
    -
    - -

    Sets a value determining the coordinate system.

    -
    Syntax
    subroutine set_coordinate_system(class(plot_3d) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_3d object.
    [in]xThe coordinate system ID, which must be one of the following.
      -
    • COORDINATES_CARTESIAN
    • -
    • COORDINATES_CYLINDRICAL
    • -
    • COORDINATES_SPHERICAL
    • -
    -
    -
    -
    - -

    Definition at line 5232 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_elevation()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::set_elevation
    -
    - -

    Sets the plot elevation angle.

    -
    Syntax
    subroutine set_elevation(class(plot_3d) this, real(real64) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_3d object.
    [in]xThe elevation angle, in degrees.
    -
    -
    - -

    Definition at line 5139 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_map_view()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::set_use_map_view
    -
    - -

    Sets a value determining if the view should be set to a 2D map view. If true, the azimuth and elevation terms are ignored.

    -
    Syntax
    subroutine set_use_map_view(class(plot_3d) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_3d object.
    [in]xReturns true if the map view will be used; else, false.
    -
    -
    - -

    Definition at line 5205 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_z_intersect_xy()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_3d::set_z_intersect_xy
    -
    - -

    Sets a value determining if the z-axis should intersect the x-y plane.

    -
    Syntax
    subroutine set_z_intersect_xy(class(plot_3d) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_3d object.
    [in]xSet to true if the z-axis should intersect the x-y plane; else, false to allow the z-axis to float.
    -
    -
    - -

    Definition at line 5183 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_azimuth

    - -
    -
    - - - - -
    real(real64) fplot_core::plot_3d::m_azimuth = 30.0d0
    -
    - -

    The azimuth.

    - -

    Definition at line 5043 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_csys

    - -
    -
    - - - - -
    integer(int32) fplot_core::plot_3d::m_csys = COORDINATES_CARTESIAN
    -
    - -

    Plot coordinate system.

    - -

    Definition at line 5049 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_elevation

    - -
    -
    - - - - -
    real(real64) fplot_core::plot_3d::m_elevation = 60.0d0
    -
    - -

    The elevation angle.

    - -

    Definition at line 5041 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_setmap

    - -
    -
    - - - - -
    logical fplot_core::plot_3d::m_setmap = .false.
    -
    - -

    Set map projection.

    - -

    Definition at line 5047 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_xaxis

    - -
    -
    - - - - - -
    - - - - -
    type(x_axis), pointer fplot_core::plot_3d::m_xaxis => null()
    -
    -private
    -
    - -

    The x-axis.

    - -

    Definition at line 5035 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_yaxis

    - -
    -
    - - - - -
    type(y_axis), pointer fplot_core::plot_3d::m_yaxis => null()
    -
    - -

    The y-axis.

    - -

    Definition at line 5037 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_zaxis

    - -
    -
    - - - - -
    type(z_axis), pointer fplot_core::plot_3d::m_zaxis => null()
    -
    - -

    The z-axis.

    - -

    Definition at line 5039 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_zintersect

    - -
    -
    - - - - -
    logical fplot_core::plot_3d::m_zintersect = .true.
    -
    - -

    Z-axis intersect X-Y plane?

    - -

    Definition at line 5045 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__3d.js b/docs/html/structfplot__core_1_1plot__3d.js deleted file mode 100644 index d2e4bfc..0000000 --- a/docs/html/structfplot__core_1_1plot__3d.js +++ /dev/null @@ -1,27 +0,0 @@ -var structfplot__core_1_1plot__3d = -[ - [ "p3d_clean_up", "structfplot__core_1_1plot__3d.html#ab0e3abb763cf80ecc9af2d75e5c1035d", null ], - [ "get_azimuth", "structfplot__core_1_1plot__3d.html#acee2c2a674fa5aadb08211e4a18a0d5a", null ], - [ "get_command_string", "structfplot__core_1_1plot__3d.html#a374d3655b53b1f429d2db81f375b8d86", null ], - [ "get_coordinate_system", "structfplot__core_1_1plot__3d.html#a56ffdd5bb6cd107c22bc8a699681d993", null ], - [ "get_elevation", "structfplot__core_1_1plot__3d.html#a6a5612c5ea70d90368de4e738e662ee8", null ], - [ "get_use_map_view", "structfplot__core_1_1plot__3d.html#ad61ad94ee9d573d1d51aa8cf463c59b4", null ], - [ "get_x_axis", "structfplot__core_1_1plot__3d.html#afe5605d48034ee94fbaf08af6d47e59f", null ], - [ "get_y_axis", "structfplot__core_1_1plot__3d.html#ad39ce86017565371155ce84eacfd2086", null ], - [ "get_z_axis", "structfplot__core_1_1plot__3d.html#a3606b1bf32567c8ae6f02b644b2b36ab", null ], - [ "get_z_intersect_xy", "structfplot__core_1_1plot__3d.html#af09cbbc43c987f15e906e5a1b5d0d8cc", null ], - [ "initialize", "structfplot__core_1_1plot__3d.html#af2f00319633a96dfc5961129671126f1", null ], - [ "set_azimuth", "structfplot__core_1_1plot__3d.html#a925a7a5484ce7fde36ce80e2199f2c2b", null ], - [ "set_coordinate_system", "structfplot__core_1_1plot__3d.html#a66d6237275dbe689d7411ddced7e22c9", null ], - [ "set_elevation", "structfplot__core_1_1plot__3d.html#a68d05b37ad04bb9627471b1c20a30c38", null ], - [ "set_use_map_view", "structfplot__core_1_1plot__3d.html#a702f48c41af5fa7b33d1555904ca5823", null ], - [ "set_z_intersect_xy", "structfplot__core_1_1plot__3d.html#a58f3645f94801662c0f10736804da580", null ], - [ "m_azimuth", "structfplot__core_1_1plot__3d.html#a31e7daa0c6029d65bbe6dfc370e09f75", null ], - [ "m_csys", "structfplot__core_1_1plot__3d.html#a13ce047bd142425ca9c96fd57d126231", null ], - [ "m_elevation", "structfplot__core_1_1plot__3d.html#a20016816cd703ecc6902755c9506f954", null ], - [ "m_setmap", "structfplot__core_1_1plot__3d.html#a626a696690a0f9f9851b1764efb1a048", null ], - [ "m_xaxis", "structfplot__core_1_1plot__3d.html#afd5e9b00e8e1146c9fb84e0d0117c2e3", null ], - [ "m_yaxis", "structfplot__core_1_1plot__3d.html#ade01966b7cbc1f09297e329dafa69e58", null ], - [ "m_zaxis", "structfplot__core_1_1plot__3d.html#acc0b113abeb246892dde2b8782eac0ca", null ], - [ "m_zintersect", "structfplot__core_1_1plot__3d.html#acfcd025c88ae8f15a5ae2ff86021f03c", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__3d.png b/docs/html/structfplot__core_1_1plot__3d.png deleted file mode 100644 index 9a97c93..0000000 Binary files a/docs/html/structfplot__core_1_1plot__3d.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__arrow-members.html b/docs/html/structfplot__core_1_1plot__arrow-members.html deleted file mode 100644 index e7bb32b..0000000 --- a/docs/html/structfplot__core_1_1plot__arrow-members.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_arrow Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_arrow, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    get_colorpar_get_colorfplot_core::plot_arrow
    get_command_stringpar_get_cmdfplot_core::plot_arrowvirtual
    get_head_anglepar_get_head_anglefplot_core::plot_arrow
    get_head_back_anglepar_get_head_back_anglefplot_core::plot_arrow
    get_head_fillpar_get_fillfplot_core::plot_arrow
    get_head_locationpar_get_headfplot_core::plot_arrow
    get_head_sizepar_get_head_sizefplot_core::plot_arrow
    get_head_typepar_get_head_typefplot_core::plot_arrow
    get_is_visiblepar_get_is_visiblefplot_core::plot_arrow
    get_line_stylepar_get_line_stylefplot_core::plot_arrow
    get_line_widthpar_get_line_widthfplot_core::plot_arrow
    get_move_to_frontpar_get_move_to_frontfplot_core::plot_arrow
    get_tail_locationpar_get_tailfplot_core::plot_arrow
    get_use_default_sizepar_get_use_default_sizefplot_core::plot_arrow
    m_angle (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_backangle (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_color (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_filling (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_front (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_head (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_head_type (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_linestyle (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_linewidth (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_size (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_tail (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_use_default_size (defined in fplot_core::plot_arrow)fplot_core::plot_arrow
    m_visible (defined in fplot_core::plot_arrow)fplot_core::plot_arrowprivate
    par_set_head_1par_set_head_1 (defined in fplot_core::plot_arrow)fplot_core::plot_arrowprivate
    par_set_head_2par_set_head_2 (defined in fplot_core::plot_arrow)fplot_core::plot_arrowprivate
    par_set_head_3par_set_head_3 (defined in fplot_core::plot_arrow)fplot_core::plot_arrowprivate
    par_set_tail_1par_set_tail_1 (defined in fplot_core::plot_arrow)fplot_core::plot_arrowprivate
    par_set_tail_2par_set_tail_2 (defined in fplot_core::plot_arrow)fplot_core::plot_arrowprivate
    par_set_tail_3par_set_tail_3 (defined in fplot_core::plot_arrow)fplot_core::plot_arrowprivate
    set_colorpar_set_colorfplot_core::plot_arrow
    set_head_anglepar_set_head_anglefplot_core::plot_arrow
    set_head_back_anglepar_set_head_back_anglefplot_core::plot_arrow
    set_head_fillpar_set_fillfplot_core::plot_arrow
    set_head_locationpar_set_head_1fplot_core::plot_arrow
    set_head_locationpar_set_head_2fplot_core::plot_arrow
    set_head_locationpar_set_head_3fplot_core::plot_arrow
    set_head_sizepar_set_head_sizefplot_core::plot_arrow
    set_head_typepar_set_head_typefplot_core::plot_arrow
    set_is_visiblepar_set_is_visiblefplot_core::plot_arrow
    set_line_stylepar_set_line_stylefplot_core::plot_arrow
    set_line_widthpar_set_line_widthfplot_core::plot_arrow
    set_move_to_frontpar_set_move_to_frontfplot_core::plot_arrow
    set_tail_locationpar_set_tail_1fplot_core::plot_arrow
    set_tail_locationpar_set_tail_2fplot_core::plot_arrow
    set_tail_locationpar_set_tail_3fplot_core::plot_arrow
    set_use_default_sizepar_set_use_default_sizefplot_core::plot_arrow
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__arrow.html b/docs/html/structfplot__core_1_1plot__arrow.html deleted file mode 100644 index 0ffaa47..0000000 --- a/docs/html/structfplot__core_1_1plot__arrow.html +++ /dev/null @@ -1,1643 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_arrow Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - - -
    - -

    Defines an arrow to be used on by a plot object. - More...

    -
    -Inheritance diagram for fplot_core::plot_arrow:
    -
    -
    - - -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_is_visible par_get_is_visible
     Gets a value determining if the arrow is visible.
     
    procedure, public set_is_visible par_set_is_visible
     Sets a value determining if the arrow is visible.
     
    procedure, public get_tail_location par_get_tail
     Gets the coordinates of the arrow's tail.
     
    generic, public set_tail_location par_set_tail_1
     Sets the location of the arrow's tail.
     
    generic, public set_tail_location par_set_tail_2
     Sets the location of the arrow's tail.
     
    generic, public set_tail_location par_set_tail_3
     Sets the location of the arrow's tail.
     
    procedure, public get_head_location par_get_head
     Gets the coordinates of the arrow's head.
     
    generic, public set_head_location par_set_head_1
     Sets the location of the arrow's head.
     
    generic, public set_head_location par_set_head_2
     Sets the location of the arrow's head.
     
    generic, public set_head_location par_set_head_3
     Sets the location of the arrow's head.
     
    procedure, public get_color par_get_color
     Gets the color of the arrow.
     
    procedure, public set_color par_set_color
     Sets the color of the arrow.
     
    procedure, public get_line_style par_get_line_style
     Gets the line style used to draw the arrow.
     
    procedure, public set_line_style par_set_line_style
     Sets the line style used to draw the arrow.
     
    procedure, public get_line_width par_get_line_width
     Gets the width of the lines used to draw the arrow.
     
    procedure, public set_line_width par_set_line_width
     Sets the width of the lines used to draw the arrow.
     
    procedure, public get_head_type par_get_head_type
     Gets the type of arrow head.
     
    procedure, public set_head_type par_set_head_type
     Sets the type of arrow head.
     
    procedure, public get_head_fill par_get_fill
     Gets a flag denoting the head fill type.
     
    procedure, public set_head_fill par_set_fill
     Sets a flag denoting the head fill type.
     
    procedure, public get_move_to_front par_get_move_to_front
     Gets a value determining if the arrow should be moved to the front.
     
    procedure, public set_move_to_front par_set_move_to_front
     Sets a value determining if the arrow should be moved to the front.
     
    procedure, public get_head_size par_get_head_size
     Gets the size of the arrow head.
     
    procedure, public set_head_size par_set_head_size
     Sets the size of the arrow head.
     
    procedure, public get_head_angle par_get_head_angle
     Gets the angle of the arrow head.
     
    procedure, public set_head_angle par_set_head_angle
     Sets the angle of the arrow head.
     
    procedure, public get_head_back_angle par_get_head_back_angle
     Gets the angle of the back of the arrow head.
     
    procedure, public set_head_back_angle par_set_head_back_angle
     Sets the angle of the back of the arrow head.
     
    procedure, public get_use_default_size par_get_use_default_size
     Gets a value determining if arrow head sizing defaults should be used.
     
    procedure, public set_use_default_size par_set_use_default_size
     Sets a value determining if arrow head sizing defaults should be used.
     
    procedure, public get_command_string par_get_cmd
     Returns the appropriate GNUPLOT command string to establish appropriate parameters.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    real(real32), dimension(3) m_tail = [0.0, 0.0, 0.0]
     
    real(real32), dimension(3) m_head = [0.0, 0.0, 0.0]
     
    type(colorm_color = CLR_BLACK
     
    integer(int32) m_linestyle = LINE_SOLID
     
    real(real32) m_linewidth = 1.0
     
    integer(int32) m_head_type = ARROW_HEAD
     
    integer(int32) m_filling = ARROW_FILLED
     
    logical m_front = .true.
     
    real(real32) m_size = 0.375
     
    real(real32) m_angle = 10.0
     
    real(real32) m_backangle = 90.0
     
    logical m_use_default_size = .true.
     
    - - - - - - - - - - - - - -

    -Private Member Functions

    procedure, private par_set_tail_1 par_set_tail_1
     
    procedure, private par_set_tail_2 par_set_tail_2
     
    procedure, private par_set_tail_3 par_set_tail_3
     
    procedure, private par_set_head_1 par_set_head_1
     
    procedure, private par_set_head_2 par_set_head_2
     
    procedure, private par_set_head_3 par_set_head_3
     
    - - - -

    -Private Attributes

    logical, private m_visible = .true.
     
    -

    Detailed Description

    -

    Defines an arrow to be used on by a plot object.

    - -

    Definition at line 648 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_color
    -
    - -

    Gets the color of the arrow.

    -
    Syntax
    pure type(color) function get_color(class(arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    The color.
    - -

    Definition at line 795 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to establish appropriate parameters.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    The GNUPLOT command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 1026 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_head_angle()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_head_angle
    -
    - -

    Gets the angle of the arrow head.

    -
    Syntax
    pure real(real32) function get_head_angle(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    The angle, in degrees.
    - -

    Definition at line 963 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_head_back_angle()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_head_back_angle
    -
    - -

    Gets the angle of the back of the arrow head.

    -
    Syntax
    pure real(real32) function get_head_back_angle(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    The angle, in degrees.
    - -

    Definition at line 983 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_head_fill()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_head_fill
    -
    - -

    Gets a flag denoting the head fill type.

    -
    Syntax
    pure integer(int32) function get_head_fill(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    The flag denoting head fill. It will be one of the following constants.
      -
    • ARROW_FILLED
    • -
    • ARROW_EMPTY
    • -
    • ARROW_NO_BORDER
    • -
    • ARROW_NO_FILL
    • -
    -
    - -

    Definition at line 895 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_head_location()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_head_location
    -
    - -

    Gets the coordinates of the arrow's head.

    -
    Syntax
    pure real(real32)(3) function get_head_location(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    A 3-element array containing the x, y, and z coordinates of the arrow's head.
    - -

    Definition at line 751 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_head_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_head_size
    -
    - -

    Gets the size of the arrow head.

    -
    Syntax
    pure real(real32) function get_head_size(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    The head size.
    - -

    Definition at line 943 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_head_type()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_head_type
    -
    - -

    Gets the type of arrow head.

    -
    Syntax
    pure integer(int32) function get_head_type(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    The arrow head type. It is one of the following constants.
      -
    • ARROW_HEAD
    • -
    • ARROW_BACKHEAD
    • -
    • ARROW_HEADS
    • -
    • ARROW_NO_HEAD
    • -
    -
    - -

    Definition at line 865 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_is_visible()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_is_visible
    -
    - -

    Gets a value determining if the arrow is visible.

    -
    Syntax
    pure logical function get_is_visible(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    True if the arrow is visible; else, false.
    - -

    Definition at line 685 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_line_style()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_line_style
    -
    - -

    Gets the line style used to draw the arrow.

    -
    Syntax
    pure integer(int32) function get_line_style(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    The line style.
    - -

    Definition at line 815 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_line_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_line_width
    -
    - -

    Gets the width of the lines used to draw the arrow.

    -
    Syntax
    pure real(real32) function get_line_width(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    The width of the line.
    - -

    Definition at line 841 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_move_to_front()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_move_to_front
    -
    - -

    Gets a value determining if the arrow should be moved to the front.

    -
    Syntax
    pure logical function get_move_to_front(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    True if the arrow should be moved to the front; else, false.
    - -

    Definition at line 921 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_tail_location()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_tail_location
    -
    - -

    Gets the coordinates of the arrow's tail.

    -
    Syntax
    pure real(real32)(3) function get_tail_location(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    A 3-element array containing the x, y, and z coordinates of the arrow's tail.
    - -

    Definition at line 706 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_default_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::get_use_default_size
    -
    - -

    Gets a value determining if arrow head sizing defaults should be used.

    -
    Syntax
    pure logical function get_use_default_size(class(plot_arrow) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_arrow object.
    -
    -
    -
    Returns
    True if the defaults should be used; else, false.
    - -

    Definition at line 1004 of file fplot_core.f90.

    - -
    -
    - -

    ◆ par_set_head_1()

    - -
    -
    - - - - - -
    - - - - -
    procedure, private fplot_core::plot_arrow::par_set_head_1
    -
    -private
    -
    - -

    Definition at line 783 of file fplot_core.f90.

    - -
    -
    - -

    ◆ par_set_head_2()

    - -
    -
    - - - - - -
    - - - - -
    procedure, private fplot_core::plot_arrow::par_set_head_2
    -
    -private
    -
    - -

    Definition at line 784 of file fplot_core.f90.

    - -
    -
    - -

    ◆ par_set_head_3()

    - -
    -
    - - - - - -
    - - - - -
    procedure, private fplot_core::plot_arrow::par_set_head_3
    -
    -private
    -
    - -

    Definition at line 785 of file fplot_core.f90.

    - -
    -
    - -

    ◆ par_set_tail_1()

    - -
    -
    - - - - - -
    - - - - -
    procedure, private fplot_core::plot_arrow::par_set_tail_1
    -
    -private
    -
    - -

    Definition at line 738 of file fplot_core.f90.

    - -
    -
    - -

    ◆ par_set_tail_2()

    - -
    -
    - - - - - -
    - - - - -
    procedure, private fplot_core::plot_arrow::par_set_tail_2
    -
    -private
    -
    - -

    Definition at line 739 of file fplot_core.f90.

    - -
    -
    - -

    ◆ par_set_tail_3()

    - -
    -
    - - - - - -
    - - - - -
    procedure, private fplot_core::plot_arrow::par_set_tail_3
    -
    -private
    -
    - -

    Definition at line 740 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_color()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_color
    -
    - -

    Sets the color of the arrow.

    -
    Syntax
    subroutine set_color(class(arrow) this, type(color) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe color.
    -
    -
    - -

    Definition at line 805 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_head_angle()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_head_angle
    -
    - -

    Sets the angle of the arrow head.

    -
    Syntax
    subroutine set_head_angle(class(plot_arrow) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe angle, in degrees.
    -
    -
    - -

    Definition at line 973 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_head_back_angle()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_head_back_angle
    -
    - -

    Sets the angle of the back of the arrow head.

    -
    Syntax
    subroutine set_head_back_angle(class(plot_arrow) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe angle, in degrees.
    -
    -
    - -

    Definition at line 993 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_head_fill()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_head_fill
    -
    - -

    Sets a flag denoting the head fill type.

    -
    Syntax
    subroutine set_head_fill(class(plot_arrow) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe flag denoting head fill. It must be one of the following constants.
      -
    • ARROW_FILLED
    • -
    • ARROW_EMPTY
    • -
    • ARROW_NO_BORDER
    • -
    • ARROW_NO_FILL
    • -
    -
    -
    -
    - -

    Definition at line 910 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_head_location() [1/3]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_arrow::set_head_location
    -
    - -

    Sets the location of the arrow's head.

    -
    Syntax 1
    subroutine set_head_location(class(plot_arrow) this, real(real32) x(3))
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xA 3-element array containing the x, y, and z coordiantes of the arrow's head.
    -
    -
    -
    Syntax 2
    subroutine set_head_location(class(plot_arrow) this, real(real32) x, real(real32) y)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's head.
    [in]yThe y-coordinate of the arrow's head.
    -
    -
    -
    Syntax 3
    subroutine set_head_location(class(plot_arrow) this, real(real32) x, real(real32) y, real(real32) z)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's head.
    [in]yThe y-coordinate of the arrow's head.
    [in]zThe z-coordinate of the arrow's head.
    -
    -
    - -

    Definition at line 781 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_head_location() [2/3]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_arrow::set_head_location
    -
    - -

    Sets the location of the arrow's head.

    -
    Syntax 1
    subroutine set_head_location(class(plot_arrow) this, real(real32) x(3))
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xA 3-element array containing the x, y, and z coordiantes of the arrow's head.
    -
    -
    -
    Syntax 2
    subroutine set_head_location(class(plot_arrow) this, real(real32) x, real(real32) y)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's head.
    [in]yThe y-coordinate of the arrow's head.
    -
    -
    -
    Syntax 3
    subroutine set_head_location(class(plot_arrow) this, real(real32) x, real(real32) y, real(real32) z)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's head.
    [in]yThe y-coordinate of the arrow's head.
    [in]zThe z-coordinate of the arrow's head.
    -
    -
    - -

    Definition at line 781 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_head_location() [3/3]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_arrow::set_head_location
    -
    - -

    Sets the location of the arrow's head.

    -
    Syntax 1
    subroutine set_head_location(class(plot_arrow) this, real(real32) x(3))
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xA 3-element array containing the x, y, and z coordiantes of the arrow's head.
    -
    -
    -
    Syntax 2
    subroutine set_head_location(class(plot_arrow) this, real(real32) x, real(real32) y)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's head.
    [in]yThe y-coordinate of the arrow's head.
    -
    -
    -
    Syntax 3
    subroutine set_head_location(class(plot_arrow) this, real(real32) x, real(real32) y, real(real32) z)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's head.
    [in]yThe y-coordinate of the arrow's head.
    [in]zThe z-coordinate of the arrow's head.
    -
    -
    - -

    Definition at line 781 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_head_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_head_size
    -
    - -

    Sets the size of the arrow head.

    -
    Syntax
    subroutine set_head_size(class(plot_arrow) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe head size.
    -
    -
    - -

    Definition at line 953 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_head_type()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_head_type
    -
    - -

    Sets the type of arrow head.

    -
    Syntax
    subroutine set_head_type(class(plot_arrow) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe arrow head type. It must be one of the following constants.
      -
    • ARROW_HEAD
    • -
    • ARROW_BACKHEAD
    • -
    • ARROW_HEADS
    • -
    • ARROW_NO_HEAD
    • -
    -
    -
    -
    - -

    Definition at line 880 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_is_visible()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_is_visible
    -
    - -

    Sets a value determining if the arrow is visible.

    -
    Syntax
    subroutine set_is_visible(class(plot_arrow) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xTrue if the arrow is visible; else, false.
    -
    -
    - -

    Definition at line 695 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_line_style()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_line_style
    -
    - -

    Sets the line style used to draw the arrow.

    -
    Syntax
    subroutine set_line_style(class(plot_arrow) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    Theline style. The value must be one of the following.
      -
    • LINE_SOLID
    • -
    • LINE_DASHED
    • -
    • LINE_DASH_DOTTED
    • -
    • LINE_DASH_DOT_DOT
    • -
    • LINE_DOTTED If the value is not one of the above, the command is ignored.
    • -
    -
    -
    -
    - -

    Definition at line 831 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_line_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_line_width
    -
    - -

    Sets the width of the lines used to draw the arrow.

    -
    Syntax
    subroutine set_line_width(class(plot_arrow) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe width of the line.
    -
    -
    - -

    Definition at line 851 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_move_to_front()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_move_to_front
    -
    - -

    Sets a value determining if the arrow should be moved to the front.

    -
    Syntax
    subroutine set_move_to_front(class(plot_arrow) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xTrue if the arrow should be moved to the front; else, false.
    -
    -
    - -

    Definition at line 933 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_tail_location() [1/3]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_arrow::set_tail_location
    -
    - -

    Sets the location of the arrow's tail.

    -
    Syntax 1
    subroutine set_tail_location(class(plot_arrow) this, real(real32) x(3))
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xA 3-element array containing the x, y, and z coordiantes of the arrow's tail.
    -
    -
    -
    Syntax 2
    subroutine set_tail_location(class(plot_arrow) this, real(real32) x, real(real32) y)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's tail.
    [in]yThe y-coordinate of the arrow's tail.
    -
    -
    -
    Syntax 3
    subroutine set_tail_location(class(plot_arrow) this, real(real32) x, real(real32) y, real(real32) z)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's tail.
    [in]yThe y-coordinate of the arrow's tail.
    [in]zThe z-coordinate of the arrow's tail.
    -
    -
    - -

    Definition at line 736 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_tail_location() [2/3]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_arrow::set_tail_location
    -
    - -

    Sets the location of the arrow's tail.

    -
    Syntax 1
    subroutine set_tail_location(class(plot_arrow) this, real(real32) x(3))
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xA 3-element array containing the x, y, and z coordiantes of the arrow's tail.
    -
    -
    -
    Syntax 2
    subroutine set_tail_location(class(plot_arrow) this, real(real32) x, real(real32) y)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's tail.
    [in]yThe y-coordinate of the arrow's tail.
    -
    -
    -
    Syntax 3
    subroutine set_tail_location(class(plot_arrow) this, real(real32) x, real(real32) y, real(real32) z)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's tail.
    [in]yThe y-coordinate of the arrow's tail.
    [in]zThe z-coordinate of the arrow's tail.
    -
    -
    - -

    Definition at line 736 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_tail_location() [3/3]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_arrow::set_tail_location
    -
    - -

    Sets the location of the arrow's tail.

    -
    Syntax 1
    subroutine set_tail_location(class(plot_arrow) this, real(real32) x(3))
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xA 3-element array containing the x, y, and z coordiantes of the arrow's tail.
    -
    -
    -
    Syntax 2
    subroutine set_tail_location(class(plot_arrow) this, real(real32) x, real(real32) y)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's tail.
    [in]yThe y-coordinate of the arrow's tail.
    -
    -
    -
    Syntax 3
    subroutine set_tail_location(class(plot_arrow) this, real(real32) x, real(real32) y, real(real32) z)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe plot_arrow object.
    [in]xThe x-coordinate of the arrow's tail.
    [in]yThe y-coordinate of the arrow's tail.
    [in]zThe z-coordinate of the arrow's tail.
    -
    -
    - -

    Definition at line 736 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_default_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_arrow::set_use_default_size
    -
    - -

    Sets a value determining if arrow head sizing defaults should be used.

    -
    Syntax
    subroutine set_use_default_size(class(plot_arrow) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_arrow object.
    [in]xTrue if the defaults should be used; else, false.
    -
    -
    - -

    Definition at line 1015 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_angle

    - -
    -
    - - - - -
    real(real32) fplot_core::plot_arrow::m_angle = 10.0
    -
    - -

    Definition at line 670 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_backangle

    - -
    -
    - - - - -
    real(real32) fplot_core::plot_arrow::m_backangle = 90.0
    -
    - -

    Definition at line 672 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_color

    - -
    -
    - - - - -
    type(color) fplot_core::plot_arrow::m_color = CLR_BLACK
    -
    - -

    Definition at line 656 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_filling

    - -
    -
    - - - - -
    integer(int32) fplot_core::plot_arrow::m_filling = ARROW_FILLED
    -
    - -

    Definition at line 664 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_front

    - -
    -
    - - - - -
    logical fplot_core::plot_arrow::m_front = .true.
    -
    - -

    Definition at line 666 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_head

    - -
    -
    - - - - -
    real(real32), dimension(3) fplot_core::plot_arrow::m_head = [0.0, 0.0, 0.0]
    -
    - -

    Definition at line 654 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_head_type

    - -
    -
    - - - - -
    integer(int32) fplot_core::plot_arrow::m_head_type = ARROW_HEAD
    -
    - -

    Definition at line 662 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_linestyle

    - -
    -
    - - - - -
    integer(int32) fplot_core::plot_arrow::m_linestyle = LINE_SOLID
    -
    - -

    Definition at line 658 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_linewidth

    - -
    -
    - - - - -
    real(real32) fplot_core::plot_arrow::m_linewidth = 1.0
    -
    - -

    Definition at line 660 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_size

    - -
    -
    - - - - -
    real(real32) fplot_core::plot_arrow::m_size = 0.375
    -
    - -

    Definition at line 668 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_tail

    - -
    -
    - - - - -
    real(real32), dimension(3) fplot_core::plot_arrow::m_tail = [0.0, 0.0, 0.0]
    -
    - -

    Definition at line 652 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_use_default_size

    - -
    -
    - - - - -
    logical fplot_core::plot_arrow::m_use_default_size = .true.
    -
    - -

    Definition at line 674 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_visible

    - -
    -
    - - - - - -
    - - - - -
    logical, private fplot_core::plot_arrow::m_visible = .true.
    -
    -private
    -
    - -

    Definition at line 650 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__arrow.js b/docs/html/structfplot__core_1_1plot__arrow.js deleted file mode 100644 index e576451..0000000 --- a/docs/html/structfplot__core_1_1plot__arrow.js +++ /dev/null @@ -1,34 +0,0 @@ -var structfplot__core_1_1plot__arrow = -[ - [ "get_color", "structfplot__core_1_1plot__arrow.html#a419e8b0aae89c5f8fd11c93787209bca", null ], - [ "get_command_string", "structfplot__core_1_1plot__arrow.html#acdc8d52f5af979888d88401811f7f199", null ], - [ "get_head_angle", "structfplot__core_1_1plot__arrow.html#a2ac66de42f97cf794d6184c9e092f85e", null ], - [ "get_head_back_angle", "structfplot__core_1_1plot__arrow.html#abfd19a819ab33659213588cd0d7dfe9c", null ], - [ "get_head_fill", "structfplot__core_1_1plot__arrow.html#a4cd206c5596dbab50b91472260646f29", null ], - [ "get_head_location", "structfplot__core_1_1plot__arrow.html#a65d9efb1c3a6874ffb9745b6ba67d9ae", null ], - [ "get_head_size", "structfplot__core_1_1plot__arrow.html#a80eff3e2ee043866d69c4074006e00d2", null ], - [ "get_head_type", "structfplot__core_1_1plot__arrow.html#a3c95cde3a7e4748f8a2906ec9404d477", null ], - [ "get_is_visible", "structfplot__core_1_1plot__arrow.html#aa8b6628e7136aa166c1e6205dc4dc169", null ], - [ "get_line_style", "structfplot__core_1_1plot__arrow.html#a5689908ce348e110e19a14968bb41315", null ], - [ "get_line_width", "structfplot__core_1_1plot__arrow.html#aa054166ee5ab324006aa3a79bcccb2d7", null ], - [ "get_move_to_front", "structfplot__core_1_1plot__arrow.html#a6beddd6f29376f864ed6515b2936badb", null ], - [ "get_tail_location", "structfplot__core_1_1plot__arrow.html#a4ad925efaa9bb101c20799ba29028d52", null ], - [ "get_use_default_size", "structfplot__core_1_1plot__arrow.html#aacd237f46dd75db4cd7da3e6149b4dae", null ], - [ "set_color", "structfplot__core_1_1plot__arrow.html#a62bd3548d5aad7e4a4bc1cc58c3a6935", null ], - [ "set_head_angle", "structfplot__core_1_1plot__arrow.html#aa976a527ccaf267e9d5b7c06342a3b56", null ], - [ "set_head_back_angle", "structfplot__core_1_1plot__arrow.html#aaff2d428d8feeda35da15f1c92bf624a", null ], - [ "set_head_fill", "structfplot__core_1_1plot__arrow.html#add82908c1efdf34d701762bf29763a24", null ], - [ "set_head_location", "structfplot__core_1_1plot__arrow.html#a49ab5d25adbf97b8b6aeb9172c68947a", null ], - [ "set_head_location", "structfplot__core_1_1plot__arrow.html#aaa8b4e0f0e2e7138a4fb849989bd7753", null ], - [ "set_head_location", "structfplot__core_1_1plot__arrow.html#a2a90f330e8f387beff52a66cd48b1ef3", null ], - [ "set_head_size", "structfplot__core_1_1plot__arrow.html#ab2aa4033c8337c3307ea4036a6e10d16", null ], - [ "set_head_type", "structfplot__core_1_1plot__arrow.html#adfe5552a5c01b59b9bc1025d8e583a57", null ], - [ "set_is_visible", "structfplot__core_1_1plot__arrow.html#a15fa92a1a0ba898995bfcc2e5b5ee790", null ], - [ "set_line_style", "structfplot__core_1_1plot__arrow.html#aceea0ccadce0c4737eaad80ac0a10b98", null ], - [ "set_line_width", "structfplot__core_1_1plot__arrow.html#a48af7ed9faba3494666634819c1b0078", null ], - [ "set_move_to_front", "structfplot__core_1_1plot__arrow.html#a835f541854392fcdfa62e42a40d0f1be", null ], - [ "set_tail_location", "structfplot__core_1_1plot__arrow.html#aca84bef4ddb730b1fed90d2386874b7a", null ], - [ "set_tail_location", "structfplot__core_1_1plot__arrow.html#a452292e58f05cd3afdcdb38c858799d8", null ], - [ "set_tail_location", "structfplot__core_1_1plot__arrow.html#a255beb96b7024c5bb7cd9ef41836ae94", null ], - [ "set_use_default_size", "structfplot__core_1_1plot__arrow.html#afa8a544cb4f1d33d35518d65b1303543", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__arrow.png b/docs/html/structfplot__core_1_1plot__arrow.png deleted file mode 100644 index 8ef97ad..0000000 Binary files a/docs/html/structfplot__core_1_1plot__arrow.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__axis-members.html b/docs/html/structfplot__core_1_1plot__axis-members.html deleted file mode 100644 index 7f20034..0000000 --- a/docs/html/structfplot__core_1_1plot__axis-members.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_axis Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_axis, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    get_autoscalepa_get_autoscalefplot_core::plot_axis
    get_command_stringpa_get_cmd_stringfplot_core::plot_axisvirtual
    get_id_stringpa_get_string_resultfplot_core::plot_axispure virtual
    get_is_log_scaledpa_get_log_scalefplot_core::plot_axis
    get_limitspa_get_axis_limitsfplot_core::plot_axis
    get_tic_label_formatpa_get_tic_label_fmtfplot_core::plot_axis
    get_titlepa_get_titlefplot_core::plot_axis
    get_use_default_tic_label_formatpa_get_use_dft_tic_lbl_fmtfplot_core::plot_axis
    get_zero_axispa_get_zero_axisfplot_core::plot_axis
    get_zero_axis_line_widthpa_get_zero_axis_widthfplot_core::plot_axis
    is_title_definedpa_has_titlefplot_core::plot_axis
    m_autoscalefplot_core::plot_axis
    m_axiswidthfplot_core::plot_axis
    m_defaultticlabelsfplot_core::plot_axis
    m_hastitlefplot_core::plot_axisprivate
    m_limitsfplot_core::plot_axis
    m_logscalefplot_core::plot_axis
    m_ticlabelfmtfplot_core::plot_axis
    m_titlefplot_core::plot_axis
    m_zeroaxisfplot_core::plot_axis
    set_autoscalepa_set_autoscalefplot_core::plot_axis
    set_is_log_scaledpa_set_log_scalefplot_core::plot_axis
    set_limitspa_set_axis_limitsfplot_core::plot_axis
    set_tic_label_formatpa_set_tic_label_fmtfplot_core::plot_axis
    set_titlepa_set_titlefplot_core::plot_axis
    set_use_default_tic_label_formatpa_set_use_dft_tic_lbl_fmtfplot_core::plot_axis
    set_zero_axispa_set_zero_axisfplot_core::plot_axis
    set_zero_axis_line_widthpa_set_zero_axis_widthfplot_core::plot_axis
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__axis.html b/docs/html/structfplot__core_1_1plot__axis.html deleted file mode 100644 index 2533127..0000000 --- a/docs/html/structfplot__core_1_1plot__axis.html +++ /dev/null @@ -1,927 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_axis Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_axis Type Referenceabstract
    -
    -
    - -

    Describes a single plot axis. - More...

    -
    -Inheritance diagram for fplot_core::plot_axis:
    -
    -
    - - -fplot_core::plot_object -fplot_core::x_axis -fplot_core::y2_axis -fplot_core::y_axis -fplot_core::z_axis - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_title pa_get_title
     Gets the axis' title.
     
    procedure, public set_title pa_set_title
     Sets the axis' title.
     
    procedure, public is_title_defined pa_has_title
     Gets a value determining if a title has been defined for the plot_axis object.
     
    procedure, public get_autoscale pa_get_autoscale
     Gets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public set_autoscale pa_set_autoscale
     Sets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public get_limits pa_get_axis_limits
     Gets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public set_limits pa_set_axis_limits
     Sets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public get_is_log_scaled pa_get_log_scale
     Gets a logical value defining if the axis should be log scaled.
     
    procedure, public set_is_log_scaled pa_set_log_scale
     Sets a logical value defining if the axis should be log scaled.
     
    procedure, public get_command_string pa_get_cmd_string
     Returns the appropriate GNUPLOT command string to define the plot_axis properties.
     
    procedure, public get_zero_axis pa_get_zero_axis
     Gets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public set_zero_axis pa_set_zero_axis
     Sets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public get_zero_axis_line_width pa_get_zero_axis_width
     Gets the width of the line used to represent the zero axis line, if active.
     
    procedure, public set_zero_axis_line_width pa_set_zero_axis_width
     Sets the width of the line used to represent the zero axis line, if active.
     
    procedure(pa_get_string_result), deferred, public get_id_string pa_get_string_result
     Gets a string identifying the axis as: x, y, z, y2, etc.
     
    procedure, public get_use_default_tic_label_format pa_get_use_dft_tic_lbl_fmt
     Gets a value determining if the default tic label format will be used.
     
    procedure, public set_use_default_tic_label_format pa_set_use_dft_tic_lbl_fmt
     Sets a value determining if the default tic label format will be used.
     
    procedure, public get_tic_label_format pa_get_tic_label_fmt
     Gets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    procedure, public set_tic_label_format pa_set_tic_label_fmt
     Sets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    character(len=plotdata_max_name_lengthm_title = ""
     The axis title.
     
    logical m_autoscale = .true.
     Autoscale?
     
    real(real64), dimension(2) m_limits = [0.0d0, 1.0d0]
     Display limits.
     
    logical m_logscale = .false.
     Log scaled?
     
    logical m_zeroaxis = .false.
     Zero axis?
     
    real(real32) m_axiswidth = 1.0
     The width, in pixels, of the zero axis line.
     
    logical m_defaultticlabels = .true.
     Use default tic label format?
     
    character(len=plotdata_max_name_lengthm_ticlabelfmt = "%g"
     The tic label format.
     
    - - - - -

    -Private Attributes

    logical m_hastitle = .false.
     Has a title.
     
    -

    Detailed Description

    -

    Describes a single plot axis.

    - -

    Definition at line 1783 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_autoscale()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::get_autoscale
    -
    - -

    Gets a logical value determining if the axis should be automatically scaled to fit the data.

    -
    Syntax
    pure logical function get_autoscale(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_axis object.
    -
    -
    -
    Returns
    Returns true if the axis should be automatically scaled; else, false.
    - -

    Definition at line 1850 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_axis::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to define the plot_axis properties.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_axis object.
    -
    -
    -
    Returns
    The GNUPLOT command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 1920 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure(pa_get_string_result), deferred, public fplot_core::plot_axis::get_id_string
    -
    -pure virtual
    -
    - -

    Gets a string identifying the axis as: x, y, z, y2, etc.

    - -

    Implemented in fplot_core::x_axis, fplot_core::y2_axis, fplot_core::y_axis, and fplot_core::z_axis.

    - -

    Definition at line 1966 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_is_log_scaled()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::get_is_log_scaled
    -
    - -

    Gets a logical value defining if the axis should be log scaled.

    -
    Syntax
    pure logical function get_is_log_scaled(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe plot_axis object.
    -
    -
    -
    Returns
    Returns true if log scaling is applied to the axis; else, false.
    - -

    Definition at line 1897 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_limits()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::get_limits
    -
    - -

    Gets the axis display limits, assuming autoscaling is not active for this axis.

    -
    Syntax
    pure real(real64) function, dimension(2) get_limits(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_axis object.
    -
    -
    -
    Returns
    A two-element array containing the limits as follows: [lower, upper].
    - -

    Definition at line 1874 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_tic_label_format()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::get_tic_label_format
    -
    - -

    Gets the tic label format. The format string can be any format string accepted by the C command 'printf.'.

    -
    Syntax
    allocatable character(len = :) function get_tic_label_format(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_axis object.
    -
    -
    -
    Returns
    The tic label format string.
    - -

    Definition at line 2004 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_title()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::get_title
    -
    - -

    Gets the axis' title.

    -
    Syntax
    character(len = :) function, allocatable get_title(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_axis object.
    -
    -
    -
    Returns
    The title.
    - -

    Definition at line 1814 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_default_tic_label_format()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::get_use_default_tic_label_format
    -
    - -

    Gets a value determining if the default tic label format will be used.

    -
    Syntax
    pure logical function get_use_default_tic_label_format(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_axis object.
    -
    -
    -
    Returns
    Returns true if the default tic label format will be used; else, false.
    - -

    Definition at line 1979 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_zero_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::get_zero_axis
    -
    - -

    Gets a value determining if the axis should be drawn through zero of opposing axes.

    -
    Syntax
    pure logical function get_zero_axis(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_axis object.
    -
    -
    -
    Returns
    Returns true to draw as a zero axis; else, set to false.
    - -

    Definition at line 1931 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_zero_axis_line_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::get_zero_axis_line_width
    -
    - -

    Gets the width of the line used to represent the zero axis line, if active.

    -
    Syntax
    pure real(real32) function get_zero_axis_line_width(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_axis object.
    -
    -
    -
    Returns
    The width of the line, in pixels.
    - -

    Definition at line 1953 of file fplot_core.f90.

    - -
    -
    - -

    ◆ is_title_defined()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::is_title_defined
    -
    - -

    Gets a value determining if a title has been defined for the plot_axis object.

    -
    Syntax
    pure logical function is_title_defined(class(plot_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_axis object.
    -
    -
    -
    Returns
    Returns true if a title has been defined for this axis; else, returns false.
    - -

    Definition at line 1838 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_autoscale()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::set_autoscale
    -
    - -

    Sets a logical value determining if the axis should be automatically scaled to fit the data.

    -
    Syntax
    subroutine set_autoscale(class(plot_axis) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_axis object.
    [in]xSet to true if the axis should be automatically scaled; else, false.
    -
    -
    - -

    Definition at line 1862 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_is_log_scaled()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::set_is_log_scaled
    -
    - -

    Sets a logical value defining if the axis should be log scaled.

    -
    Syntax
    subroutine set_is_log_scaled(class(plot_axis) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_axis object.
    [in]xSet to true if log scaling is applied to the axis; else, false.
    -
    -
    - -

    Definition at line 1909 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_limits()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::set_limits
    -
    - -

    Sets the axis display limits, assuming autoscaling is not active for this axis.

    -
    Syntax
    subroutine set_limits(class(plot_axis) this, real(real64) lower, real(real64) upper)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_axis object.
    [in]lowerThe lower display limit.
    [in]upperThe upper display limit.
    -
    -
    - -

    Definition at line 1886 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_tic_label_format()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::set_tic_label_format
    -
    - -

    Sets the tic label format. The format string can be any format string accepted by the C command 'printf.'.

    -
    Syntax
    subroutine set_tic_label_format(class(plot_axis) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_axis object.
    [in]xThe tic label format string.
    -
    -
    - -

    Definition at line 2015 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_title()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::set_title
    -
    - -

    Sets the axis' title.

    -
    Syntax
    subroutine set_title(class(plot_axis) this, character(len = *) txt)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_axis object.
    [in]txtThe axis title. The number of characters must be less than or equal to PLOTDATA_MAX_NAME_LENGTH; else, the text string is truncated.
    -
    -
    - -

    Definition at line 1826 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_default_tic_label_format()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::set_use_default_tic_label_format
    -
    - -

    Sets a value determining if the default tic label format will be used.

    -
    Syntax
    subroutine set_use_default_tic_label_format(class(plot_axis) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_axis object.
    [in]xSet to true if the default tic label format will be used; else, false.
    -
    -
    - -

    Definition at line 1992 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_zero_axis()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::set_zero_axis
    -
    - -

    Sets a value determining if the axis should be drawn through zero of opposing axes.

    -
    Syntax
    subroutine set_zero_axis(class(plot_axis) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_axis object.
    [in]xSet to true to draw as a zero axis; else, set to false.
    -
    -
    - -

    Definition at line 1942 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_zero_axis_line_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_axis::set_zero_axis_line_width
    -
    - -

    Sets the width of the line used to represent the zero axis line, if active.

    -
    Syntax
    subroutine set_zero_axis_line_width(class(plot_axis) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_axis object.
    [in]xThe width of the line, in pixels.
    -
    -
    - -

    Definition at line 1964 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_autoscale

    - -
    -
    - - - - -
    logical fplot_core::plot_axis::m_autoscale = .true.
    -
    - -

    Autoscale?

    - -

    Definition at line 1790 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_axiswidth

    - -
    -
    - - - - -
    real(real32) fplot_core::plot_axis::m_axiswidth = 1.0
    -
    - -

    The width, in pixels, of the zero axis line.

    - -

    Definition at line 1798 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_defaultticlabels

    - -
    -
    - - - - -
    logical fplot_core::plot_axis::m_defaultticlabels = .true.
    -
    - -

    Use default tic label format?

    - -

    Definition at line 1801 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_hastitle

    - -
    -
    - - - - - -
    - - - - -
    logical fplot_core::plot_axis::m_hastitle = .false.
    -
    -private
    -
    - -

    Has a title.

    - -

    Definition at line 1786 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_limits

    - -
    -
    - - - - -
    real(real64), dimension(2) fplot_core::plot_axis::m_limits = [0.0d0, 1.0d0]
    -
    - -

    Display limits.

    - -

    Definition at line 1792 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_logscale

    - -
    -
    - - - - -
    logical fplot_core::plot_axis::m_logscale = .false.
    -
    - -

    Log scaled?

    - -

    Definition at line 1794 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_ticlabelfmt

    - -
    -
    - - - - -
    character(len = plotdata_max_name_length) fplot_core::plot_axis::m_ticlabelfmt = "%g"
    -
    - -

    The tic label format.

    - -

    Definition at line 1803 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_title

    - -
    -
    - - - - -
    character(len = plotdata_max_name_length) fplot_core::plot_axis::m_title = ""
    -
    - -

    The axis title.

    - -

    Definition at line 1788 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_zeroaxis

    - -
    -
    - - - - -
    logical fplot_core::plot_axis::m_zeroaxis = .false.
    -
    - -

    Zero axis?

    - -

    Definition at line 1796 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__axis.js b/docs/html/structfplot__core_1_1plot__axis.js deleted file mode 100644 index dca6378..0000000 --- a/docs/html/structfplot__core_1_1plot__axis.js +++ /dev/null @@ -1,31 +0,0 @@ -var structfplot__core_1_1plot__axis = -[ - [ "get_autoscale", "structfplot__core_1_1plot__axis.html#aaaf9ace8a7b41b32aaee34f103e10ca0", null ], - [ "get_command_string", "structfplot__core_1_1plot__axis.html#a00d4833c85b699bdff381ae05100cf6a", null ], - [ "get_id_string", "structfplot__core_1_1plot__axis.html#a503b9d12d8a13992bdcf2d2698a90b10", null ], - [ "get_is_log_scaled", "structfplot__core_1_1plot__axis.html#a1826e039d7a1726fc8c19a5215158708", null ], - [ "get_limits", "structfplot__core_1_1plot__axis.html#a025972a1e5bdd167cfd1e605798f3236", null ], - [ "get_tic_label_format", "structfplot__core_1_1plot__axis.html#adf896e948d36fc834734ba6abccbe9d1", null ], - [ "get_title", "structfplot__core_1_1plot__axis.html#af93e4f7ff1f6ea1823a45a92a272f91c", null ], - [ "get_use_default_tic_label_format", "structfplot__core_1_1plot__axis.html#a43b1a4ecac087b3b84d9019383d1030e", null ], - [ "get_zero_axis", "structfplot__core_1_1plot__axis.html#a26ec236090b21f9e30770de3a2487f56", null ], - [ "get_zero_axis_line_width", "structfplot__core_1_1plot__axis.html#a89c204ec15cf6688768cc27252316228", null ], - [ "is_title_defined", "structfplot__core_1_1plot__axis.html#a726c620a8c7921f455900cb5bec1e0c7", null ], - [ "set_autoscale", "structfplot__core_1_1plot__axis.html#a31ba8659f53c12145bf26884f929a3b6", null ], - [ "set_is_log_scaled", "structfplot__core_1_1plot__axis.html#a7ea2e86ed7e730aacad368f67c247a79", null ], - [ "set_limits", "structfplot__core_1_1plot__axis.html#ac4636b37253874b8b072c7916cac4686", null ], - [ "set_tic_label_format", "structfplot__core_1_1plot__axis.html#a65519918c3bc51c7c55856f4ab70de47", null ], - [ "set_title", "structfplot__core_1_1plot__axis.html#ae48c3bbf59663fd54efc7b814d4e1662", null ], - [ "set_use_default_tic_label_format", "structfplot__core_1_1plot__axis.html#a5fb4b8b807033d2d7e81ee3e7077a1e5", null ], - [ "set_zero_axis", "structfplot__core_1_1plot__axis.html#a19f1868adac5ac661c5b7d33d02f35c9", null ], - [ "set_zero_axis_line_width", "structfplot__core_1_1plot__axis.html#abd2dce525007a33e050ccb0c92024824", null ], - [ "m_autoscale", "structfplot__core_1_1plot__axis.html#ae7035c7f62f8ec51ac458edf459655c2", null ], - [ "m_axiswidth", "structfplot__core_1_1plot__axis.html#ac9130dccdf4506356085dc77982f23eb", null ], - [ "m_defaultticlabels", "structfplot__core_1_1plot__axis.html#af7ffb68c817546118481d46b513397b4", null ], - [ "m_hastitle", "structfplot__core_1_1plot__axis.html#afaee6697e2ae5d4c15274ef6d1b1bebf", null ], - [ "m_limits", "structfplot__core_1_1plot__axis.html#a103b7151710f1dca0a4f3a59ab4fc910", null ], - [ "m_logscale", "structfplot__core_1_1plot__axis.html#ae0308633db7a5bc2aa9dfc5aebc0f871", null ], - [ "m_ticlabelfmt", "structfplot__core_1_1plot__axis.html#a3c72c7ce3d24ebdd12ee8d29c85e507f", null ], - [ "m_title", "structfplot__core_1_1plot__axis.html#a42ca46716cc307a467698534f2ce77c7", null ], - [ "m_zeroaxis", "structfplot__core_1_1plot__axis.html#ae1841279b24ce9872404992f5f025265", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__axis.png b/docs/html/structfplot__core_1_1plot__axis.png deleted file mode 100644 index 971b8d8..0000000 Binary files a/docs/html/structfplot__core_1_1plot__axis.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__bar-members.html b/docs/html/structfplot__core_1_1plot__bar-members.html deleted file mode 100644 index 8b2cada..0000000 --- a/docs/html/structfplot__core_1_1plot__bar-members.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_bar Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_bar, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_allplt_clear_allfplot_core::plot
    clear_all_labelsplt_clear_labelsfplot_core::plot
    clear_arrowsplt_clear_arrowsfplot_core::plot
    drawplt_drawfplot_core::plot
    free_resourcesplt_clean_upfplot_core::plot
    getplt_getfplot_core::plot
    get_arrowplt_get_arrowfplot_core::plot
    get_arrow_countplt_get_arrow_countfplot_core::plot
    get_axis_equalplt_get_axis_equalfplot_core::plot
    get_bar_widthpb_get_bar_width (defined in fplot_core::plot_bar)fplot_core::plot_bar
    get_colormapplt_get_colormapfplot_core::plot
    get_command_stringpb_get_cmdfplot_core::plot_barvirtual
    get_countplt_get_countfplot_core::plot
    get_draw_borderplt_get_draw_borderfplot_core::plot
    get_font_nameplt_get_fontfplot_core::plot
    get_font_sizeplt_get_font_sizefplot_core::plot
    get_labelplt_get_labelfplot_core::plot
    get_label_countplt_get_label_countfplot_core::plot
    get_legendplt_get_legendfplot_core::plot
    get_show_colorbarplt_get_show_colorbarfplot_core::plot
    get_show_gridlinesplt_get_show_gridfplot_core::plot
    get_square_axesp2d_get_square_axesfplot_core::plot_2d
    get_terminalplt_get_termfplot_core::plot
    get_tics_inwardplt_get_tics_infplot_core::plot
    get_titleplt_get_titlefplot_core::plot
    get_use_y2_axisp2d_get_use_y2fplot_core::plot_2d
    get_x_axisp2d_get_x_axisfplot_core::plot_2d
    get_y2_axisp2d_get_y2_axisfplot_core::plot_2d
    get_y_axisp2d_get_y_axisfplot_core::plot_2d
    initializep2d_initfplot_core::plot_2d
    is_title_definedplt_has_titlefplot_core::plot
    m_arrowsfplot_core::plot
    m_axisequalfplot_core::plot
    m_barwidthfplot_core::plot_barprivate
    m_colorindexfplot_core::plot
    m_colormapfplot_core::plot
    m_datafplot_core::plot
    m_drawborderfplot_core::plot
    m_hastitlefplot_core::plot
    m_labelsfplot_core::plot
    m_legendfplot_core::plot
    m_set2squarefplot_core::plot_2d
    m_showcolorbarfplot_core::plot
    m_showgridfplot_core::plot
    m_terminalfplot_core::plot
    m_ticsinfplot_core::plot
    m_titlefplot_core::plotprivate
    m_usey2fplot_core::plot_2d
    m_xaxisfplot_core::plot_2dprivate
    m_y2axisfplot_core::plot_2d
    m_yaxisfplot_core::plot_2d
    p2d_clean_upp2d_clean_upfplot_core::plot_2d
    popplt_pop_datafplot_core::plot
    pop_arrowplt_pop_arrowfplot_core::plot
    pop_labelplt_pop_labelfplot_core::plot
    pushplt_push_datafplot_core::plot
    push_arrowplt_push_arrowfplot_core::plot
    push_labelplt_push_labelfplot_core::plot
    save_fileplt_savefplot_core::plot
    setplt_setfplot_core::plot
    set_arrowplt_set_arrowfplot_core::plot
    set_axis_equalplt_set_axis_equalfplot_core::plot
    set_bar_widthpb_set_bar_width (defined in fplot_core::plot_bar)fplot_core::plot_bar
    set_colormapplt_set_colormapfplot_core::plot
    set_draw_borderplt_set_draw_borderfplot_core::plot
    set_font_nameplt_set_fontfplot_core::plot
    set_font_sizeplt_set_font_sizefplot_core::plot
    set_labelplt_set_labelfplot_core::plot
    set_show_colorbarplt_set_show_colorbarfplot_core::plot
    set_show_gridlinesplt_set_show_gridfplot_core::plot
    set_square_axesp2d_set_square_axesfplot_core::plot_2d
    set_tics_inwardplt_set_tics_infplot_core::plot
    set_titleplt_set_titlefplot_core::plot
    set_use_y2_axisp2d_set_use_y2fplot_core::plot_2d
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__bar.html b/docs/html/structfplot__core_1_1plot__bar.html deleted file mode 100644 index d0f0adf..0000000 --- a/docs/html/structfplot__core_1_1plot__bar.html +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_bar Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_bar Type Reference
    -
    -
    - -

    Defines a 2D plot tailored towards bar plotting. - More...

    -
    -Inheritance diagram for fplot_core::plot_bar:
    -
    -
    - - -fplot_core::plot_2d -fplot_core::plot -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_bar_width pb_get_bar_width
     
    procedure, public set_bar_width pb_set_bar_width
     
    procedure, public get_command_string pb_get_cmd
     Gets the GNUPLOT command string to represent this plot_2d object.
     
    - Public Member Functions inherited from fplot_core::plot_2d
    final p2d_clean_up p2d_clean_up
     Cleans up resources held by the plot_2d object.
     
    procedure, public initialize p2d_init
     Initializes the plot_2d object.
     
    procedure, public get_x_axis p2d_get_x_axis
     Gets the x-axis object.
     
    procedure, public get_y_axis p2d_get_y_axis
     Gets the y-axis object.
     
    procedure, public get_y2_axis p2d_get_y2_axis
     Gets the secondary y-axis object.
     
    procedure, public get_use_y2_axis p2d_get_use_y2
     Gets a flag determining if the secondary y-axis should be displayed.
     
    procedure, public set_use_y2_axis p2d_set_use_y2
     Sets a flag determining if the secondary y-axis should be displayed.
     
    procedure, public get_square_axes p2d_get_square_axes
     Gets a logical flag determining if the axes size should be squared off.
     
    procedure, public set_square_axes p2d_set_square_axes
     Sets a logical flag determining if the axes size should be squared off.
     
    - Public Member Functions inherited from fplot_core::plot
    procedure, public free_resources plt_clean_up
     Cleans up resources held by the plot object. Inheriting classes are expected to call this routine to free internally held resources.
     
    procedure, public initialize plt_init
     Initializes the plot object.
     
    procedure, public get_title plt_get_title
     Gets the plot's title.
     
    procedure, public set_title plt_set_title
     Sets the plot's title.
     
    procedure, public is_title_defined plt_has_title
     Gets a value determining if a title has been defined for the plot object.
     
    procedure, public get_legend plt_get_legend
     Gets the plot's legend object.
     
    procedure, public get_count plt_get_count
     Gets the number of stored plot_data objects.
     
    procedure, public push plt_push_data
     Pushes a plot_data object onto the stack.
     
    procedure, public pop plt_pop_data
     Pops the last plot_data object from the stack.
     
    procedure, public clear_all plt_clear_all
     Removes all plot_data objects from the plot.
     
    procedure, public get plt_get
     Gets a pointer to the requested plot_data object.
     
    procedure, public set plt_set
     Sets the requested plot_data object into the plot.
     
    procedure, public get_terminal plt_get_term
     Gets the GNUPLOT terminal object.
     
    procedure, public get_show_gridlines plt_get_show_grid
     Gets a flag determining if the grid lines should be shown.
     
    procedure, public set_show_gridlines plt_set_show_grid
     Sets a flag determining if the grid lines should be shown.
     
    procedure, public draw plt_draw
     Launches GNUPLOT and draws the plot per the current state of the command list.
     
    procedure, public save_file plt_save
     Saves a GNUPLOT command file.
     
    procedure, public get_font_name plt_get_font
     Gets the name of the font used for plot text.
     
    procedure, public set_font_name plt_set_font
     Sets the name of the font used for plot text.
     
    procedure, public get_font_size plt_get_font_size
     Gets the size of the font used by the plot.
     
    procedure, public set_font_size plt_set_font_size
     Sets the size of the font used by the plot.
     
    procedure, public get_tics_inward plt_get_tics_in
     Gets a value determining if the axis tic marks should point inwards.
     
    procedure, public set_tics_inward plt_set_tics_in
     Sets a value determining if the axis tic marks should point inwards.
     
    procedure, public get_draw_border plt_get_draw_border
     Gets a value determining if the border should be drawn.
     
    procedure, public set_draw_border plt_set_draw_border
     Sets a value determining if the border should be drawn.
     
    procedure, public push_label plt_push_label
     Adds a label to the plot.
     
    procedure, public pop_label plt_pop_label
     Removes the last label from the plot.
     
    procedure, public get_label plt_get_label
     Gets the requested plot_label from the plot.
     
    procedure, public set_label plt_set_label
     Sets the specified plot_label object.
     
    procedure, public get_label_count plt_get_label_count
     Gets the number of plot_label objects belonging to the plot.
     
    procedure, public clear_all_labels plt_clear_labels
     Clears all plot_label objects from the plot.
     
    procedure, public get_axis_equal plt_get_axis_equal
     Gets a flag determining if the axes should be equally scaled.
     
    procedure, public set_axis_equal plt_set_axis_equal
     Sets a flag determining if the axes should be equally scaled.
     
    procedure, public get_colormap plt_get_colormap
     Gets a pointer to the colormap object.
     
    procedure, public set_colormap plt_set_colormap
     Sets the colormap object.
     
    procedure, public get_show_colorbar plt_get_show_colorbar
     Gets a value determining if the colorbar should be shown.
     
    procedure, public set_show_colorbar plt_set_show_colorbar
     Sets a value determining if the colorbar should be shown.
     
    procedure, public push_arrow plt_push_arrow
     Pushes a new plot_arrow object onto the plot.
     
    procedure, public pop_arrow plt_pop_arrow
     Pops a plot_arrow object from the plot.
     
    procedure, public get_arrow plt_get_arrow
     Gets a pointer to the requested plot_arrow object.
     
    procedure, public set_arrow plt_set_arrow
     Sets a plot_arrow into the plot.
     
    procedure, public get_arrow_count plt_get_arrow_count
     Gets the number of plot_arrow objects held by the plot object.
     
    procedure, public clear_arrows plt_clear_arrows
     Clears all plot_arrow objects from the plot.
     
    - - - - -

    -Private Attributes

    real(real32) m_barwidth = 0.75d0
     A relative scaling of the width of a single bar. The value must be between 0 and 1 with 1 being full width.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::plot_2d
    type(y_axis), pointer m_yaxis => null()
     The y-axis.
     
    type(y2_axis), pointer m_y2axis => null()
     The secondary y-axis.
     
    logical m_usey2 = .false.
     Display the secondary y axis?
     
    logical m_set2square = .false.
     Set to square scaling.
     
    - Public Attributes inherited from fplot_core::plot
    logical m_hastitle = .false.
     Has a title?
     
    class(terminal), pointer m_terminal => null()
     The GNUPLOT terminal object to target.
     
    type(list) m_data
     A collection of plot_data items to plot.
     
    type(legend), pointer m_legend => null()
     The legend.
     
    logical m_showgrid = .true.
     Show grid lines?
     
    logical m_ticsin = .true.
     Point tic marks in?
     
    logical m_drawborder = .true.
     Draw the border?
     
    type(list) m_labels
     A collection of plot_label items to draw.
     
    integer(int32) m_colorindex = 1
     The color index to use for automatic line coloring for scatter plots.
     
    logical m_axisequal = .false.
     Determines if the axes should be scaled proportionally.
     
    class(colormap), pointer m_colormap
     The colormap.
     
    logical m_showcolorbar = .true.
     Show the colorbar?
     
    type(list) m_arrows
     A collection of plot_arrow items to draw.
     
    -

    Detailed Description

    -

    Defines a 2D plot tailored towards bar plotting.

    - -

    Definition at line 6727 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_bar_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_bar::get_bar_width
    -
    - -

    Definition at line 6733 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_bar::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this plot_2d object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(plot_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_2d object.
    -
    -
    -
    Returns
    The command string.
    - -

    Reimplemented from fplot_core::plot_2d.

    - -

    Definition at line 6735 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_bar_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_bar::set_bar_width
    -
    - -

    Definition at line 6734 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_barwidth

    - -
    -
    - - - - - -
    - - - - -
    real(real32) fplot_core::plot_bar::m_barwidth = 0.75d0
    -
    -private
    -
    - -

    A relative scaling of the width of a single bar. The value must be between 0 and 1 with 1 being full width.

    - -

    Definition at line 6731 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__bar.js b/docs/html/structfplot__core_1_1plot__bar.js deleted file mode 100644 index c058138..0000000 --- a/docs/html/structfplot__core_1_1plot__bar.js +++ /dev/null @@ -1,5 +0,0 @@ -var structfplot__core_1_1plot__bar = -[ - [ "get_command_string", "structfplot__core_1_1plot__bar.html#aaf330bd04f03f6f56e8c74b00bdd123e", null ], - [ "m_barwidth", "structfplot__core_1_1plot__bar.html#a11075431e357389d21760413660a69de", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__bar.png b/docs/html/structfplot__core_1_1plot__bar.png deleted file mode 100644 index a663e5b..0000000 Binary files a/docs/html/structfplot__core_1_1plot__bar.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__data-members.html b/docs/html/structfplot__core_1_1plot__data-members.html deleted file mode 100644 index 1c38a0f..0000000 --- a/docs/html/structfplot__core_1_1plot__data-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_data Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data, including all inherited members.

    - - - - - - -
    get_command_stringget_string_resultfplot_core::plot_objectpure virtual
    get_data_stringpd_get_string_resultfplot_core::plot_datapure virtual
    get_namepd_get_namefplot_core::plot_data
    m_namefplot_core::plot_dataprivate
    set_namepd_set_namefplot_core::plot_data
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data.html b/docs/html/structfplot__core_1_1plot__data.html deleted file mode 100644 index 6988b44..0000000 --- a/docs/html/structfplot__core_1_1plot__data.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_data Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_data Type Referenceabstract
    -
    -
    - -

    Provides a container for plot data. - More...

    -
    -Inheritance diagram for fplot_core::plot_data:
    -
    -
    - - -fplot_core::plot_object -fplot_core::plot_data_colored -fplot_core::surface_plot_data -fplot_core::tri_surface_plot_data -fplot_core::filled_plot_data -fplot_core::plot_data_bar -fplot_core::plot_data_error_bars -fplot_core::plot_data_tri_2d -fplot_core::scatter_plot_data -fplot_core::vector_field_plot_data -fplot_core::plot_data_histogram -fplot_core::plot_data_2d -fplot_core::plot_data_3d - -
    - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    procedure(pd_get_string_result), deferred, public get_data_string pd_get_string_result
     Gets the GNUPLOT command string containing the actual data to plot.
     
    - Public Member Functions inherited from fplot_core::plot_object
    procedure(get_string_result), deferred, public get_command_string get_string_result
     Returns the appropriate GNUPLOT command string to define the plot object properties.
     
    - - - - -

    -Private Attributes

    character(len=plotdata_max_name_lengthm_name = ""
     The name of the data set.
     
    -

    Detailed Description

    -

    Provides a container for plot data.

    - -

    Definition at line 1676 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure(pd_get_string_result), deferred, public fplot_core::plot_data::get_data_string
    -
    -pure virtual
    -
    -
    - -

    ◆ get_name()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data::get_name
    -
    - -

    Gets the name to associate with this data set.

    -
    Syntax
    character(len = :) function, allocatable get_name(class(plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data object.
    -
    -
    -
    Returns
    The name.
    - -

    Definition at line 1690 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_name()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data::set_name
    -
    - -

    Sets the name to associate with this data set.

    -
    Syntax
    subroutine set_name(class(plot_data) this, character(len = *) txt)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_data object.
    [in]txtThe name.
    -
    -
    - -

    Definition at line 1700 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_name

    - -
    -
    - - - - - -
    - - - - -
    character(len = plotdata_max_name_length) fplot_core::plot_data::m_name = ""
    -
    -private
    -
    - -

    The name of the data set.

    - -

    Definition at line 1679 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data.js b/docs/html/structfplot__core_1_1plot__data.js deleted file mode 100644 index 21229c9..0000000 --- a/docs/html/structfplot__core_1_1plot__data.js +++ /dev/null @@ -1,7 +0,0 @@ -var structfplot__core_1_1plot__data = -[ - [ "get_data_string", "structfplot__core_1_1plot__data.html#a5b4c937341b806a85419f5d6968aea2d", null ], - [ "get_name", "structfplot__core_1_1plot__data.html#a445f80b716146d6087d2f1adaa4b98bf", null ], - [ "set_name", "structfplot__core_1_1plot__data.html#a94aed3f692e4f61414f2681cc105ee52", null ], - [ "m_name", "structfplot__core_1_1plot__data.html#a216bccf5c14d8633926484770e49112a", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__data.png b/docs/html/structfplot__core_1_1plot__data.png deleted file mode 100644 index 91175ba..0000000 Binary files a/docs/html/structfplot__core_1_1plot__data.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__data__2d-members.html b/docs/html/structfplot__core_1_1plot__data__2d-members.html deleted file mode 100644 index 48eece9..0000000 --- a/docs/html/structfplot__core_1_1plot__data__2d-members.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_data_2d Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data_2d, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    define_datapd2d_set_data_1fplot_core::plot_data_2d
    define_datapd2d_set_data_2fplot_core::plot_data_2d
    get_axes_stringpd2d_get_axes_cmdfplot_core::plot_data_2dvirtual
    get_color_datapd2d_get_c_arrayfplot_core::plot_data_2d
    get_color_indexpdc_get_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    get_command_stringspd_get_cmdfplot_core::scatter_plot_datavirtual
    get_countpd2d_get_data_countfplot_core::plot_data_2dvirtual
    get_data_stringpd2d_get_data_cmdfplot_core::plot_data_2dvirtual
    get_draw_against_y2pd2d_get_draw_against_y2fplot_core::plot_data_2d
    get_draw_linespd_get_draw_linefplot_core::scatter_plot_data
    get_draw_markersspd_get_draw_markersfplot_core::scatter_plot_data
    get_fill_curvespd_get_filledfplot_core::scatter_plot_data
    get_line_colorpdc_get_line_colorfplot_core::plot_data_colored
    get_line_stylespd_get_line_stylefplot_core::scatter_plot_data
    get_line_widthspd_get_line_widthfplot_core::scatter_plot_data
    get_marker_frequencyspd_get_marker_frequencyfplot_core::scatter_plot_data
    get_marker_scalingspd_get_marker_scalingfplot_core::scatter_plot_data
    get_marker_stylespd_get_marker_stylefplot_core::scatter_plot_data
    get_namepd_get_namefplot_core::plot_data
    get_point_size_datapd2d_get_ps_arrayfplot_core::plot_data_2d
    get_simplification_factorspd_get_simplify_factorfplot_core::scatter_plot_data
    get_simplify_dataspd_get_simplify_datafplot_core::scatter_plot_data
    get_use_data_dependent_colorsspd_get_data_dependent_colorsfplot_core::scatter_plot_data
    get_use_variable_size_pointsspd_get_use_var_point_sizefplot_core::scatter_plot_data
    get_xpd2d_get_x_datafplot_core::plot_data_2dvirtual
    get_x_datapd2d_get_x_arrayfplot_core::plot_data_2d
    get_ypd2d_get_y_datafplot_core::plot_data_2dvirtual
    get_y_datapd2d_get_y_arrayfplot_core::plot_data_2d
    m_colorfplot_core::plot_data_coloredprivate
    m_colorindexfplot_core::plot_data_colored
    m_datafplot_core::plot_data_2dprivate
    m_datadependentcolorsfplot_core::scatter_plot_data
    m_drawlinefplot_core::scatter_plot_dataprivate
    m_drawmarkersfplot_core::scatter_plot_data
    m_filledcurvefplot_core::scatter_plot_data
    m_linestylefplot_core::scatter_plot_data
    m_linewidthfplot_core::scatter_plot_data
    m_markerfrequencyfplot_core::scatter_plot_data
    m_markersizefplot_core::scatter_plot_data
    m_markertypefplot_core::scatter_plot_data
    m_namefplot_core::plot_dataprivate
    m_simplifydatafplot_core::scatter_plot_data
    m_simplifyfactorfplot_core::scatter_plot_data
    m_useautocolorfplot_core::plot_data_colored
    m_usevariablesizepointsfplot_core::scatter_plot_data
    m_usey2fplot_core::plot_data_2d
    pd2d_set_data_1pd2d_set_data_1 (defined in fplot_core::plot_data_2d)fplot_core::plot_data_2d
    pd2d_set_data_2pd2d_set_data_2 (defined in fplot_core::plot_data_2d)fplot_core::plot_data_2d
    set_color_indexpdc_set_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    set_draw_against_y2pd2d_set_draw_against_y2fplot_core::plot_data_2d
    set_draw_linespd_set_draw_linefplot_core::scatter_plot_data
    set_draw_markersspd_set_draw_markersfplot_core::scatter_plot_data
    set_fill_curvespd_set_filledfplot_core::scatter_plot_data
    set_line_colorpdc_set_line_colorfplot_core::plot_data_colored
    set_line_stylespd_set_line_stylefplot_core::scatter_plot_data
    set_line_widthspd_set_line_widthfplot_core::scatter_plot_data
    set_marker_frequencyspd_set_marker_frequencyfplot_core::scatter_plot_data
    set_marker_scalingspd_set_marker_scalingfplot_core::scatter_plot_data
    set_marker_stylespd_set_marker_stylefplot_core::scatter_plot_data
    set_namepd_set_namefplot_core::plot_data
    set_simplification_factorspd_set_simplify_factorfplot_core::scatter_plot_data
    set_simplify_dataspd_set_simplify_datafplot_core::scatter_plot_data
    set_use_data_dependent_colorsspd_set_data_dependent_colorsfplot_core::scatter_plot_data
    set_use_variable_size_pointsspd_set_use_var_point_sizefplot_core::scatter_plot_data
    set_xpd2d_set_x_datafplot_core::plot_data_2dvirtual
    set_ypd2d_set_y_datafplot_core::plot_data_2dvirtual
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__2d.html b/docs/html/structfplot__core_1_1plot__data__2d.html deleted file mode 100644 index 8023b97..0000000 --- a/docs/html/structfplot__core_1_1plot__data__2d.html +++ /dev/null @@ -1,966 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_data_2d Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_data_2d Type Reference
    -
    -
    - -

    Defines a two-dimensional plot data set. - More...

    -
    -Inheritance diagram for fplot_core::plot_data_2d:
    -
    -
    - - -fplot_core::scatter_plot_data -fplot_core::plot_data_colored -fplot_core::plot_data -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_axes_string pd2d_get_axes_cmd
     Gets the GNUPLOT command string defining which axes the data is to be plotted against.
     
    procedure, public get_data_string pd2d_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    procedure, public get_count pd2d_get_data_count
     Gets the number of data points.
     
    procedure, public get_x pd2d_get_x_data
     Gets the requested X data point.
     
    procedure, public set_x pd2d_set_x_data
     Sets the requested X data point.
     
    procedure, public get_y pd2d_get_y_data
     Gets the requested Y data point.
     
    procedure, public set_y pd2d_set_y_data
     Sets the requested Y data point.
     
    procedure, public get_draw_against_y2 pd2d_get_draw_against_y2
     Gets a value determining if the data should be plotted against the secondary y-axis.
     
    procedure, public set_draw_against_y2 pd2d_set_draw_against_y2
     Sets a value determining if the data should be plotted against the secondary y-axis.
     
    generic, public define_data pd2d_set_data_1
     Defines the data set.
     
    generic, public define_data pd2d_set_data_2
     Defines the data set.
     
    procedure pd2d_set_data_1 pd2d_set_data_1
     
    procedure pd2d_set_data_2 pd2d_set_data_2
     
    procedure, public get_x_data pd2d_get_x_array
     Gets the stored X data array.
     
    procedure, public get_y_data pd2d_get_y_array
     Gets the stored Y data array.
     
    procedure, public get_color_data pd2d_get_c_array
     Gets the stored color scaling data array.
     
    procedure, public get_point_size_data pd2d_get_ps_array
     Gets the stored point size data array.
     
    - Public Member Functions inherited from fplot_core::scatter_plot_data
    procedure, public get_command_string spd_get_cmd
     Gets the GNUPLOT command string to represent this scatter_plot_data object.
     
    procedure, public get_line_width spd_get_line_width
     Gets the width of the line, in pixels.
     
    procedure, public set_line_width spd_set_line_width
     Sets the width of the line, in pixels.
     
    procedure, public get_line_style spd_get_line_style
     Gets the line style.
     
    procedure, public set_line_style spd_set_line_style
     Sets the line style.
     
    procedure, public get_draw_line spd_get_draw_line
     Gets a value determining if a line should be drawn.
     
    procedure, public set_draw_line spd_set_draw_line
     Sets a value determining if a line should be drawn.
     
    procedure, public get_draw_markers spd_get_draw_markers
     Gets a value determining if data point markers should be drawn.
     
    procedure, public set_draw_markers spd_set_draw_markers
     Sets a value determining if data point markers should be drawn.
     
    procedure, public get_marker_style spd_get_marker_style
     Gets the marker style.
     
    procedure, public set_marker_style spd_set_marker_style
     Sets the marker style.
     
    procedure, public get_marker_scaling spd_get_marker_scaling
     Gets the marker scaling.
     
    procedure, public set_marker_scaling spd_set_marker_scaling
     Sets the marker scaling.
     
    procedure, public get_marker_frequency spd_get_marker_frequency
     Gets the marker frequency.
     
    procedure, public set_marker_frequency spd_set_marker_frequency
     Sets the marker frequency.
     
    procedure, public get_simplify_data spd_get_simplify_data
     Gets a value determining if the stored data should be simplified (reduced) before passing to GNUPLOT.
     
    procedure, public set_simplify_data spd_set_simplify_data
     Sets a value determining if the stored data should be simplified (reduced) before passing to GNUPLOT.
     
    procedure, public get_simplification_factor spd_get_simplify_factor
     Gets a factor used to establish the simplification tolerance.
     
    procedure, public set_simplification_factor spd_set_simplify_factor
     Sets a factor used to establish the simplification tolerance. The tolerance is established by multplying this factor by the range of the dependent variable data.
     
    procedure, public get_use_data_dependent_colors spd_get_data_dependent_colors
     Gets a value determing if data-dependent colors should be used.
     
    procedure, public set_use_data_dependent_colors spd_set_data_dependent_colors
     Sets a value determing if data dependent colors should be used.
     
    procedure, public get_fill_curve spd_get_filled
     Gets a logical value determining if a filled curve should be drawn.
     
    procedure, public set_fill_curve spd_set_filled
     Sets a logical value determining if a filled curve should be drawn.
     
    procedure, public get_use_variable_size_points spd_get_use_var_point_size
     Gets a logical value determining if variable sized data points should be used. The default is false, such that points will be of a constant size.
     
    procedure, public set_use_variable_size_points spd_set_use_var_point_size
     Sets a logical value determining if variable sized data points should be used. The default is false, such that points will be of a constant size.
     
    - Public Member Functions inherited from fplot_core::plot_data_colored
    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    logical m_usey2 = .false.
     Draw against the secondary y axis?
     
    - Public Attributes inherited from fplot_core::scatter_plot_data
    logical m_drawmarkers = .false.
     Draw the markers?
     
    integer(int32) m_markerfrequency = 1
     Marker frequency.
     
    real(real32) m_linewidth = 1.0
     Line width.
     
    integer(int32) m_linestyle = LINE_SOLID
     Line style.
     
    integer(int32) m_markertype = MARKER_X
     Marker type.
     
    real(real32) m_markersize = 1.0
     Marker size multiplier.
     
    logical m_simplifydata = .true.
     True if large data sets should be simplified before sending to GNUPLOT.
     
    real(real64) m_simplifyfactor = 1.0d-3
     A scaling factor used to establish the simplification tolerance. The simplification tolerance is established by multiplying this factor by the range in the dependent variable data.
     
    logical m_datadependentcolors = .false.
     Determines if the data should utilize data-dependent colors.
     
    logical m_filledcurve = .false.
     Fill the curve?
     
    logical m_usevariablesizepoints = .false.
     Use variable size data points?
     
    - Public Attributes inherited from fplot_core::plot_data_colored
    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    - - - - -

    -Private Attributes

    real(real64), dimension(:,:), allocatable m_data
     An N-by-2 matrix containing the x and y data points.
     
    -

    Detailed Description

    -

    Defines a two-dimensional plot data set.

    - -

    Definition at line 4033 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_data() [1/2]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_2d::define_data
    -
    - -

    Defines the data set.

    -
    Overload 1
    -
    Syntax
    subroutine define_data(class(plot_data_2d) this, real(real64) x(:), real(real64) y(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe plot_data_2d object.
    [in]xAn N-element array containing the x coordinate data.
    [in]yAn N-element array containing the y coordinate data.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if x and y are not the same size.
    • -
    -
    -
    -
    -
    Overload 2
    -
    Syntax
    subroutine define_data(class(plot_data_2d) this, real(real64) y(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_data_2d object.
    [in]yAn N-element array containing the y-coordinate data. This data will be plotted against its own index.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    -
    Overload 3
    -
    Syntax
    subroutine define_data(class(plot_data_2d) this, real(real64) x(:), real(real64) y(:), optional real(real64) c(:), optional real(real64) ps(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - - - -
    [in,out]thisThe plot_data_2d object.
    [in]xAn N-element array containing the x coordinate data.
    [in]yAn N-element array containing the y coordinate data.
    [in]cAn N-element array defining how color should vary with the current colormap for each value.
    [in]psAn N-element array defining the size of each data point.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if x and y are not the same size.
    • -
    -
    -
    -
    - -

    Definition at line 4199 of file fplot_core.f90.

    - -
    -
    - -

    ◆ define_data() [2/2]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_2d::define_data
    -
    - -

    Defines the data set.

    -
    Overload 1
    -
    Syntax
    subroutine define_data(class(plot_data_2d) this, real(real64) x(:), real(real64) y(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe plot_data_2d object.
    [in]xAn N-element array containing the x coordinate data.
    [in]yAn N-element array containing the y coordinate data.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if x and y are not the same size.
    • -
    -
    -
    -
    -
    Overload 2
    -
    Syntax
    subroutine define_data(class(plot_data_2d) this, real(real64) y(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_data_2d object.
    [in]yAn N-element array containing the y-coordinate data. This data will be plotted against its own index.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    -
    Overload 3
    -
    Syntax
    subroutine define_data(class(plot_data_2d) this, real(real64) x(:), real(real64) y(:), optional real(real64) c(:), optional real(real64) ps(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - - - -
    [in,out]thisThe plot_data_2d object.
    [in]xAn N-element array containing the x coordinate data.
    [in]yAn N-element array containing the y coordinate data.
    [in]cAn N-element array defining how color should vary with the current colormap for each value.
    [in]psAn N-element array defining the size of each data point.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if x and y are not the same size.
    • -
    -
    -
    -
    - -

    Definition at line 4199 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_axes_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_axes_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string defining which axes the data is to be plotted against.

    -
    Syntax
    character(len = :) function, allocatable get_axis_string(class(plot_data_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_2d object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4050 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_color_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_color_data
    -
    - -

    Gets the stored color scaling data array.

    -
    Syntax
    real(real64)(:) function get_color_data(class(plot_data_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_2d object.
    -
    -
    -
    Returns
    A copy of the stored data array.
    - -

    Definition at line 4232 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_count()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_count
    -
    -virtual
    -
    - -

    Gets the number of data points.

    -
    Syntax
    pure integer(int32) get_count(class(plot_data_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_2d object.
    -
    -
    -
    Returns
    The number of data points.
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4071 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_data_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string containing the actual data to plot.

    -
    Syntax
    character(len = :) function, allocatable get_data_string(class(plot_data_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_2d object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_data.

    - -

    Definition at line 4061 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_draw_against_y2()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_draw_against_y2
    -
    - -

    Gets a value determining if the data should be plotted against the secondary y-axis.

    -
    Syntax
    pure logical function get_draw_against_y2(class(plot_data_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_2d object.
    -
    -
    -
    Returns
    Returns true if the data should be plotted against the secondary y-axis; else, false to plot against the primary y-axis.
    - -

    Definition at line 4127 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_point_size_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_point_size_data
    -
    - -

    Gets the stored point size data array.

    -
    Syntax
    real(real64)(:) function get_point_size_data(class(plot_data_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_2d object.
    -
    -
    -
    Returns
    A copy of the stored data array.
    - -

    Definition at line 4242 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_x()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_x
    -
    -virtual
    -
    - -

    Gets the requested X data point.

    -
    Syntax
    pure real(real64) get_x(class(plot_data_2d) this, integer(int32) index)
    -
    -
    Parameters
    - - - -
    [in]thisThe plot_data_2d object.
    [in]indexThe index of the data point to retrieve.
    -
    -
    -
    Returns
    The requested data point.
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4082 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_x_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_x_data
    -
    - -

    Gets the stored X data array.

    -
    Syntax
    real(real64)(:) function get_x_data(class(plot_data_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_2d object.
    -
    -
    -
    Returns
    A copy of the stored data array.
    - -

    Definition at line 4212 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_y()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_y
    -
    -virtual
    -
    - -

    Gets the requested Y data point.

    -
    Syntax
    pure real(real64) get_y(class(plot_data_2d) this, integer(int32) index)
    -
    -
    Parameters
    - - - -
    [in]thisThe plot_data_2d object.
    [in]indexThe index of the data point to retrieve.
    -
    -
    -
    Returns
    The requested data point.
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4104 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_y_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_2d::get_y_data
    -
    - -

    Gets the stored Y data array.

    -
    Syntax
    real(real64)(:) function get_y_data(class(plot_data_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_2d object.
    -
    -
    -
    Returns
    A copy of the stored data array.
    - -

    Definition at line 4222 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pd2d_set_data_1()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_2d::pd2d_set_data_1
    -
    - -

    Definition at line 4200 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pd2d_set_data_2()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_2d::pd2d_set_data_2
    -
    - -

    Definition at line 4201 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_draw_against_y2()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_2d::set_draw_against_y2
    -
    - -

    Sets a value determining if the data should be plotted against the secondary y-axis.

    -
    Syntax
    subroutine set_draw_against_y2(class(plot_data_2d) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_data_2d object.
    [in]xSet to true if the data should be plotted against the secondary y-axis; else, false to plot against the primary y-axis.
    -
    -
    - -

    Definition at line 4139 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_x()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_2d::set_x
    -
    -virtual
    -
    - -

    Sets the requested X data point.

    -
    Syntax
    subroutine set_x(class(plot_data_2d) this, integer(int32) index, real(real64) x)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_data_2d object.
    [in]indexThe index of the data point to replace.
    [in]xThe data point.
    -
    -
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4093 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_y()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_2d::set_y
    -
    -virtual
    -
    - -

    Sets the requested Y data point.

    -
    Syntax
    subroutine set_y(class(plot_data_2d) this, integer(int32) index, real(real64) x)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_data_2d object.
    [in]indexThe index of the data point to replace.
    [in]xThe data point.
    -
    -
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4115 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_data

    - -
    -
    - - - - - -
    - - - - -
    real(real64), dimension(:,:), allocatable fplot_core::plot_data_2d::m_data
    -
    -private
    -
    - -

    An N-by-2 matrix containing the x and y data points.

    - -

    Definition at line 4036 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_usey2

    - -
    -
    - - - - -
    logical fplot_core::plot_data_2d::m_usey2 = .false.
    -
    - -

    Draw against the secondary y axis?

    - -

    Definition at line 4038 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__2d.js b/docs/html/structfplot__core_1_1plot__data__2d.js deleted file mode 100644 index 6d84ac9..0000000 --- a/docs/html/structfplot__core_1_1plot__data__2d.js +++ /dev/null @@ -1,20 +0,0 @@ -var structfplot__core_1_1plot__data__2d = -[ - [ "define_data", "structfplot__core_1_1plot__data__2d.html#aff2e615bf20ac66b403695ce10e5be4d", null ], - [ "define_data", "structfplot__core_1_1plot__data__2d.html#a4ef9823b92c13db70504897adac11e70", null ], - [ "get_axes_string", "structfplot__core_1_1plot__data__2d.html#abff268284715672d150a629a1f91f3fe", null ], - [ "get_color_data", "structfplot__core_1_1plot__data__2d.html#a44277af64f3ac00c1b8891d9ab07d097", null ], - [ "get_count", "structfplot__core_1_1plot__data__2d.html#a99a502c8e85b4eedb161e2bcab2f88c6", null ], - [ "get_data_string", "structfplot__core_1_1plot__data__2d.html#a198cd94a65ba98cbd2423b749a572154", null ], - [ "get_draw_against_y2", "structfplot__core_1_1plot__data__2d.html#afcbdba943a724904ce1099d8c48c8b50", null ], - [ "get_point_size_data", "structfplot__core_1_1plot__data__2d.html#a703b322285b948322b82b1450ddb89f3", null ], - [ "get_x", "structfplot__core_1_1plot__data__2d.html#a83fd2bbcc7a8db64d64fa2e4f8540698", null ], - [ "get_x_data", "structfplot__core_1_1plot__data__2d.html#a191daa9d59fb985eae560be76e826d2c", null ], - [ "get_y", "structfplot__core_1_1plot__data__2d.html#a97d6c5a96add7522152fe8b3146081d6", null ], - [ "get_y_data", "structfplot__core_1_1plot__data__2d.html#a1f46fa50e4d2a1eaff9d881b614f3122", null ], - [ "set_draw_against_y2", "structfplot__core_1_1plot__data__2d.html#a77e6f48e4bac69edcf0275d6ad13e550", null ], - [ "set_x", "structfplot__core_1_1plot__data__2d.html#aa605fb042bd378ebf5ba6fd94563d13a", null ], - [ "set_y", "structfplot__core_1_1plot__data__2d.html#a28d89209520ffd1728ff34aaa853f314", null ], - [ "m_data", "structfplot__core_1_1plot__data__2d.html#a35abd4e024ea4e55c55dedcab8e5e3bf", null ], - [ "m_usey2", "structfplot__core_1_1plot__data__2d.html#a94c27807c2a4c6403514fe5a387624be", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__data__2d.png b/docs/html/structfplot__core_1_1plot__data__2d.png deleted file mode 100644 index 1f91a86..0000000 Binary files a/docs/html/structfplot__core_1_1plot__data__2d.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__data__3d-members.html b/docs/html/structfplot__core_1_1plot__data__3d-members.html deleted file mode 100644 index 3ec7608..0000000 --- a/docs/html/structfplot__core_1_1plot__data__3d-members.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_data_3d Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data_3d, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    define_datapd3d_set_data_1fplot_core::plot_data_3d
    get_axes_stringpd3d_get_axes_cmdfplot_core::plot_data_3dvirtual
    get_color_datapd3d_get_c_arrayfplot_core::plot_data_3d
    get_color_indexpdc_get_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    get_command_stringspd_get_cmdfplot_core::scatter_plot_datavirtual
    get_countpd3d_get_data_countfplot_core::plot_data_3dvirtual
    get_data_stringpd3d_get_data_cmdfplot_core::plot_data_3dvirtual
    get_draw_linespd_get_draw_linefplot_core::scatter_plot_data
    get_draw_markersspd_get_draw_markersfplot_core::scatter_plot_data
    get_fill_curvespd_get_filledfplot_core::scatter_plot_data
    get_line_colorpdc_get_line_colorfplot_core::plot_data_colored
    get_line_stylespd_get_line_stylefplot_core::scatter_plot_data
    get_line_widthspd_get_line_widthfplot_core::scatter_plot_data
    get_marker_frequencyspd_get_marker_frequencyfplot_core::scatter_plot_data
    get_marker_scalingspd_get_marker_scalingfplot_core::scatter_plot_data
    get_marker_stylespd_get_marker_stylefplot_core::scatter_plot_data
    get_namepd_get_namefplot_core::plot_data
    get_point_size_datapd3d_get_c_arrayfplot_core::plot_data_3d
    get_simplification_factorspd_get_simplify_factorfplot_core::scatter_plot_data
    get_simplify_dataspd_get_simplify_datafplot_core::scatter_plot_data
    get_use_data_dependent_colorsspd_get_data_dependent_colorsfplot_core::scatter_plot_data
    get_use_variable_size_pointsspd_get_use_var_point_sizefplot_core::scatter_plot_data
    get_xpd3d_get_x_datafplot_core::plot_data_3dvirtual
    get_x_datapd3d_get_x_arrayfplot_core::plot_data_3d
    get_ypd3d_get_y_datafplot_core::plot_data_3dvirtual
    get_y_datapd3d_get_y_arrayfplot_core::plot_data_3d
    get_zpd3d_get_z_datafplot_core::plot_data_3d
    get_z_datapd3d_get_z_arrayfplot_core::plot_data_3d
    m_colorfplot_core::plot_data_coloredprivate
    m_colorindexfplot_core::plot_data_colored
    m_datafplot_core::plot_data_3dprivate
    m_datadependentcolorsfplot_core::scatter_plot_data
    m_drawlinefplot_core::scatter_plot_dataprivate
    m_drawmarkersfplot_core::scatter_plot_data
    m_filledcurvefplot_core::scatter_plot_data
    m_linestylefplot_core::scatter_plot_data
    m_linewidthfplot_core::scatter_plot_data
    m_markerfrequencyfplot_core::scatter_plot_data
    m_markersizefplot_core::scatter_plot_data
    m_markertypefplot_core::scatter_plot_data
    m_namefplot_core::plot_dataprivate
    m_simplifydatafplot_core::scatter_plot_data
    m_simplifyfactorfplot_core::scatter_plot_data
    m_useautocolorfplot_core::plot_data_colored
    m_usevariablesizepointsfplot_core::scatter_plot_data
    set_color_indexpdc_set_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    set_draw_linespd_set_draw_linefplot_core::scatter_plot_data
    set_draw_markersspd_set_draw_markersfplot_core::scatter_plot_data
    set_fill_curvespd_set_filledfplot_core::scatter_plot_data
    set_line_colorpdc_set_line_colorfplot_core::plot_data_colored
    set_line_stylespd_set_line_stylefplot_core::scatter_plot_data
    set_line_widthspd_set_line_widthfplot_core::scatter_plot_data
    set_marker_frequencyspd_set_marker_frequencyfplot_core::scatter_plot_data
    set_marker_scalingspd_set_marker_scalingfplot_core::scatter_plot_data
    set_marker_stylespd_set_marker_stylefplot_core::scatter_plot_data
    set_namepd_set_namefplot_core::plot_data
    set_simplification_factorspd_set_simplify_factorfplot_core::scatter_plot_data
    set_simplify_dataspd_set_simplify_datafplot_core::scatter_plot_data
    set_use_data_dependent_colorsspd_set_data_dependent_colorsfplot_core::scatter_plot_data
    set_use_variable_size_pointsspd_set_use_var_point_sizefplot_core::scatter_plot_data
    set_xpd3d_set_x_datafplot_core::plot_data_3dvirtual
    set_ypd3d_set_y_datafplot_core::plot_data_3dvirtual
    set_zpd3d_set_z_datafplot_core::plot_data_3d
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__3d.html b/docs/html/structfplot__core_1_1plot__data__3d.html deleted file mode 100644 index 5855812..0000000 --- a/docs/html/structfplot__core_1_1plot__data__3d.html +++ /dev/null @@ -1,839 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_data_3d Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_data_3d Type Reference
    -
    -
    - -

    Defines a three-dimensional plot data set. - More...

    -
    -Inheritance diagram for fplot_core::plot_data_3d:
    -
    -
    - - -fplot_core::scatter_plot_data -fplot_core::plot_data_colored -fplot_core::plot_data -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_count pd3d_get_data_count
     Gets the number of data points.
     
    procedure, public get_x pd3d_get_x_data
     Gets the requested X data point.
     
    procedure, public set_x pd3d_set_x_data
     Sets the requested X data point.
     
    procedure, public get_y pd3d_get_y_data
     Gets the requested Y data point.
     
    procedure, public set_y pd3d_set_y_data
     Sets the requested Y data point.
     
    procedure, public get_z pd3d_get_z_data
     Gets the requested Z data point.
     
    procedure, public set_z pd3d_set_z_data
     Sets the requested Z data point.
     
    procedure, public get_axes_string pd3d_get_axes_cmd
     Gets the GNUPLOT command string defining which axes the data is to be plotted against.
     
    procedure, public get_data_string pd3d_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    procedure, public define_data pd3d_set_data_1
     Defines the data set.
     
    procedure, public get_x_data pd3d_get_x_array
     Gets the stored X data array.
     
    procedure, public get_y_data pd3d_get_y_array
     Gets the stored Y data array.
     
    procedure, public get_z_data pd3d_get_z_array
     Gets the stored Z data array.
     
    procedure, public get_color_data pd3d_get_c_array
     Gets the stored color scaling data array.
     
    procedure, public get_point_size_data pd3d_get_c_array
     Gets the stored point scaling data array.
     
    - Public Member Functions inherited from fplot_core::scatter_plot_data
    procedure, public get_command_string spd_get_cmd
     Gets the GNUPLOT command string to represent this scatter_plot_data object.
     
    procedure, public get_line_width spd_get_line_width
     Gets the width of the line, in pixels.
     
    procedure, public set_line_width spd_set_line_width
     Sets the width of the line, in pixels.
     
    procedure, public get_line_style spd_get_line_style
     Gets the line style.
     
    procedure, public set_line_style spd_set_line_style
     Sets the line style.
     
    procedure, public get_draw_line spd_get_draw_line
     Gets a value determining if a line should be drawn.
     
    procedure, public set_draw_line spd_set_draw_line
     Sets a value determining if a line should be drawn.
     
    procedure, public get_draw_markers spd_get_draw_markers
     Gets a value determining if data point markers should be drawn.
     
    procedure, public set_draw_markers spd_set_draw_markers
     Sets a value determining if data point markers should be drawn.
     
    procedure, public get_marker_style spd_get_marker_style
     Gets the marker style.
     
    procedure, public set_marker_style spd_set_marker_style
     Sets the marker style.
     
    procedure, public get_marker_scaling spd_get_marker_scaling
     Gets the marker scaling.
     
    procedure, public set_marker_scaling spd_set_marker_scaling
     Sets the marker scaling.
     
    procedure, public get_marker_frequency spd_get_marker_frequency
     Gets the marker frequency.
     
    procedure, public set_marker_frequency spd_set_marker_frequency
     Sets the marker frequency.
     
    procedure, public get_simplify_data spd_get_simplify_data
     Gets a value determining if the stored data should be simplified (reduced) before passing to GNUPLOT.
     
    procedure, public set_simplify_data spd_set_simplify_data
     Sets a value determining if the stored data should be simplified (reduced) before passing to GNUPLOT.
     
    procedure, public get_simplification_factor spd_get_simplify_factor
     Gets a factor used to establish the simplification tolerance.
     
    procedure, public set_simplification_factor spd_set_simplify_factor
     Sets a factor used to establish the simplification tolerance. The tolerance is established by multplying this factor by the range of the dependent variable data.
     
    procedure, public get_use_data_dependent_colors spd_get_data_dependent_colors
     Gets a value determing if data-dependent colors should be used.
     
    procedure, public set_use_data_dependent_colors spd_set_data_dependent_colors
     Sets a value determing if data dependent colors should be used.
     
    procedure, public get_fill_curve spd_get_filled
     Gets a logical value determining if a filled curve should be drawn.
     
    procedure, public set_fill_curve spd_set_filled
     Sets a logical value determining if a filled curve should be drawn.
     
    procedure, public get_use_variable_size_points spd_get_use_var_point_size
     Gets a logical value determining if variable sized data points should be used. The default is false, such that points will be of a constant size.
     
    procedure, public set_use_variable_size_points spd_set_use_var_point_size
     Sets a logical value determining if variable sized data points should be used. The default is false, such that points will be of a constant size.
     
    - Public Member Functions inherited from fplot_core::plot_data_colored
    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - -

    -Private Attributes

    real(real64), dimension(:,:), allocatable m_data
     An N-by-3 matrix containing the x, y, and z data points.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::scatter_plot_data
    logical m_drawmarkers = .false.
     Draw the markers?
     
    integer(int32) m_markerfrequency = 1
     Marker frequency.
     
    real(real32) m_linewidth = 1.0
     Line width.
     
    integer(int32) m_linestyle = LINE_SOLID
     Line style.
     
    integer(int32) m_markertype = MARKER_X
     Marker type.
     
    real(real32) m_markersize = 1.0
     Marker size multiplier.
     
    logical m_simplifydata = .true.
     True if large data sets should be simplified before sending to GNUPLOT.
     
    real(real64) m_simplifyfactor = 1.0d-3
     A scaling factor used to establish the simplification tolerance. The simplification tolerance is established by multiplying this factor by the range in the dependent variable data.
     
    logical m_datadependentcolors = .false.
     Determines if the data should utilize data-dependent colors.
     
    logical m_filledcurve = .false.
     Fill the curve?
     
    logical m_usevariablesizepoints = .false.
     Use variable size data points?
     
    - Public Attributes inherited from fplot_core::plot_data_colored
    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    -

    Detailed Description

    -

    Defines a three-dimensional plot data set.

    - -

    Definition at line 4334 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_3d::define_data
    -
    - -

    Defines the data set.

    -
    Syntax
    subroutine define_data(class(plot_data_3d) this, real(real64) x(:), real(real64) y(:), real(real64) z(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - - -
    [in,out]thisThe plot_data_2d object.
    [in]xAn N-element array containing the x coordinate data.
    [in]yAn N-element array containing the y coordinate data.
    [in]zAn N-element array containing the z coordinate data.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if x, y, and z are not the same size.
    • -
    -
    -
    -
    - -

    Definition at line 4456 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_axes_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_axes_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string defining which axes the data is to be plotted against.

    -
    Syntax
    character(len = :) function, allocatable :: get_axes_string(class(plot_data_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_3d object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4425 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_color_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_color_data
    -
    - -

    Gets the stored color scaling data array.

    -
    Syntax
    real(real64)(:) function get_color_data(class(plot_data_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_3d object.
    -
    -
    -
    Returns
    A copy of the stored data array.
    - -

    Definition at line 4496 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_count()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_count
    -
    -virtual
    -
    - -

    Gets the number of data points.

    -
    Syntax
    pure integer(int32) function get_count(class(plot_data_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_3d object.
    -
    -
    -
    Returns
    The number of data points.
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4348 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_data_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string containing the actual data to plot.

    -
    Syntax
    character(len = :) function, allocatable :: get_data_string(class(plot_data_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_3d object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_data.

    - -

    Definition at line 4436 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_point_size_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_point_size_data
    -
    - -

    Gets the stored point scaling data array.

    -
    Syntax
    real(real64)(:) function get_point_size_data(class(plot_data_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_3d object.
    -
    -
    -
    Returns
    A copy of the stored data array.
    - -

    Definition at line 4506 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_x()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_x
    -
    -virtual
    -
    - -

    Gets the requested X data point.

    -
    Syntax
    pure real(real64) function get_x(class(plot_data_3d), this, integer(int32) index)
    -
    -
    Parameters
    - - - -
    [in]thisThe plot_data_3d object.
    [in]indexThe index of the data point to retrieve.
    -
    -
    -
    Returns
    The requested data point.
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4359 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_x_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_x_data
    -
    - -

    Gets the stored X data array.

    -
    Syntax
    real(real64)(:) function get_x_data(class(plot_data_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_3d object.
    -
    -
    -
    Returns
    A copy of the stored data array.
    - -

    Definition at line 4466 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_y()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_y
    -
    -virtual
    -
    - -

    Gets the requested Y data point.

    -
    Syntax
    pure real(real64) function get_y(class(plot_data_3d) this, this, integer(int32) index)
    -
    -
    Parameters
    - - - -
    [in]thisThe plot_data_3d object.
    [in]indexThe index of the data point to retrieve.
    -
    -
    -
    Returns
    The requested data point.
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4381 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_y_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_y_data
    -
    - -

    Gets the stored Y data array.

    -
    Syntax
    real(real64)(:) function get_y_data(class(plot_data_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_3d object.
    -
    -
    -
    Returns
    A copy of the stored data array.
    - -

    Definition at line 4476 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_z()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_z
    -
    - -

    Gets the requested Z data point.

    -
    Syntax
    pure real(real64) function get_z(class(plot_data_3d) this, this, integer(int32) index)
    -
    -
    Parameters
    - - - -
    [in]thisThe plot_data_3d object.
    [in]indexThe index of the data point to retrieve.
    -
    -
    -
    Returns
    The requested data point.
    - -

    Definition at line 4403 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_z_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_3d::get_z_data
    -
    - -

    Gets the stored Z data array.

    -
    Syntax
    real(real64)(:) function get_z_data(class(plot_data_3d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_3d object.
    -
    -
    -
    Returns
    A copy of the stored data array.
    - -

    Definition at line 4486 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_x()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_3d::set_x
    -
    -virtual
    -
    - -

    Sets the requested X data point.

    -
    Syntax
    subroutine set_x(class(plot_data_3d) this, integer(int32) index, real(real64) x)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_data_3d object.
    [in]indexThe index of the data point to replace.
    [in]xThe data point.
    -
    -
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4370 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_y()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_3d::set_y
    -
    -virtual
    -
    - -

    Sets the requested Y data point.

    -
    Syntax
    subroutine set_y(class(plot_data_3d) this, integer(int32) index, real(real64) x)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_data_3d object.
    [in]indexThe index of the data point to replace.
    [in]xThe data point.
    -
    -
    - -

    Implements fplot_core::scatter_plot_data.

    - -

    Definition at line 4392 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_z()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_3d::set_z
    -
    - -

    Sets the requested Z data point.

    -
    Syntax
    subroutine set_z(class(plot_data_3d) this, integer(int32) index, real(real64) x)
    -
    -
    Parameters
    - - - - -
    [in,out]thisThe plot_data_3d object.
    [in]indexThe index of the data point to replace.
    [in]xThe data point.
    -
    -
    - -

    Definition at line 4414 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_data

    - -
    -
    - - - - - -
    - - - - -
    real(real64), dimension(:,:), allocatable fplot_core::plot_data_3d::m_data
    -
    -private
    -
    - -

    An N-by-3 matrix containing the x, y, and z data points.

    - -

    Definition at line 4337 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__3d.js b/docs/html/structfplot__core_1_1plot__data__3d.js deleted file mode 100644 index dd096bb..0000000 --- a/docs/html/structfplot__core_1_1plot__data__3d.js +++ /dev/null @@ -1,19 +0,0 @@ -var structfplot__core_1_1plot__data__3d = -[ - [ "define_data", "structfplot__core_1_1plot__data__3d.html#ade9ee50a99ab15f4cfcc8a0ecd75e69c", null ], - [ "get_axes_string", "structfplot__core_1_1plot__data__3d.html#aafb795e54877133e338807877845ee53", null ], - [ "get_color_data", "structfplot__core_1_1plot__data__3d.html#a85627d579d5879fcbe35d3129e9035c3", null ], - [ "get_count", "structfplot__core_1_1plot__data__3d.html#a98903845197a0e6985f61e24f62b970e", null ], - [ "get_data_string", "structfplot__core_1_1plot__data__3d.html#a55720af848b61039e8de8a7357800221", null ], - [ "get_point_size_data", "structfplot__core_1_1plot__data__3d.html#ae49068baed9bb95fed74268ea24ac3ac", null ], - [ "get_x", "structfplot__core_1_1plot__data__3d.html#a73ca5dfd8f294a9c6b5f84767bebaad2", null ], - [ "get_x_data", "structfplot__core_1_1plot__data__3d.html#a13c7c8e4c4ecb9fb80aee24b75a5cff3", null ], - [ "get_y", "structfplot__core_1_1plot__data__3d.html#a487acf51a34ff00fe81c8b9156fafc5a", null ], - [ "get_y_data", "structfplot__core_1_1plot__data__3d.html#a88c4206070248fb431e0456945669bae", null ], - [ "get_z", "structfplot__core_1_1plot__data__3d.html#a6513639ef9e865478e7fcfd556aa1111", null ], - [ "get_z_data", "structfplot__core_1_1plot__data__3d.html#aa9b1507e1841fda61fc9be8a5a0a7013", null ], - [ "set_x", "structfplot__core_1_1plot__data__3d.html#a1013a895c610e3f412701624c60c18a4", null ], - [ "set_y", "structfplot__core_1_1plot__data__3d.html#abcaab55223d65976eb07ab58908ccd66", null ], - [ "set_z", "structfplot__core_1_1plot__data__3d.html#a5adf3d8c20b3b839a76175ca986fcff4", null ], - [ "m_data", "structfplot__core_1_1plot__data__3d.html#a05d33e3351193d2e471083589d3ccb60", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__data__3d.png b/docs/html/structfplot__core_1_1plot__data__3d.png deleted file mode 100644 index 5f82a7c..0000000 Binary files a/docs/html/structfplot__core_1_1plot__data__3d.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__data__bar-members.html b/docs/html/structfplot__core_1_1plot__data__bar-members.html deleted file mode 100644 index 4c42353..0000000 --- a/docs/html/structfplot__core_1_1plot__data__bar-members.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_data_bar Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data_bar, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    define_datapdb_set_data_1 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    define_datapdb_set_data_2 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    define_datapdb_set_data_3 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    getpdb_get_data (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_axes_stringpdb_get_axes_cmd (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_bar_per_label_countpdb_get_col_count (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_color_indexpdc_get_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    get_command_stringpdb_get_cmdfplot_core::plot_data_barvirtual
    get_countpdb_get_count (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_datapdb_get_data_set (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_data_stringpdb_get_data_cmdfplot_core::plot_data_barvirtual
    get_draw_against_y2pdb_get_use_y2 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_is_filledpdb_get_is_filled (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_labelpdb_get_label (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_line_colorpdc_get_line_colorfplot_core::plot_data_colored
    get_namepd_get_namefplot_core::plot_data
    get_transparencypdb_get_alpha (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_use_labelspdb_get_use_labels (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    m_alphafplot_core::plot_data_bar
    m_axislabelsfplot_core::plot_data_barprivate
    m_bardatafplot_core::plot_data_bar
    m_colorfplot_core::plot_data_coloredprivate
    m_colorindexfplot_core::plot_data_colored
    m_filledfplot_core::plot_data_bar
    m_namefplot_core::plot_dataprivate
    m_useautocolorfplot_core::plot_data_colored
    m_useaxislabelsfplot_core::plot_data_bar
    m_usey2fplot_core::plot_data_bar
    pdb_set_data_1pdb_set_data_1 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    pdb_set_data_2pdb_set_data_2 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    pdb_set_data_3pdb_set_data_3 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    setpdb_set_data (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_color_indexpdc_set_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    set_data_1pdb_set_data_1_core (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_data_2pdb_set_data_2_core (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_data_3pdb_set_data_3_core (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_draw_against_y2pdb_set_use_y2 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_is_filledpdb_set_is_filled (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_labelpdb_set_label (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_line_colorpdc_set_line_colorfplot_core::plot_data_colored
    set_namepd_set_namefplot_core::plot_data
    set_transparencypdb_set_alpha (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_use_labelspdb_set_use_labels (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__bar.html b/docs/html/structfplot__core_1_1plot__data__bar.html deleted file mode 100644 index 9e4d08f..0000000 --- a/docs/html/structfplot__core_1_1plot__data__bar.html +++ /dev/null @@ -1,814 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_data_bar Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_data_bar Type Reference
    -
    -
    - -

    Defines a data set tailored to bar charts. - More...

    -
    -Inheritance diagram for fplot_core::plot_data_bar:
    -
    -
    - - -fplot_core::plot_data_colored -fplot_core::plot_data -fplot_core::plot_object -fplot_core::plot_data_histogram - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_count pdb_get_count
     
    procedure, public get pdb_get_data
     
    procedure, public set pdb_set_data
     
    procedure, public get_data pdb_get_data_set
     
    procedure, public get_label pdb_get_label
     
    procedure, public set_label pdb_set_label
     
    procedure, public get_use_labels pdb_get_use_labels
     
    procedure, public set_use_labels pdb_set_use_labels
     
    procedure, public get_command_string pdb_get_cmd
     Returns the appropriate GNUPLOT command string to define the plot object properties.
     
    procedure, public get_data_string pdb_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    procedure, public get_axes_string pdb_get_axes_cmd
     
    procedure, public get_bar_per_label_count pdb_get_col_count
     
    procedure, public get_draw_against_y2 pdb_get_use_y2
     
    procedure, public set_draw_against_y2 pdb_set_use_y2
     
    procedure, public get_is_filled pdb_get_is_filled
     
    procedure, public set_is_filled pdb_set_is_filled
     
    procedure, public get_transparency pdb_get_alpha
     
    procedure, public set_transparency pdb_set_alpha
     
    generic, public define_data pdb_set_data_1
     
    generic, public define_data pdb_set_data_2
     
    generic, public define_data pdb_set_data_3
     
    procedure pdb_set_data_1 pdb_set_data_1
     
    procedure pdb_set_data_2 pdb_set_data_2
     
    procedure pdb_set_data_3 pdb_set_data_3
     
    procedure set_data_1 pdb_set_data_1_core
     
    procedure set_data_2 pdb_set_data_2_core
     
    procedure set_data_3 pdb_set_data_3_core
     
    - Public Member Functions inherited from fplot_core::plot_data_colored
    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    real(real64), dimension(:,:), allocatable m_bardata
     An array of data defining each bar - the matrix contains multiple columns to allow multiple bars per label.
     
    logical m_useaxislabels = .true.
     Determines if the axis labels should be used - only applicable if there is existing data stored in m_axisLabels & m_axisLabels is the same size as m_barData.
     
    logical m_usey2 = .false.
     Draw against the secondary y axis?
     
    logical m_filled = .true.
     Determines if each bar is filled.
     
    real(real32) m_alpha = 1.0
     The alpha value (transparency) for each bar.
     
    - Public Attributes inherited from fplot_core::plot_data_colored
    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    - - - - -

    -Private Attributes

    type(string), dimension(:), allocatable m_axislabels
     An array containing axis labels to associate with each bar.
     
    -

    Detailed Description

    -

    Defines a data set tailored to bar charts.

    - -

    Definition at line 6459 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_data() [1/3]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_bar::define_data
    -
    - -

    Definition at line 6495 of file fplot_core.f90.

    - -
    -
    - -

    ◆ define_data() [2/3]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_bar::define_data
    -
    - -

    Definition at line 6495 of file fplot_core.f90.

    - -
    -
    - -

    ◆ define_data() [3/3]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_bar::define_data
    -
    - -

    Definition at line 6495 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get
    -
    - -

    Definition at line 6478 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_axes_string()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_axes_string
    -
    - -

    Definition at line 6487 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_bar_per_label_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_bar_per_label_count
    -
    - -

    Definition at line 6488 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to define the plot object properties.

    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 6485 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_count
    -
    - -

    Definition at line 6477 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_data
    -
    - -

    Definition at line 6480 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_data_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string containing the actual data to plot.

    - -

    Implements fplot_core::plot_data.

    - -

    Definition at line 6486 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_draw_against_y2()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_draw_against_y2
    -
    - -

    Definition at line 6489 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_is_filled()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_is_filled
    -
    - -

    Definition at line 6491 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_label()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_label
    -
    - -

    Definition at line 6481 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_transparency()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_transparency
    -
    - -

    Definition at line 6493 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_labels()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::get_use_labels
    -
    - -

    Definition at line 6483 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pdb_set_data_1()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_bar::pdb_set_data_1
    -
    - -

    Definition at line 6497 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pdb_set_data_2()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_bar::pdb_set_data_2
    -
    - -

    Definition at line 6498 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pdb_set_data_3()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_bar::pdb_set_data_3
    -
    - -

    Definition at line 6499 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::set
    -
    - -

    Definition at line 6479 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_data_1()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_bar::set_data_1
    -
    - -

    Definition at line 6500 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_data_2()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_bar::set_data_2
    -
    - -

    Definition at line 6501 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_data_3()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_bar::set_data_3
    -
    - -

    Definition at line 6502 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_draw_against_y2()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::set_draw_against_y2
    -
    - -

    Definition at line 6490 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_is_filled()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::set_is_filled
    -
    - -

    Definition at line 6492 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_label()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::set_label
    -
    - -

    Definition at line 6482 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_transparency()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::set_transparency
    -
    - -

    Definition at line 6494 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_labels()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_bar::set_use_labels
    -
    - -

    Definition at line 6484 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_alpha

    - -
    -
    - - - - -
    real(real32) fplot_core::plot_data_bar::m_alpha = 1.0
    -
    - -

    The alpha value (transparency) for each bar.

    - -

    Definition at line 6475 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_axislabels

    - -
    -
    - - - - - -
    - - - - -
    type(string), dimension(:), allocatable fplot_core::plot_data_bar::m_axislabels
    -
    -private
    -
    - -

    An array containing axis labels to associate with each bar.

    - -

    Definition at line 6462 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_bardata

    - -
    -
    - - - - -
    real(real64), dimension(:,:), allocatable fplot_core::plot_data_bar::m_bardata
    -
    - -

    An array of data defining each bar - the matrix contains multiple columns to allow multiple bars per label.

    - -

    Definition at line 6465 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_filled

    - -
    -
    - - - - -
    logical fplot_core::plot_data_bar::m_filled = .true.
    -
    - -

    Determines if each bar is filled.

    - -

    Definition at line 6473 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_useaxislabels

    - -
    -
    - - - - -
    logical fplot_core::plot_data_bar::m_useaxislabels = .true.
    -
    - -

    Determines if the axis labels should be used - only applicable if there is existing data stored in m_axisLabels & m_axisLabels is the same size as m_barData.

    - -

    Definition at line 6469 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_usey2

    - -
    -
    - - - - -
    logical fplot_core::plot_data_bar::m_usey2 = .false.
    -
    - -

    Draw against the secondary y axis?

    - -

    Definition at line 6471 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__bar.js b/docs/html/structfplot__core_1_1plot__data__bar.js deleted file mode 100644 index e61ba30..0000000 --- a/docs/html/structfplot__core_1_1plot__data__bar.js +++ /dev/null @@ -1,11 +0,0 @@ -var structfplot__core_1_1plot__data__bar = -[ - [ "get_command_string", "structfplot__core_1_1plot__data__bar.html#a9711b599bf9cb178ed7c45ec1588aa46", null ], - [ "get_data_string", "structfplot__core_1_1plot__data__bar.html#aa5fa7de9642e1f9e520b4a43cd6f7ae7", null ], - [ "m_alpha", "structfplot__core_1_1plot__data__bar.html#ada9be13d82f4a51e832327bd586c8532", null ], - [ "m_axislabels", "structfplot__core_1_1plot__data__bar.html#ad6ae990580ab689aebe3e4114d650f5f", null ], - [ "m_bardata", "structfplot__core_1_1plot__data__bar.html#ae3afc4495088f5ec9a7f0414470d97b0", null ], - [ "m_filled", "structfplot__core_1_1plot__data__bar.html#ab390e7a9d6d8a0ca0ee2e42397e8da36", null ], - [ "m_useaxislabels", "structfplot__core_1_1plot__data__bar.html#a5651040ed1984f555b236f97e513c52d", null ], - [ "m_usey2", "structfplot__core_1_1plot__data__bar.html#a51124b26f051de4150eee0b120942da5", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__data__bar.png b/docs/html/structfplot__core_1_1plot__data__bar.png deleted file mode 100644 index 61529c8..0000000 Binary files a/docs/html/structfplot__core_1_1plot__data__bar.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__data__colored-members.html b/docs/html/structfplot__core_1_1plot__data__colored-members.html deleted file mode 100644 index 66d4cb4..0000000 --- a/docs/html/structfplot__core_1_1plot__data__colored-members.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_data_colored Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data_colored, including all inherited members.

    - - - - - - - - - - - - - -
    get_color_indexpdc_get_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    get_command_stringget_string_resultfplot_core::plot_objectpure virtual
    get_data_stringpd_get_string_resultfplot_core::plot_datapure virtual
    get_line_colorpdc_get_line_colorfplot_core::plot_data_colored
    get_namepd_get_namefplot_core::plot_data
    m_colorfplot_core::plot_data_coloredprivate
    m_colorindexfplot_core::plot_data_colored
    m_namefplot_core::plot_dataprivate
    m_useautocolorfplot_core::plot_data_colored
    set_color_indexpdc_set_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    set_line_colorpdc_set_line_colorfplot_core::plot_data_colored
    set_namepd_set_namefplot_core::plot_data
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__colored.html b/docs/html/structfplot__core_1_1plot__data__colored.html deleted file mode 100644 index 93fd0de..0000000 --- a/docs/html/structfplot__core_1_1plot__data__colored.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_data_colored Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_data_colored Type Reference
    -
    -
    - -

    Defines a plot_data based object best represented by a color. - More...

    -
    -Inheritance diagram for fplot_core::plot_data_colored:
    -
    -
    - - -fplot_core::plot_data -fplot_core::plot_object -fplot_core::filled_plot_data -fplot_core::plot_data_bar -fplot_core::plot_data_error_bars -fplot_core::plot_data_tri_2d -fplot_core::scatter_plot_data -fplot_core::vector_field_plot_data -fplot_core::plot_data_histogram -fplot_core::plot_data_2d -fplot_core::plot_data_3d - -
    - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    procedure(pd_get_string_result), deferred, public get_data_string pd_get_string_result
     Gets the GNUPLOT command string containing the actual data to plot.
     
    - Public Member Functions inherited from fplot_core::plot_object
    procedure(get_string_result), deferred, public get_command_string get_string_result
     Returns the appropriate GNUPLOT command string to define the plot object properties.
     
    - - - - - - - -

    -Public Attributes

    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    - - - - - -

    -Private Member Functions

    procedure, private get_color_index pdc_get_color_index
     
    procedure, private set_color_index pdc_set_color_index
     
    - - - - -

    -Private Attributes

    type(colorm_color = CLR_BLUE
     The line color.
     
    -

    Detailed Description

    -

    Defines a plot_data based object best represented by a color.

    - -

    Definition at line 1723 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color_index()

    - -
    -
    - - - - - -
    - - - - -
    procedure, private fplot_core::plot_data_colored::get_color_index
    -
    -private
    -
    - -

    Definition at line 1752 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_line_color()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_colored::get_line_color
    -
    - -

    Gets the line color.

    -
    Syntax
    pure type(color) function get_line_color(class(plot_data_colored) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_colored instance.
    -
    -
    -
    Returns
    The color.
    - -

    Definition at line 1741 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_color_index()

    - -
    -
    - - - - - -
    - - - - -
    procedure, private fplot_core::plot_data_colored::set_color_index
    -
    -private
    -
    - -

    Definition at line 1753 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_line_color()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_colored::set_line_color
    -
    - -

    Sets the line color.

    -
    Syntax
    subroutine set_line_color(class(plot_data_colored) this, type(color) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_data_colored instance.
    [in]xThe color.
    -
    -
    - -

    Definition at line 1751 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_color

    - -
    -
    - - - - - -
    - - - - -
    type(color) fplot_core::plot_data_colored::m_color = CLR_BLUE
    -
    -private
    -
    - -

    The line color.

    - -

    Definition at line 1726 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_colorindex

    - -
    -
    - - - - -
    integer(int32) fplot_core::plot_data_colored::m_colorindex = 1
    -
    - -

    The color index to use, assuming we're using auto color.

    - -

    Definition at line 1730 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_useautocolor

    - -
    -
    - - - - -
    logical fplot_core::plot_data_colored::m_useautocolor = .true.
    -
    - -

    Let the object choose colors automatically.

    - -

    Definition at line 1728 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__colored.js b/docs/html/structfplot__core_1_1plot__data__colored.js deleted file mode 100644 index 40f4306..0000000 --- a/docs/html/structfplot__core_1_1plot__data__colored.js +++ /dev/null @@ -1,8 +0,0 @@ -var structfplot__core_1_1plot__data__colored = -[ - [ "get_line_color", "structfplot__core_1_1plot__data__colored.html#aafd241043c19b55b90412b77766da1bd", null ], - [ "set_line_color", "structfplot__core_1_1plot__data__colored.html#ac266099a66e8f024d142e14a8c5077c2", null ], - [ "m_color", "structfplot__core_1_1plot__data__colored.html#aa24c061813c26938c9001c049f6aa40f", null ], - [ "m_colorindex", "structfplot__core_1_1plot__data__colored.html#a65e7ab13ce7635e4367dca109b168f76", null ], - [ "m_useautocolor", "structfplot__core_1_1plot__data__colored.html#af7888aadd5a7fa64a6af7875e35eb4b0", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__data__colored.png b/docs/html/structfplot__core_1_1plot__data__colored.png deleted file mode 100644 index ff92654..0000000 Binary files a/docs/html/structfplot__core_1_1plot__data__colored.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__data__error__bars-members.html b/docs/html/structfplot__core_1_1plot__data__error__bars-members.html deleted file mode 100644 index 68aec80..0000000 --- a/docs/html/structfplot__core_1_1plot__data__error__bars-members.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_data_error_bars Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data_error_bars, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    define_x_error_datapde_define_x_errfplot_core::plot_data_error_bars
    define_x_error_datapde_define_x_err_limfplot_core::plot_data_error_bars
    define_xy_error_datapde_define_xy_errfplot_core::plot_data_error_bars
    define_xy_error_datapde_define_xy_err_limfplot_core::plot_data_error_bars
    define_y_error_datapde_define_y_errfplot_core::plot_data_error_bars
    define_y_error_datapde_define_y_err_limfplot_core::plot_data_error_bars
    get_color_indexpdc_get_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    get_command_stringpde_get_cmdfplot_core::plot_data_error_barsvirtual
    get_countpde_get_countfplot_core::plot_data_error_bars
    get_data_stringpde_get_data_cmdfplot_core::plot_data_error_barsvirtual
    get_line_colorpdc_get_line_colorfplot_core::plot_data_colored
    get_namepd_get_namefplot_core::plot_data
    get_plot_x_error_barspde_get_plot_x_errfplot_core::plot_data_error_bars
    get_plot_y_error_barspde_get_plot_y_errfplot_core::plot_data_error_bars
    get_use_error_boxpde_get_boxfplot_core::plot_data_error_bars
    get_use_rangepde_get_use_rangefplot_core::plot_data_error_bars
    m_boxfplot_core::plot_data_error_bars
    m_colorfplot_core::plot_data_coloredprivate
    m_colorindexfplot_core::plot_data_colored
    m_datafplot_core::plot_data_error_bars
    m_namefplot_core::plot_dataprivate
    m_rangefplot_core::plot_data_error_bars
    m_useautocolorfplot_core::plot_data_colored
    m_xbarsfplot_core::plot_data_error_bars
    m_ybarsfplot_core::plot_data_error_bars
    pde_define_x_errpde_define_x_err (defined in fplot_core::plot_data_error_bars)fplot_core::plot_data_error_bars
    pde_define_x_err_limpde_define_x_err_lim (defined in fplot_core::plot_data_error_bars)fplot_core::plot_data_error_bars
    pde_define_xy_errpde_define_xy_err (defined in fplot_core::plot_data_error_bars)fplot_core::plot_data_error_bars
    pde_define_xy_err_limpde_define_xy_err_lim (defined in fplot_core::plot_data_error_bars)fplot_core::plot_data_error_bars
    pde_define_y_errpde_define_y_err (defined in fplot_core::plot_data_error_bars)fplot_core::plot_data_error_bars
    pde_define_y_err_limpde_define_y_err_lim (defined in fplot_core::plot_data_error_bars)fplot_core::plot_data_error_bars
    set_color_indexpdc_set_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    set_line_colorpdc_set_line_colorfplot_core::plot_data_colored
    set_namepd_set_namefplot_core::plot_data
    set_use_error_boxpde_set_boxfplot_core::plot_data_error_bars
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__error__bars.html b/docs/html/structfplot__core_1_1plot__data__error__bars.html deleted file mode 100644 index f2738c1..0000000 --- a/docs/html/structfplot__core_1_1plot__data__error__bars.html +++ /dev/null @@ -1,870 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_data_error_bars Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_data_error_bars Type Reference
    -
    -
    - -

    Defines a 2D error bar based data set. - More...

    -
    -Inheritance diagram for fplot_core::plot_data_error_bars:
    -
    -
    - - -fplot_core::plot_data_colored -fplot_core::plot_data -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_command_string pde_get_cmd
     Returns the appropriate GNUPLOT command string to define the plot object properties.
     
    procedure, public get_data_string pde_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    generic, public define_x_error_data pde_define_x_err
     Defines the x error data.
     
    generic, public define_x_error_data pde_define_x_err_lim
     Defines the x error data.
     
    generic, public define_y_error_data pde_define_y_err
     Defines the y error data.
     
    generic, public define_y_error_data pde_define_y_err_lim
     Defines the y error data.
     
    generic, public define_xy_error_data pde_define_xy_err
     Defines the x and y error data.
     
    generic, public define_xy_error_data pde_define_xy_err_lim
     Defines the x and y error data.
     
    procedure, public get_plot_x_error_bars pde_get_plot_x_err
     Tests to see if the x error bar data has been defined, and as a result, if the x error data is to be plotted.
     
    procedure, public get_plot_y_error_bars pde_get_plot_y_err
     Tests to see if the y error bar data has been defined, and as a result, if the y error data is to be plotted.
     
    procedure, public get_count pde_get_count
     Gets the number of stored data points.
     
    procedure, public get_use_error_box pde_get_box
     Tests to see if the x and y error boxes should be utilized.
     
    procedure, public set_use_error_box pde_set_box
     Deterimines if the x and y error boxes should be utilized.
     
    procedure, public get_use_range pde_get_use_range
     Gets a value determining if a defined range is being used to define the error bar extremes.
     
    procedure pde_define_x_err pde_define_x_err
     
    procedure pde_define_y_err pde_define_y_err
     
    procedure pde_define_xy_err pde_define_xy_err
     
    procedure pde_define_x_err_lim pde_define_x_err_lim
     
    procedure pde_define_y_err_lim pde_define_y_err_lim
     
    procedure pde_define_xy_err_lim pde_define_xy_err_lim
     
    - Public Member Functions inherited from fplot_core::plot_data_colored
    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    logical m_xbars = .false.
     Display x error bars?
     
    logical m_ybars = .false.
     Display y error bars?
     
    real(real64), dimension(:,:), allocatable m_data
     A matrix containing the raw and error data. Column 1 is for the x coordinate, column 2 for the y coordinate, and the remaining columns are for the error data (x, then y if applicable)
     
    logical m_box = .false.
     Display an error box for the case where x and y errors are defined.
     
    logical m_range = .false.
     Plot error bars using a defined range vs. a +/- value.
     
    - Public Attributes inherited from fplot_core::plot_data_colored
    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    -

    Detailed Description

    -

    Defines a 2D error bar based data set.

    - -

    Definition at line 6174 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_x_error_data() [1/2]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_error_bars::define_x_error_data
    -
    - -

    Defines the x error data.

    -
    Syntax
    subroutine define_x_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xerr(:), optional class(errors) err)
    -
    -
    Alternative Syntax
    subroutine define_x_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xmin(:), real(real64) xmax(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - - - - -
    [in,out]thisThe plot_data_error_bars object.
    [in]xAn N-element array containing the x coordinates of the data.
    [in]yAn N-element array containing the y coordinates of the data.
    [in]xerrAn N-element array containing the x errors at each data point.
    [in]xmin= An N-element array containing the minimum x values at each data point.
    [in]xmax= An N-element array containing the maximum x values at each data point.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not the same size.
    • -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory available.
    • -
    -
    -
    -
    - -

    Definition at line 6221 of file fplot_core.f90.

    - -
    -
    - -

    ◆ define_x_error_data() [2/2]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_error_bars::define_x_error_data
    -
    - -

    Defines the x error data.

    -
    Syntax
    subroutine define_x_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xerr(:), optional class(errors) err)
    -
    -
    Alternative Syntax
    subroutine define_x_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xmin(:), real(real64) xmax(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - - - - -
    [in,out]thisThe plot_data_error_bars object.
    [in]xAn N-element array containing the x coordinates of the data.
    [in]yAn N-element array containing the y coordinates of the data.
    [in]xerrAn N-element array containing the x errors at each data point.
    [in]xmin= An N-element array containing the minimum x values at each data point.
    [in]xmax= An N-element array containing the maximum x values at each data point.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not the same size.
    • -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory available.
    • -
    -
    -
    -
    - -

    Definition at line 6221 of file fplot_core.f90.

    - -
    -
    - -

    ◆ define_xy_error_data() [1/2]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_error_bars::define_xy_error_data
    -
    - -

    Defines the x and y error data.

    -
    Syntax
    subroutine define_xy_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xerr(:), real(real64) yerr(:), optional class(errors) err)
    -
    -
    Alternative Syntax
    subroutine define_xy_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xmin(:), real(real64) xmax(:), real(real64) ymin(:), real(real64) ymax(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - - - - - - - -
    [in,out]thisThe plot_data_error_bars object.
    [in]xAn N-element array containing the x coordinates of the data.
    [in]yAn N-element array containing the y coordinates of the data.
    [in]xerrAn N-element array containing the x errors at each data point.
    [in]yerrAn N-element array containing the y errors at each data point.
    [in]xmin= An N-element array containing the minimum x values at each data point.
    [in]xmax= An N-element array containing the maximum x values at each data point.
    [in]ymin= An N-element array containing the minimum y values at each data point.
    [in]ymax= An N-element array containing the maximum y values at each data point.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not the same size.
    • -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory available.
    • -
    -
    -
    -
    - -

    Definition at line 6293 of file fplot_core.f90.

    - -
    -
    - -

    ◆ define_xy_error_data() [2/2]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_error_bars::define_xy_error_data
    -
    - -

    Defines the x and y error data.

    -
    Syntax
    subroutine define_xy_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xerr(:), real(real64) yerr(:), optional class(errors) err)
    -
    -
    Alternative Syntax
    subroutine define_xy_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xmin(:), real(real64) xmax(:), real(real64) ymin(:), real(real64) ymax(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - - - - - - - -
    [in,out]thisThe plot_data_error_bars object.
    [in]xAn N-element array containing the x coordinates of the data.
    [in]yAn N-element array containing the y coordinates of the data.
    [in]xerrAn N-element array containing the x errors at each data point.
    [in]yerrAn N-element array containing the y errors at each data point.
    [in]xmin= An N-element array containing the minimum x values at each data point.
    [in]xmax= An N-element array containing the maximum x values at each data point.
    [in]ymin= An N-element array containing the minimum y values at each data point.
    [in]ymax= An N-element array containing the maximum y values at each data point.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not the same size.
    • -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory available.
    • -
    -
    -
    -
    - -

    Definition at line 6293 of file fplot_core.f90.

    - -
    -
    - -

    ◆ define_y_error_data() [1/2]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_error_bars::define_y_error_data
    -
    - -

    Defines the y error data.

    -
    Syntax
    subroutine define_y_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) yerr(:), optional class(errors) err)
    -
    -
    Alternative Syntax
    subroutine define_y_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) ymin(:), real(real64) ymax(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - - - - -
    [in,out]thisThe plot_data_error_bars object.
    [in]xAn N-element array containing the x coordinates of the data.
    [in]yAn N-element array containing the y coordinates of the data.
    [in]yerrAn N-element array containing the y errors at each data point.
    [in]ymin= An N-element array containing the minimum y values at each data point.
    [in]ymax= An N-element array containing the maximum y values at each data point.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not the same size.
    • -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory available.
    • -
    -
    -
    -
    - -

    Definition at line 6254 of file fplot_core.f90.

    - -
    -
    - -

    ◆ define_y_error_data() [2/2]

    - -
    -
    - - - - -
    generic, public fplot_core::plot_data_error_bars::define_y_error_data
    -
    - -

    Defines the y error data.

    -
    Syntax
    subroutine define_y_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) yerr(:), optional class(errors) err)
    -
    -
    Alternative Syntax
    subroutine define_y_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) ymin(:), real(real64) ymax(:), optional class(errors) err)
    -
    -
    Parameters
    - - - - - - - - -
    [in,out]thisThe plot_data_error_bars object.
    [in]xAn N-element array containing the x coordinates of the data.
    [in]yAn N-element array containing the y coordinates of the data.
    [in]yerrAn N-element array containing the y errors at each data point.
    [in]ymin= An N-element array containing the minimum y values at each data point.
    [in]ymax= An N-element array containing the maximum y values at each data point.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not the same size.
    • -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory available.
    • -
    -
    -
    -
    - -

    Definition at line 6254 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_error_bars::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to define the plot object properties.

    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 6188 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_error_bars::get_count
    -
    - -

    Gets the number of stored data points.

    -
    Parameters
    - - -
    [in]thisThe plot_data_error_bars object.
    -
    -
    -
    Returns
    The number of data points.
    - -

    Definition at line 6323 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_error_bars::get_data_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string containing the actual data to plot.

    - -

    Implements fplot_core::plot_data.

    - -

    Definition at line 6189 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_plot_x_error_bars()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_error_bars::get_plot_x_error_bars
    -
    - -

    Tests to see if the x error bar data has been defined, and as a result, if the x error data is to be plotted.

    -
    Syntax
    pure logical function get_plot_x_error_bars(class(plot_data_error_bars) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_error_bars object.
    -
    -
    -
    Returns
    Returns true if the x error bars are to be plotted; else, false.
    - -

    Definition at line 6306 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_plot_y_error_bars()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_error_bars::get_plot_y_error_bars
    -
    - -

    Tests to see if the y error bar data has been defined, and as a result, if the y error data is to be plotted.

    -
    Syntax
    pure logical function get_plot_y_error_bars(class(plot_data_error_bars) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_error_bars object.
    -
    -
    -
    Returns
    Returns true if the y error bars are to be plotted; else, false.
    - -

    Definition at line 6318 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_error_box()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_error_bars::get_use_error_box
    -
    - -

    Tests to see if the x and y error boxes should be utilized.

    -
    Syntax
    pure logical function get_use_error_box(class(plot_data_error_bars) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_error_bars object.
    -
    -
    -
    Returns
    Returns true if the error boxes are to be plotted; else, false.
    -
    Remarks
    Notice, the error boxes are only utilized if there is both x and y error data defined, regardless of the value of this property.
    - -

    Definition at line 6338 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_range()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_error_bars::get_use_range
    -
    - -

    Gets a value determining if a defined range is being used to define the error bar extremes.

    -
    Syntax
    pure logical function get_use_range(class(plot_data_error_bars) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_error_bars object.
    -
    -
    -
    Returns
    True if a defined range is being used; else, false.
    - -

    Definition at line 6364 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pde_define_x_err()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_error_bars::pde_define_x_err
    -
    - -

    Definition at line 6366 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pde_define_x_err_lim()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_error_bars::pde_define_x_err_lim
    -
    - -

    Definition at line 6369 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pde_define_xy_err()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_error_bars::pde_define_xy_err
    -
    - -

    Definition at line 6368 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pde_define_xy_err_lim()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_error_bars::pde_define_xy_err_lim
    -
    - -

    Definition at line 6371 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pde_define_y_err()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_error_bars::pde_define_y_err
    -
    - -

    Definition at line 6367 of file fplot_core.f90.

    - -
    -
    - -

    ◆ pde_define_y_err_lim()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_error_bars::pde_define_y_err_lim
    -
    - -

    Definition at line 6370 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_error_box()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_error_bars::set_use_error_box
    -
    - -

    Deterimines if the x and y error boxes should be utilized.

    -
    Syntax
    subroutine set_use_error_box(class(plot_data_error_bars) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_data_error_bars object.
    [in]xSet to true if the error boxes are to be plotted; else, false.
    -
    -
    -
    Remarks
    Notice, the error boxes are only utilized if there is both x and y error data defined, regardless of the value of this property.
    - -

    Definition at line 6353 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_box

    - -
    -
    - - - - -
    logical fplot_core::plot_data_error_bars::m_box = .false.
    -
    - -

    Display an error box for the case where x and y errors are defined.

    - -

    Definition at line 6184 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_data

    - -
    -
    - - - - -
    real(real64), dimension(:,:), allocatable fplot_core::plot_data_error_bars::m_data
    -
    - -

    A matrix containing the raw and error data. Column 1 is for the x coordinate, column 2 for the y coordinate, and the remaining columns are for the error data (x, then y if applicable)

    - -

    Definition at line 6182 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_range

    - -
    -
    - - - - -
    logical fplot_core::plot_data_error_bars::m_range = .false.
    -
    - -

    Plot error bars using a defined range vs. a +/- value.

    - -

    Definition at line 6186 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_xbars

    - -
    -
    - - - - -
    logical fplot_core::plot_data_error_bars::m_xbars = .false.
    -
    - -

    Display x error bars?

    - -

    Definition at line 6176 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_ybars

    - -
    -
    - - - - -
    logical fplot_core::plot_data_error_bars::m_ybars = .false.
    -
    - -

    Display y error bars?

    - -

    Definition at line 6178 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__error__bars.js b/docs/html/structfplot__core_1_1plot__data__error__bars.js deleted file mode 100644 index e36be73..0000000 --- a/docs/html/structfplot__core_1_1plot__data__error__bars.js +++ /dev/null @@ -1,22 +0,0 @@ -var structfplot__core_1_1plot__data__error__bars = -[ - [ "define_x_error_data", "structfplot__core_1_1plot__data__error__bars.html#a897524f1b8098654b9963e1d62b69910", null ], - [ "define_x_error_data", "structfplot__core_1_1plot__data__error__bars.html#a43b64e7f217392ce49969bbed71a940d", null ], - [ "define_xy_error_data", "structfplot__core_1_1plot__data__error__bars.html#a49891b23e0387645cbea89ad2405c1c9", null ], - [ "define_xy_error_data", "structfplot__core_1_1plot__data__error__bars.html#ac0fb40f8ce85f194948a10d91b887d58", null ], - [ "define_y_error_data", "structfplot__core_1_1plot__data__error__bars.html#a8312de543a61854de5f12c25329f0e49", null ], - [ "define_y_error_data", "structfplot__core_1_1plot__data__error__bars.html#a8549600a4cd1d3a124292939252f08ba", null ], - [ "get_command_string", "structfplot__core_1_1plot__data__error__bars.html#ab80a5fe8b5abe4ed9b18594ad11b4e43", null ], - [ "get_count", "structfplot__core_1_1plot__data__error__bars.html#a3cdda0b5155304b1ce26a99c1efbb965", null ], - [ "get_data_string", "structfplot__core_1_1plot__data__error__bars.html#aaf126505fb7cb60f95190dccc89d0d4a", null ], - [ "get_plot_x_error_bars", "structfplot__core_1_1plot__data__error__bars.html#a680ba7316765bc7c4b00c603ccf96a05", null ], - [ "get_plot_y_error_bars", "structfplot__core_1_1plot__data__error__bars.html#a44eac08eca6a448fb2424a3ca4e9b3cc", null ], - [ "get_use_error_box", "structfplot__core_1_1plot__data__error__bars.html#a8420ea83599f290a9cd54754b292b2b4", null ], - [ "get_use_range", "structfplot__core_1_1plot__data__error__bars.html#adba3954ad57120529148371629340091", null ], - [ "set_use_error_box", "structfplot__core_1_1plot__data__error__bars.html#a86f2731ad612871fea02c6a8a4d1e7c1", null ], - [ "m_box", "structfplot__core_1_1plot__data__error__bars.html#a0e904bfb3fe7d81b6776040af4461f8e", null ], - [ "m_data", "structfplot__core_1_1plot__data__error__bars.html#a3082871ea6a5b153a9f9a1dc36ef42f9", null ], - [ "m_range", "structfplot__core_1_1plot__data__error__bars.html#afa0a49c315b65a212f8b3c5dc3ee448d", null ], - [ "m_xbars", "structfplot__core_1_1plot__data__error__bars.html#ace03eab48e42aab5b8570d612adc4a75", null ], - [ "m_ybars", "structfplot__core_1_1plot__data__error__bars.html#a372aea519cb462cc9e0e31cb5ef1aac9", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__data__error__bars.png b/docs/html/structfplot__core_1_1plot__data__error__bars.png deleted file mode 100644 index eb92129..0000000 Binary files a/docs/html/structfplot__core_1_1plot__data__error__bars.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__data__histogram-members.html b/docs/html/structfplot__core_1_1plot__data__histogram-members.html deleted file mode 100644 index d4146a9..0000000 --- a/docs/html/structfplot__core_1_1plot__data__histogram-members.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_data_histogram Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data_histogram, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    bin_datapdh_bin_data (defined in fplot_core::plot_data_histogram)fplot_core::plot_data_histogram
    define_datapdb_set_data_1 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    define_datapdb_set_data_2 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    define_datapdb_set_data_3 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    getpdb_get_data (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_axes_stringpdb_get_axes_cmd (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_bar_per_label_countpdb_get_col_count (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_bin_countpdh_get_bin_count (defined in fplot_core::plot_data_histogram)fplot_core::plot_data_histogram
    get_color_indexpdc_get_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    get_command_stringpdb_get_cmdfplot_core::plot_data_barvirtual
    get_countpdb_get_count (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_datapdb_get_data_set (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_data_stringpdb_get_data_cmdfplot_core::plot_data_barvirtual
    get_draw_against_y2pdb_get_use_y2 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_extreme_valuespdh_get_extremes (defined in fplot_core::plot_data_histogram)fplot_core::plot_data_histogram
    get_is_filledpdb_get_is_filled (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_labelpdb_get_label (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_line_colorpdc_get_line_colorfplot_core::plot_data_colored
    get_namepd_get_namefplot_core::plot_data
    get_number_formatpdh_get_num_fmt (defined in fplot_core::plot_data_histogram)fplot_core::plot_data_histogram
    get_transparencypdb_get_alpha (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    get_use_labelspdb_get_use_labels (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    m_alphafplot_core::plot_data_bar
    m_axislabelsfplot_core::plot_data_barprivate
    m_bardatafplot_core::plot_data_bar
    m_bincountfplot_core::plot_data_histogramprivate
    m_colorfplot_core::plot_data_coloredprivate
    m_colorindexfplot_core::plot_data_colored
    m_filledfplot_core::plot_data_bar
    m_namefplot_core::plot_dataprivate
    m_numberfmtfplot_core::plot_data_histogram
    m_useautocolorfplot_core::plot_data_colored
    m_useaxislabelsfplot_core::plot_data_bar
    m_usey2fplot_core::plot_data_bar
    pdb_set_data_1pdb_set_data_1 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    pdb_set_data_2pdb_set_data_2 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    pdb_set_data_3pdb_set_data_3 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    setpdb_set_data (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_bin_countpdh_set_bin_count (defined in fplot_core::plot_data_histogram)fplot_core::plot_data_histogram
    set_color_indexpdc_set_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    set_data_1pdh_set_data_1 (defined in fplot_core::plot_data_histogram)fplot_core::plot_data_histogram
    set_data_2pdh_set_data_2 (defined in fplot_core::plot_data_histogram)fplot_core::plot_data_histogram
    set_data_3pdh_set_data_3 (defined in fplot_core::plot_data_histogram)fplot_core::plot_data_histogram
    set_draw_against_y2pdb_set_use_y2 (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_is_filledpdb_set_is_filled (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_labelpdb_set_label (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_line_colorpdc_set_line_colorfplot_core::plot_data_colored
    set_namepd_set_namefplot_core::plot_data
    set_number_formatpdh_set_num_fmt (defined in fplot_core::plot_data_histogram)fplot_core::plot_data_histogram
    set_transparencypdb_set_alpha (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    set_use_labelspdb_set_use_labels (defined in fplot_core::plot_data_bar)fplot_core::plot_data_bar
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__histogram.html b/docs/html/structfplot__core_1_1plot__data__histogram.html deleted file mode 100644 index 25425d3..0000000 --- a/docs/html/structfplot__core_1_1plot__data__histogram.html +++ /dev/null @@ -1,453 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_data_histogram Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_data_histogram Type Reference
    -
    -
    - -

    A container for plotting data in the form of a histogram. - More...

    -
    -Inheritance diagram for fplot_core::plot_data_histogram:
    -
    -
    - - -fplot_core::plot_data_bar -fplot_core::plot_data_colored -fplot_core::plot_data -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_bin_count pdh_get_bin_count
     
    procedure, public set_bin_count pdh_set_bin_count
     
    procedure, public bin_data pdh_bin_data
     
    procedure, public get_extreme_values pdh_get_extremes
     
    procedure, public get_number_format pdh_get_num_fmt
     
    procedure, public set_number_format pdh_set_num_fmt
     
    procedure set_data_1 pdh_set_data_1
     
    procedure set_data_2 pdh_set_data_2
     
    procedure set_data_3 pdh_set_data_3
     
    - Public Member Functions inherited from fplot_core::plot_data_bar
    procedure, public get_count pdb_get_count
     
    procedure, public get pdb_get_data
     
    procedure, public set pdb_set_data
     
    procedure, public get_data pdb_get_data_set
     
    procedure, public get_label pdb_get_label
     
    procedure, public set_label pdb_set_label
     
    procedure, public get_use_labels pdb_get_use_labels
     
    procedure, public set_use_labels pdb_set_use_labels
     
    procedure, public get_command_string pdb_get_cmd
     Returns the appropriate GNUPLOT command string to define the plot object properties.
     
    procedure, public get_data_string pdb_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    procedure, public get_axes_string pdb_get_axes_cmd
     
    procedure, public get_bar_per_label_count pdb_get_col_count
     
    procedure, public get_draw_against_y2 pdb_get_use_y2
     
    procedure, public set_draw_against_y2 pdb_set_use_y2
     
    procedure, public get_is_filled pdb_get_is_filled
     
    procedure, public set_is_filled pdb_set_is_filled
     
    procedure, public get_transparency pdb_get_alpha
     
    procedure, public set_transparency pdb_set_alpha
     
    generic, public define_data pdb_set_data_1
     
    generic, public define_data pdb_set_data_2
     
    generic, public define_data pdb_set_data_3
     
    procedure pdb_set_data_1 pdb_set_data_1
     
    procedure pdb_set_data_2 pdb_set_data_2
     
    procedure pdb_set_data_3 pdb_set_data_3
     
    procedure set_data_1 pdb_set_data_1_core
     
    procedure set_data_2 pdb_set_data_2_core
     
    procedure set_data_3 pdb_set_data_3_core
     
    - Public Member Functions inherited from fplot_core::plot_data_colored
    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    character(len=:), allocatable m_numberfmt
     The numerical label format string.
     
    - Public Attributes inherited from fplot_core::plot_data_bar
    real(real64), dimension(:,:), allocatable m_bardata
     An array of data defining each bar - the matrix contains multiple columns to allow multiple bars per label.
     
    logical m_useaxislabels = .true.
     Determines if the axis labels should be used - only applicable if there is existing data stored in m_axisLabels & m_axisLabels is the same size as m_barData.
     
    logical m_usey2 = .false.
     Draw against the secondary y axis?
     
    logical m_filled = .true.
     Determines if each bar is filled.
     
    real(real32) m_alpha = 1.0
     The alpha value (transparency) for each bar.
     
    - Public Attributes inherited from fplot_core::plot_data_colored
    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    - - - - -

    -Private Attributes

    integer(int32) m_bincount = 10
     The number of bins.
     
    -

    Detailed Description

    -

    A container for plotting data in the form of a histogram.

    - -

    Definition at line 6649 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ bin_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_histogram::bin_data
    -
    - -

    Definition at line 6658 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_bin_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_histogram::get_bin_count
    -
    - -

    Definition at line 6656 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_extreme_values()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_histogram::get_extreme_values
    -
    - -

    Definition at line 6659 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_number_format()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_histogram::get_number_format
    -
    - -

    Definition at line 6660 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_bin_count()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_histogram::set_bin_count
    -
    - -

    Definition at line 6657 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_data_1()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_histogram::set_data_1
    -
    - -

    Definition at line 6662 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_data_2()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_histogram::set_data_2
    -
    - -

    Definition at line 6663 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_data_3()

    - -
    -
    - - - - -
    procedure fplot_core::plot_data_histogram::set_data_3
    -
    - -

    Definition at line 6664 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_number_format()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_histogram::set_number_format
    -
    - -

    Definition at line 6661 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_bincount

    - -
    -
    - - - - - -
    - - - - -
    integer(int32) fplot_core::plot_data_histogram::m_bincount = 10
    -
    -private
    -
    - -

    The number of bins.

    - -

    Definition at line 6652 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_numberfmt

    - -
    -
    - - - - -
    character(len = :), allocatable fplot_core::plot_data_histogram::m_numberfmt
    -
    - -

    The numerical label format string.

    - -

    Definition at line 6654 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__histogram.js b/docs/html/structfplot__core_1_1plot__data__histogram.js deleted file mode 100644 index 3b38c64..0000000 --- a/docs/html/structfplot__core_1_1plot__data__histogram.js +++ /dev/null @@ -1,5 +0,0 @@ -var structfplot__core_1_1plot__data__histogram = -[ - [ "m_bincount", "structfplot__core_1_1plot__data__histogram.html#a2ea6672bfb4cdfcf27f3a731f4c6cf4f", null ], - [ "m_numberfmt", "structfplot__core_1_1plot__data__histogram.html#aaf1eb78a557ce9d002aaab7ff552a053", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__data__histogram.png b/docs/html/structfplot__core_1_1plot__data__histogram.png deleted file mode 100644 index c93c3fc..0000000 Binary files a/docs/html/structfplot__core_1_1plot__data__histogram.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__data__tri__2d-members.html b/docs/html/structfplot__core_1_1plot__data__tri__2d-members.html deleted file mode 100644 index 70590fd..0000000 --- a/docs/html/structfplot__core_1_1plot__data__tri__2d-members.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - - - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__tri__2d.html b/docs/html/structfplot__core_1_1plot__data__tri__2d.html deleted file mode 100644 index e36deab..0000000 --- a/docs/html/structfplot__core_1_1plot__data__tri__2d.html +++ /dev/null @@ -1,493 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_data_tri_2d Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_data_tri_2d Type Reference
    -
    -
    - -

    Defines a 2D triangulated data set. - More...

    -
    -Inheritance diagram for fplot_core::plot_data_tri_2d:
    -
    -
    - - -fplot_core::plot_data_colored -fplot_core::plot_data -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_data_string pdt2d_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    procedure, public get_command_string pdt2d_get_cmd
     Returns the appropriate GNUPLOT command string to define the plot object properties.
     
    procedure, public define_data pdt2d_define_data
     Defines the data to plot.
     
    procedure, public get_line_width pdt2d_get_line_width
     Gets the width of the lines used to draw the triangulation.
     
    procedure, public set_line_width pdt2d_set_line_width
     Sets the width of the lines used to draw the triangulation.
     
    procedure, public get_line_style pdt2d_get_line_style
     
    procedure, public set_line_style pdt2d_set_line_style
     
    - Public Member Functions inherited from fplot_core::plot_data_colored
    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    real(real64), dimension(:), allocatable m_y
     An array of the y-coordinates of each point.
     
    integer(int32), dimension(:,:), allocatable m_indices
     A 3-column matrix containing the indices of each triangle's vertex.
     
    real(real32) m_linewidth = 1.0
     The line width.
     
    integer(int32) m_linestyle = LINE_SOLID
     The line style.
     
    - Public Attributes inherited from fplot_core::plot_data_colored
    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    - - - - -

    -Private Attributes

    real(real64), dimension(:), allocatable m_x
     An array of the x-coordinates of each point.
     
    -

    Detailed Description

    -

    Defines a 2D triangulated data set.

    - -

    Definition at line 6911 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_tri_2d::define_data
    -
    - -

    Defines the data to plot.

    -
    Syntax
    subroutine(class(plot_data_tri_2d) this, class(delaunay_tri_2d) tri)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_data_tri_2d object.
    [in]triThe triangulation data to plot.
    -
    -
    - -

    Definition at line 6936 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_tri_2d::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to define the plot object properties.

    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 6926 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_data_tri_2d::get_data_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string containing the actual data to plot.

    - -

    Implements fplot_core::plot_data.

    - -

    Definition at line 6925 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_line_style()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_tri_2d::get_line_style
    -
    -
    Syntax
    integer(int32) function get_line_style(class(plot_data_tri_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_tri_2d object.
    -
    -
    -
    Returns
    The line sytle flag.
    - -

    Definition at line 6966 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_line_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_tri_2d::get_line_width
    -
    - -

    Gets the width of the lines used to draw the triangulation.

    -
    Syntax
    real(real32) function get_line_width(class(plot_data_tri_2d) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_data_tri_2d object.
    -
    -
    -
    Returns
    The line width.
    - -

    Definition at line 6946 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_line_style()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_tri_2d::set_line_style
    -
    -
    Syntax
    subroutine set_line_style(class(plot_data_tri_2d) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_data_tri_2d object.
    [in]xThe line style. The line style must be one of the following:
      -
    • LINE_DASHED
    • -
    • LINE_DASH_DOTTED
    • -
    • LINE_DASH_DOT_DOT
    • -
    • LINE_DOTTED
    • -
    • LINE_SOLID
    • -
    -
    -
    -
    - -

    Definition at line 6982 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_line_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_data_tri_2d::set_line_width
    -
    - -

    Sets the width of the lines used to draw the triangulation.

    -
    Syntax
    subroutine set_line_width(class(plot_data_tri_2d) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_data_tri_2d object.
    [in]xThe line width.
    -
    -
    - -

    Definition at line 6956 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_indices

    - -
    -
    - - - - -
    integer(int32), dimension(:,:), allocatable fplot_core::plot_data_tri_2d::m_indices
    -
    - -

    A 3-column matrix containing the indices of each triangle's vertex.

    - -

    Definition at line 6919 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_linestyle

    - -
    -
    - - - - -
    integer(int32) fplot_core::plot_data_tri_2d::m_linestyle = LINE_SOLID
    -
    - -

    The line style.

    - -

    Definition at line 6923 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_linewidth

    - -
    -
    - - - - -
    real(real32) fplot_core::plot_data_tri_2d::m_linewidth = 1.0
    -
    - -

    The line width.

    - -

    Definition at line 6921 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_x

    - -
    -
    - - - - - -
    - - - - -
    real(real64), dimension(:), allocatable fplot_core::plot_data_tri_2d::m_x
    -
    -private
    -
    - -

    An array of the x-coordinates of each point.

    - -

    Definition at line 6914 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_y

    - -
    -
    - - - - -
    real(real64), dimension(:), allocatable fplot_core::plot_data_tri_2d::m_y
    -
    - -

    An array of the y-coordinates of each point.

    - -

    Definition at line 6916 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__data__tri__2d.js b/docs/html/structfplot__core_1_1plot__data__tri__2d.js deleted file mode 100644 index 846f73c..0000000 --- a/docs/html/structfplot__core_1_1plot__data__tri__2d.js +++ /dev/null @@ -1,15 +0,0 @@ -var structfplot__core_1_1plot__data__tri__2d = -[ - [ "define_data", "structfplot__core_1_1plot__data__tri__2d.html#a3ce95ac57b2dfda69e754d7314d5e113", null ], - [ "get_command_string", "structfplot__core_1_1plot__data__tri__2d.html#afc5f53c3238bd1dfd1a5a0c3ade8c567", null ], - [ "get_data_string", "structfplot__core_1_1plot__data__tri__2d.html#a6a3428fb27e8b2d557075e605781a5bc", null ], - [ "get_line_style", "structfplot__core_1_1plot__data__tri__2d.html#acd24f81dd3ea6e560ef8967762365c59", null ], - [ "get_line_width", "structfplot__core_1_1plot__data__tri__2d.html#a1d6f55f5124ea7fed1db1e1682415f72", null ], - [ "set_line_style", "structfplot__core_1_1plot__data__tri__2d.html#a83fd7aeaaf49e87feca48e47e45dc4f0", null ], - [ "set_line_width", "structfplot__core_1_1plot__data__tri__2d.html#a89979cf628a8d1bbe58616a134d84de4", null ], - [ "m_indices", "structfplot__core_1_1plot__data__tri__2d.html#ab6d39a0103f193a8aa8b795144b7c5a9", null ], - [ "m_linestyle", "structfplot__core_1_1plot__data__tri__2d.html#afe3e3bbe14b41a52103b5d059936cf07", null ], - [ "m_linewidth", "structfplot__core_1_1plot__data__tri__2d.html#a64ecd7d92fb4ac2fadcf5103e8e1287e", null ], - [ "m_x", "structfplot__core_1_1plot__data__tri__2d.html#a7759843e01d8bd9c38aaab6ebbee3968", null ], - [ "m_y", "structfplot__core_1_1plot__data__tri__2d.html#a3ee0322ab193a26b6d2e4bdf46894ce3", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__data__tri__2d.png b/docs/html/structfplot__core_1_1plot__data__tri__2d.png deleted file mode 100644 index ac76e9b..0000000 Binary files a/docs/html/structfplot__core_1_1plot__data__tri__2d.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__label-members.html b/docs/html/structfplot__core_1_1plot__label-members.html deleted file mode 100644 index 5f7e128..0000000 --- a/docs/html/structfplot__core_1_1plot__label-members.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_label Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__label.html b/docs/html/structfplot__core_1_1plot__label.html deleted file mode 100644 index bad3f3b..0000000 --- a/docs/html/structfplot__core_1_1plot__label.html +++ /dev/null @@ -1,516 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_label Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_label Type Reference
    -
    -
    - -

    Defines a label object for a plot. - More...

    -
    -Inheritance diagram for fplot_core::plot_label:
    -
    -
    - - -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_command_string lbl_get_cmd
     Gets the GNUPLOT command string for the label.
     
    procedure, public get_is_visible lbl_get_is_visible
     Gets a value determining if the label is to be drawn.
     
    procedure, public set_is_visible lbl_set_is_visible
     Sets a value determining if the label is to be drawn.
     
    procedure, public get_position lbl_get_position
     Gets the position of the label in terms of plot coordinates.
     
    procedure, public set_position lbl_set_position
     Sets the position of the label in terms of plot coordinates.
     
    procedure, public get_angle lbl_get_angle
     Gets the angle of the label text, in degrees.
     
    procedure, public set_angle lbl_set_angle
     Sets the angle of the label text, in degrees.
     
    procedure, public get_text lbl_get_txt
     Gets the text displayed by the label.
     
    procedure, public set_text lbl_set_txt
     Sets the text displayed by the label.
     
    - - - - - - - - - - -

    -Public Attributes

    real(real32), dimension(3) m_position
     The x, y, and z coordinates of the label.
     
    real(real32) m_angle = 0.0
     The rotation angle of the label.
     
    character(len=plotdata_max_name_lengthm_text
     The label text.
     
    - - - - -

    -Private Attributes

    logical m_visible = .true.
     Determines if the label is visible.
     
    -

    Detailed Description

    -

    Defines a label object for a plot.

    - -

    Definition at line 469 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_angle()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_label::get_angle
    -
    - -

    Gets the angle of the label text, in degrees.

    -
    Syntax
    pure real(real32) function get_angle(class(plot_label) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_label object.
    -
    -
    -
    Returns
    The angle, in degrees.
    - -

    Definition at line 540 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_label::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string for the label.

    -
    Syntax
    character(:) function allocatable get_command_string(class(plot_label) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_label object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 489 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_is_visible()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_label::get_is_visible
    -
    - -

    Gets a value determining if the label is to be drawn.

    -
    Syntax
    pure logical function get_is_visible(class(plot_label) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_label object.
    -
    -
    -
    Returns
    Returns true if the label is to be drawn; else, false.
    - -

    Definition at line 499 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_position()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_label::get_position
    -
    - -

    Gets the position of the label in terms of plot coordinates.

    -
    Syntax
    pure real(real32) dimension(3) function get_position(class(plot_label) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_label object.
    -
    -
    -
    Returns
    A 3-element array containing the X, Y, and Z position of the label.
    - -

    Definition at line 519 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_text()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_label::get_text
    -
    - -

    Gets the text displayed by the label.

    -
    Syntax
    character(len = :) function allocatable get_text(class(plot_label) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_label object.
    -
    -
    -
    Returns
    The string of text to display.
    - -

    Definition at line 560 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_angle()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_label::set_angle
    -
    - -

    Sets the angle of the label text, in degrees.

    -
    Syntax
    subroutine set_angle(class(plot_label) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_label object.
    [in]xThe angle, in degrees.
    -
    -
    - -

    Definition at line 550 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_is_visible()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_label::set_is_visible
    -
    - -

    Sets a value determining if the label is to be drawn.

    -
    Syntax
    subroutine set_is_visible(class(plot_label) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_label object.
    [in]xSet to true to draw the label; else, false.
    -
    -
    - -

    Definition at line 509 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_position()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_label::set_position
    -
    - -

    Sets the position of the label in terms of plot coordinates.

    -
    Syntax
    subroutine set_position(class(plot_label) this, real(real32) x(3))
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_label object.
    [in]xA 3-element array containing the X, Y, and Z position of the label.
    -
    -
    - -

    Definition at line 530 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_text()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_label::set_text
    -
    - -

    Sets the text displayed by the label.

    -
    Syntax
    subroutine set_text(class(plot_label) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_label object.
    [in]xThe text string to display.
    -
    -
    - -

    Definition at line 570 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_angle

    - -
    -
    - - - - -
    real(real32) fplot_core::plot_label::m_angle = 0.0
    -
    - -

    The rotation angle of the label.

    - -

    Definition at line 476 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_position

    - -
    -
    - - - - -
    real(real32), dimension(3) fplot_core::plot_label::m_position
    -
    - -

    The x, y, and z coordinates of the label.

    - -

    Definition at line 474 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_text

    - -
    -
    - - - - -
    character(len = plotdata_max_name_length) fplot_core::plot_label::m_text
    -
    - -

    The label text.

    - -

    Definition at line 478 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_visible

    - -
    -
    - - - - - -
    - - - - -
    logical fplot_core::plot_label::m_visible = .true.
    -
    -private
    -
    - -

    Determines if the label is visible.

    - -

    Definition at line 472 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__label.js b/docs/html/structfplot__core_1_1plot__label.js deleted file mode 100644 index b558935..0000000 --- a/docs/html/structfplot__core_1_1plot__label.js +++ /dev/null @@ -1,16 +0,0 @@ -var structfplot__core_1_1plot__label = -[ - [ "get_angle", "structfplot__core_1_1plot__label.html#a1363a76ce4b2124cf606610f34c5289d", null ], - [ "get_command_string", "structfplot__core_1_1plot__label.html#a24d375efbdb3f3a4859a4f9752fa6999", null ], - [ "get_is_visible", "structfplot__core_1_1plot__label.html#a6a58bbc93d4a081c10b912da6273fa03", null ], - [ "get_position", "structfplot__core_1_1plot__label.html#a683715b72ba17d79b0f7f75ce6223ab2", null ], - [ "get_text", "structfplot__core_1_1plot__label.html#a7c60aed4792e8700e1154e213d0cb92e", null ], - [ "set_angle", "structfplot__core_1_1plot__label.html#aa53c460db5af43102ac096d2e9af5fdb", null ], - [ "set_is_visible", "structfplot__core_1_1plot__label.html#acc5b95b081e578d0d05e9ee768579ba9", null ], - [ "set_position", "structfplot__core_1_1plot__label.html#a2ad61a55279d21ae6ebc29ee1fd0b464", null ], - [ "set_text", "structfplot__core_1_1plot__label.html#ae23e191969f98f47b32ee694fe22c993", null ], - [ "m_angle", "structfplot__core_1_1plot__label.html#ad76a1f42a6fc7701e8eff8a10d456eb4", null ], - [ "m_position", "structfplot__core_1_1plot__label.html#a5387d3494c65621d93b54c232e593e49", null ], - [ "m_text", "structfplot__core_1_1plot__label.html#a468e4487a8dc9645e105f93f95035f75", null ], - [ "m_visible", "structfplot__core_1_1plot__label.html#a83e92e7f824f33f14d4a8f2552f3d28e", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__label.png b/docs/html/structfplot__core_1_1plot__label.png deleted file mode 100644 index 51fbd91..0000000 Binary files a/docs/html/structfplot__core_1_1plot__label.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__object-members.html b/docs/html/structfplot__core_1_1plot__object-members.html deleted file mode 100644 index f599355..0000000 --- a/docs/html/structfplot__core_1_1plot__object-members.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_object Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_object, including all inherited members.

    - - -
    get_command_stringget_string_resultfplot_core::plot_objectpure virtual
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__object.html b/docs/html/structfplot__core_1_1plot__object.html deleted file mode 100644 index 4d2d77f..0000000 --- a/docs/html/structfplot__core_1_1plot__object.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_object Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_object Type Referenceabstract
    -
    -
    - -

    The base type for a GNUPLOT object. - More...

    -
    -Inheritance diagram for fplot_core::plot_object:
    -
    -
    - - -fplot_core::colormap -fplot_core::legend -fplot_core::multiplot -fplot_core::plot -fplot_core::plot_arrow -fplot_core::plot_axis -fplot_core::plot_data -fplot_core::plot_label -fplot_core::terminal - -
    - - - - - -

    -Public Member Functions

    procedure(get_string_result), deferred, public get_command_string get_string_result
     Returns the appropriate GNUPLOT command string to define the plot object properties.
     
    -

    Detailed Description

    -

    The base type for a GNUPLOT object.

    - -

    Definition at line 305 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_command_string()

    - - -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__object.js b/docs/html/structfplot__core_1_1plot__object.js deleted file mode 100644 index feb41c5..0000000 --- a/docs/html/structfplot__core_1_1plot__object.js +++ /dev/null @@ -1,4 +0,0 @@ -var structfplot__core_1_1plot__object = -[ - [ "get_command_string", "structfplot__core_1_1plot__object.html#a986486fd0e463722c0d2e46d765d19d3", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__object.png b/docs/html/structfplot__core_1_1plot__object.png deleted file mode 100644 index dffb2bc..0000000 Binary files a/docs/html/structfplot__core_1_1plot__object.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1plot__polar-members.html b/docs/html/structfplot__core_1_1plot__polar-members.html deleted file mode 100644 index db89b97..0000000 --- a/docs/html/structfplot__core_1_1plot__polar-members.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::plot_polar Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_polar, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_allplt_clear_allfplot_core::plot
    clear_all_labelsplt_clear_labelsfplot_core::plot
    clear_arrowsplt_clear_arrowsfplot_core::plot
    drawplt_drawfplot_core::plot
    free_resourcesplt_clean_upfplot_core::plot
    getplt_getfplot_core::plot
    get_arrowplt_get_arrowfplot_core::plot
    get_arrow_countplt_get_arrow_countfplot_core::plot
    get_autoscaleplr_get_autoscalefplot_core::plot_polar
    get_axis_equalplt_get_axis_equalfplot_core::plot
    get_colormapplt_get_colormapfplot_core::plot
    get_command_stringplr_get_cmdfplot_core::plot_polarvirtual
    get_countplt_get_countfplot_core::plot
    get_draw_borderplt_get_draw_borderfplot_core::plot
    get_font_nameplt_get_fontfplot_core::plot
    get_font_sizeplt_get_font_sizefplot_core::plot
    get_labelplt_get_labelfplot_core::plot
    get_label_countplt_get_label_countfplot_core::plot
    get_legendplt_get_legendfplot_core::plot
    get_radial_limitsplr_get_limitsfplot_core::plot_polar
    get_show_colorbarplt_get_show_colorbarfplot_core::plot
    get_show_gridlinesplt_get_show_gridfplot_core::plot
    get_terminalplt_get_termfplot_core::plot
    get_theta_directionplr_get_theta_directionfplot_core::plot_polar
    get_theta_start_positionplr_get_theta_startfplot_core::plot_polar
    get_tics_inwardplt_get_tics_infplot_core::plot
    get_titleplt_get_titlefplot_core::plot
    initializeplr_initfplot_core::plot_polar
    is_title_definedplt_has_titlefplot_core::plot
    m_arrowsfplot_core::plot
    m_autoscalefplot_core::plot_polarprivate
    m_axisequalfplot_core::plot
    m_colorindexfplot_core::plot
    m_colormapfplot_core::plot
    m_datafplot_core::plot
    m_drawborderfplot_core::plot
    m_hastitlefplot_core::plot
    m_labelsfplot_core::plot
    m_legendfplot_core::plot
    m_maxradfplot_core::plot_polar
    m_minradfplot_core::plot_polar
    m_showcolorbarfplot_core::plot
    m_showgridfplot_core::plot
    m_terminalfplot_core::plot
    m_thetadirectionfplot_core::plot_polar
    m_thetastartfplot_core::plot_polar
    m_ticsinfplot_core::plot
    m_titlefplot_core::plotprivate
    plr_clean_upplr_clean_up (defined in fplot_core::plot_polar)fplot_core::plot_polar
    popplt_pop_datafplot_core::plot
    pop_arrowplt_pop_arrowfplot_core::plot
    pop_labelplt_pop_labelfplot_core::plot
    pushplt_push_datafplot_core::plot
    push_arrowplt_push_arrowfplot_core::plot
    push_labelplt_push_labelfplot_core::plot
    save_fileplt_savefplot_core::plot
    setplt_setfplot_core::plot
    set_arrowplt_set_arrowfplot_core::plot
    set_autoscaleplr_set_autoscalefplot_core::plot_polar
    set_axis_equalplt_set_axis_equalfplot_core::plot
    set_colormapplt_set_colormapfplot_core::plot
    set_draw_borderplt_set_draw_borderfplot_core::plot
    set_font_nameplt_set_fontfplot_core::plot
    set_font_sizeplt_set_font_sizefplot_core::plot
    set_labelplt_set_labelfplot_core::plot
    set_radial_limitsplr_set_limitsfplot_core::plot_polar
    set_show_colorbarplt_set_show_colorbarfplot_core::plot
    set_show_gridlinesplt_set_show_gridfplot_core::plot
    set_theta_directionplr_set_theta_directionfplot_core::plot_polar
    set_theta_start_positionplr_set_theta_startfplot_core::plot_polar
    set_tics_inwardplt_set_tics_infplot_core::plot
    set_titleplt_set_titlefplot_core::plot
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__polar.html b/docs/html/structfplot__core_1_1plot__polar.html deleted file mode 100644 index d0a4ff7..0000000 --- a/docs/html/structfplot__core_1_1plot__polar.html +++ /dev/null @@ -1,795 +0,0 @@ - - - - - - - -fplot: fplot_core::plot_polar Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::plot_polar Type Reference
    -
    -
    - -

    Defines a 2D polar plot. - More...

    -
    -Inheritance diagram for fplot_core::plot_polar:
    -
    -
    - - -fplot_core::plot -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public initialize plr_init
     Initializes the plot_polar object.
     
    procedure, public get_command_string plr_get_cmd
     Gets the GNUPLOT command string to represent this plot_polar object.
     
    procedure, public get_autoscale plr_get_autoscale
     Gets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public set_autoscale plr_set_autoscale
     Sets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public get_radial_limits plr_get_limits
     Gets the radial axis limits if autoscaling is inactive.
     
    procedure, public set_radial_limits plr_set_limits
     Sets the radial axis limits if autoscaling is inactive.
     
    procedure, public get_theta_start_position plr_get_theta_start
     Gets the position for theta = 0.
     
    procedure, public set_theta_start_position plr_set_theta_start
     Sets the position for theta = 0.
     
    procedure, public get_theta_direction plr_get_theta_direction
     Gets the theta direction.
     
    procedure, public set_theta_direction plr_set_theta_direction
     Sets the theta direction.
     
    - Public Member Functions inherited from fplot_core::plot
    procedure, public free_resources plt_clean_up
     Cleans up resources held by the plot object. Inheriting classes are expected to call this routine to free internally held resources.
     
    procedure, public initialize plt_init
     Initializes the plot object.
     
    procedure, public get_title plt_get_title
     Gets the plot's title.
     
    procedure, public set_title plt_set_title
     Sets the plot's title.
     
    procedure, public is_title_defined plt_has_title
     Gets a value determining if a title has been defined for the plot object.
     
    procedure, public get_legend plt_get_legend
     Gets the plot's legend object.
     
    procedure, public get_count plt_get_count
     Gets the number of stored plot_data objects.
     
    procedure, public push plt_push_data
     Pushes a plot_data object onto the stack.
     
    procedure, public pop plt_pop_data
     Pops the last plot_data object from the stack.
     
    procedure, public clear_all plt_clear_all
     Removes all plot_data objects from the plot.
     
    procedure, public get plt_get
     Gets a pointer to the requested plot_data object.
     
    procedure, public set plt_set
     Sets the requested plot_data object into the plot.
     
    procedure, public get_terminal plt_get_term
     Gets the GNUPLOT terminal object.
     
    procedure, public get_show_gridlines plt_get_show_grid
     Gets a flag determining if the grid lines should be shown.
     
    procedure, public set_show_gridlines plt_set_show_grid
     Sets a flag determining if the grid lines should be shown.
     
    procedure, public draw plt_draw
     Launches GNUPLOT and draws the plot per the current state of the command list.
     
    procedure, public save_file plt_save
     Saves a GNUPLOT command file.
     
    procedure, public get_font_name plt_get_font
     Gets the name of the font used for plot text.
     
    procedure, public set_font_name plt_set_font
     Sets the name of the font used for plot text.
     
    procedure, public get_font_size plt_get_font_size
     Gets the size of the font used by the plot.
     
    procedure, public set_font_size plt_set_font_size
     Sets the size of the font used by the plot.
     
    procedure, public get_tics_inward plt_get_tics_in
     Gets a value determining if the axis tic marks should point inwards.
     
    procedure, public set_tics_inward plt_set_tics_in
     Sets a value determining if the axis tic marks should point inwards.
     
    procedure, public get_draw_border plt_get_draw_border
     Gets a value determining if the border should be drawn.
     
    procedure, public set_draw_border plt_set_draw_border
     Sets a value determining if the border should be drawn.
     
    procedure, public push_label plt_push_label
     Adds a label to the plot.
     
    procedure, public pop_label plt_pop_label
     Removes the last label from the plot.
     
    procedure, public get_label plt_get_label
     Gets the requested plot_label from the plot.
     
    procedure, public set_label plt_set_label
     Sets the specified plot_label object.
     
    procedure, public get_label_count plt_get_label_count
     Gets the number of plot_label objects belonging to the plot.
     
    procedure, public clear_all_labels plt_clear_labels
     Clears all plot_label objects from the plot.
     
    procedure, public get_axis_equal plt_get_axis_equal
     Gets a flag determining if the axes should be equally scaled.
     
    procedure, public set_axis_equal plt_set_axis_equal
     Sets a flag determining if the axes should be equally scaled.
     
    procedure, public get_colormap plt_get_colormap
     Gets a pointer to the colormap object.
     
    procedure, public set_colormap plt_set_colormap
     Sets the colormap object.
     
    procedure, public get_show_colorbar plt_get_show_colorbar
     Gets a value determining if the colorbar should be shown.
     
    procedure, public set_show_colorbar plt_set_show_colorbar
     Sets a value determining if the colorbar should be shown.
     
    procedure, public push_arrow plt_push_arrow
     Pushes a new plot_arrow object onto the plot.
     
    procedure, public pop_arrow plt_pop_arrow
     Pops a plot_arrow object from the plot.
     
    procedure, public get_arrow plt_get_arrow
     Gets a pointer to the requested plot_arrow object.
     
    procedure, public set_arrow plt_set_arrow
     Sets a plot_arrow into the plot.
     
    procedure, public get_arrow_count plt_get_arrow_count
     Gets the number of plot_arrow objects held by the plot object.
     
    procedure, public clear_arrows plt_clear_arrows
     Clears all plot_arrow objects from the plot.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    real(real64) m_minrad = 0.0d0
     The minimum radius value - only applicable if m_autoscale is false.
     
    real(real64) m_maxrad = 1.0d0
     The maximum radius value - only applicable if m_autoscale is false.
     
    character(len=:), allocatable m_thetastart
     The location for theta = 0.
     
    character(len=:), allocatable m_thetadirection
     The direction for theta.
     
    - Public Attributes inherited from fplot_core::plot
    logical m_hastitle = .false.
     Has a title?
     
    class(terminal), pointer m_terminal => null()
     The GNUPLOT terminal object to target.
     
    type(list) m_data
     A collection of plot_data items to plot.
     
    type(legend), pointer m_legend => null()
     The legend.
     
    logical m_showgrid = .true.
     Show grid lines?
     
    logical m_ticsin = .true.
     Point tic marks in?
     
    logical m_drawborder = .true.
     Draw the border?
     
    type(list) m_labels
     A collection of plot_label items to draw.
     
    integer(int32) m_colorindex = 1
     The color index to use for automatic line coloring for scatter plots.
     
    logical m_axisequal = .false.
     Determines if the axes should be scaled proportionally.
     
    class(colormap), pointer m_colormap
     The colormap.
     
    logical m_showcolorbar = .true.
     Show the colorbar?
     
    type(list) m_arrows
     A collection of plot_arrow items to draw.
     
    - - - - -

    -Private Attributes

    logical m_autoscale = .true.
     Allow the plot to autoscale?
     
    -

    Detailed Description

    -

    Defines a 2D polar plot.

    - -

    Definition at line 7373 of file fplot_core.f90.

    -

    Constructor & Destructor Documentation

    - -

    ◆ plr_clean_up()

    - -
    -
    - - - - - -
    - - - - -
    final fplot_core::plot_polar::plr_clean_up
    -
    -final
    -
    - -

    Definition at line 7388 of file fplot_core.f90.

    - -
    -
    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_autoscale()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_polar::get_autoscale
    -
    - -

    Gets a logical value determining if the axis should be automatically scaled to fit the data.

    -
    Syntax
    logical get_autoscale(class(plot_polar) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_polar object.
    -
    -
    -
    Returns
    Returns true if the plot will autoscale; else, false.
    - -

    Definition at line 7434 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::plot_polar::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this plot_polar object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(plot_polar) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_polar object.
    -
    -
    -
    Returns
    The command string.
    - -

    Reimplemented from fplot_core::plot.

    - -

    Definition at line 7423 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_radial_limits()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_polar::get_radial_limits
    -
    - -

    Gets the radial axis limits if autoscaling is inactive.

    -
    Syntax
    real(real64)(2) get_radial_limits(class(plot_polar) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_polar object.
    -
    -
    -
    Returns
    A 2-element array containing the minimum and maximum limit values in that order.
    - -

    Definition at line 7456 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_theta_direction()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_polar::get_theta_direction
    -
    - -

    Gets the theta direction.

    -
    Syntax
    character(len = :) get_theta_direction(class(plot_polar) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_polar object.
    -
    -
    -
    Returns
    The direction. It is one of the following flags.
      -
    • POLAR_THETA_CCW
    • -
    • POLAR_THETA_CW
    • -
    -
    - -

    Definition at line 7508 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_theta_start_position()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_polar::get_theta_start_position
    -
    - -

    Gets the position for theta = 0.

    -
    Syntax
    character(len = :) get_theta_start_position(class(plot_polar) this)
    -
    -
    Parameters
    - - -
    [in]thisThe plot_polar object.
    -
    -
    -
    Returns
    The starting position. It is one of the following flags.
      -
    • POLAR_THETA_BOTTOM
    • -
    • POLAR_THETA_TOP
    • -
    • POLAR_THETA_RIGHT
    • -
    • POLAR_THETA_LEFT
    • -
    -
    - -

    Definition at line 7481 of file fplot_core.f90.

    - -
    -
    - -

    ◆ initialize()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_polar::initialize
    -
    - -

    Initializes the plot_polar object.

    -
    Syntax
    subroutine initialize(class(plot_polar) this, optional integer(int32) term, optional class(errors) err)
    -
    -
    Parameters
    - - - - - -
    [in]thisThe plot_polar object.
    [in]termAn optional input that is used to define the terminal. The default terminal is a WXT terminal. The acceptable inputs are:
      -
    • GNUPLOT_TERMINAL_PNG
    • -
    • GNUPLOT_TERMINAL_QT
    • -
    • GNUPLOT_TERMINAL_WIN32
    • -
    • GNUPLOT_TERMINAL_WXT
    • -
    • GNUPLOT_TERMINAL_LATEX
    • -
    -
    [in]fnameA filename to pass to the terminal in the event the terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG).
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    - -

    Definition at line 7412 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_autoscale()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_polar::set_autoscale
    -
    - -

    Sets a logical value determining if the axis should be automatically scaled to fit the data.

    -
    Syntax
    subroutine set_autoscale(class(plot_polar) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_polar object.
    [in]xSet to true if the plot will autoscale; else, false.
    -
    -
    - -

    Definition at line 7445 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_radial_limits()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_polar::set_radial_limits
    -
    - -

    Sets the radial axis limits if autoscaling is inactive.

    -
    Syntax
    subroutine set_radial_limits(class(plot_polar) this, real(real64) x(2))
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_polar object.
    [in]A2-element array containing the minimum and maximum limit values.
    -
    -
    - -

    Definition at line 7467 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_theta_direction()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_polar::set_theta_direction
    -
    - -

    Sets the theta direction.

    -
    Syntax
    subroutine set_theta_direction(class(plot_polar) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_polar object.
    [in]xThe direction. It must be one of the following flags.
      -
    • POLAR_THETA_CCW
    • -
    • POLAR_THETA_CW
    • -
    -
    -
    -
    - -

    Definition at line 7520 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_theta_start_position()

    - -
    -
    - - - - -
    procedure, public fplot_core::plot_polar::set_theta_start_position
    -
    - -

    Sets the position for theta = 0.

    -
    Syntax
    subroutine set_theta_start_position(class(plot_polar) this, character(len = *) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe plot_polar object.
    [in]xThe starting position. It must be one of the following flags.
      -
    • POLAR_THETA_BOTTOM
    • -
    • POLAR_THETA_TOP
    • -
    • POLAR_THETA_RIGHT
    • -
    • POLAR_THETA_LEFT
    • -
    -
    -
    -
    - -

    Definition at line 7496 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_autoscale

    - -
    -
    - - - - - -
    - - - - -
    logical fplot_core::plot_polar::m_autoscale = .true.
    -
    -private
    -
    - -

    Allow the plot to autoscale?

    - -

    Definition at line 7376 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_maxrad

    - -
    -
    - - - - -
    real(real64) fplot_core::plot_polar::m_maxrad = 1.0d0
    -
    - -

    The maximum radius value - only applicable if m_autoscale is false.

    - -

    Definition at line 7382 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_minrad

    - -
    -
    - - - - -
    real(real64) fplot_core::plot_polar::m_minrad = 0.0d0
    -
    - -

    The minimum radius value - only applicable if m_autoscale is false.

    - -

    Definition at line 7379 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_thetadirection

    - -
    -
    - - - - -
    character(len = :), allocatable fplot_core::plot_polar::m_thetadirection
    -
    - -

    The direction for theta.

    - -

    Definition at line 7386 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_thetastart

    - -
    -
    - - - - -
    character(len = :), allocatable fplot_core::plot_polar::m_thetastart
    -
    - -

    The location for theta = 0.

    - -

    Definition at line 7384 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1plot__polar.js b/docs/html/structfplot__core_1_1plot__polar.js deleted file mode 100644 index 86d7228..0000000 --- a/docs/html/structfplot__core_1_1plot__polar.js +++ /dev/null @@ -1,18 +0,0 @@ -var structfplot__core_1_1plot__polar = -[ - [ "get_autoscale", "structfplot__core_1_1plot__polar.html#adb315455f8ef25ef6a861b02ee4ef771", null ], - [ "get_command_string", "structfplot__core_1_1plot__polar.html#ad1a4a767c50e8fe86d5526d45b95f794", null ], - [ "get_radial_limits", "structfplot__core_1_1plot__polar.html#a24177754fa37e095f2500a8f0d9cf269", null ], - [ "get_theta_direction", "structfplot__core_1_1plot__polar.html#aa2baa0c84a23e7c3069ce2fcd4050e7e", null ], - [ "get_theta_start_position", "structfplot__core_1_1plot__polar.html#afeb1ddee4cb09260fd4f92a4e70e8e18", null ], - [ "initialize", "structfplot__core_1_1plot__polar.html#a6d386c4b4669e96aa128e17b0d0e3e86", null ], - [ "set_autoscale", "structfplot__core_1_1plot__polar.html#aad0eaf7bd5100040899825fe1281ab86", null ], - [ "set_radial_limits", "structfplot__core_1_1plot__polar.html#a00dbfab2c6a3dc1f814d076574e5fd17", null ], - [ "set_theta_direction", "structfplot__core_1_1plot__polar.html#ab1bf8924f14b0833ca12ded69d6df738", null ], - [ "set_theta_start_position", "structfplot__core_1_1plot__polar.html#a6c09839428e51e17d6ad88608d1d92ae", null ], - [ "m_autoscale", "structfplot__core_1_1plot__polar.html#aae0b529ac9a469cd9ec3e04a125894e7", null ], - [ "m_maxrad", "structfplot__core_1_1plot__polar.html#a0df675cfa213da3a32e6fa441cec713c", null ], - [ "m_minrad", "structfplot__core_1_1plot__polar.html#a0e25b033c0faf43fdb1fbb1cd3518f44", null ], - [ "m_thetadirection", "structfplot__core_1_1plot__polar.html#a1a0d0c47ed00a432cf4d1911c282a624", null ], - [ "m_thetastart", "structfplot__core_1_1plot__polar.html#a1ed3b2f0f0abc341f8da7215764567b9", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1plot__polar.png b/docs/html/structfplot__core_1_1plot__polar.png deleted file mode 100644 index 4858ee8..0000000 Binary files a/docs/html/structfplot__core_1_1plot__polar.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1png__terminal-members.html b/docs/html/structfplot__core_1_1png__terminal-members.html deleted file mode 100644 index 2b9e779..0000000 --- a/docs/html/structfplot__core_1_1png__terminal-members.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::png_terminal Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1png__terminal.html b/docs/html/structfplot__core_1_1png__terminal.html deleted file mode 100644 index 645b6bf..0000000 --- a/docs/html/structfplot__core_1_1png__terminal.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - -fplot: fplot_core::png_terminal Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::png_terminal Type Reference
    -
    -
    - -

    Defines a GNUPLOT PNG terminal object. - More...

    -
    -Inheritance diagram for fplot_core::png_terminal:
    -
    -
    - - -fplot_core::terminal -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_filename png_get_filename
     Gets the filename for the output PNG file.
     
    procedure, public set_filename png_set_filename
     Sets the filename for the output PNG file.
     
    procedure, public get_id_string png_get_term_string
     Retrieves a GNUPLOT terminal identifier string.
     
    procedure, public get_command_string png_get_command_string
     Returns the appropriate GNUPLOT command string to establish appropriate parameters.
     
    - Public Member Functions inherited from fplot_core::terminal
    procedure, public get_window_width term_get_window_width
     Gets the width of the plot window.
     
    procedure, public set_window_width term_set_window_width
     Sets the width of the plot window.
     
    procedure, public get_window_height term_get_window_height
     Gets the height of the plot window.
     
    procedure, public set_window_height term_set_window_height
     Sets the height of the plot window.
     
    procedure, public get_command_string term_get_command_string
     Returns the appropriate GNUPLOT command string to establish appropriate parameters.
     
    procedure, public get_plot_window_number term_get_plot_window_number
     Gets the targeted plot window number.
     
    procedure, public set_plot_window_number term_set_plot_window_number
     Sets the targeted plot window number.
     
    procedure, public get_title term_get_title
     Gets the plot window's title.
     
    procedure, public set_title term_set_title
     Sets the plot window's title.
     
    procedure, public get_font_name term_get_font_name
     Gets the name of the font used for text displayed by the graph.
     
    procedure, public set_font_name term_set_font_name
     Sets the name of the font used for text displayed by the graph.
     
    procedure, public get_font_size term_get_font_size
     Gets the size of the font used by the graph.
     
    procedure, public set_font_size term_set_font_size
     Sets the size of the font used by the graph.
     
    - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    character(len=gnuplot_max_path_lengthm_fname = "default.png"
     The filename of the PNG file to write.
     
    - Public Attributes inherited from fplot_core::terminal
    integer(int32) m_windowwidth = GNUPLOT_DEFAULT_WINDOW_WIDTH
     The window width, in pixels.
     
    integer(int32) m_termid = 0
     The plot window number.
     
    character(len=gnuplot_max_label_lengthm_title = ""
     The plot window title.
     
    logical m_hastitle = .false.
     Determines if a plot title is defined.
     
    character(len=gnuplot_max_label_lengthm_fontname = GNUPLOT_DEFAULT_FONTNAME
     The font used by the graph.
     
    integer(int32) m_fontsize = GNUPLOT_DEFAULT_FONT_SIZE
     The size of the font used by the graph.
     
    - - - - -

    -Private Attributes

    character(len=3) m_id = "png"
     The terminal ID string.
     
    -

    Detailed Description

    -

    Defines a GNUPLOT PNG terminal object.

    - -

    Definition at line 1522 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::png_terminal::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to establish appropriate parameters.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(png_terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe terminal object.
    -
    -
    -
    Returns
    The GNUPLOT command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 1569 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_filename()

    - -
    -
    - - - - -
    procedure, public fplot_core::png_terminal::get_filename
    -
    - -

    Gets the filename for the output PNG file.

    -
    Syntax
    character(len = :) function, allocatable get_filename(class(png_terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe png_terminal object.
    -
    -
    -
    Returns
    The filename, including the file extension (.png).
    - -

    Definition at line 1538 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::png_terminal::get_id_string
    -
    -virtual
    -
    - -

    Retrieves a GNUPLOT terminal identifier string.

    -
    Syntax
    character(len = :) function, allocatable get_id_string(class(png_terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe png_terminal object.
    -
    -
    -
    Returns
    The string.
    - -

    Implements fplot_core::terminal.

    - -

    Definition at line 1558 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_filename()

    - -
    -
    - - - - -
    procedure, public fplot_core::png_terminal::set_filename
    -
    - -

    Sets the filename for the output PNG file.

    -
    Syntax
    subroutine set_filename(class(png_terminal) this, character(len = *) txt)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe png_terminal object.
    [in]txtThe filename, including the file extension (.png).
    -
    -
    - -

    Definition at line 1548 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_fname

    - -
    -
    - - - - -
    character(len = gnuplot_max_path_length) fplot_core::png_terminal::m_fname = "default.png"
    -
    - -

    The filename of the PNG file to write.

    - -

    Definition at line 1527 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_id

    - -
    -
    - - - - - -
    - - - - -
    character(len = 3) fplot_core::png_terminal::m_id = "png"
    -
    -private
    -
    - -

    The terminal ID string.

    - -

    Definition at line 1525 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1png__terminal.js b/docs/html/structfplot__core_1_1png__terminal.js deleted file mode 100644 index 927d124..0000000 --- a/docs/html/structfplot__core_1_1png__terminal.js +++ /dev/null @@ -1,9 +0,0 @@ -var structfplot__core_1_1png__terminal = -[ - [ "get_command_string", "structfplot__core_1_1png__terminal.html#a54f5f9a908cdfb83a849015ca574b22f", null ], - [ "get_filename", "structfplot__core_1_1png__terminal.html#af9f9678ab852cd1cdf1ba93607045ad0", null ], - [ "get_id_string", "structfplot__core_1_1png__terminal.html#a7fc33aaa61a2ecd8d1786b573c1194e9", null ], - [ "set_filename", "structfplot__core_1_1png__terminal.html#a11541efbe8bb3036b670ab5bfd234cb8", null ], - [ "m_fname", "structfplot__core_1_1png__terminal.html#acea6ab706e5e45c059be85af178adb77", null ], - [ "m_id", "structfplot__core_1_1png__terminal.html#ab960a72618e8aaa0fdda0290b11c33d2", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1png__terminal.png b/docs/html/structfplot__core_1_1png__terminal.png deleted file mode 100644 index 232d882..0000000 Binary files a/docs/html/structfplot__core_1_1png__terminal.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1qt__terminal-members.html b/docs/html/structfplot__core_1_1qt__terminal-members.html deleted file mode 100644 index 6f91bf1..0000000 --- a/docs/html/structfplot__core_1_1qt__terminal-members.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::qt_terminal Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1qt__terminal.html b/docs/html/structfplot__core_1_1qt__terminal.html deleted file mode 100644 index c615c38..0000000 --- a/docs/html/structfplot__core_1_1qt__terminal.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - - -fplot: fplot_core::qt_terminal Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::qt_terminal Type Reference
    -
    -
    - -

    Defines a GNUPLOT QT terminal object. - More...

    -
    -Inheritance diagram for fplot_core::qt_terminal:
    -
    -
    - - -fplot_core::terminal -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_id_string qt_get_term_string
     Retrieves a GNUPLOT terminal identifier string.
     
    - Public Member Functions inherited from fplot_core::terminal
    procedure, public get_window_width term_get_window_width
     Gets the width of the plot window.
     
    procedure, public set_window_width term_set_window_width
     Sets the width of the plot window.
     
    procedure, public get_window_height term_get_window_height
     Gets the height of the plot window.
     
    procedure, public set_window_height term_set_window_height
     Sets the height of the plot window.
     
    procedure, public get_command_string term_get_command_string
     Returns the appropriate GNUPLOT command string to establish appropriate parameters.
     
    procedure, public get_plot_window_number term_get_plot_window_number
     Gets the targeted plot window number.
     
    procedure, public set_plot_window_number term_set_plot_window_number
     Sets the targeted plot window number.
     
    procedure, public get_title term_get_title
     Gets the plot window's title.
     
    procedure, public set_title term_set_title
     Sets the plot window's title.
     
    procedure, public get_font_name term_get_font_name
     Gets the name of the font used for text displayed by the graph.
     
    procedure, public set_font_name term_set_font_name
     Sets the name of the font used for text displayed by the graph.
     
    procedure, public get_font_size term_get_font_size
     Gets the size of the font used by the graph.
     
    procedure, public set_font_size term_set_font_size
     Sets the size of the font used by the graph.
     
    - - - - -

    -Private Attributes

    character(len=2) m_id = "qt"
     The terminal ID string.
     
    - - - - - - - - - - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::terminal
    integer(int32) m_windowwidth = GNUPLOT_DEFAULT_WINDOW_WIDTH
     The window width, in pixels.
     
    integer(int32) m_termid = 0
     The plot window number.
     
    character(len=gnuplot_max_label_lengthm_title = ""
     The plot window title.
     
    logical m_hastitle = .false.
     Determines if a plot title is defined.
     
    character(len=gnuplot_max_label_lengthm_fontname = GNUPLOT_DEFAULT_FONTNAME
     The font used by the graph.
     
    integer(int32) m_fontsize = GNUPLOT_DEFAULT_FONT_SIZE
     The size of the font used by the graph.
     
    -

    Detailed Description

    -

    Defines a GNUPLOT QT terminal object.

    - -

    Definition at line 1464 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::qt_terminal::get_id_string
    -
    -virtual
    -
    - -

    Retrieves a GNUPLOT terminal identifier string.

    -
    Syntax
    character(len = :) function, allocatable get_id_string(class(qt_terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe qt_terminal object.
    -
    -
    -
    Returns
    The string.
    - -

    Implements fplot_core::terminal.

    - -

    Definition at line 1478 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_id

    - -
    -
    - - - - - -
    - - - - -
    character(len = 2) fplot_core::qt_terminal::m_id = "qt"
    -
    -private
    -
    - -

    The terminal ID string.

    - -

    Definition at line 1467 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1qt__terminal.js b/docs/html/structfplot__core_1_1qt__terminal.js deleted file mode 100644 index e3332b7..0000000 --- a/docs/html/structfplot__core_1_1qt__terminal.js +++ /dev/null @@ -1,5 +0,0 @@ -var structfplot__core_1_1qt__terminal = -[ - [ "get_id_string", "structfplot__core_1_1qt__terminal.html#a2544ce4552975f086ec0f20ae702657d", null ], - [ "m_id", "structfplot__core_1_1qt__terminal.html#ae7f815fdba921412c5befb8778584079", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1qt__terminal.png b/docs/html/structfplot__core_1_1qt__terminal.png deleted file mode 100644 index df2e041..0000000 Binary files a/docs/html/structfplot__core_1_1qt__terminal.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1rainbow__colormap-members.html b/docs/html/structfplot__core_1_1rainbow__colormap-members.html deleted file mode 100644 index 97d7976..0000000 --- a/docs/html/structfplot__core_1_1rainbow__colormap-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::rainbow_colormap Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1rainbow__colormap.html b/docs/html/structfplot__core_1_1rainbow__colormap.html deleted file mode 100644 index 9bfba8b..0000000 --- a/docs/html/structfplot__core_1_1rainbow__colormap.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -fplot: fplot_core::rainbow_colormap Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::rainbow_colormap Type Reference
    -
    -
    - -

    Defines a rainbow colormap. - More...

    -
    -Inheritance diagram for fplot_core::rainbow_colormap:
    -
    -
    - - -fplot_core::colormap -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_color_string rcm_get_clr
     Gets the GNUPLOT string defining the color distribution.
     
    - Public Member Functions inherited from fplot_core::colormap
    procedure, public get_command_string cm_get_cmd
     Gets the GNUPLOT command string to represent this colormap object.
     
    procedure, public get_label cm_get_label
     Gets the label to associate with the colorbar.
     
    procedure, public set_label cm_set_label
     Sets the label to associate with the colorbar.
     
    procedure, public get_horizontal cm_get_horizontal
     Gets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public set_horizontal cm_set_horizontal
     Sets a logical value determining if the colormap should be drawn horizontally and below the plot.
     
    procedure, public get_draw_border cm_get_draw_border
     Gets a logical value determining if the border should be drawn.
     
    procedure, public set_draw_border cm_set_draw_border
     Sets a logical value determining if the border should be drawn.
     
    procedure, public get_show_tics cm_get_show_tics
     Gets a logical value determining if the tic marks should be drawn.
     
    procedure, public set_show_tics cm_set_show_tics
     Sets a logical value determining if the tic marks should be drawn.
     
    - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::colormap
    logical m_horizontal = .false.
     The colormap should be drawn horizontally.
     
    logical m_drawborder = .true.
     Draw the colormap border.
     
    logical m_showtics = .true.
     Show the tic marks.
     
    -

    Detailed Description

    -

    Defines a rainbow colormap.

    - -

    Definition at line 2507 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_color_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::rainbow_colormap::get_color_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT string defining the color distribution.

    -
    Syntax
    character(len = :) function, allocatable get_color_string(class(rainbow_colormap) this)
    -
    -
    Parameters
    - - -
    [in]thisThe rainbow_colormap object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::colormap.

    - -

    Definition at line 2518 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1rainbow__colormap.js b/docs/html/structfplot__core_1_1rainbow__colormap.js deleted file mode 100644 index 4ee2675..0000000 --- a/docs/html/structfplot__core_1_1rainbow__colormap.js +++ /dev/null @@ -1,4 +0,0 @@ -var structfplot__core_1_1rainbow__colormap = -[ - [ "get_color_string", "structfplot__core_1_1rainbow__colormap.html#a3acc19f954331a6310d5eb3425519f75", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1rainbow__colormap.png b/docs/html/structfplot__core_1_1rainbow__colormap.png deleted file mode 100644 index 1b956d8..0000000 Binary files a/docs/html/structfplot__core_1_1rainbow__colormap.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1scatter__plot__data-members.html b/docs/html/structfplot__core_1_1scatter__plot__data-members.html deleted file mode 100644 index de56eea..0000000 --- a/docs/html/structfplot__core_1_1scatter__plot__data-members.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::scatter_plot_data Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::scatter_plot_data, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    get_axes_stringspd_get_string_resultfplot_core::scatter_plot_datapure virtual
    get_color_indexpdc_get_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    get_command_stringspd_get_cmdfplot_core::scatter_plot_datavirtual
    get_countspd_get_int_valuefplot_core::scatter_plot_datapure virtual
    get_data_stringpd_get_string_resultfplot_core::plot_datapure virtual
    get_draw_linespd_get_draw_linefplot_core::scatter_plot_data
    get_draw_markersspd_get_draw_markersfplot_core::scatter_plot_data
    get_fill_curvespd_get_filledfplot_core::scatter_plot_data
    get_line_colorpdc_get_line_colorfplot_core::plot_data_colored
    get_line_stylespd_get_line_stylefplot_core::scatter_plot_data
    get_line_widthspd_get_line_widthfplot_core::scatter_plot_data
    get_marker_frequencyspd_get_marker_frequencyfplot_core::scatter_plot_data
    get_marker_scalingspd_get_marker_scalingfplot_core::scatter_plot_data
    get_marker_stylespd_get_marker_stylefplot_core::scatter_plot_data
    get_namepd_get_namefplot_core::plot_data
    get_simplification_factorspd_get_simplify_factorfplot_core::scatter_plot_data
    get_simplify_dataspd_get_simplify_datafplot_core::scatter_plot_data
    get_use_data_dependent_colorsspd_get_data_dependent_colorsfplot_core::scatter_plot_data
    get_use_variable_size_pointsspd_get_use_var_point_sizefplot_core::scatter_plot_data
    get_xspd_get_valuefplot_core::scatter_plot_datapure virtual
    get_yspd_get_valuefplot_core::scatter_plot_datapure virtual
    m_colorfplot_core::plot_data_coloredprivate
    m_colorindexfplot_core::plot_data_colored
    m_datadependentcolorsfplot_core::scatter_plot_data
    m_drawlinefplot_core::scatter_plot_dataprivate
    m_drawmarkersfplot_core::scatter_plot_data
    m_filledcurvefplot_core::scatter_plot_data
    m_linestylefplot_core::scatter_plot_data
    m_linewidthfplot_core::scatter_plot_data
    m_markerfrequencyfplot_core::scatter_plot_data
    m_markersizefplot_core::scatter_plot_data
    m_markertypefplot_core::scatter_plot_data
    m_namefplot_core::plot_dataprivate
    m_simplifydatafplot_core::scatter_plot_data
    m_simplifyfactorfplot_core::scatter_plot_data
    m_useautocolorfplot_core::plot_data_colored
    m_usevariablesizepointsfplot_core::scatter_plot_data
    set_color_indexpdc_set_color_index (defined in fplot_core::plot_data_colored)fplot_core::plot_data_coloredprivate
    set_draw_linespd_set_draw_linefplot_core::scatter_plot_data
    set_draw_markersspd_set_draw_markersfplot_core::scatter_plot_data
    set_fill_curvespd_set_filledfplot_core::scatter_plot_data
    set_line_colorpdc_set_line_colorfplot_core::plot_data_colored
    set_line_stylespd_set_line_stylefplot_core::scatter_plot_data
    set_line_widthspd_set_line_widthfplot_core::scatter_plot_data
    set_marker_frequencyspd_set_marker_frequencyfplot_core::scatter_plot_data
    set_marker_scalingspd_set_marker_scalingfplot_core::scatter_plot_data
    set_marker_stylespd_set_marker_stylefplot_core::scatter_plot_data
    set_namepd_set_namefplot_core::plot_data
    set_simplification_factorspd_set_simplify_factorfplot_core::scatter_plot_data
    set_simplify_dataspd_set_simplify_datafplot_core::scatter_plot_data
    set_use_data_dependent_colorsspd_set_data_dependent_colorsfplot_core::scatter_plot_data
    set_use_variable_size_pointsspd_set_use_var_point_sizefplot_core::scatter_plot_data
    set_xspd_set_valuefplot_core::scatter_plot_datapure virtual
    set_yspd_set_valuefplot_core::scatter_plot_datapure virtual
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1scatter__plot__data.html b/docs/html/structfplot__core_1_1scatter__plot__data.html deleted file mode 100644 index 7260b70..0000000 --- a/docs/html/structfplot__core_1_1scatter__plot__data.html +++ /dev/null @@ -1,1422 +0,0 @@ - - - - - - - -fplot: fplot_core::scatter_plot_data Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::scatter_plot_data Type Referenceabstract
    -
    -
    - -

    A plot_data object for describing scatter plot data sets. - More...

    -
    -Inheritance diagram for fplot_core::scatter_plot_data:
    -
    -
    - - -fplot_core::plot_data_colored -fplot_core::plot_data -fplot_core::plot_object -fplot_core::plot_data_2d -fplot_core::plot_data_3d - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_command_string spd_get_cmd
     Gets the GNUPLOT command string to represent this scatter_plot_data object.
     
    procedure, public get_line_width spd_get_line_width
     Gets the width of the line, in pixels.
     
    procedure, public set_line_width spd_set_line_width
     Sets the width of the line, in pixels.
     
    procedure, public get_line_style spd_get_line_style
     Gets the line style.
     
    procedure, public set_line_style spd_set_line_style
     Sets the line style.
     
    procedure, public get_draw_line spd_get_draw_line
     Gets a value determining if a line should be drawn.
     
    procedure, public set_draw_line spd_set_draw_line
     Sets a value determining if a line should be drawn.
     
    procedure, public get_draw_markers spd_get_draw_markers
     Gets a value determining if data point markers should be drawn.
     
    procedure, public set_draw_markers spd_set_draw_markers
     Sets a value determining if data point markers should be drawn.
     
    procedure, public get_marker_style spd_get_marker_style
     Gets the marker style.
     
    procedure, public set_marker_style spd_set_marker_style
     Sets the marker style.
     
    procedure, public get_marker_scaling spd_get_marker_scaling
     Gets the marker scaling.
     
    procedure, public set_marker_scaling spd_set_marker_scaling
     Sets the marker scaling.
     
    procedure, public get_marker_frequency spd_get_marker_frequency
     Gets the marker frequency.
     
    procedure, public set_marker_frequency spd_set_marker_frequency
     Sets the marker frequency.
     
    procedure(spd_get_int_value), deferred, public get_count spd_get_int_value
     Gets the number of data points.
     
    procedure(spd_get_value), deferred, public get_x spd_get_value
     Gets the requested X data point.
     
    procedure(spd_set_value), deferred, public set_x spd_set_value
     Sets the requested X data point.
     
    procedure(spd_get_value), deferred, public get_y spd_get_value
     Gets the requested Y data point.
     
    procedure(spd_set_value), deferred, public set_y spd_set_value
     Sets the requested X data point.
     
    procedure(spd_get_string_result), deferred, public get_axes_string spd_get_string_result
     Gets the GNUPLOT command string defining which axes the data is to be plotted against.
     
    procedure, public get_simplify_data spd_get_simplify_data
     Gets a value determining if the stored data should be simplified (reduced) before passing to GNUPLOT.
     
    procedure, public set_simplify_data spd_set_simplify_data
     Sets a value determining if the stored data should be simplified (reduced) before passing to GNUPLOT.
     
    procedure, public get_simplification_factor spd_get_simplify_factor
     Gets a factor used to establish the simplification tolerance.
     
    procedure, public set_simplification_factor spd_set_simplify_factor
     Sets a factor used to establish the simplification tolerance. The tolerance is established by multplying this factor by the range of the dependent variable data.
     
    procedure, public get_use_data_dependent_colors spd_get_data_dependent_colors
     Gets a value determing if data-dependent colors should be used.
     
    procedure, public set_use_data_dependent_colors spd_set_data_dependent_colors
     Sets a value determing if data dependent colors should be used.
     
    procedure, public get_fill_curve spd_get_filled
     Gets a logical value determining if a filled curve should be drawn.
     
    procedure, public set_fill_curve spd_set_filled
     Sets a logical value determining if a filled curve should be drawn.
     
    procedure, public get_use_variable_size_points spd_get_use_var_point_size
     Gets a logical value determining if variable sized data points should be used. The default is false, such that points will be of a constant size.
     
    procedure, public set_use_variable_size_points spd_set_use_var_point_size
     Sets a logical value determining if variable sized data points should be used. The default is false, such that points will be of a constant size.
     
    - Public Member Functions inherited from fplot_core::plot_data_colored
    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    procedure(pd_get_string_result), deferred, public get_data_string pd_get_string_result
     Gets the GNUPLOT command string containing the actual data to plot.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    logical m_drawmarkers = .false.
     Draw the markers?
     
    integer(int32) m_markerfrequency = 1
     Marker frequency.
     
    real(real32) m_linewidth = 1.0
     Line width.
     
    integer(int32) m_linestyle = LINE_SOLID
     Line style.
     
    integer(int32) m_markertype = MARKER_X
     Marker type.
     
    real(real32) m_markersize = 1.0
     Marker size multiplier.
     
    logical m_simplifydata = .true.
     True if large data sets should be simplified before sending to GNUPLOT.
     
    real(real64) m_simplifyfactor = 1.0d-3
     A scaling factor used to establish the simplification tolerance. The simplification tolerance is established by multiplying this factor by the range in the dependent variable data.
     
    logical m_datadependentcolors = .false.
     Determines if the data should utilize data-dependent colors.
     
    logical m_filledcurve = .false.
     Fill the curve?
     
    logical m_usevariablesizepoints = .false.
     Use variable size data points?
     
    - Public Attributes inherited from fplot_core::plot_data_colored
    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    - - - - -

    -Private Attributes

    logical m_drawline = .true.
     Draw the line?
     
    -

    Detailed Description

    -

    A plot_data object for describing scatter plot data sets.

    - -

    Definition at line 3546 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_axes_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure(spd_get_string_result), deferred, public fplot_core::scatter_plot_data::get_axes_string
    -
    -pure virtual
    -
    - -

    Gets the GNUPLOT command string defining which axes the data is to be plotted against.

    - -

    Implemented in fplot_core::plot_data_2d, and fplot_core::plot_data_3d.

    - -

    Definition at line 3779 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this scatter_plot_data object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 3586 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_count()

    - -
    -
    - - - - - -
    - - - - -
    procedure(spd_get_int_value), deferred, public fplot_core::scatter_plot_data::get_count
    -
    -pure virtual
    -
    - -

    Gets the number of data points.

    - -

    Implemented in fplot_core::plot_data_2d, and fplot_core::plot_data_3d.

    - -

    Definition at line 3768 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_draw_line()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_draw_line
    -
    - -

    Gets a value determining if a line should be drawn.

    -
    Syntax
    pure logical function get_draw_line(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    Returns true if the line should be drawn; else, false.
    - -

    Definition at line 3647 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_draw_markers()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_draw_markers
    -
    - -

    Gets a value determining if data point markers should be drawn.

    -
    Syntax
    pure logical function get_draw_markers(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    Returns true if the markers should be drawn; else, false.
    - -

    Definition at line 3668 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_fill_curve()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_fill_curve
    -
    - -

    Gets a logical value determining if a filled curve should be drawn.

    -
    Syntax
    logical function get_fill_curve(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    Returns true if the curve should be filled; else, false.
    - -

    Definition at line 3862 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_line_style()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_line_style
    -
    - -

    Gets the line style.

    -
    Syntax
    pure integer(int32) function get_line_style(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    The line style. The line style must be one of the following:
      -
    • LINE_DASHED
    • -
    • LINE_DASH_DOTTED
    • -
    • LINE_DASH_DOT_DOT
    • -
    • LINE_DOTTED
    • -
    • LINE_SOLID
    • -
    -
    - -

    Definition at line 3621 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_line_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_line_width
    -
    - -

    Gets the width of the line, in pixels.

    -
    Syntax
    pure real(real32) function get_line_width(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    The line width.
    - -

    Definition at line 3596 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_marker_frequency()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_marker_frequency
    -
    - -

    Gets the marker frequency.

    -
    Syntax
    pure integer(int32) function get_marker_frequency(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    The marker frequency.
    - -

    Definition at line 3756 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_marker_scaling()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_marker_scaling
    -
    - -

    Gets the marker scaling.

    -
    Syntax
    pure real(real32) function get_marker_scaling(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    The scaling factor.
    - -

    Definition at line 3736 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_marker_style()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_marker_style
    -
    - -

    Gets the marker style.

    -
    Syntax
    pure integer(int32) function get_marker_style(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    The marker type. The marker type must be one of the following:
      -
    • MARKER_ASTERISK
    • -
    • MARKER_EMPTY_CIRCLE
    • -
    • MARKER_EMPTY_NABLA
    • -
    • MARKER_EMPTY_RHOMBUS
    • -
    • MARKER_EMPTY_SQUARE
    • -
    • MARKER_EMPTY_TRIANGLE
    • -
    • MARKER_FILLED_CIRCLE
    • -
    • MARKER_FILLED_NABLA
    • -
    • MARKER_FILLED_RHOMBUS
    • -
    • MARKER_FILLED_SQUARE
    • -
    • MARKER_FILLED_TRIANGLE
    • -
    • MARKER_PLUS
    • -
    • MARKER_X
    • -
    -
    - -

    Definition at line 3702 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_simplification_factor()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_simplification_factor
    -
    - -

    Gets a factor used to establish the simplification tolerance.

    -
    Syntax
    pure real(real64) function get_simplification_factor(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    Returns the scaling factor.
    - -

    Definition at line 3813 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_simplify_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_simplify_data
    -
    - -

    Gets a value determining if the stored data should be simplified (reduced) before passing to GNUPLOT.

    -
    Syntax
    pure logical function get_simplify_data(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    Returns true if the data should be simplified prior to sending to GNUPLOT; else, false to leave the data alone.
    - -

    Definition at line 3791 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_data_dependent_colors()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_use_data_dependent_colors
    -
    - -

    Gets a value determing if data-dependent colors should be used.

    -
    Syntax
    pure logical function get_use_data_dependent_colors(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    Returns true if data-dependent colors should be used; else, false.
    - -

    Definition at line 3837 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_variable_size_points()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::get_use_variable_size_points
    -
    - -

    Gets a logical value determining if variable sized data points should be used. The default is false, such that points will be of a constant size.

    -
    Syntax
    pure logical function get_use_variable_size_points(class(scatter_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe scatter_plot_data object.
    -
    -
    -
    Returns
    True if variable size points should be used; else, false.
    - -

    Definition at line 3885 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_x()

    - -
    -
    - - - - - -
    - - - - -
    procedure(spd_get_value), deferred, public fplot_core::scatter_plot_data::get_x
    -
    -pure virtual
    -
    - -

    Gets the requested X data point.

    - -

    Implemented in fplot_core::plot_data_2d, and fplot_core::plot_data_3d.

    - -

    Definition at line 3770 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_y()

    - -
    -
    - - - - - -
    - - - - -
    procedure(spd_get_value), deferred, public fplot_core::scatter_plot_data::get_y
    -
    -pure virtual
    -
    - -

    Gets the requested Y data point.

    - -

    Implemented in fplot_core::plot_data_2d, and fplot_core::plot_data_3d.

    - -

    Definition at line 3774 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_draw_line()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_draw_line
    -
    - -

    Sets a value determining if a line should be drawn.

    -
    Syntax
    subroutine set_draw_line(class(scatter_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xSet to true if the line should be drawn; else, false.
    -
    -
    - -

    Definition at line 3657 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_draw_markers()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_draw_markers
    -
    - -

    Sets a value determining if data point markers should be drawn.

    -
    Syntax
    subroutine set_draw_markers(class(scatter_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xSet to true if the markers should be drawn; else, false.
    -
    -
    - -

    Definition at line 3679 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_fill_curve()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_fill_curve
    -
    - -

    Sets a logical value determining if a filled curve should be drawn.

    -
    Syntax
    subroutine set_fill_curve(class(scatter_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]Setto true if the curve should be filled; else, false.
    -
    -
    - -

    Definition at line 3873 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_line_style()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_line_style
    -
    - -

    Sets the line style.

    -
    Syntax
    subroutine set_line_style(class(scatter_plot_data) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xThe line style. The line style must be one of the following:
      -
    • LINE_DASHED
    • -
    • LINE_DASH_DOTTED
    • -
    • LINE_DASH_DOT_DOT
    • -
    • LINE_DOTTED
    • -
    • LINE_SOLID
    • -
    -
    -
    -
    - -

    Definition at line 3637 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_line_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_line_width
    -
    - -

    Sets the width of the line, in pixels.

    -
    Syntax
    subroutine set_line_width(class(scatter_plot_data) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xThe line width.
    -
    -
    - -

    Definition at line 3606 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_marker_frequency()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_marker_frequency
    -
    - -

    Sets the marker frequency.

    -
    Syntax
    subroutine set_marker_frequency(class(scatter_plot_data) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xThe marker frequency.
    -
    -
    - -

    Definition at line 3766 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_marker_scaling()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_marker_scaling
    -
    - -

    Sets the marker scaling.

    -
    Syntax
    subroutine set_marker_scaling(class(scatter_plot_data) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xThe scaling factor.
    -
    -
    - -

    Definition at line 3746 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_marker_style()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_marker_style
    -
    - -

    Sets the marker style.

    -
    Syntax
    subroutine set_marker_style(class(scatter_plot_data) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xThe marker type. The marker type must be one of the following:
      -
    • MARKER_ASTERISK
    • -
    • MARKER_EMPTY_CIRCLE
    • -
    • MARKER_EMPTY_NABLA
    • -
    • MARKER_EMPTY_RHOMBUS
    • -
    • MARKER_EMPTY_SQUARE
    • -
    • MARKER_EMPTY_TRIANGLE
    • -
    • MARKER_FILLED_CIRCLE
    • -
    • MARKER_FILLED_NABLA
    • -
    • MARKER_FILLED_RHOMBUS
    • -
    • MARKER_FILLED_SQUARE
    • -
    • MARKER_FILLED_TRIANGLE
    • -
    • MARKER_PLUS
    • -
    • MARKER_X
    • -
    -
    -
    -
    - -

    Definition at line 3726 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_simplification_factor()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_simplification_factor
    -
    - -

    Sets a factor used to establish the simplification tolerance. The tolerance is established by multplying this factor by the range of the dependent variable data.

    -
    Syntax
    subroutine set_simplification_factor(class(scatter_plot_data) this, real(real64) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xThe scaling factor.
    -
    -
    - -

    Definition at line 3825 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_simplify_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_simplify_data
    -
    - -

    Sets a value determining if the stored data should be simplified (reduced) before passing to GNUPLOT.

    -
    Syntax
    subroutine set_simplify_data(class(scatter_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xTrue if the data should be simplified prior to sending to GNUPLOT; else, false to leave the data alone.
    -
    -
    - -

    Definition at line 3803 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_data_dependent_colors()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_use_data_dependent_colors
    -
    - -

    Sets a value determing if data dependent colors should be used.

    -
    Syntax
    subroutine set_use_data_dependent_colors(class(scatter_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe scatter_plot_data object.
    [in]xTrue if data-dependent colors should be used; else, false.
    -
    -
    - -

    Definition at line 3850 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_variable_size_points()

    - -
    -
    - - - - -
    procedure, public fplot_core::scatter_plot_data::set_use_variable_size_points
    -
    - -

    Sets a logical value determining if variable sized data points should be used. The default is false, such that points will be of a constant size.

    -
    Syntax
    subroutine set_use_variable_size_points(class(scatter_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in]thisThe scatter_plot_data object.
    [in]xTrue if variable size points should be used; else, false.
    -
    -
    - -

    Definition at line 3898 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_x()

    - -
    -
    - - - - - -
    - - - - -
    procedure(spd_set_value), deferred, public fplot_core::scatter_plot_data::set_x
    -
    -pure virtual
    -
    - -

    Sets the requested X data point.

    - -

    Implemented in fplot_core::plot_data_2d, and fplot_core::plot_data_3d.

    - -

    Definition at line 3772 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_y()

    - -
    -
    - - - - - -
    - - - - -
    procedure(spd_set_value), deferred, public fplot_core::scatter_plot_data::set_y
    -
    -pure virtual
    -
    - -

    Sets the requested X data point.

    - -

    Implemented in fplot_core::plot_data_2d, and fplot_core::plot_data_3d.

    - -

    Definition at line 3776 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_datadependentcolors

    - -
    -
    - - - - -
    logical fplot_core::scatter_plot_data::m_datadependentcolors = .false.
    -
    - -

    Determines if the data should utilize data-dependent colors.

    - -

    Definition at line 3570 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_drawline

    - -
    -
    - - - - - -
    - - - - -
    logical fplot_core::scatter_plot_data::m_drawline = .true.
    -
    -private
    -
    - -

    Draw the line?

    - -

    Definition at line 3549 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_drawmarkers

    - -
    -
    - - - - -
    logical fplot_core::scatter_plot_data::m_drawmarkers = .false.
    -
    - -

    Draw the markers?

    - -

    Definition at line 3551 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_filledcurve

    - -
    -
    - - - - -
    logical fplot_core::scatter_plot_data::m_filledcurve = .false.
    -
    - -

    Fill the curve?

    - -

    Definition at line 3572 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_linestyle

    - -
    -
    - - - - -
    integer(int32) fplot_core::scatter_plot_data::m_linestyle = LINE_SOLID
    -
    - -

    Line style.

    - -

    Definition at line 3557 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_linewidth

    - -
    -
    - - - - -
    real(real32) fplot_core::scatter_plot_data::m_linewidth = 1.0
    -
    - -

    Line width.

    - -

    Definition at line 3555 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_markerfrequency

    - -
    -
    - - - - -
    integer(int32) fplot_core::scatter_plot_data::m_markerfrequency = 1
    -
    - -

    Marker frequency.

    - -

    Definition at line 3553 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_markersize

    - -
    -
    - - - - -
    real(real32) fplot_core::scatter_plot_data::m_markersize = 1.0
    -
    - -

    Marker size multiplier.

    - -

    Definition at line 3561 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_markertype

    - -
    -
    - - - - -
    integer(int32) fplot_core::scatter_plot_data::m_markertype = MARKER_X
    -
    - -

    Marker type.

    - -

    Definition at line 3559 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_simplifydata

    - -
    -
    - - - - -
    logical fplot_core::scatter_plot_data::m_simplifydata = .true.
    -
    - -

    True if large data sets should be simplified before sending to GNUPLOT.

    - -

    Definition at line 3564 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_simplifyfactor

    - -
    -
    - - - - -
    real(real64) fplot_core::scatter_plot_data::m_simplifyfactor = 1.0d-3
    -
    - -

    A scaling factor used to establish the simplification tolerance. The simplification tolerance is established by multiplying this factor by the range in the dependent variable data.

    - -

    Definition at line 3568 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_usevariablesizepoints

    - -
    -
    - - - - -
    logical fplot_core::scatter_plot_data::m_usevariablesizepoints = .false.
    -
    - -

    Use variable size data points?

    - -

    Definition at line 3574 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1scatter__plot__data.js b/docs/html/structfplot__core_1_1scatter__plot__data.js deleted file mode 100644 index fb1f21a..0000000 --- a/docs/html/structfplot__core_1_1scatter__plot__data.js +++ /dev/null @@ -1,46 +0,0 @@ -var structfplot__core_1_1scatter__plot__data = -[ - [ "get_axes_string", "structfplot__core_1_1scatter__plot__data.html#a7ab0b579124a815634cbdcac8c81dde0", null ], - [ "get_command_string", "structfplot__core_1_1scatter__plot__data.html#a38752353ad9e2129840b07df8836e400", null ], - [ "get_count", "structfplot__core_1_1scatter__plot__data.html#af220d3b0ebfaba65fb9c2b9326d39d0f", null ], - [ "get_draw_line", "structfplot__core_1_1scatter__plot__data.html#a5f8e8427299c380b69eef4207fdac6fd", null ], - [ "get_draw_markers", "structfplot__core_1_1scatter__plot__data.html#aa78996b052703cd440b579a3f19c0323", null ], - [ "get_fill_curve", "structfplot__core_1_1scatter__plot__data.html#a574f1a94ca7ad3fbb1a1da445a50cbee", null ], - [ "get_line_style", "structfplot__core_1_1scatter__plot__data.html#a207dc9773f6dd173799dd607c4e321b6", null ], - [ "get_line_width", "structfplot__core_1_1scatter__plot__data.html#acfab9f133dae8af4eee2a0151d3cb8e7", null ], - [ "get_marker_frequency", "structfplot__core_1_1scatter__plot__data.html#abecca27ba9033242c9cb76692bb8d9ec", null ], - [ "get_marker_scaling", "structfplot__core_1_1scatter__plot__data.html#a3a09033deefd1c5d3157dff1a0b4c05d", null ], - [ "get_marker_style", "structfplot__core_1_1scatter__plot__data.html#af7386b5c9cecb7c57e619185f0284ee6", null ], - [ "get_simplification_factor", "structfplot__core_1_1scatter__plot__data.html#a9e1b45badadfa1bda1b20ea8d9a2f1fe", null ], - [ "get_simplify_data", "structfplot__core_1_1scatter__plot__data.html#a0d0755bca68c8c758bc7f5ab880f65e3", null ], - [ "get_use_data_dependent_colors", "structfplot__core_1_1scatter__plot__data.html#a65e5e58525b877b9bfd4873dc7b2e9e4", null ], - [ "get_use_variable_size_points", "structfplot__core_1_1scatter__plot__data.html#ae7263aa5d4f1fb5fdd8941a7c69a19a3", null ], - [ "get_x", "structfplot__core_1_1scatter__plot__data.html#a12a4a9e221cd17546332eab66ee3587f", null ], - [ "get_y", "structfplot__core_1_1scatter__plot__data.html#a593db6ad20d55e9f6240d66713352a26", null ], - [ "set_draw_line", "structfplot__core_1_1scatter__plot__data.html#a4219776e9fb097422c3ec43122f031fb", null ], - [ "set_draw_markers", "structfplot__core_1_1scatter__plot__data.html#a2d478600f6026a7515f89cb156896654", null ], - [ "set_fill_curve", "structfplot__core_1_1scatter__plot__data.html#a6305c7c347d54e042186e197e63d4572", null ], - [ "set_line_style", "structfplot__core_1_1scatter__plot__data.html#ab03c2603a873c9065c83650ac7b59577", null ], - [ "set_line_width", "structfplot__core_1_1scatter__plot__data.html#ad2169acc049adff557adfa5a7da7a047", null ], - [ "set_marker_frequency", "structfplot__core_1_1scatter__plot__data.html#afbe660fce6672bf6dc20f3f594a14361", null ], - [ "set_marker_scaling", "structfplot__core_1_1scatter__plot__data.html#afc01fb76af6a0a422b9a9f8571959e88", null ], - [ "set_marker_style", "structfplot__core_1_1scatter__plot__data.html#a149b23714fce0691b4131c7701ff6166", null ], - [ "set_simplification_factor", "structfplot__core_1_1scatter__plot__data.html#a8a4056fe6969456124db007f962b9c7b", null ], - [ "set_simplify_data", "structfplot__core_1_1scatter__plot__data.html#a1fd9079ccba6a8227501584208f2991e", null ], - [ "set_use_data_dependent_colors", "structfplot__core_1_1scatter__plot__data.html#a9ea43c66bf884fc5380dc82b178e2634", null ], - [ "set_use_variable_size_points", "structfplot__core_1_1scatter__plot__data.html#a4b8720c814de24f0a8c54de333f6b192", null ], - [ "set_x", "structfplot__core_1_1scatter__plot__data.html#a767bed829c0dc83b2b265910b3834608", null ], - [ "set_y", "structfplot__core_1_1scatter__plot__data.html#a313f4dd3f4a4596772901c0cfbf15a97", null ], - [ "m_datadependentcolors", "structfplot__core_1_1scatter__plot__data.html#a5177e61ef1056be4a7be88c85d129554", null ], - [ "m_drawline", "structfplot__core_1_1scatter__plot__data.html#a06df1b2ace5394328f5cc69c56aae2fe", null ], - [ "m_drawmarkers", "structfplot__core_1_1scatter__plot__data.html#ab22889699bb2ac1e437760ae3053e61f", null ], - [ "m_filledcurve", "structfplot__core_1_1scatter__plot__data.html#ae502a1cb64b81989b2ae30e0498fb2a3", null ], - [ "m_linestyle", "structfplot__core_1_1scatter__plot__data.html#ad6526edc0a71a3f3a52c90ba6bf2a7b4", null ], - [ "m_linewidth", "structfplot__core_1_1scatter__plot__data.html#a5f0a764e897869a8b40e5572cf643eff", null ], - [ "m_markerfrequency", "structfplot__core_1_1scatter__plot__data.html#afd73c87e0c8333d8e2af840d73aa5467", null ], - [ "m_markersize", "structfplot__core_1_1scatter__plot__data.html#ac32e05719b497dca629b92ccaa2bc40a", null ], - [ "m_markertype", "structfplot__core_1_1scatter__plot__data.html#a5cf90a01f00ed353e00df87c099999ce", null ], - [ "m_simplifydata", "structfplot__core_1_1scatter__plot__data.html#a98d9bfb493e1dae5462ac95979fbcbb4", null ], - [ "m_simplifyfactor", "structfplot__core_1_1scatter__plot__data.html#a307b01a8a110ab7a676ac51c05d3074b", null ], - [ "m_usevariablesizepoints", "structfplot__core_1_1scatter__plot__data.html#a720cc3f633f78c871e76ea19b34fe6da", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1scatter__plot__data.png b/docs/html/structfplot__core_1_1scatter__plot__data.png deleted file mode 100644 index bf8b23e..0000000 Binary files a/docs/html/structfplot__core_1_1scatter__plot__data.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1surface__plot-members.html b/docs/html/structfplot__core_1_1surface__plot-members.html deleted file mode 100644 index 573c0d0..0000000 --- a/docs/html/structfplot__core_1_1surface__plot-members.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::surface_plot Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::surface_plot, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_allplt_clear_allfplot_core::plot
    clear_all_labelsplt_clear_labelsfplot_core::plot
    clear_arrowsplt_clear_arrowsfplot_core::plot
    drawplt_drawfplot_core::plot
    free_resourcesplt_clean_upfplot_core::plot
    getplt_getfplot_core::plot
    get_allow_smoothingsurf_get_smoothfplot_core::surface_plot
    get_arrowplt_get_arrowfplot_core::plot
    get_arrow_countplt_get_arrow_countfplot_core::plot
    get_axis_equalplt_get_axis_equalfplot_core::plot
    get_azimuthp3d_get_azimuthfplot_core::plot_3d
    get_colormapplt_get_colormapfplot_core::plot
    get_command_stringsurf_get_cmdfplot_core::surface_plotvirtual
    get_coordinate_systemp3d_get_csysfplot_core::plot_3d
    get_countplt_get_countfplot_core::plot
    get_draw_borderplt_get_draw_borderfplot_core::plot
    get_elevationp3d_get_elevationfplot_core::plot_3d
    get_font_nameplt_get_fontfplot_core::plot
    get_font_sizeplt_get_font_sizefplot_core::plot
    get_labelplt_get_labelfplot_core::plot
    get_label_countplt_get_label_countfplot_core::plot
    get_legendplt_get_legendfplot_core::plot
    get_light_intensitysurf_get_light_intensityfplot_core::surface_plot
    get_show_colorbarplt_get_show_colorbarfplot_core::plot
    get_show_contourssurf_get_show_contoursfplot_core::surface_plot
    get_show_gridlinesplt_get_show_gridfplot_core::plot
    get_show_hiddensurf_get_show_hiddenfplot_core::surface_plot
    get_specular_intensitysurf_get_specular_intensityfplot_core::surface_plot
    get_terminalplt_get_termfplot_core::plot
    get_tics_inwardplt_get_tics_infplot_core::plot
    get_titleplt_get_titlefplot_core::plot
    get_transparencysurf_get_transparencyfplot_core::surface_plot
    get_use_lightingsurf_get_use_lightingfplot_core::surface_plot
    get_use_map_viewp3d_get_use_map_viewfplot_core::plot_3d
    get_x_axisp3d_get_x_axisfplot_core::plot_3d
    get_y_axisp3d_get_y_axisfplot_core::plot_3d
    get_z_axisp3d_get_z_axisfplot_core::plot_3d
    get_z_intersect_xyp3d_get_z_axis_intersectfplot_core::plot_3d
    initializesurf_initfplot_core::surface_plot
    is_title_definedplt_has_titlefplot_core::plot
    m_arrowsfplot_core::plot
    m_axisequalfplot_core::plot
    m_azimuthfplot_core::plot_3d
    m_colorindexfplot_core::plot
    m_colormapfplot_core::plot
    m_contourfplot_core::surface_plot
    m_csysfplot_core::plot_3d
    m_datafplot_core::plot
    m_drawborderfplot_core::plot
    m_elevationfplot_core::plot_3d
    m_hastitlefplot_core::plot
    m_labelsfplot_core::plot
    m_legendfplot_core::plot
    m_lightintensityfplot_core::surface_plot
    m_setmapfplot_core::plot_3d
    m_showcolorbarfplot_core::plot
    m_showgridfplot_core::plot
    m_showhiddenfplot_core::surface_plotprivate
    m_smoothfplot_core::surface_plot
    m_specularfplot_core::surface_plot
    m_terminalfplot_core::plot
    m_ticsinfplot_core::plot
    m_titlefplot_core::plotprivate
    m_transparencyfplot_core::surface_plot
    m_uselightingfplot_core::surface_plot
    m_xaxisfplot_core::plot_3dprivate
    m_yaxisfplot_core::plot_3d
    m_zaxisfplot_core::plot_3d
    m_zintersectfplot_core::plot_3d
    p3d_clean_upp3d_clean_upfplot_core::plot_3d
    popplt_pop_datafplot_core::plot
    pop_arrowplt_pop_arrowfplot_core::plot
    pop_labelplt_pop_labelfplot_core::plot
    pushplt_push_datafplot_core::plot
    push_arrowplt_push_arrowfplot_core::plot
    push_labelplt_push_labelfplot_core::plot
    save_fileplt_savefplot_core::plot
    setplt_setfplot_core::plot
    set_allow_smoothingsurf_set_smoothfplot_core::surface_plot
    set_arrowplt_set_arrowfplot_core::plot
    set_axis_equalplt_set_axis_equalfplot_core::plot
    set_azimuthp3d_set_azimuthfplot_core::plot_3d
    set_colormapplt_set_colormapfplot_core::plot
    set_coordinate_systemp3d_set_csysfplot_core::plot_3d
    set_draw_borderplt_set_draw_borderfplot_core::plot
    set_elevationp3d_set_elevationfplot_core::plot_3d
    set_font_nameplt_set_fontfplot_core::plot
    set_font_sizeplt_set_font_sizefplot_core::plot
    set_labelplt_set_labelfplot_core::plot
    set_light_intensitysurf_set_light_intensityfplot_core::surface_plot
    set_show_colorbarplt_set_show_colorbarfplot_core::plot
    set_show_contourssurf_set_show_contoursfplot_core::surface_plot
    set_show_gridlinesplt_set_show_gridfplot_core::plot
    set_show_hiddensurf_set_show_hiddenfplot_core::surface_plot
    set_specular_intensitysurf_set_specular_intensityfplot_core::surface_plot
    set_tics_inwardplt_set_tics_infplot_core::plot
    set_titleplt_set_titlefplot_core::plot
    set_transparencysurf_set_transparencyfplot_core::surface_plot
    set_use_lightingsurf_set_use_lightingfplot_core::surface_plot
    set_use_map_viewp3d_set_use_map_viewfplot_core::plot_3d
    set_z_intersect_xyp3d_set_z_axis_intersectfplot_core::plot_3d
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1surface__plot.html b/docs/html/structfplot__core_1_1surface__plot.html deleted file mode 100644 index 655b70f..0000000 --- a/docs/html/structfplot__core_1_1surface__plot.html +++ /dev/null @@ -1,1050 +0,0 @@ - - - - - - - -fplot: fplot_core::surface_plot Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::surface_plot Type Reference
    -
    -
    - -

    A plot object defining a 3D surface plot. - More...

    -
    -Inheritance diagram for fplot_core::surface_plot:
    -
    -
    - - -fplot_core::plot_3d -fplot_core::plot -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public initialize surf_init
     Cleans up resources held by the surface_plot object.
     
    procedure, public get_show_hidden surf_get_show_hidden
     Gets a value indicating if hidden lines should be shown.
     
    procedure, public set_show_hidden surf_set_show_hidden
     Sets a value indicating if hidden lines should be shown.
     
    procedure, public get_command_string surf_get_cmd
     Gets the GNUPLOT command string to represent this plot_3d object.
     
    procedure, public get_allow_smoothing surf_get_smooth
     Gets a value determining if the plotted surfaces should be smoothed.
     
    procedure, public set_allow_smoothing surf_set_smooth
     Sets a value determining if the plotted surfaces should be smoothed.
     
    procedure, public get_show_contours surf_get_show_contours
     Gets a value determining if a contour plot should be drawn in conjunction with the surface plot.
     
    procedure, public set_show_contours surf_set_show_contours
     Sets a value determining if a contour plot should be drawn in conjunction with the surface plot.
     
    procedure, public get_use_lighting surf_get_use_lighting
     Gets a value indicating if lighting, beyond the ambient light source, is to be used.
     
    procedure, public set_use_lighting surf_set_use_lighting
     Sets a value indicating if lighting, beyond the ambient light source, is to be used.
     
    procedure, public get_light_intensity surf_get_light_intensity
     Gets the ratio of the strength of the light source relative to the ambient light.
     
    procedure, public set_light_intensity surf_set_light_intensity
     Sets the ratio of the strength of the light source relative to the ambient light.
     
    procedure, public get_specular_intensity surf_get_specular_intensity
     Gets the ratio of the strength of the specular light source relative to the ambient light.
     
    procedure, public set_specular_intensity surf_set_specular_intensity
     Sets the ratio of the strength of the specular light source relative to the ambient light.
     
    procedure, public get_transparency surf_get_transparency
     Gets a factor defining the transparency of plotted surfaces.
     
    procedure, public set_transparency surf_set_transparency
     Sets a factor defining the transparency of plotted surfaces.
     
    - Public Member Functions inherited from fplot_core::plot_3d
    final p3d_clean_up p3d_clean_up
     Cleans up resources held by the plot_3d object.
     
    procedure, public initialize p3d_init
     Initializes the plot_3d object.
     
    procedure, public get_x_axis p3d_get_x_axis
     Gets the x-axis object.
     
    procedure, public get_y_axis p3d_get_y_axis
     Gets the y-axis object.
     
    procedure, public get_z_axis p3d_get_z_axis
     Gets the z-axis object.
     
    procedure, public get_elevation p3d_get_elevation
     Gets the plot elevation angle.
     
    procedure, public set_elevation p3d_set_elevation
     Sets the plot elevation angle.
     
    procedure, public get_azimuth p3d_get_azimuth
     Gets the plot azimuth angle.
     
    procedure, public set_azimuth p3d_set_azimuth
     Sets the plot azimuth angle.
     
    procedure, public get_z_intersect_xy p3d_get_z_axis_intersect
     Gets a value determining if the z-axis should intersect the x-y plane.
     
    procedure, public set_z_intersect_xy p3d_set_z_axis_intersect
     Sets a value determining if the z-axis should intersect the x-y plane.
     
    procedure, public get_use_map_view p3d_get_use_map_view
     Gets a value determining if the view should be set to a 2D map view. If true, the azimuth and elevation terms are ignored.
     
    procedure, public set_use_map_view p3d_set_use_map_view
     Sets a value determining if the view should be set to a 2D map view. If true, the azimuth and elevation terms are ignored.
     
    procedure, public get_coordinate_system p3d_get_csys
     Gets a value determining the coordinate system.
     
    procedure, public set_coordinate_system p3d_set_csys
     Sets a value determining the coordinate system.
     
    - Public Member Functions inherited from fplot_core::plot
    procedure, public free_resources plt_clean_up
     Cleans up resources held by the plot object. Inheriting classes are expected to call this routine to free internally held resources.
     
    procedure, public initialize plt_init
     Initializes the plot object.
     
    procedure, public get_title plt_get_title
     Gets the plot's title.
     
    procedure, public set_title plt_set_title
     Sets the plot's title.
     
    procedure, public is_title_defined plt_has_title
     Gets a value determining if a title has been defined for the plot object.
     
    procedure, public get_legend plt_get_legend
     Gets the plot's legend object.
     
    procedure, public get_count plt_get_count
     Gets the number of stored plot_data objects.
     
    procedure, public push plt_push_data
     Pushes a plot_data object onto the stack.
     
    procedure, public pop plt_pop_data
     Pops the last plot_data object from the stack.
     
    procedure, public clear_all plt_clear_all
     Removes all plot_data objects from the plot.
     
    procedure, public get plt_get
     Gets a pointer to the requested plot_data object.
     
    procedure, public set plt_set
     Sets the requested plot_data object into the plot.
     
    procedure, public get_terminal plt_get_term
     Gets the GNUPLOT terminal object.
     
    procedure, public get_show_gridlines plt_get_show_grid
     Gets a flag determining if the grid lines should be shown.
     
    procedure, public set_show_gridlines plt_set_show_grid
     Sets a flag determining if the grid lines should be shown.
     
    procedure, public draw plt_draw
     Launches GNUPLOT and draws the plot per the current state of the command list.
     
    procedure, public save_file plt_save
     Saves a GNUPLOT command file.
     
    procedure, public get_font_name plt_get_font
     Gets the name of the font used for plot text.
     
    procedure, public set_font_name plt_set_font
     Sets the name of the font used for plot text.
     
    procedure, public get_font_size plt_get_font_size
     Gets the size of the font used by the plot.
     
    procedure, public set_font_size plt_set_font_size
     Sets the size of the font used by the plot.
     
    procedure, public get_tics_inward plt_get_tics_in
     Gets a value determining if the axis tic marks should point inwards.
     
    procedure, public set_tics_inward plt_set_tics_in
     Sets a value determining if the axis tic marks should point inwards.
     
    procedure, public get_draw_border plt_get_draw_border
     Gets a value determining if the border should be drawn.
     
    procedure, public set_draw_border plt_set_draw_border
     Sets a value determining if the border should be drawn.
     
    procedure, public push_label plt_push_label
     Adds a label to the plot.
     
    procedure, public pop_label plt_pop_label
     Removes the last label from the plot.
     
    procedure, public get_label plt_get_label
     Gets the requested plot_label from the plot.
     
    procedure, public set_label plt_set_label
     Sets the specified plot_label object.
     
    procedure, public get_label_count plt_get_label_count
     Gets the number of plot_label objects belonging to the plot.
     
    procedure, public clear_all_labels plt_clear_labels
     Clears all plot_label objects from the plot.
     
    procedure, public get_axis_equal plt_get_axis_equal
     Gets a flag determining if the axes should be equally scaled.
     
    procedure, public set_axis_equal plt_set_axis_equal
     Sets a flag determining if the axes should be equally scaled.
     
    procedure, public get_colormap plt_get_colormap
     Gets a pointer to the colormap object.
     
    procedure, public set_colormap plt_set_colormap
     Sets the colormap object.
     
    procedure, public get_show_colorbar plt_get_show_colorbar
     Gets a value determining if the colorbar should be shown.
     
    procedure, public set_show_colorbar plt_set_show_colorbar
     Sets a value determining if the colorbar should be shown.
     
    procedure, public push_arrow plt_push_arrow
     Pushes a new plot_arrow object onto the plot.
     
    procedure, public pop_arrow plt_pop_arrow
     Pops a plot_arrow object from the plot.
     
    procedure, public get_arrow plt_get_arrow
     Gets a pointer to the requested plot_arrow object.
     
    procedure, public set_arrow plt_set_arrow
     Sets a plot_arrow into the plot.
     
    procedure, public get_arrow_count plt_get_arrow_count
     Gets the number of plot_arrow objects held by the plot object.
     
    procedure, public clear_arrows plt_clear_arrows
     Clears all plot_arrow objects from the plot.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    logical m_smooth = .true.
     The colormap.
     
    logical m_contour = .false.
     Show a contour plot as well as the surface plot?
     
    logical m_uselighting = .false.
     Use lighting?
     
    real(real32) m_lightintensity = 0.5
     Lighting intensity (0 - 1) - default is 0.5.
     
    real(real32) m_specular = 0.5
     Specular highlight intensity (0 - 1)
     
    real(real32) m_transparency = 1.0
     Defines the translucency value. Must exist on (0, 1].
     
    - Public Attributes inherited from fplot_core::plot_3d
    type(y_axis), pointer m_yaxis => null()
     The y-axis.
     
    type(z_axis), pointer m_zaxis => null()
     The z-axis.
     
    real(real64) m_elevation = 60.0d0
     The elevation angle.
     
    real(real64) m_azimuth = 30.0d0
     The azimuth.
     
    logical m_zintersect = .true.
     Z-axis intersect X-Y plane?
     
    logical m_setmap = .false.
     Set map projection.
     
    integer(int32) m_csys = COORDINATES_CARTESIAN
     Plot coordinate system.
     
    - Public Attributes inherited from fplot_core::plot
    logical m_hastitle = .false.
     Has a title?
     
    class(terminal), pointer m_terminal => null()
     The GNUPLOT terminal object to target.
     
    type(list) m_data
     A collection of plot_data items to plot.
     
    type(legend), pointer m_legend => null()
     The legend.
     
    logical m_showgrid = .true.
     Show grid lines?
     
    logical m_ticsin = .true.
     Point tic marks in?
     
    logical m_drawborder = .true.
     Draw the border?
     
    type(list) m_labels
     A collection of plot_label items to draw.
     
    integer(int32) m_colorindex = 1
     The color index to use for automatic line coloring for scatter plots.
     
    logical m_axisequal = .false.
     Determines if the axes should be scaled proportionally.
     
    class(colormap), pointer m_colormap
     The colormap.
     
    logical m_showcolorbar = .true.
     Show the colorbar?
     
    type(list) m_arrows
     A collection of plot_arrow items to draw.
     
    - - - - -

    -Private Attributes

    logical m_showhidden = .false.
     Show hidden lines.
     
    -

    Detailed Description

    -

    A plot object defining a 3D surface plot.

    - -

    Definition at line 5323 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_allow_smoothing()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::get_allow_smoothing
    -
    - -

    Gets a value determining if the plotted surfaces should be smoothed.

    -
    Syntax
    pure logical function get_allow_smoothing(class(surface_plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot object.
    -
    -
    -
    Returns
    Returns true if the surface should be smoothed; else, false.
    - -

    Definition at line 5413 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::surface_plot::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this plot_3d object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(surface_plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot object.
    -
    -
    -
    Returns
    The command string.
    - -

    Reimplemented from fplot_core::plot_3d.

    - -

    Definition at line 5402 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_light_intensity()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::get_light_intensity
    -
    - -

    Gets the ratio of the strength of the light source relative to the ambient light.

    -
    Syntax
    pure real(real32) function get_light_intensity(class(surface_plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot object.
    -
    -
    -
    Returns
    The light intensity ratio.
    - -

    Definition at line 5481 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_show_contours()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::get_show_contours
    -
    - -

    Gets a value determining if a contour plot should be drawn in conjunction with the surface plot.

    -
    Syntax
    pure logical function get_show_contours(class(surface_plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot object.
    -
    -
    -
    Returns
    Returns true if the contour plot should be drawn; else, false to only draw the surface.
    - -

    Definition at line 5436 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_show_hidden()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::get_show_hidden
    -
    - -

    Gets a value indicating if hidden lines should be shown.

    -
    Syntax
    pure logical function get_show_hidden(class(surface_plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot object.
    -
    -
    -
    Returns
    Returns true if hidden lines should be shown; else, false.
    - -

    Definition at line 5381 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_specular_intensity()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::get_specular_intensity
    -
    - -

    Gets the ratio of the strength of the specular light source relative to the ambient light.

    -
    Syntax
    pure real(real32) function get_specular_intensity(class(surface_plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot object.
    -
    -
    -
    Returns
    The specular light intensity ratio.
    - -

    Definition at line 5504 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_transparency()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::get_transparency
    -
    - -

    Gets a factor defining the transparency of plotted surfaces.

    -
    Syntax
    pure real(real32) function get_transparency(class(surface_plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot object.
    -
    -
    -
    Returns
    A value existing on the set (0 1] defining the level of transparency. A value of 1 indicates a fully opaque surface.
    - -

    Definition at line 5528 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_lighting()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::get_use_lighting
    -
    - -

    Gets a value indicating if lighting, beyond the ambient light source, is to be used.

    -
    Syntax
    pure logical function get_use_lighting(class(surface_plot) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot object.
    -
    -
    -
    Returns
    True if lighting should be used; else, false.
    - -

    Definition at line 5459 of file fplot_core.f90.

    - -
    -
    - -

    ◆ initialize()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::initialize
    -
    - -

    Cleans up resources held by the surface_plot object.

    -
    Parameters
    - - -
    [in,out]thisThe surface_plot object.
    -
    -
    -

    Initializes the surface_plot object.

    -
    Syntax
    subroutine initialize(class(surface_plot) this, optional integer(int32) term, optional class(errors) err)
    -
    -
    Parameters
    - - - - - -
    [in]thisThe surface_plot object.
    [in]termAn optional input that is used to define the terminal. The default terminal is a WXT terminal. The acceptable inputs are:
      -
    • GNUPLOT_TERMINAL_PNG
    • -
    • GNUPLOT_TERMINAL_QT
    • -
    • GNUPLOT_TERMINAL_WIN32
    • -
    • GNUPLOT_TERMINAL_WXT
    • -
    • GNUPLOT_TERMINAL_LATEX
    • -
    -
    [in]fnameA filename to pass to the terminal in the event the terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG).
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    -
    -
    -
    - -

    Definition at line 5371 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_allow_smoothing()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::set_allow_smoothing
    -
    - -

    Sets a value determining if the plotted surfaces should be smoothed.

    -
    Syntax
    subroutine set_allow_smoothing(class(surface_plot) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe surface_plot object.
    [in]xSet to true if the surface should be smoothed; else, false.
    -
    -
    - -

    Definition at line 5424 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_light_intensity()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::set_light_intensity
    -
    - -

    Sets the ratio of the strength of the light source relative to the ambient light.

    -
    Syntax
    subroutine set_light_intensity(class(surface_plot) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe surface_plot object.
    [in]xThe light intensity ratio. The value must exist in the set [0, 1]; else, it will be clipped to lie within the range.
    -
    -
    - -

    Definition at line 5493 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_show_contours()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::set_show_contours
    -
    - -

    Sets a value determining if a contour plot should be drawn in conjunction with the surface plot.

    -
    Syntax
    subroutine set_show_contours(class(surface_plot) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe surface_plot object.
    [in]xSet to true if the contour plot should be drawn; else, false to only draw the surface.
    -
    -
    - -

    Definition at line 5448 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_show_hidden()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::set_show_hidden
    -
    - -

    Sets a value indicating if hidden lines should be shown.

    -
    Syntax
    subroutine set_show_hidden(class(surface_plot) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe surface_plot object.
    [in]xSet to true if hidden lines should be shown; else, false.
    -
    -
    - -

    Definition at line 5391 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_specular_intensity()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::set_specular_intensity
    -
    - -

    Sets the ratio of the strength of the specular light source relative to the ambient light.

    -
    Syntax
    subroutine set_specular_intensity(class(surface_plot) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe surface_plot object.
    [in]xThe specular light intensity ratio. The value must exist in the set [0, 1]; else, it will be clipped to lie within the range.
    -
    -
    - -

    Definition at line 5517 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_transparency()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::set_transparency
    -
    - -

    Sets a factor defining the transparency of plotted surfaces.

    -
    Syntax
    subroutine set_transparency(class(surface_plot) this, real(real32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe surface_plot object.
    [in]xA value existing on the set (0 1] defining the level of transparency. A value of 1 indicates a fully opaque surface.
    - Any values supplied outside of the set are clipped to fit within (0 1].
    -
    -
    - -

    Definition at line 5541 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_lighting()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot::set_use_lighting
    -
    - -

    Sets a value indicating if lighting, beyond the ambient light source, is to be used.

    -
    Syntax
    subroutine set_use_lighting(class(surface_plot) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe surface_plot object.
    [in]xTrue if lighting should be used; else, false.
    -
    -
    - -

    Definition at line 5470 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_contour

    - -
    -
    - - - - -
    logical fplot_core::surface_plot::m_contour = .false.
    -
    - -

    Show a contour plot as well as the surface plot?

    - -

    Definition at line 5332 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_lightintensity

    - -
    -
    - - - - -
    real(real32) fplot_core::surface_plot::m_lightintensity = 0.5
    -
    - -

    Lighting intensity (0 - 1) - default is 0.5.

    - -

    Definition at line 5338 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_showhidden

    - -
    -
    - - - - - -
    - - - - -
    logical fplot_core::surface_plot::m_showhidden = .false.
    -
    -private
    -
    - -

    Show hidden lines.

    - -

    Definition at line 5326 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_smooth

    - -
    -
    - - - - -
    logical fplot_core::surface_plot::m_smooth = .true.
    -
    - -

    The colormap.

    -

    Smooth the surface?

    - -

    Definition at line 5330 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_specular

    - -
    -
    - - - - -
    real(real32) fplot_core::surface_plot::m_specular = 0.5
    -
    - -

    Specular highlight intensity (0 - 1)

    - -

    Definition at line 5340 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_transparency

    - -
    -
    - - - - -
    real(real32) fplot_core::surface_plot::m_transparency = 1.0
    -
    - -

    Defines the translucency value. Must exist on (0, 1].

    - -

    Definition at line 5342 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_uselighting

    - -
    -
    - - - - -
    logical fplot_core::surface_plot::m_uselighting = .false.
    -
    - -

    Use lighting?

    - -

    Definition at line 5336 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1surface__plot.js b/docs/html/structfplot__core_1_1surface__plot.js deleted file mode 100644 index 1be69a3..0000000 --- a/docs/html/structfplot__core_1_1surface__plot.js +++ /dev/null @@ -1,26 +0,0 @@ -var structfplot__core_1_1surface__plot = -[ - [ "get_allow_smoothing", "structfplot__core_1_1surface__plot.html#abb567cd750a1388b1130514713fc8c38", null ], - [ "get_command_string", "structfplot__core_1_1surface__plot.html#a1fc12a0c4034588eb95d67b8dc3d010b", null ], - [ "get_light_intensity", "structfplot__core_1_1surface__plot.html#a23afb86c55364a3669f9e995d256c55c", null ], - [ "get_show_contours", "structfplot__core_1_1surface__plot.html#a3a41ac572a7b31cf23e582ee8023d651", null ], - [ "get_show_hidden", "structfplot__core_1_1surface__plot.html#ab30c5358ab2f8852753150774befd898", null ], - [ "get_specular_intensity", "structfplot__core_1_1surface__plot.html#a88ad210fb239e4ef9943c805b73add68", null ], - [ "get_transparency", "structfplot__core_1_1surface__plot.html#a16dbdc679951a0f58e449349d7d5c3c0", null ], - [ "get_use_lighting", "structfplot__core_1_1surface__plot.html#a66de771aa5424068059cc90db5150393", null ], - [ "initialize", "structfplot__core_1_1surface__plot.html#afdc405472449e47ac82e3cc7af3bd63d", null ], - [ "set_allow_smoothing", "structfplot__core_1_1surface__plot.html#a9e04fc534b0506d32401d21a695efbae", null ], - [ "set_light_intensity", "structfplot__core_1_1surface__plot.html#aadd6772415d91480a12ee88a49216cc7", null ], - [ "set_show_contours", "structfplot__core_1_1surface__plot.html#a8aeebb0ceda2d5f18c960bea089f2c58", null ], - [ "set_show_hidden", "structfplot__core_1_1surface__plot.html#a4dfb89ce7bea300b0baf615df28666be", null ], - [ "set_specular_intensity", "structfplot__core_1_1surface__plot.html#ab40b141891860f87ec370bba31d83b8a", null ], - [ "set_transparency", "structfplot__core_1_1surface__plot.html#a94436759af21d4fcd87a2358e4afe569", null ], - [ "set_use_lighting", "structfplot__core_1_1surface__plot.html#a238591a3e35fea687b802ee34d3f3bdf", null ], - [ "m_contour", "structfplot__core_1_1surface__plot.html#a07676b9f7be385dbfb2fcc9c547e86e1", null ], - [ "m_lightintensity", "structfplot__core_1_1surface__plot.html#a899848b6087f3c257c23d22779ff86b8", null ], - [ "m_showhidden", "structfplot__core_1_1surface__plot.html#ac881849ed85ad0b25e59c00204aa0960", null ], - [ "m_smooth", "structfplot__core_1_1surface__plot.html#ac54f0f8105db3eb118eb8a05b7ca7857", null ], - [ "m_specular", "structfplot__core_1_1surface__plot.html#a33443c0ebe2f233cdeb90a2eed6267ad", null ], - [ "m_transparency", "structfplot__core_1_1surface__plot.html#acf55e49e1212536b0bca656c8d5f302d", null ], - [ "m_uselighting", "structfplot__core_1_1surface__plot.html#ad25c21f74ffc0f3b18bce8207621ba70", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1surface__plot.png b/docs/html/structfplot__core_1_1surface__plot.png deleted file mode 100644 index 6eee306..0000000 Binary files a/docs/html/structfplot__core_1_1surface__plot.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1surface__plot__data-members.html b/docs/html/structfplot__core_1_1surface__plot__data-members.html deleted file mode 100644 index 6ec1871..0000000 --- a/docs/html/structfplot__core_1_1surface__plot__data-members.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - - - - - - diff --git a/docs/html/structfplot__core_1_1surface__plot__data.html b/docs/html/structfplot__core_1_1surface__plot__data.html deleted file mode 100644 index 631843f..0000000 --- a/docs/html/structfplot__core_1_1surface__plot__data.html +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - -fplot: fplot_core::surface_plot_data Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::surface_plot_data Type Reference
    -
    -
    - -

    Provides a three-dimensional surface plot data set. - More...

    -
    -Inheritance diagram for fplot_core::surface_plot_data:
    -
    -
    - - -fplot_core::plot_data -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_size surfd_get_size
     Gets the size of the stored data set.
     
    procedure, public get_x surfd_get_x
     Gets the requested X data point.
     
    procedure, public set_x surfd_set_x
     Sets the requested X data point.
     
    procedure, public get_y surfd_get_y
     Gets the requested Y data point.
     
    procedure, public set_y surfd_set_y
     Sets the requested Y data point.
     
    procedure, public get_z surfd_get_z
     Gets the requested Z data point.
     
    procedure, public set_z surfd_set_z
     Sets the requested Z data point.
     
    procedure, public get_use_wireframe surfd_get_wireframe
     Gets a value determining if a wireframe mesh should be displayed.
     
    procedure, public set_use_wireframe surfd_set_wireframe
     Sets a value determining if a wireframe mesh should be displayed.
     
    procedure, public get_command_string surfd_get_cmd
     Gets the GNUPLOT command string to represent this surface_plot_data object.
     
    procedure, public get_data_string surfd_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    procedure, public define_data surfd_set_data_1
     Defines the data set.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - - - - - - - -

    -Public Attributes

    real(real64), dimension(:,:), allocatable m_y
     Stores the y-coordinate data.
     
    real(real64), dimension(:,:), allocatable m_z
     Stores the z-coordinate data.
     
    logical m_wireframe = .false.
     Set to true to display a wireframe of the surface; else, just a smooth surface will be drawn.
     
    - - - - -

    -Private Attributes

    real(real64), dimension(:,:), allocatable m_x
     Stores the x-coordinate data.
     
    -

    Detailed Description

    -

    Provides a three-dimensional surface plot data set.

    - -

    Definition at line 4599 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::define_data
    -
    - -

    Defines the data set.

    -
    Syntax
    subroutine define_data(class(surface_plot_data) this, real(real64) x(:,:), real(real64) y(:,:), real(real64) z(:,:))
    -
    -
    Parameters
    - - - - - - -
    [in,out]thisThe surface_plot_data object.
    [in]xAn M-by-N matrix containing the x-coordinate data.
    [in]yAn M-by-N matrix containing the y-coordinate data.
    [in]zAn M-by-N matrix containing the z-coordinate data.
    [out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if x, y, and z are not the same size.
    • -
    -
    -
    -
    - -

    Definition at line 4760 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::surface_plot_data::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this surface_plot_data object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(surface_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot_data object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 4729 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::surface_plot_data::get_data_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string containing the actual data to plot.

    -
    Syntax
    character(len = :) function, allocatable get_data_string(class(surface_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot_data object.
    -
    -
    -
    Returns
    The GNUPLOT command string.
    - -

    Implements fplot_core::plot_data.

    - -

    Definition at line 4740 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::get_size
    -
    - -

    Gets the size of the stored data set.

    -
    Syntax
    pure integer(int32) function get_size(class(surface_plot_data) this, integer(int32) dim)
    -
    -
    Parameters
    - - - -
    [in]thisThe suface_plot_data object.
    [in]dimThe dimension of interest. Notice, data is stored as a 2D matrix (i.e. only 1 and 2 are valid inputs).
    -
    -
    -
    Returns
    The size of the requested dimension.
    - -

    Definition at line 4622 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_wireframe()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::get_use_wireframe
    -
    - -

    Gets a value determining if a wireframe mesh should be displayed.

    -
    Syntax
    pure logical function get_wireframe(class(surface_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe surface_plot_data object.
    -
    -
    -
    Returns
    Returns true if a wireframe mesh should be displayed; else, false to display a solid surface.
    - -

    Definition at line 4706 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_x()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::get_x
    -
    - -

    Gets the requested X data point.

    -
    Syntax
    pure real(real64) function get_x(class(surface_plot_data) this, integer(int32) i, integer(int32) j)
    -
    -
    Parameters
    - - - - -
    [in]thisThe surface_plot_data object.
    [in]iThe row index.
    [in]jThe column index.
    -
    -
    -
    Returns
    The value.
    - -

    Definition at line 4634 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_y()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::get_y
    -
    - -

    Gets the requested Y data point.

    -
    Syntax
    pure real(real64) function get_y(class(surface_plot_data) this, integer(int32) i, integer(int32) j)
    -
    -
    Parameters
    - - - - -
    [in]thisThe surface_plot_data object.
    [in]iThe row index.
    [in]jThe column index.
    -
    -
    -
    Returns
    The value.
    - -

    Definition at line 4658 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_z()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::get_z
    -
    - -

    Gets the requested Z data point.

    -
    Syntax
    pure real(real64) function get_z(class(surface_plot_data) this, integer(int32) i, integer(int32) j)
    -
    -
    Parameters
    - - - - -
    [in]thisThe surface_plot_data object.
    [in]iThe row index.
    [in]jThe column index.
    -
    -
    -
    Returns
    The value.
    - -

    Definition at line 4682 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_wireframe()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::set_use_wireframe
    -
    - -

    Sets a value determining if a wireframe mesh should be displayed.

    -
    Syntax
    subroutine set_wireframe(class(surface_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe surface_plot_data object.
    [in]xSet to true if a wireframe mesh should be displayed; else, false to display a solid surface.
    -
    -
    - -

    Definition at line 4718 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_x()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::set_x
    -
    - -

    Sets the requested X data point.

    -
    Syntax
    subroutine set_x(class(surface_plot_data) this, integer(int32) i, integer(int32) j, real(real64) x)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe surface_plot_data object.
    [in]iThe row index.
    [in]jThe column index.
    [in]xThe value.
    -
    -
    - -

    Definition at line 4646 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_y()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::set_y
    -
    - -

    Sets the requested Y data point.

    -
    Syntax
    subroutine set_y(class(surface_plot_data) this, integer(int32) i, integer(int32) j, real(real64) x)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe surface_plot_data object.
    [in]iThe row index.
    [in]jThe column index.
    [in]xThe value.
    -
    -
    - -

    Definition at line 4670 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_z()

    - -
    -
    - - - - -
    procedure, public fplot_core::surface_plot_data::set_z
    -
    - -

    Sets the requested Z data point.

    -
    Syntax
    subroutine set_z(class(surface_plot_data) this, integer(int32) i, integer(int32) j, real(real64) x)
    -
    -
    Parameters
    - - - - - -
    [in,out]thisThe surface_plot_data object.
    [in]iThe row index.
    [in]jThe column index.
    [in]xThe value.
    -
    -
    - -

    Definition at line 4694 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_wireframe

    - -
    -
    - - - - -
    logical fplot_core::surface_plot_data::m_wireframe = .false.
    -
    - -

    Set to true to display a wireframe of the surface; else, just a smooth surface will be drawn.

    - -

    Definition at line 4609 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_x

    - -
    -
    - - - - - -
    - - - - -
    real(real64), dimension(:,:), allocatable fplot_core::surface_plot_data::m_x
    -
    -private
    -
    - -

    Stores the x-coordinate data.

    - -

    Definition at line 4602 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_y

    - -
    -
    - - - - -
    real(real64), dimension(:,:), allocatable fplot_core::surface_plot_data::m_y
    -
    - -

    Stores the y-coordinate data.

    - -

    Definition at line 4604 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_z

    - -
    -
    - - - - -
    real(real64), dimension(:,:), allocatable fplot_core::surface_plot_data::m_z
    -
    - -

    Stores the z-coordinate data.

    - -

    Definition at line 4606 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1surface__plot__data.js b/docs/html/structfplot__core_1_1surface__plot__data.js deleted file mode 100644 index 08ed332..0000000 --- a/docs/html/structfplot__core_1_1surface__plot__data.js +++ /dev/null @@ -1,19 +0,0 @@ -var structfplot__core_1_1surface__plot__data = -[ - [ "define_data", "structfplot__core_1_1surface__plot__data.html#a1dbe06af4e164ada4b80277e70d0320e", null ], - [ "get_command_string", "structfplot__core_1_1surface__plot__data.html#ac7a97a7065529fbf23cc78ed003d3e6b", null ], - [ "get_data_string", "structfplot__core_1_1surface__plot__data.html#a41149a1d16e0dfbdeda8667abf0f50c2", null ], - [ "get_size", "structfplot__core_1_1surface__plot__data.html#a3a90bfbfccf24c272e1bd151167cf8ae", null ], - [ "get_use_wireframe", "structfplot__core_1_1surface__plot__data.html#a0d2cebb75afa92984e700aaa36251683", null ], - [ "get_x", "structfplot__core_1_1surface__plot__data.html#aaf4084060174d016296cf8cedc37b34a", null ], - [ "get_y", "structfplot__core_1_1surface__plot__data.html#ae6395f27b33c147226f04afdd4d08471", null ], - [ "get_z", "structfplot__core_1_1surface__plot__data.html#a9405a52b7728bef74de50586d23b2f28", null ], - [ "set_use_wireframe", "structfplot__core_1_1surface__plot__data.html#a2dd4d9da621cc049e8d9acb772d64b27", null ], - [ "set_x", "structfplot__core_1_1surface__plot__data.html#a2ef34c8a632cf6fdb9f6247eaf817d57", null ], - [ "set_y", "structfplot__core_1_1surface__plot__data.html#a4d709bdb48e019c6a7f167e2712a11e9", null ], - [ "set_z", "structfplot__core_1_1surface__plot__data.html#a32ff64443790d15faf76401d2c06c0f9", null ], - [ "m_wireframe", "structfplot__core_1_1surface__plot__data.html#aa7856569c70fa73c451702de74e3fab6", null ], - [ "m_x", "structfplot__core_1_1surface__plot__data.html#aab0f3a84a1a1f29f56da00e954b384e6", null ], - [ "m_y", "structfplot__core_1_1surface__plot__data.html#a82294e25bd1321370f5f55e2051bd000", null ], - [ "m_z", "structfplot__core_1_1surface__plot__data.html#ab528d77583bf8dcde5ab0182f807e6d6", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1surface__plot__data.png b/docs/html/structfplot__core_1_1surface__plot__data.png deleted file mode 100644 index 0e3318f..0000000 Binary files a/docs/html/structfplot__core_1_1surface__plot__data.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1terminal-members.html b/docs/html/structfplot__core_1_1terminal-members.html deleted file mode 100644 index 9713a6c..0000000 --- a/docs/html/structfplot__core_1_1terminal-members.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::terminal Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1terminal.html b/docs/html/structfplot__core_1_1terminal.html deleted file mode 100644 index 9c37a89..0000000 --- a/docs/html/structfplot__core_1_1terminal.html +++ /dev/null @@ -1,735 +0,0 @@ - - - - - - - -fplot: fplot_core::terminal Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::terminal Type Referenceabstract
    -
    -
    - -

    Defines a GNUPLOT terminal object. - More...

    -
    -Inheritance diagram for fplot_core::terminal:
    -
    -
    - - -fplot_core::plot_object -fplot_core::latex_terminal -fplot_core::png_terminal -fplot_core::qt_terminal -fplot_core::windows_terminal -fplot_core::wxt_terminal - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_window_width term_get_window_width
     Gets the width of the plot window.
     
    procedure, public set_window_width term_set_window_width
     Sets the width of the plot window.
     
    procedure, public get_window_height term_get_window_height
     Gets the height of the plot window.
     
    procedure, public set_window_height term_set_window_height
     Sets the height of the plot window.
     
    procedure, public get_command_string term_get_command_string
     Returns the appropriate GNUPLOT command string to establish appropriate parameters.
     
    procedure, public get_plot_window_number term_get_plot_window_number
     Gets the targeted plot window number.
     
    procedure, public set_plot_window_number term_set_plot_window_number
     Sets the targeted plot window number.
     
    procedure, public get_title term_get_title
     Gets the plot window's title.
     
    procedure, public set_title term_set_title
     Sets the plot window's title.
     
    procedure, public get_font_name term_get_font_name
     Gets the name of the font used for text displayed by the graph.
     
    procedure, public set_font_name term_set_font_name
     Sets the name of the font used for text displayed by the graph.
     
    procedure, public get_font_size term_get_font_size
     Gets the size of the font used by the graph.
     
    procedure, public set_font_size term_set_font_size
     Sets the size of the font used by the graph.
     
    procedure(term_get_string_result), deferred, public get_id_string term_get_string_result
     Gets the GNUPLOT terminal identification string.
     
    - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    integer(int32) m_windowwidth = GNUPLOT_DEFAULT_WINDOW_WIDTH
     The window width, in pixels.
     
    integer(int32) m_termid = 0
     The plot window number.
     
    character(len=gnuplot_max_label_lengthm_title = ""
     The plot window title.
     
    logical m_hastitle = .false.
     Determines if a plot title is defined.
     
    character(len=gnuplot_max_label_lengthm_fontname = GNUPLOT_DEFAULT_FONTNAME
     The font used by the graph.
     
    integer(int32) m_fontsize = GNUPLOT_DEFAULT_FONT_SIZE
     The size of the font used by the graph.
     
    - - - - -

    -Private Attributes

    integer(int32) m_windowheight = GNUPLOT_DEFAULT_WINDOW_HEIGHT
     The window height, in pixels.
     
    -

    Detailed Description

    -

    Defines a GNUPLOT terminal object.

    - -

    Definition at line 1197 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::terminal::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to establish appropriate parameters.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe terminal object.
    -
    -
    -
    Returns
    The GNUPLOT command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 1271 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_font_name()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::get_font_name
    -
    - -

    Gets the name of the font used for text displayed by the graph.

    -
    Syntax
    character(len = :) function, allocatable get_font_name(class(terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe terminal object.
    -
    -
    -
    Returns
    The font name.
    - -

    Definition at line 1324 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_font_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::get_font_size
    -
    - -

    Gets the size of the font used by the graph.

    -
    Syntax
    pure integer(int32) function get_font_size(class(terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe terminal object.
    -
    -
    -
    Returns
    The font size, in points.
    - -

    Definition at line 1346 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure(term_get_string_result), deferred, public fplot_core::terminal::get_id_string
    -
    -pure virtual
    -
    - -

    Gets the GNUPLOT terminal identification string.

    - -

    Implemented in fplot_core::png_terminal, fplot_core::qt_terminal, fplot_core::latex_terminal, fplot_core::windows_terminal, and fplot_core::wxt_terminal.

    - -

    Definition at line 1360 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_plot_window_number()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::get_plot_window_number
    -
    - -

    Gets the targeted plot window number.

    -
    Syntax
    pure integer(int32) function get_plot_window_number(class(terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe terminal object.
    -
    -
    -
    Returns
    The plot window number.
    - -

    Definition at line 1281 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_title()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::get_title
    -
    - -

    Gets the plot window's title.

    -
    Syntax
    character(len = :) function, allocatable get_title(class(terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe terminal object.
    -
    -
    -
    Returns
    The title.
    - -

    Definition at line 1303 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_window_height()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::get_window_height
    -
    - -

    Gets the height of the plot window.

    -
    Syntax
    pure integer(int32) function get_window_height(class(terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe terminal object.
    -
    -
    -
    Returns
    The height of the plot window.
    - -

    Definition at line 1247 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_window_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::get_window_width
    -
    - -

    Gets the width of the plot window.

    -
    Syntax
    pure integer(int32) function get_window_width(class(terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe terminal object.
    -
    -
    -
    Returns
    The width of the plot window.
    - -

    Definition at line 1224 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_font_name()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::set_font_name
    -
    - -

    Sets the name of the font used for text displayed by the graph.

    -
    Syntax
    subroutine set_font_name(class(terminal) this, character(len = *) name)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe terminal object.
    [in]nameThe name of the font. If no name is supplied, the name is reset back to its default setting.
    -
    -
    - -

    Definition at line 1336 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_font_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::set_font_size
    -
    - -

    Sets the size of the font used by the graph.

    -
    Syntax
    subroutine set_font_size(class(terminal) this, integer(int32) sz)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe terminal object.
    [in]szThe font size, in points. If a value of zero is provided, the font size is reset to its default value; or, if a negative value is provided, the absolute value of the supplied value is utilized.
    -
    -
    - -

    Definition at line 1358 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_plot_window_number()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::set_plot_window_number
    -
    - -

    Sets the targeted plot window number.

    -
    Syntax
    subroutine set_plot_window_number(class(terminal) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe terminal object.
    [in]xThe plot window number.
    -
    -
    - -

    Definition at line 1292 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_title()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::set_title
    -
    - -

    Sets the plot window's title.

    -
    Syntax
    subroutine set_title(class(terminal) this, character(len = *) txt)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe terminal object.
    [in]txtThe title.
    -
    -
    - -

    Definition at line 1313 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_window_height()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::set_window_height
    -
    - -

    Sets the height of the plot window.

    -
    Syntax
    subroutine set_window_height(class(terminal) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe terminal object.
    [in]xThe height of the plot window. If a value of zero is provided, the window height is reset to its default value; or, if a negative value is provided, the absolute value of the supplied value is utilized.
    -
    -
    - -

    Definition at line 1260 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_window_width()

    - -
    -
    - - - - -
    procedure, public fplot_core::terminal::set_window_width
    -
    - -

    Sets the width of the plot window.

    -
    Syntax
    subroutine set_window_width(class(terminal) this, integer(int32) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe terminal object.
    [in]xThe width of the plot window. If a value of zero is provided, the window width is reset to its default value; or, if a negative value is provided, the absolute value of the supplied value is utilized.
    -
    -
    - -

    Definition at line 1237 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_fontname

    - -
    -
    - - - - -
    character(len = gnuplot_max_label_length) fplot_core::terminal::m_fontname = GNUPLOT_DEFAULT_FONTNAME
    -
    - -

    The font used by the graph.

    - -

    Definition at line 1210 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_fontsize

    - -
    -
    - - - - -
    integer(int32) fplot_core::terminal::m_fontsize = GNUPLOT_DEFAULT_FONT_SIZE
    -
    - -

    The size of the font used by the graph.

    - -

    Definition at line 1213 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_hastitle

    - -
    -
    - - - - -
    logical fplot_core::terminal::m_hastitle = .false.
    -
    - -

    Determines if a plot title is defined.

    - -

    Definition at line 1208 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_termid

    - -
    -
    - - - - -
    integer(int32) fplot_core::terminal::m_termid = 0
    -
    - -

    The plot window number.

    - -

    Definition at line 1204 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_title

    - -
    -
    - - - - -
    character(len = gnuplot_max_label_length) fplot_core::terminal::m_title = ""
    -
    - -

    The plot window title.

    - -

    Definition at line 1206 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_windowheight

    - -
    -
    - - - - - -
    - - - - -
    integer(int32) fplot_core::terminal::m_windowheight = GNUPLOT_DEFAULT_WINDOW_HEIGHT
    -
    -private
    -
    - -

    The window height, in pixels.

    - -

    Definition at line 1200 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_windowwidth

    - -
    -
    - - - - -
    integer(int32) fplot_core::terminal::m_windowwidth = GNUPLOT_DEFAULT_WINDOW_WIDTH
    -
    - -

    The window width, in pixels.

    - -

    Definition at line 1202 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1terminal.js b/docs/html/structfplot__core_1_1terminal.js deleted file mode 100644 index 23bb82e..0000000 --- a/docs/html/structfplot__core_1_1terminal.js +++ /dev/null @@ -1,24 +0,0 @@ -var structfplot__core_1_1terminal = -[ - [ "get_command_string", "structfplot__core_1_1terminal.html#a5167d5b60a3a9dde0ddfdd9bd6a41f9c", null ], - [ "get_font_name", "structfplot__core_1_1terminal.html#a4958475366c740ba22f15aea8ca61efb", null ], - [ "get_font_size", "structfplot__core_1_1terminal.html#a1d21543a70c7aa857b8f6104671d3770", null ], - [ "get_id_string", "structfplot__core_1_1terminal.html#a806a00204a80a6cc2676d2fd05179ba4", null ], - [ "get_plot_window_number", "structfplot__core_1_1terminal.html#a791d7842cbb35ef499cbc9089f5921eb", null ], - [ "get_title", "structfplot__core_1_1terminal.html#ac706187861e60e83f2d327ed86175bb3", null ], - [ "get_window_height", "structfplot__core_1_1terminal.html#ab368a38267c496220bea42ea79be8413", null ], - [ "get_window_width", "structfplot__core_1_1terminal.html#adc47a1a1c7156f8f2adf8510193ee26c", null ], - [ "set_font_name", "structfplot__core_1_1terminal.html#acd92729e62790df27b3c1003ef821593", null ], - [ "set_font_size", "structfplot__core_1_1terminal.html#a27f4875d74e90fef7f4555de55543abd", null ], - [ "set_plot_window_number", "structfplot__core_1_1terminal.html#a97e236d25bfdfb88c47aac07ac636baf", null ], - [ "set_title", "structfplot__core_1_1terminal.html#a4c433fb993c05ba8f2485d76dac5d571", null ], - [ "set_window_height", "structfplot__core_1_1terminal.html#a7bfbe230aacd2ebfc66a48f45e3b7c02", null ], - [ "set_window_width", "structfplot__core_1_1terminal.html#adc7393357e996438ef5afec36dde7054", null ], - [ "m_fontname", "structfplot__core_1_1terminal.html#a65c25946f36a8146b5d189cad922259e", null ], - [ "m_fontsize", "structfplot__core_1_1terminal.html#a92e1f3f32996f5ca36f87a4ca73e8406", null ], - [ "m_hastitle", "structfplot__core_1_1terminal.html#a313c30a86f2e84b24394fc88802ac073", null ], - [ "m_termid", "structfplot__core_1_1terminal.html#a3a008d4ce638c31b5fca9866912e7637", null ], - [ "m_title", "structfplot__core_1_1terminal.html#af1bc227957d1404beefc0d106cfa72be", null ], - [ "m_windowheight", "structfplot__core_1_1terminal.html#a019b0dcd0e49554333c3e71226a30559", null ], - [ "m_windowwidth", "structfplot__core_1_1terminal.html#ad4fc168e1f6bac6b589e41b5e4d5d676", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1terminal.png b/docs/html/structfplot__core_1_1terminal.png deleted file mode 100644 index b4face8..0000000 Binary files a/docs/html/structfplot__core_1_1terminal.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1tri__surface__plot__data-members.html b/docs/html/structfplot__core_1_1tri__surface__plot__data-members.html deleted file mode 100644 index 34127f0..0000000 --- a/docs/html/structfplot__core_1_1tri__surface__plot__data-members.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - - - - - - diff --git a/docs/html/structfplot__core_1_1tri__surface__plot__data.html b/docs/html/structfplot__core_1_1tri__surface__plot__data.html deleted file mode 100644 index 8575356..0000000 --- a/docs/html/structfplot__core_1_1tri__surface__plot__data.html +++ /dev/null @@ -1,417 +0,0 @@ - - - - - - - -fplot: fplot_core::tri_surface_plot_data Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::tri_surface_plot_data Type Reference
    -
    -
    - -

    Provides a three-dimensional surface plot data set constructed of triangulated points. - More...

    -
    -Inheritance diagram for fplot_core::tri_surface_plot_data:
    -
    -
    - - -fplot_core::plot_data -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_data_string tspd_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    procedure, public get_command_string tspd_get_cmd
     Returns the appropriate GNUPLOT command string to define the plot object properties.
     
    procedure, public get_use_wireframe tspd_get_wireframe
     Gets a value determining if a wireframe mesh should be displayed.
     
    procedure, public set_use_wireframe tspd_set_wireframe
     Sets a value determining if a wireframe mesh should be displayed.
     
    procedure, public define_data tspd_define_data
     Defines the data to plot.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - - - - - - - - - - -

    -Public Attributes

    real(real64), dimension(:), allocatable m_y
     An array of the y-coordinates of each point.
     
    real(real64), dimension(:), allocatable m_z
     An array of the z-coordinates of each point.
     
    integer(int32), dimension(:,:), allocatable m_indices
     A 3-column matrix containing the indices of each triangle's vertex.
     
    logical m_wireframe = .true.
     Determines if the surface should be drawn as a wireframe.
     
    - - - - -

    -Private Attributes

    real(real64), dimension(:), allocatable m_x
     An array of the x-coordinates of each point.
     
    -

    Detailed Description

    -

    Provides a three-dimensional surface plot data set constructed of triangulated points.

    - -

    Definition at line 7123 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::tri_surface_plot_data::define_data
    -
    - -

    Defines the data to plot.

    -
    Syntax
    subroutine define_data(class(tri_surface_plot_data) this, class(delaunay_tri_surface) tri)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe tri_surface_plot_data object.
    [in]triThe triangulation to plot.
    -
    -
    - -

    Definition at line 7172 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::tri_surface_plot_data::get_command_string
    -
    -virtual
    -
    - -

    Returns the appropriate GNUPLOT command string to define the plot object properties.

    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 7138 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::tri_surface_plot_data::get_data_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string containing the actual data to plot.

    - -

    Implements fplot_core::plot_data.

    - -

    Definition at line 7137 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_wireframe()

    - -
    -
    - - - - -
    procedure, public fplot_core::tri_surface_plot_data::get_use_wireframe
    -
    - -

    Gets a value determining if a wireframe mesh should be displayed.

    -
    Syntax
    logical function get_use_wireframe(class(tri_surface_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe tri_surface_plot_data object.
    -
    -
    -
    Returns
    Returns true if the plot is to be drawn as a wireframe; else, false to draw as a surface.
    - -

    Definition at line 7150 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_use_wireframe()

    - -
    -
    - - - - -
    procedure, public fplot_core::tri_surface_plot_data::set_use_wireframe
    -
    - -

    Sets a value determining if a wireframe mesh should be displayed.

    -
    Syntax
    subroutine set_use_wireframe(class(tri_surface_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe tri_surface_plot_data object.
    [in]xSet to true if the plot is to be drawn as a wireframe; else, set to false to draw as a surface.
    -
    -
    - -

    Definition at line 7162 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_indices

    - -
    -
    - - - - -
    integer(int32), dimension(:,:), allocatable fplot_core::tri_surface_plot_data::m_indices
    -
    - -

    A 3-column matrix containing the indices of each triangle's vertex.

    - -

    Definition at line 7133 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_wireframe

    - -
    -
    - - - - -
    logical fplot_core::tri_surface_plot_data::m_wireframe = .true.
    -
    - -

    Determines if the surface should be drawn as a wireframe.

    - -

    Definition at line 7135 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_x

    - -
    -
    - - - - - -
    - - - - -
    real(real64), dimension(:), allocatable fplot_core::tri_surface_plot_data::m_x
    -
    -private
    -
    - -

    An array of the x-coordinates of each point.

    - -

    Definition at line 7126 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_y

    - -
    -
    - - - - -
    real(real64), dimension(:), allocatable fplot_core::tri_surface_plot_data::m_y
    -
    - -

    An array of the y-coordinates of each point.

    - -

    Definition at line 7128 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_z

    - -
    -
    - - - - -
    real(real64), dimension(:), allocatable fplot_core::tri_surface_plot_data::m_z
    -
    - -

    An array of the z-coordinates of each point.

    - -

    Definition at line 7130 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1tri__surface__plot__data.js b/docs/html/structfplot__core_1_1tri__surface__plot__data.js deleted file mode 100644 index 9699d53..0000000 --- a/docs/html/structfplot__core_1_1tri__surface__plot__data.js +++ /dev/null @@ -1,13 +0,0 @@ -var structfplot__core_1_1tri__surface__plot__data = -[ - [ "define_data", "structfplot__core_1_1tri__surface__plot__data.html#ad2fa70d7577676babf477c89d3562060", null ], - [ "get_command_string", "structfplot__core_1_1tri__surface__plot__data.html#a469efa44e12737b0ec95737f5cd3aabb", null ], - [ "get_data_string", "structfplot__core_1_1tri__surface__plot__data.html#abf08b1c7f2c4980d238a2a8c649af522", null ], - [ "get_use_wireframe", "structfplot__core_1_1tri__surface__plot__data.html#a3fc771c7f1bdb8104ae08fabf6c665dd", null ], - [ "set_use_wireframe", "structfplot__core_1_1tri__surface__plot__data.html#a920b578a7bd5dda514379761daad8d87", null ], - [ "m_indices", "structfplot__core_1_1tri__surface__plot__data.html#ae2f7495459a379be5318da146fb893ae", null ], - [ "m_wireframe", "structfplot__core_1_1tri__surface__plot__data.html#ab488110fbd8508f9c34b62430577dfaf", null ], - [ "m_x", "structfplot__core_1_1tri__surface__plot__data.html#a0d748864ab5f589fdcac1bfa61ac06e1", null ], - [ "m_y", "structfplot__core_1_1tri__surface__plot__data.html#a23462d63b8ffe52541d975e443044f4a", null ], - [ "m_z", "structfplot__core_1_1tri__surface__plot__data.html#a8201960050d3276b59d9bfad7d14ca10", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1tri__surface__plot__data.png b/docs/html/structfplot__core_1_1tri__surface__plot__data.png deleted file mode 100644 index 6d32cbc..0000000 Binary files a/docs/html/structfplot__core_1_1tri__surface__plot__data.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1vector__field__plot__data-members.html b/docs/html/structfplot__core_1_1vector__field__plot__data-members.html deleted file mode 100644 index ce1a427..0000000 --- a/docs/html/structfplot__core_1_1vector__field__plot__data-members.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::vector_field_plot_data Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1vector__field__plot__data.html b/docs/html/structfplot__core_1_1vector__field__plot__data.html deleted file mode 100644 index ff56677..0000000 --- a/docs/html/structfplot__core_1_1vector__field__plot__data.html +++ /dev/null @@ -1,506 +0,0 @@ - - - - - - - -fplot: fplot_core::vector_field_plot_data Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::vector_field_plot_data Type Reference
    -
    -
    - -

    Defines a two-dimensional vector-field plot data set. - More...

    -
    -Inheritance diagram for fplot_core::vector_field_plot_data:
    -
    -
    - - -fplot_core::plot_data_colored -fplot_core::plot_data -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_data_string vfpd_get_data_cmd
     Gets the GNUPLOT command string containing the actual data to plot.
     
    procedure, public get_command_string vfpd_get_cmd
     Gets the GNUPLOT command string to represent this vector_field_plot_data object.
     
    procedure, public define_data vfpd_define_data
     Defines the data set.
     
    procedure, public get_arrow_size vfpd_get_arrow_size
     Gets the scaling factor used to determine the arrow size.
     
    procedure, public set_arrow_size vfpd_set_arrow_size
     Sets the scaling factor used to determine the arrow size.
     
    procedure, public get_fill_arrow vfpd_get_fill_arrow
     Gets a value determining if the arrow heads should be filled.
     
    procedure, public set_fill_arrow vfpd_set_fill_arrow
     Sets a value determining if the arrow heads should be filled.
     
    procedure, public get_use_data_dependent_colors vfpd_get_use_data_dependent_colors
     Gets a value indicating if data-dependent coloring should be used. This is defined by supplying information on how to scale the coloring when calling define_data.
     
    - Public Member Functions inherited from fplot_core::plot_data_colored
    procedure, public get_line_color pdc_get_line_color
     Gets the line color.
     
    procedure, public set_line_color pdc_set_line_color
     Sets the line color.
     
    - Public Member Functions inherited from fplot_core::plot_data
    procedure, public get_name pd_get_name
     Gets the name to associate with this data set.
     
    procedure, public set_name pd_set_name
     Sets the name to associate with this data set.
     
    - - - - - - - - - - - - - - -

    -Public Attributes

    real(real64) m_arrowsize = 1.0d0
     The vector size (scaling factor).
     
    logical m_filledheads = .false.
     Fill the arrow heads?
     
    - Public Attributes inherited from fplot_core::plot_data_colored
    logical m_useautocolor = .true.
     Let the object choose colors automatically.
     
    integer(int32) m_colorindex = 1
     The color index to use, assuming we're using auto color.
     
    - - - - -

    -Private Attributes

    real(real64), dimension(:,:,:), allocatable m_data
     An M-by-N-by-4 array containing the x, y, dx, and dy plot data points. Optionally, a 5th page can be added to define the color for each arrow.
     
    -

    Detailed Description

    -

    Defines a two-dimensional vector-field plot data set.

    - -

    Definition at line 7212 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ define_data()

    - -
    -
    - - - - -
    procedure, public fplot_core::vector_field_plot_data::define_data
    -
    - -

    Defines the data set.

    -
    Syntax
    subroutine define_data(class(vector_field_plot_data) this, real(real64) x(:,:), real(real64) y(:,:), real(real64) dx(:,:), real(real64) dy(:,:), real(real64) c(:,:), class(errors) err)
    -
    -
    Parameters
    - - - - - - - - -
    [in,out]thisThe vector_field_plot_data object.
    [in]xAn M-by-N matrix containing the x-locations of each arrow's origin.
    [in]yAn M-by-N matrix containing the y-locations of each arrow's origin.
    [in]dxAn M-by-N matrix containing the x-direction of each arrow.
    [in]dyAn M-by-N matrix containing the y-direction of each arrow.
    [in]cAn optional M-by-N matrix containing information on how to color the arrows. The colors are determined by the active colormap.
    [in,out]errAn optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
      -
    • PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available.
    • -
    • PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input matrices are not the same size.
    • -
    -
    -
    -
    - -

    Definition at line 7267 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_arrow_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::vector_field_plot_data::get_arrow_size
    -
    - -

    Gets the scaling factor used to determine the arrow size.

    -
    Syntax
    real(real64) get_arrow_size(class(vector_field_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe vector_field_plot_data object.
    -
    -
    -
    Returns
    The scaling factor.
    - -

    Definition at line 7277 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_command_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::vector_field_plot_data::get_command_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string to represent this vector_field_plot_data object.

    -
    Syntax
    character(len = :) function, allocatable get_command_string(class(vector_field_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe vector_field_plot_data object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_object.

    - -

    Definition at line 7244 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_data_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::vector_field_plot_data::get_data_string
    -
    -virtual
    -
    - -

    Gets the GNUPLOT command string containing the actual data to plot.

    -
    Syntax
    character(len = :) function, allocatable get_data_string(class(vector_field_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe vector_field_plot_data object.
    -
    -
    -
    Returns
    The command string.
    - -

    Implements fplot_core::plot_data.

    - -

    Definition at line 7233 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_fill_arrow()

    - -
    -
    - - - - -
    procedure, public fplot_core::vector_field_plot_data::get_fill_arrow
    -
    - -

    Gets a value determining if the arrow heads should be filled.

    -
    Syntax
    logical get_fill_arrow(class(vector_field_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe vector_field_plot_data object.
    -
    -
    -
    Returns
    True if the arrow heads should be filled; else, false.
    - -

    Definition at line 7297 of file fplot_core.f90.

    - -
    -
    - -

    ◆ get_use_data_dependent_colors()

    - -
    -
    - - - - -
    procedure, public fplot_core::vector_field_plot_data::get_use_data_dependent_colors
    -
    - -

    Gets a value indicating if data-dependent coloring should be used. This is defined by supplying information on how to scale the coloring when calling define_data.

    -
    Syntax
    logical get_use_data_dependent_colors(class(vector_field_plot_data) this)
    -
    -
    Parameters
    - - -
    [in]thisThe vector_field_plot_data object. return Returns true if data-dependent coloring is being used; else, false.
    -
    -
    - -

    Definition at line 7320 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_arrow_size()

    - -
    -
    - - - - -
    procedure, public fplot_core::vector_field_plot_data::set_arrow_size
    -
    - -

    Sets the scaling factor used to determine the arrow size.

    -
    Syntax
    subroutine set_arrow_size(class(vector_field_plot_data) this, real(real64) x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe vector_field_plot_data object.
    [in]xThe scaling factor.
    -
    -
    - -

    Definition at line 7287 of file fplot_core.f90.

    - -
    -
    - -

    ◆ set_fill_arrow()

    - -
    -
    - - - - -
    procedure, public fplot_core::vector_field_plot_data::set_fill_arrow
    -
    - -

    Sets a value determining if the arrow heads should be filled.

    -
    Syntax
    subroutine set_fill_arrow(class(vector_field_plot_data) this, logical x)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe vector_field_plot_data object.
    [in]xTrue if the arrow heads should be filled; else, false.
    -
    -
    - -

    Definition at line 7307 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_arrowsize

    - -
    -
    - - - - -
    real(real64) fplot_core::vector_field_plot_data::m_arrowsize = 1.0d0
    -
    - -

    The vector size (scaling factor).

    - -

    Definition at line 7219 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_data

    - -
    -
    - - - - - -
    - - - - -
    real(real64), dimension(:,:,:), allocatable fplot_core::vector_field_plot_data::m_data
    -
    -private
    -
    - -

    An M-by-N-by-4 array containing the x, y, dx, and dy plot data points. Optionally, a 5th page can be added to define the color for each arrow.

    - -

    Definition at line 7217 of file fplot_core.f90.

    - -
    -
    - -

    ◆ m_filledheads

    - -
    -
    - - - - -
    logical fplot_core::vector_field_plot_data::m_filledheads = .false.
    -
    - -

    Fill the arrow heads?

    - -

    Definition at line 7221 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1vector__field__plot__data.js b/docs/html/structfplot__core_1_1vector__field__plot__data.js deleted file mode 100644 index 1236be6..0000000 --- a/docs/html/structfplot__core_1_1vector__field__plot__data.js +++ /dev/null @@ -1,14 +0,0 @@ -var structfplot__core_1_1vector__field__plot__data = -[ - [ "define_data", "structfplot__core_1_1vector__field__plot__data.html#a833b60ff6a9ca8c533e089f2968d335e", null ], - [ "get_arrow_size", "structfplot__core_1_1vector__field__plot__data.html#aa081611ba3786ab60023567662d1ab39", null ], - [ "get_command_string", "structfplot__core_1_1vector__field__plot__data.html#acb5a624f5190d33c63bef21abd6d191e", null ], - [ "get_data_string", "structfplot__core_1_1vector__field__plot__data.html#a35f10299e5447c27a670ec648d4dff9a", null ], - [ "get_fill_arrow", "structfplot__core_1_1vector__field__plot__data.html#ac83b7d14395a9c7894ae89f86c3aeb96", null ], - [ "get_use_data_dependent_colors", "structfplot__core_1_1vector__field__plot__data.html#a1c8d0b54c39a88ec703fe887395d9de1", null ], - [ "set_arrow_size", "structfplot__core_1_1vector__field__plot__data.html#ac744dea773420c6600c3306311ef2d93", null ], - [ "set_fill_arrow", "structfplot__core_1_1vector__field__plot__data.html#aa1c31e27261ed54d1728c6d17a2c0db0", null ], - [ "m_arrowsize", "structfplot__core_1_1vector__field__plot__data.html#adb43db20bfd010f251c8141acf894e23", null ], - [ "m_data", "structfplot__core_1_1vector__field__plot__data.html#ab8f9fd516cb896988615cd6a378eb7e1", null ], - [ "m_filledheads", "structfplot__core_1_1vector__field__plot__data.html#abfd90138c5821640f049c79d587c6939", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1vector__field__plot__data.png b/docs/html/structfplot__core_1_1vector__field__plot__data.png deleted file mode 100644 index 2397ab7..0000000 Binary files a/docs/html/structfplot__core_1_1vector__field__plot__data.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1windows__terminal-members.html b/docs/html/structfplot__core_1_1windows__terminal-members.html deleted file mode 100644 index 12edf9d..0000000 --- a/docs/html/structfplot__core_1_1windows__terminal-members.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::windows_terminal Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1windows__terminal.html b/docs/html/structfplot__core_1_1windows__terminal.html deleted file mode 100644 index 0ba209b..0000000 --- a/docs/html/structfplot__core_1_1windows__terminal.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - - -fplot: fplot_core::windows_terminal Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::windows_terminal Type Reference
    -
    -
    - -

    Defines a GNUPLOT Win32 terminal object. - More...

    -
    -Inheritance diagram for fplot_core::windows_terminal:
    -
    -
    - - -fplot_core::terminal -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_id_string wt_get_term_string
     Retrieves a GNUPLOT terminal identifier string.
     
    - Public Member Functions inherited from fplot_core::terminal
    procedure, public get_window_width term_get_window_width
     Gets the width of the plot window.
     
    procedure, public set_window_width term_set_window_width
     Sets the width of the plot window.
     
    procedure, public get_window_height term_get_window_height
     Gets the height of the plot window.
     
    procedure, public set_window_height term_set_window_height
     Sets the height of the plot window.
     
    procedure, public get_command_string term_get_command_string
     Returns the appropriate GNUPLOT command string to establish appropriate parameters.
     
    procedure, public get_plot_window_number term_get_plot_window_number
     Gets the targeted plot window number.
     
    procedure, public set_plot_window_number term_set_plot_window_number
     Sets the targeted plot window number.
     
    procedure, public get_title term_get_title
     Gets the plot window's title.
     
    procedure, public set_title term_set_title
     Sets the plot window's title.
     
    procedure, public get_font_name term_get_font_name
     Gets the name of the font used for text displayed by the graph.
     
    procedure, public set_font_name term_set_font_name
     Sets the name of the font used for text displayed by the graph.
     
    procedure, public get_font_size term_get_font_size
     Gets the size of the font used by the graph.
     
    procedure, public set_font_size term_set_font_size
     Sets the size of the font used by the graph.
     
    - - - - -

    -Private Attributes

    character(len=3) m_id = "win"
     The terminal ID string.
     
    - - - - - - - - - - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::terminal
    integer(int32) m_windowwidth = GNUPLOT_DEFAULT_WINDOW_WIDTH
     The window width, in pixels.
     
    integer(int32) m_termid = 0
     The plot window number.
     
    character(len=gnuplot_max_label_lengthm_title = ""
     The plot window title.
     
    logical m_hastitle = .false.
     Determines if a plot title is defined.
     
    character(len=gnuplot_max_label_lengthm_fontname = GNUPLOT_DEFAULT_FONTNAME
     The font used by the graph.
     
    integer(int32) m_fontsize = GNUPLOT_DEFAULT_FONT_SIZE
     The size of the font used by the graph.
     
    -

    Detailed Description

    -

    Defines a GNUPLOT Win32 terminal object.

    - -

    Definition at line 1435 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::windows_terminal::get_id_string
    -
    -virtual
    -
    - -

    Retrieves a GNUPLOT terminal identifier string.

    -
    Syntax
    character(len = :) function, allocatable get_id_string(class(windows_terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe windows_terminal object.
    -
    -
    -
    Returns
    The string.
    - -

    Implements fplot_core::terminal.

    - -

    Definition at line 1449 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_id

    - -
    -
    - - - - - -
    - - - - -
    character(len = 3) fplot_core::windows_terminal::m_id = "win"
    -
    -private
    -
    - -

    The terminal ID string.

    - -

    Definition at line 1438 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1windows__terminal.js b/docs/html/structfplot__core_1_1windows__terminal.js deleted file mode 100644 index ba15b25..0000000 --- a/docs/html/structfplot__core_1_1windows__terminal.js +++ /dev/null @@ -1,5 +0,0 @@ -var structfplot__core_1_1windows__terminal = -[ - [ "get_id_string", "structfplot__core_1_1windows__terminal.html#aa9422d9df32df6bae76145d27663f32b", null ], - [ "m_id", "structfplot__core_1_1windows__terminal.html#af215f20aa2e4e2de14bed3f928a4f40f", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1windows__terminal.png b/docs/html/structfplot__core_1_1windows__terminal.png deleted file mode 100644 index 1dac9fe..0000000 Binary files a/docs/html/structfplot__core_1_1windows__terminal.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1wxt__terminal-members.html b/docs/html/structfplot__core_1_1wxt__terminal-members.html deleted file mode 100644 index b978125..0000000 --- a/docs/html/structfplot__core_1_1wxt__terminal-members.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::wxt_terminal Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__core_1_1wxt__terminal.html b/docs/html/structfplot__core_1_1wxt__terminal.html deleted file mode 100644 index efcd674..0000000 --- a/docs/html/structfplot__core_1_1wxt__terminal.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - - -fplot: fplot_core::wxt_terminal Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::wxt_terminal Type Reference
    -
    -
    - -

    Defines a GNUPLOT WXT terminal object. - More...

    -
    -Inheritance diagram for fplot_core::wxt_terminal:
    -
    -
    - - -fplot_core::terminal -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_id_string wxt_get_term_string
     Retrieves a GNUPLOT terminal identifier string.
     
    - Public Member Functions inherited from fplot_core::terminal
    procedure, public get_window_width term_get_window_width
     Gets the width of the plot window.
     
    procedure, public set_window_width term_set_window_width
     Sets the width of the plot window.
     
    procedure, public get_window_height term_get_window_height
     Gets the height of the plot window.
     
    procedure, public set_window_height term_set_window_height
     Sets the height of the plot window.
     
    procedure, public get_command_string term_get_command_string
     Returns the appropriate GNUPLOT command string to establish appropriate parameters.
     
    procedure, public get_plot_window_number term_get_plot_window_number
     Gets the targeted plot window number.
     
    procedure, public set_plot_window_number term_set_plot_window_number
     Sets the targeted plot window number.
     
    procedure, public get_title term_get_title
     Gets the plot window's title.
     
    procedure, public set_title term_set_title
     Sets the plot window's title.
     
    procedure, public get_font_name term_get_font_name
     Gets the name of the font used for text displayed by the graph.
     
    procedure, public set_font_name term_set_font_name
     Sets the name of the font used for text displayed by the graph.
     
    procedure, public get_font_size term_get_font_size
     Gets the size of the font used by the graph.
     
    procedure, public set_font_size term_set_font_size
     Sets the size of the font used by the graph.
     
    - - - - -

    -Private Attributes

    character(len=3) m_id = "wxt"
     The terminal ID string.
     
    - - - - - - - - - - - - - - - - - - - - -

    -Additional Inherited Members

    - Public Attributes inherited from fplot_core::terminal
    integer(int32) m_windowwidth = GNUPLOT_DEFAULT_WINDOW_WIDTH
     The window width, in pixels.
     
    integer(int32) m_termid = 0
     The plot window number.
     
    character(len=gnuplot_max_label_lengthm_title = ""
     The plot window title.
     
    logical m_hastitle = .false.
     Determines if a plot title is defined.
     
    character(len=gnuplot_max_label_lengthm_fontname = GNUPLOT_DEFAULT_FONTNAME
     The font used by the graph.
     
    integer(int32) m_fontsize = GNUPLOT_DEFAULT_FONT_SIZE
     The size of the font used by the graph.
     
    -

    Detailed Description

    -

    Defines a GNUPLOT WXT terminal object.

    - -

    Definition at line 1493 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::wxt_terminal::get_id_string
    -
    -virtual
    -
    - -

    Retrieves a GNUPLOT terminal identifier string.

    -
    Syntax
    character(len = :) function, allocatable get_id_string(class(wxt_terminal) this)
    -
    -
    Parameters
    - - -
    [in]thisThe wxt_terminal object.
    -
    -
    -
    Returns
    The string.
    - -

    Implements fplot_core::terminal.

    - -

    Definition at line 1507 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_id

    - -
    -
    - - - - - -
    - - - - -
    character(len = 3) fplot_core::wxt_terminal::m_id = "wxt"
    -
    -private
    -
    - -

    The terminal ID string.

    - -

    Definition at line 1496 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1wxt__terminal.js b/docs/html/structfplot__core_1_1wxt__terminal.js deleted file mode 100644 index 2cba937..0000000 --- a/docs/html/structfplot__core_1_1wxt__terminal.js +++ /dev/null @@ -1,5 +0,0 @@ -var structfplot__core_1_1wxt__terminal = -[ - [ "get_id_string", "structfplot__core_1_1wxt__terminal.html#aeea16e93a4be79e2687a207c405db431", null ], - [ "m_id", "structfplot__core_1_1wxt__terminal.html#a1d5b03366bc38e5ae7dab696b40d5ccb", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1wxt__terminal.png b/docs/html/structfplot__core_1_1wxt__terminal.png deleted file mode 100644 index 4831491..0000000 Binary files a/docs/html/structfplot__core_1_1wxt__terminal.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1x__axis-members.html b/docs/html/structfplot__core_1_1x__axis-members.html deleted file mode 100644 index c2dec4e..0000000 --- a/docs/html/structfplot__core_1_1x__axis-members.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::x_axis Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::x_axis, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    get_autoscalepa_get_autoscalefplot_core::plot_axis
    get_command_stringpa_get_cmd_stringfplot_core::plot_axisvirtual
    get_id_stringxa_get_idfplot_core::x_axisvirtual
    get_is_log_scaledpa_get_log_scalefplot_core::plot_axis
    get_limitspa_get_axis_limitsfplot_core::plot_axis
    get_tic_label_formatpa_get_tic_label_fmtfplot_core::plot_axis
    get_titlepa_get_titlefplot_core::plot_axis
    get_use_default_tic_label_formatpa_get_use_dft_tic_lbl_fmtfplot_core::plot_axis
    get_zero_axispa_get_zero_axisfplot_core::plot_axis
    get_zero_axis_line_widthpa_get_zero_axis_widthfplot_core::plot_axis
    is_title_definedpa_has_titlefplot_core::plot_axis
    m_autoscalefplot_core::plot_axis
    m_axiswidthfplot_core::plot_axis
    m_defaultticlabelsfplot_core::plot_axis
    m_hastitlefplot_core::plot_axisprivate
    m_idfplot_core::x_axis
    m_limitsfplot_core::plot_axis
    m_logscalefplot_core::plot_axis
    m_ticlabelfmtfplot_core::plot_axis
    m_titlefplot_core::plot_axis
    m_zeroaxisfplot_core::plot_axis
    set_autoscalepa_set_autoscalefplot_core::plot_axis
    set_is_log_scaledpa_set_log_scalefplot_core::plot_axis
    set_limitspa_set_axis_limitsfplot_core::plot_axis
    set_tic_label_formatpa_set_tic_label_fmtfplot_core::plot_axis
    set_titlepa_set_titlefplot_core::plot_axis
    set_use_default_tic_label_formatpa_set_use_dft_tic_lbl_fmtfplot_core::plot_axis
    set_zero_axispa_set_zero_axisfplot_core::plot_axis
    set_zero_axis_line_widthpa_set_zero_axis_widthfplot_core::plot_axis
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1x__axis.html b/docs/html/structfplot__core_1_1x__axis.html deleted file mode 100644 index dd3fc04..0000000 --- a/docs/html/structfplot__core_1_1x__axis.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - - -fplot: fplot_core::x_axis Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::x_axis Type Reference
    -
    -
    - -

    An x-axis object. - More...

    -
    -Inheritance diagram for fplot_core::x_axis:
    -
    -
    - - -fplot_core::plot_axis -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_id_string xa_get_id
     Gets the axis identification string.
     
    - Public Member Functions inherited from fplot_core::plot_axis
    procedure, public get_title pa_get_title
     Gets the axis' title.
     
    procedure, public set_title pa_set_title
     Sets the axis' title.
     
    procedure, public is_title_defined pa_has_title
     Gets a value determining if a title has been defined for the plot_axis object.
     
    procedure, public get_autoscale pa_get_autoscale
     Gets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public set_autoscale pa_set_autoscale
     Sets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public get_limits pa_get_axis_limits
     Gets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public set_limits pa_set_axis_limits
     Sets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public get_is_log_scaled pa_get_log_scale
     Gets a logical value defining if the axis should be log scaled.
     
    procedure, public set_is_log_scaled pa_set_log_scale
     Sets a logical value defining if the axis should be log scaled.
     
    procedure, public get_command_string pa_get_cmd_string
     Returns the appropriate GNUPLOT command string to define the plot_axis properties.
     
    procedure, public get_zero_axis pa_get_zero_axis
     Gets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public set_zero_axis pa_set_zero_axis
     Sets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public get_zero_axis_line_width pa_get_zero_axis_width
     Gets the width of the line used to represent the zero axis line, if active.
     
    procedure, public set_zero_axis_line_width pa_set_zero_axis_width
     Sets the width of the line used to represent the zero axis line, if active.
     
    procedure, public get_use_default_tic_label_format pa_get_use_dft_tic_lbl_fmt
     Gets a value determining if the default tic label format will be used.
     
    procedure, public set_use_default_tic_label_format pa_set_use_dft_tic_lbl_fmt
     Sets a value determining if the default tic label format will be used.
     
    procedure, public get_tic_label_format pa_get_tic_label_fmt
     Gets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    procedure, public set_tic_label_format pa_set_tic_label_fmt
     Sets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    character m_id = "x"
     The ID character.
     
    - Public Attributes inherited from fplot_core::plot_axis
    character(len=plotdata_max_name_lengthm_title = ""
     The axis title.
     
    logical m_autoscale = .true.
     Autoscale?
     
    real(real64), dimension(2) m_limits = [0.0d0, 1.0d0]
     Display limits.
     
    logical m_logscale = .false.
     Log scaled?
     
    logical m_zeroaxis = .false.
     Zero axis?
     
    real(real32) m_axiswidth = 1.0
     The width, in pixels, of the zero axis line.
     
    logical m_defaultticlabels = .true.
     Use default tic label format?
     
    character(len=plotdata_max_name_lengthm_ticlabelfmt = "%g"
     The tic label format.
     
    -

    Detailed Description

    -

    An x-axis object.

    -
    Syntax
    character(len = :) function, allocatable get_id_string(class(x_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe x_axis object.
    -
    -
    -
    Returns
    The string.
    - -

    Definition at line 5666 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::x_axis::get_id_string
    -
    -virtual
    -
    - -

    Gets the axis identification string.

    - -

    Implements fplot_core::plot_axis.

    - -

    Definition at line 5671 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_id

    - -
    -
    - - - - -
    character fplot_core::x_axis::m_id = "x"
    -
    - -

    The ID character.

    - -

    Definition at line 5668 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1x__axis.js b/docs/html/structfplot__core_1_1x__axis.js deleted file mode 100644 index 8cb6837..0000000 --- a/docs/html/structfplot__core_1_1x__axis.js +++ /dev/null @@ -1,5 +0,0 @@ -var structfplot__core_1_1x__axis = -[ - [ "get_id_string", "structfplot__core_1_1x__axis.html#a7cb8753743161cd7e18a3df9721b5129", null ], - [ "m_id", "structfplot__core_1_1x__axis.html#a1ba3cb85ef3bbd932fa6ada1442aa73f", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1x__axis.png b/docs/html/structfplot__core_1_1x__axis.png deleted file mode 100644 index 2094eac..0000000 Binary files a/docs/html/structfplot__core_1_1x__axis.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1y2__axis-members.html b/docs/html/structfplot__core_1_1y2__axis-members.html deleted file mode 100644 index bda99d0..0000000 --- a/docs/html/structfplot__core_1_1y2__axis-members.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::y2_axis Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::y2_axis, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    get_autoscalepa_get_autoscalefplot_core::plot_axis
    get_command_stringpa_get_cmd_stringfplot_core::plot_axisvirtual
    get_id_stringy2a_get_idfplot_core::y2_axisvirtual
    get_is_log_scaledpa_get_log_scalefplot_core::plot_axis
    get_limitspa_get_axis_limitsfplot_core::plot_axis
    get_tic_label_formatpa_get_tic_label_fmtfplot_core::plot_axis
    get_titlepa_get_titlefplot_core::plot_axis
    get_use_default_tic_label_formatpa_get_use_dft_tic_lbl_fmtfplot_core::plot_axis
    get_zero_axispa_get_zero_axisfplot_core::plot_axis
    get_zero_axis_line_widthpa_get_zero_axis_widthfplot_core::plot_axis
    is_title_definedpa_has_titlefplot_core::plot_axis
    m_autoscalefplot_core::plot_axis
    m_axiswidthfplot_core::plot_axis
    m_defaultticlabelsfplot_core::plot_axis
    m_hastitlefplot_core::plot_axisprivate
    m_idfplot_core::y2_axis
    m_limitsfplot_core::plot_axis
    m_logscalefplot_core::plot_axis
    m_ticlabelfmtfplot_core::plot_axis
    m_titlefplot_core::plot_axis
    m_zeroaxisfplot_core::plot_axis
    set_autoscalepa_set_autoscalefplot_core::plot_axis
    set_is_log_scaledpa_set_log_scalefplot_core::plot_axis
    set_limitspa_set_axis_limitsfplot_core::plot_axis
    set_tic_label_formatpa_set_tic_label_fmtfplot_core::plot_axis
    set_titlepa_set_titlefplot_core::plot_axis
    set_use_default_tic_label_formatpa_set_use_dft_tic_lbl_fmtfplot_core::plot_axis
    set_zero_axispa_set_zero_axisfplot_core::plot_axis
    set_zero_axis_line_widthpa_set_zero_axis_widthfplot_core::plot_axis
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1y2__axis.html b/docs/html/structfplot__core_1_1y2__axis.html deleted file mode 100644 index a77f83c..0000000 --- a/docs/html/structfplot__core_1_1y2__axis.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - - -fplot: fplot_core::y2_axis Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::y2_axis Type Reference
    -
    -
    - -

    A secondary y-axis object. - More...

    -
    -Inheritance diagram for fplot_core::y2_axis:
    -
    -
    - - -fplot_core::plot_axis -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_id_string y2a_get_id
     Gets the axis identification string.
     
    - Public Member Functions inherited from fplot_core::plot_axis
    procedure, public get_title pa_get_title
     Gets the axis' title.
     
    procedure, public set_title pa_set_title
     Sets the axis' title.
     
    procedure, public is_title_defined pa_has_title
     Gets a value determining if a title has been defined for the plot_axis object.
     
    procedure, public get_autoscale pa_get_autoscale
     Gets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public set_autoscale pa_set_autoscale
     Sets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public get_limits pa_get_axis_limits
     Gets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public set_limits pa_set_axis_limits
     Sets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public get_is_log_scaled pa_get_log_scale
     Gets a logical value defining if the axis should be log scaled.
     
    procedure, public set_is_log_scaled pa_set_log_scale
     Sets a logical value defining if the axis should be log scaled.
     
    procedure, public get_command_string pa_get_cmd_string
     Returns the appropriate GNUPLOT command string to define the plot_axis properties.
     
    procedure, public get_zero_axis pa_get_zero_axis
     Gets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public set_zero_axis pa_set_zero_axis
     Sets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public get_zero_axis_line_width pa_get_zero_axis_width
     Gets the width of the line used to represent the zero axis line, if active.
     
    procedure, public set_zero_axis_line_width pa_set_zero_axis_width
     Sets the width of the line used to represent the zero axis line, if active.
     
    procedure, public get_use_default_tic_label_format pa_get_use_dft_tic_lbl_fmt
     Gets a value determining if the default tic label format will be used.
     
    procedure, public set_use_default_tic_label_format pa_set_use_dft_tic_lbl_fmt
     Sets a value determining if the default tic label format will be used.
     
    procedure, public get_tic_label_format pa_get_tic_label_fmt
     Gets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    procedure, public set_tic_label_format pa_set_tic_label_fmt
     Sets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    character(len=2) m_id = "y2"
     The ID character.
     
    - Public Attributes inherited from fplot_core::plot_axis
    character(len=plotdata_max_name_lengthm_title = ""
     The axis title.
     
    logical m_autoscale = .true.
     Autoscale?
     
    real(real64), dimension(2) m_limits = [0.0d0, 1.0d0]
     Display limits.
     
    logical m_logscale = .false.
     Log scaled?
     
    logical m_zeroaxis = .false.
     Zero axis?
     
    real(real32) m_axiswidth = 1.0
     The width, in pixels, of the zero axis line.
     
    logical m_defaultticlabels = .true.
     Use default tic label format?
     
    character(len=plotdata_max_name_lengthm_ticlabelfmt = "%g"
     The tic label format.
     
    -

    Detailed Description

    -

    A secondary y-axis object.

    -
    Syntax
    character(len = :) function, allocatable get_id_string(class(y2_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe y2_axis object.
    -
    -
    -
    Returns
    The string.
    - -

    Definition at line 5702 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::y2_axis::get_id_string
    -
    -virtual
    -
    - -

    Gets the axis identification string.

    - -

    Implements fplot_core::plot_axis.

    - -

    Definition at line 5707 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_id

    - -
    -
    - - - - -
    character(len = 2) fplot_core::y2_axis::m_id = "y2"
    -
    - -

    The ID character.

    - -

    Definition at line 5704 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1y2__axis.js b/docs/html/structfplot__core_1_1y2__axis.js deleted file mode 100644 index fccf0a8..0000000 --- a/docs/html/structfplot__core_1_1y2__axis.js +++ /dev/null @@ -1,5 +0,0 @@ -var structfplot__core_1_1y2__axis = -[ - [ "get_id_string", "structfplot__core_1_1y2__axis.html#afa3ce73eceaade01e8b3488e5dac9eea", null ], - [ "m_id", "structfplot__core_1_1y2__axis.html#a3d7f8ca15f441f30f988496c798483cb", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1y2__axis.png b/docs/html/structfplot__core_1_1y2__axis.png deleted file mode 100644 index 1bc710a..0000000 Binary files a/docs/html/structfplot__core_1_1y2__axis.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1y__axis-members.html b/docs/html/structfplot__core_1_1y__axis-members.html deleted file mode 100644 index 855b3f4..0000000 --- a/docs/html/structfplot__core_1_1y__axis-members.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::y_axis Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::y_axis, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    get_autoscalepa_get_autoscalefplot_core::plot_axis
    get_command_stringpa_get_cmd_stringfplot_core::plot_axisvirtual
    get_id_stringya_get_idfplot_core::y_axisvirtual
    get_is_log_scaledpa_get_log_scalefplot_core::plot_axis
    get_limitspa_get_axis_limitsfplot_core::plot_axis
    get_tic_label_formatpa_get_tic_label_fmtfplot_core::plot_axis
    get_titlepa_get_titlefplot_core::plot_axis
    get_use_default_tic_label_formatpa_get_use_dft_tic_lbl_fmtfplot_core::plot_axis
    get_zero_axispa_get_zero_axisfplot_core::plot_axis
    get_zero_axis_line_widthpa_get_zero_axis_widthfplot_core::plot_axis
    is_title_definedpa_has_titlefplot_core::plot_axis
    m_autoscalefplot_core::plot_axis
    m_axiswidthfplot_core::plot_axis
    m_defaultticlabelsfplot_core::plot_axis
    m_hastitlefplot_core::plot_axisprivate
    m_idfplot_core::y_axis
    m_limitsfplot_core::plot_axis
    m_logscalefplot_core::plot_axis
    m_ticlabelfmtfplot_core::plot_axis
    m_titlefplot_core::plot_axis
    m_zeroaxisfplot_core::plot_axis
    set_autoscalepa_set_autoscalefplot_core::plot_axis
    set_is_log_scaledpa_set_log_scalefplot_core::plot_axis
    set_limitspa_set_axis_limitsfplot_core::plot_axis
    set_tic_label_formatpa_set_tic_label_fmtfplot_core::plot_axis
    set_titlepa_set_titlefplot_core::plot_axis
    set_use_default_tic_label_formatpa_set_use_dft_tic_lbl_fmtfplot_core::plot_axis
    set_zero_axispa_set_zero_axisfplot_core::plot_axis
    set_zero_axis_line_widthpa_set_zero_axis_widthfplot_core::plot_axis
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1y__axis.html b/docs/html/structfplot__core_1_1y__axis.html deleted file mode 100644 index cd070e2..0000000 --- a/docs/html/structfplot__core_1_1y__axis.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - - -fplot: fplot_core::y_axis Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::y_axis Type Reference
    -
    -
    - -

    A y-axis object. - More...

    -
    -Inheritance diagram for fplot_core::y_axis:
    -
    -
    - - -fplot_core::plot_axis -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_id_string ya_get_id
     Gets the axis identification string.
     
    - Public Member Functions inherited from fplot_core::plot_axis
    procedure, public get_title pa_get_title
     Gets the axis' title.
     
    procedure, public set_title pa_set_title
     Sets the axis' title.
     
    procedure, public is_title_defined pa_has_title
     Gets a value determining if a title has been defined for the plot_axis object.
     
    procedure, public get_autoscale pa_get_autoscale
     Gets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public set_autoscale pa_set_autoscale
     Sets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public get_limits pa_get_axis_limits
     Gets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public set_limits pa_set_axis_limits
     Sets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public get_is_log_scaled pa_get_log_scale
     Gets a logical value defining if the axis should be log scaled.
     
    procedure, public set_is_log_scaled pa_set_log_scale
     Sets a logical value defining if the axis should be log scaled.
     
    procedure, public get_command_string pa_get_cmd_string
     Returns the appropriate GNUPLOT command string to define the plot_axis properties.
     
    procedure, public get_zero_axis pa_get_zero_axis
     Gets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public set_zero_axis pa_set_zero_axis
     Sets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public get_zero_axis_line_width pa_get_zero_axis_width
     Gets the width of the line used to represent the zero axis line, if active.
     
    procedure, public set_zero_axis_line_width pa_set_zero_axis_width
     Sets the width of the line used to represent the zero axis line, if active.
     
    procedure, public get_use_default_tic_label_format pa_get_use_dft_tic_lbl_fmt
     Gets a value determining if the default tic label format will be used.
     
    procedure, public set_use_default_tic_label_format pa_set_use_dft_tic_lbl_fmt
     Sets a value determining if the default tic label format will be used.
     
    procedure, public get_tic_label_format pa_get_tic_label_fmt
     Gets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    procedure, public set_tic_label_format pa_set_tic_label_fmt
     Sets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    character m_id = "y"
     The ID character.
     
    - Public Attributes inherited from fplot_core::plot_axis
    character(len=plotdata_max_name_lengthm_title = ""
     The axis title.
     
    logical m_autoscale = .true.
     Autoscale?
     
    real(real64), dimension(2) m_limits = [0.0d0, 1.0d0]
     Display limits.
     
    logical m_logscale = .false.
     Log scaled?
     
    logical m_zeroaxis = .false.
     Zero axis?
     
    real(real32) m_axiswidth = 1.0
     The width, in pixels, of the zero axis line.
     
    logical m_defaultticlabels = .true.
     Use default tic label format?
     
    character(len=plotdata_max_name_lengthm_ticlabelfmt = "%g"
     The tic label format.
     
    -

    Detailed Description

    -

    A y-axis object.

    -
    Syntax
    character(len = :) function, allocatable get_id_string(class(y_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe y_axis object.
    -
    -
    -
    Returns
    The string.
    - -

    Definition at line 5684 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::y_axis::get_id_string
    -
    -virtual
    -
    - -

    Gets the axis identification string.

    - -

    Implements fplot_core::plot_axis.

    - -

    Definition at line 5689 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_id

    - -
    -
    - - - - -
    character fplot_core::y_axis::m_id = "y"
    -
    - -

    The ID character.

    - -

    Definition at line 5686 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1y__axis.js b/docs/html/structfplot__core_1_1y__axis.js deleted file mode 100644 index f105b79..0000000 --- a/docs/html/structfplot__core_1_1y__axis.js +++ /dev/null @@ -1,5 +0,0 @@ -var structfplot__core_1_1y__axis = -[ - [ "get_id_string", "structfplot__core_1_1y__axis.html#a0e82d7adc90762d6885b22d2abb9651b", null ], - [ "m_id", "structfplot__core_1_1y__axis.html#a14850c501203a783fb7aa0e7ac44e140", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1y__axis.png b/docs/html/structfplot__core_1_1y__axis.png deleted file mode 100644 index 31dc7a4..0000000 Binary files a/docs/html/structfplot__core_1_1y__axis.png and /dev/null differ diff --git a/docs/html/structfplot__core_1_1z__axis-members.html b/docs/html/structfplot__core_1_1z__axis-members.html deleted file mode 100644 index 4916d19..0000000 --- a/docs/html/structfplot__core_1_1z__axis-members.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_core::z_axis Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::z_axis, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    get_autoscalepa_get_autoscalefplot_core::plot_axis
    get_command_stringpa_get_cmd_stringfplot_core::plot_axisvirtual
    get_id_stringza_get_idfplot_core::z_axisvirtual
    get_is_log_scaledpa_get_log_scalefplot_core::plot_axis
    get_limitspa_get_axis_limitsfplot_core::plot_axis
    get_tic_label_formatpa_get_tic_label_fmtfplot_core::plot_axis
    get_titlepa_get_titlefplot_core::plot_axis
    get_use_default_tic_label_formatpa_get_use_dft_tic_lbl_fmtfplot_core::plot_axis
    get_zero_axispa_get_zero_axisfplot_core::plot_axis
    get_zero_axis_line_widthpa_get_zero_axis_widthfplot_core::plot_axis
    is_title_definedpa_has_titlefplot_core::plot_axis
    m_autoscalefplot_core::plot_axis
    m_axiswidthfplot_core::plot_axis
    m_defaultticlabelsfplot_core::plot_axis
    m_hastitlefplot_core::plot_axisprivate
    m_idfplot_core::z_axis
    m_limitsfplot_core::plot_axis
    m_logscalefplot_core::plot_axis
    m_ticlabelfmtfplot_core::plot_axis
    m_titlefplot_core::plot_axis
    m_zeroaxisfplot_core::plot_axis
    set_autoscalepa_set_autoscalefplot_core::plot_axis
    set_is_log_scaledpa_set_log_scalefplot_core::plot_axis
    set_limitspa_set_axis_limitsfplot_core::plot_axis
    set_tic_label_formatpa_set_tic_label_fmtfplot_core::plot_axis
    set_titlepa_set_titlefplot_core::plot_axis
    set_use_default_tic_label_formatpa_set_use_dft_tic_lbl_fmtfplot_core::plot_axis
    set_zero_axispa_set_zero_axisfplot_core::plot_axis
    set_zero_axis_line_widthpa_set_zero_axis_widthfplot_core::plot_axis
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1z__axis.html b/docs/html/structfplot__core_1_1z__axis.html deleted file mode 100644 index f200404..0000000 --- a/docs/html/structfplot__core_1_1z__axis.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - - -fplot: fplot_core::z_axis Type Reference - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.7.1 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_core::z_axis Type Reference
    -
    -
    - -

    A z-axis object. - More...

    -
    -Inheritance diagram for fplot_core::z_axis:
    -
    -
    - - -fplot_core::plot_axis -fplot_core::plot_object - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public get_id_string za_get_id
     Gets the axis identification string.
     
    - Public Member Functions inherited from fplot_core::plot_axis
    procedure, public get_title pa_get_title
     Gets the axis' title.
     
    procedure, public set_title pa_set_title
     Sets the axis' title.
     
    procedure, public is_title_defined pa_has_title
     Gets a value determining if a title has been defined for the plot_axis object.
     
    procedure, public get_autoscale pa_get_autoscale
     Gets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public set_autoscale pa_set_autoscale
     Sets a logical value determining if the axis should be automatically scaled to fit the data.
     
    procedure, public get_limits pa_get_axis_limits
     Gets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public set_limits pa_set_axis_limits
     Sets the axis display limits, assuming autoscaling is not active for this axis.
     
    procedure, public get_is_log_scaled pa_get_log_scale
     Gets a logical value defining if the axis should be log scaled.
     
    procedure, public set_is_log_scaled pa_set_log_scale
     Sets a logical value defining if the axis should be log scaled.
     
    procedure, public get_command_string pa_get_cmd_string
     Returns the appropriate GNUPLOT command string to define the plot_axis properties.
     
    procedure, public get_zero_axis pa_get_zero_axis
     Gets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public set_zero_axis pa_set_zero_axis
     Sets a value determining if the axis should be drawn through zero of opposing axes.
     
    procedure, public get_zero_axis_line_width pa_get_zero_axis_width
     Gets the width of the line used to represent the zero axis line, if active.
     
    procedure, public set_zero_axis_line_width pa_set_zero_axis_width
     Sets the width of the line used to represent the zero axis line, if active.
     
    procedure, public get_use_default_tic_label_format pa_get_use_dft_tic_lbl_fmt
     Gets a value determining if the default tic label format will be used.
     
    procedure, public set_use_default_tic_label_format pa_set_use_dft_tic_lbl_fmt
     Sets a value determining if the default tic label format will be used.
     
    procedure, public get_tic_label_format pa_get_tic_label_fmt
     Gets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    procedure, public set_tic_label_format pa_set_tic_label_fmt
     Sets the tic label format. The format string can be any format string accepted by the C command 'printf.'.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    character m_id = "z"
     The ID character.
     
    - Public Attributes inherited from fplot_core::plot_axis
    character(len=plotdata_max_name_lengthm_title = ""
     The axis title.
     
    logical m_autoscale = .true.
     Autoscale?
     
    real(real64), dimension(2) m_limits = [0.0d0, 1.0d0]
     Display limits.
     
    logical m_logscale = .false.
     Log scaled?
     
    logical m_zeroaxis = .false.
     Zero axis?
     
    real(real32) m_axiswidth = 1.0
     The width, in pixels, of the zero axis line.
     
    logical m_defaultticlabels = .true.
     Use default tic label format?
     
    character(len=plotdata_max_name_lengthm_ticlabelfmt = "%g"
     The tic label format.
     
    -

    Detailed Description

    -

    A z-axis object.

    -
    Syntax
    character(len = :) function, allocatable get_id_string(class(z_axis) this)
    -
    -
    Parameters
    - - -
    [in]thisThe z_axis object.
    -
    -
    -
    Returns
    The string.
    - -

    Definition at line 5720 of file fplot_core.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ get_id_string()

    - -
    -
    - - - - - -
    - - - - -
    procedure, public fplot_core::z_axis::get_id_string
    -
    -virtual
    -
    - -

    Gets the axis identification string.

    - -

    Implements fplot_core::plot_axis.

    - -

    Definition at line 5725 of file fplot_core.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_id

    - -
    -
    - - - - -
    character fplot_core::z_axis::m_id = "z"
    -
    - -

    The ID character.

    - -

    Definition at line 5722 of file fplot_core.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__core_1_1z__axis.js b/docs/html/structfplot__core_1_1z__axis.js deleted file mode 100644 index 6e8e181..0000000 --- a/docs/html/structfplot__core_1_1z__axis.js +++ /dev/null @@ -1,5 +0,0 @@ -var structfplot__core_1_1z__axis = -[ - [ "get_id_string", "structfplot__core_1_1z__axis.html#a9a72041ffd57f8e2cb109e4d49d0f922", null ], - [ "m_id", "structfplot__core_1_1z__axis.html#addc6091f267c1ac64cb7faaae05f2b63", null ] -]; \ No newline at end of file diff --git a/docs/html/structfplot__core_1_1z__axis.png b/docs/html/structfplot__core_1_1z__axis.png deleted file mode 100644 index e809d44..0000000 Binary files a/docs/html/structfplot__core_1_1z__axis.png and /dev/null differ diff --git a/docs/html/structfplot__string__builder_1_1string__builder-members.html b/docs/html/structfplot__string__builder_1_1string__builder-members.html deleted file mode 100644 index 66fcadf..0000000 --- a/docs/html/structfplot__string__builder_1_1string__builder-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.6.2 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    fplot_string_builder::string_builder Member List
    -
    - -
    - - - - diff --git a/docs/html/structfplot__string__builder_1_1string__builder.html b/docs/html/structfplot__string__builder_1_1string__builder.html deleted file mode 100644 index 5bc9ec2..0000000 --- a/docs/html/structfplot__string__builder_1_1string__builder.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - -fplot: fplot_string_builder::string_builder Type Reference - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.6.2 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    - -
    fplot_string_builder::string_builder Type Reference
    -
    -
    - -

    A mechanism for constructing strings in a piecewise fashion in an efficient manner. - More...

    - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    procedure, public initialize => sb_init
     Initializes the string_builder object. More...
     
    procedure, public append => sb_append
     Appends to the string. More...
     
    procedure, public to_string => sb_to_string
     Returns the contents as a single string. More...
     
    procedure, public get_length => sb_get_length
     Gets the current length of the string being built. More...
     
    procedure, public clear => sb_clear
     Clears the buffer. More...
     
    - - - -

    -Public Attributes

    character(len=:), allocatable m_buffer
     
    - - - -

    -Private Attributes

    integer(int32) m_length = 0
     
    -

    Detailed Description

    -

    A mechanism for constructing strings in a piecewise fashion in an efficient manner.

    - -

    Definition at line 12 of file fplot_string_builder.f90.

    -

    Member Function/Subroutine Documentation

    - -

    ◆ append()

    - -
    -
    - - - - -
    procedure, public fplot_string_builder::string_builder::append
    -
    - -

    Appends to the string.

    -
    Syntax
    subroutine append(class(string_builder) this, character(len = *) txt)
    -
    -
    Parameters
    - - - -
    [in,out]thisThe string_builder object.
    [in]txtThe string to append.
    -
    -
    - -

    Definition at line 35 of file fplot_string_builder.f90.

    - -
    -
    - -

    ◆ clear()

    - -
    -
    - - - - -
    procedure, public fplot_string_builder::string_builder::clear
    -
    - -

    Clears the buffer.

    -
    Syntax
    subroutine clear(class(string_builder) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe string_builder object.
    -
    -
    - -

    Definition at line 64 of file fplot_string_builder.f90.

    - -
    -
    - -

    ◆ get_length()

    - -
    -
    - - - - -
    procedure, public fplot_string_builder::string_builder::get_length
    -
    - -

    Gets the current length of the string being built.

    -
    Syntax
    integer(int32) pure function get_length(class(string_builder) this)
    -
    -
    Parameters
    - - -
    [in]thisThe string_builder object.
    -
    -
    -
    Returns
    Gets the length of the string.
    - -

    Definition at line 55 of file fplot_string_builder.f90.

    - -
    -
    - -

    ◆ initialize()

    - -
    -
    - - - - -
    procedure, public fplot_string_builder::string_builder::initialize
    -
    - -

    Initializes the string_builder object.

    -
    Syntax
    subroutine initialize(class(string_builder) this)
    -
    -
    Parameters
    - - -
    [in,out]thisThe string_builder object.
    -
    -
    - -

    Definition at line 25 of file fplot_string_builder.f90.

    - -
    -
    - -

    ◆ to_string()

    - -
    -
    - - - - -
    procedure, public fplot_string_builder::string_builder::to_string
    -
    - -

    Returns the contents as a single string.

    -
    Syntax
    character(len = :) pure function to_string(class(string_builder) this)
    -
    -
    Parameters
    - - -
    [in]thisThe string_builder object.
    -
    -
    -
    Returns
    Returns the contents as a string.
    - -

    Definition at line 45 of file fplot_string_builder.f90.

    - -
    -
    -

    Member Data Documentation

    - -

    ◆ m_buffer

    - -
    -
    - - - - -
    character(len = :), allocatable fplot_string_builder::string_builder::m_buffer
    -
    - -

    Definition at line 15 of file fplot_string_builder.f90.

    - -
    -
    - -

    ◆ m_length

    - -
    -
    - - - - - -
    - - - - -
    integer(int32) fplot_string_builder::string_builder::m_length = 0
    -
    -private
    -
    - -

    Definition at line 14 of file fplot_string_builder.f90.

    - -
    -
    -
    The documentation for this type was generated from the following file: -
    -
    - - - - diff --git a/docs/html/structfplot__string__builder_1_1string__builder.js b/docs/html/structfplot__string__builder_1_1string__builder.js deleted file mode 100644 index 8e33dac..0000000 --- a/docs/html/structfplot__string__builder_1_1string__builder.js +++ /dev/null @@ -1,8 +0,0 @@ -var structfplot__string__builder_1_1string__builder = -[ - [ "append", "structfplot__string__builder_1_1string__builder.html#ac2fe1b628a58d360a0cb8341b7ed6332", null ], - [ "clear", "structfplot__string__builder_1_1string__builder.html#a3cce60f869f466ca865e99f3d22275ce", null ], - [ "get_length", "structfplot__string__builder_1_1string__builder.html#a8a49743a99c5f0a3a961b84ea5ef4425", null ], - [ "initialize", "structfplot__string__builder_1_1string__builder.html#a9eac15798175a4d8f0a5c7db0de9ad99", null ], - [ "to_string", "structfplot__string__builder_1_1string__builder.html#ac2c78b1d71b5d922a3a02c910256a89a", null ] -]; \ No newline at end of file diff --git a/docs/html/structhalfedge__s-members.html b/docs/html/structhalfedge__s-members.html deleted file mode 100644 index 32a0218..0000000 --- a/docs/html/structhalfedge__s-members.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    halfedge_s Member List
    -
    -
    - -

    This is the complete list of members for halfedge_s, including all inherited members.

    - - - - - - -
    face (defined in halfedge_s)halfedge_s
    next (defined in halfedge_s)halfedge_s
    pair (defined in halfedge_s)halfedge_s
    prev (defined in halfedge_s)halfedge_s
    vertex (defined in halfedge_s)halfedge_s
    -
    - - - - diff --git a/docs/html/structhalfedge__s.html b/docs/html/structhalfedge__s.html deleted file mode 100644 index 8a0ecc4..0000000 --- a/docs/html/structhalfedge__s.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -fplot: halfedge_s Struct Reference - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    halfedge_s Struct Reference
    -
    -
    - - - - - - - - - - - - -

    -Public Attributes

    -point2d_tvertex
     
    -halfedge_tpair
     
    -halfedge_tnext
     
    -halfedge_tprev
     
    -face_tface
     
    -

    Detailed Description

    -
    -

    Definition at line 68 of file delaunay.c.

    -

    The documentation for this struct was generated from the following file:
      -
    • C:/Users/jchri/Documents/github/fplot/src/delaunay.c
    • -
    -
    -
    - - - - diff --git a/docs/html/structhalfedge__s.js b/docs/html/structhalfedge__s.js deleted file mode 100644 index d671314..0000000 --- a/docs/html/structhalfedge__s.js +++ /dev/null @@ -1,8 +0,0 @@ -var structhalfedge__s = -[ - [ "face", "structhalfedge__s.html#a05bb26108758aa57f8d97128b643f309", null ], - [ "next", "structhalfedge__s.html#a18ff1d6579105a3152729e1403b21ab9", null ], - [ "pair", "structhalfedge__s.html#ab808e86d43a30f6e8b08d82195160193", null ], - [ "prev", "structhalfedge__s.html#a0cdb20dd588cf4b02242dbdc3d309213", null ], - [ "vertex", "structhalfedge__s.html#a4623aa7ceaf05866029b1134d43a1390", null ] -]; \ No newline at end of file diff --git a/docs/html/structpoint2d__s-members.html b/docs/html/structpoint2d__s-members.html deleted file mode 100644 index 4598339..0000000 --- a/docs/html/structpoint2d__s-members.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    point2d_s Member List
    -
    -
    - -

    This is the complete list of members for point2d_s, including all inherited members.

    - - - - - -
    he (defined in point2d_s)point2d_s
    idx (defined in point2d_s)point2d_s
    x (defined in point2d_s)point2d_s
    y (defined in point2d_s)point2d_s
    -
    - - - - diff --git a/docs/html/structpoint2d__s.html b/docs/html/structpoint2d__s.html deleted file mode 100644 index dacd644..0000000 --- a/docs/html/structpoint2d__s.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - -fplot: point2d_s Struct Reference - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    point2d_s Struct Reference
    -
    -
    - - - - - - - - - - -

    -Public Attributes

    -real x
     
    -real y
     
    -halfedge_the
     
    -unsigned int idx
     
    -

    Detailed Description

    -
    -

    Definition at line 57 of file delaunay.c.

    -

    The documentation for this struct was generated from the following file:
      -
    • C:/Users/jchri/Documents/github/fplot/src/delaunay.c
    • -
    -
    -
    - - - - diff --git a/docs/html/structpoint2d__s.js b/docs/html/structpoint2d__s.js deleted file mode 100644 index dbcb19d..0000000 --- a/docs/html/structpoint2d__s.js +++ /dev/null @@ -1,7 +0,0 @@ -var structpoint2d__s = -[ - [ "he", "structpoint2d__s.html#aa3ba48149e1b1bdde17159698cbdd5dd", null ], - [ "idx", "structpoint2d__s.html#a9b2791f7bc116f9d850cf12c01d83424", null ], - [ "x", "structpoint2d__s.html#aaed108d192519666cd776c9566fdba24", null ], - [ "y", "structpoint2d__s.html#a1b7dac869c74baf89d4c651a51e8df52", null ] -]; \ No newline at end of file diff --git a/docs/html/structworking__set__s-members.html b/docs/html/structworking__set__s-members.html deleted file mode 100644 index e48d946..0000000 --- a/docs/html/structworking__set__s-members.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -fplot: Member List - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    working_set_s Member List
    -
    -
    - -

    This is the complete list of members for working_set_s, including all inherited members.

    - - - - - - - - - -
    edges (defined in working_set_s)working_set_s
    faces (defined in working_set_s)working_set_s
    free_edge (defined in working_set_s)working_set_s
    free_face (defined in working_set_s)working_set_s
    max_edge (defined in working_set_s)working_set_s
    max_face (defined in working_set_s)working_set_s
    num_edges (defined in working_set_s)working_set_s
    num_faces (defined in working_set_s)working_set_s
    -
    - - - - diff --git a/docs/html/structworking__set__s.html b/docs/html/structworking__set__s.html deleted file mode 100644 index ee19a03..0000000 --- a/docs/html/structworking__set__s.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - -fplot: working_set_s Struct Reference - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.5.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    - -
    -
    working_set_s Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -halfedge_tedges
     
    -face_tfaces
     
    -unsigned int max_edge
     
    -unsigned int max_face
     
    -unsigned int num_edges
     
    -unsigned int num_faces
     
    -halfedge_tfree_edge
     
    -face_tfree_face
     
    -

    Detailed Description

    -
    -

    Definition at line 86 of file delaunay.c.

    -

    The documentation for this struct was generated from the following file:
      -
    • C:/Users/jchri/Documents/github/fplot/src/delaunay.c
    • -
    -
    -
    - - - - diff --git a/docs/html/structworking__set__s.js b/docs/html/structworking__set__s.js deleted file mode 100644 index cea8629..0000000 --- a/docs/html/structworking__set__s.js +++ /dev/null @@ -1,11 +0,0 @@ -var structworking__set__s = -[ - [ "edges", "structworking__set__s.html#af2024c2c5477ba755b63bfa0c93ef7d4", null ], - [ "faces", "structworking__set__s.html#a6bb27b3eb949905c90e50cd3a2e8cd26", null ], - [ "free_edge", "structworking__set__s.html#a8a2e9519ac5cde2bb6bb32ee2212b678", null ], - [ "free_face", "structworking__set__s.html#a34191517f514ad0668320331dbe1f3e3", null ], - [ "max_edge", "structworking__set__s.html#a8844df463e14bf0f88d0c3671184f511", null ], - [ "max_face", "structworking__set__s.html#aeb85953daefa5efc41afdecd534d4863", null ], - [ "num_edges", "structworking__set__s.html#a9b1f8b487cc32cd4c3d0ccbaf9f42073", null ], - [ "num_faces", "structworking__set__s.html#a93cd93f41a6ce387a56e4c3dc0fe2703", null ] -]; \ No newline at end of file diff --git a/docs/html/surface_example_w_cb_label.png b/docs/html/surface_example_w_cb_label.png deleted file mode 100644 index 380ee26..0000000 Binary files a/docs/html/surface_example_w_cb_label.png and /dev/null differ diff --git a/docs/html/surface_plot_hidden_lines_1.png b/docs/html/surface_plot_hidden_lines_1.png deleted file mode 100644 index f1b33b2..0000000 Binary files a/docs/html/surface_plot_hidden_lines_1.png and /dev/null differ diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png deleted file mode 100644 index 3b443fc..0000000 Binary files a/docs/html/sync_off.png and /dev/null differ diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png deleted file mode 100644 index e08320f..0000000 Binary files a/docs/html/sync_on.png and /dev/null differ diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png deleted file mode 100644 index 3b725c4..0000000 Binary files a/docs/html/tab_a.png and /dev/null differ diff --git a/docs/html/tab_ad.png b/docs/html/tab_ad.png deleted file mode 100644 index e34850a..0000000 Binary files a/docs/html/tab_ad.png and /dev/null differ diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png deleted file mode 100644 index e2b4a86..0000000 Binary files a/docs/html/tab_b.png and /dev/null differ diff --git a/docs/html/tab_bd.png b/docs/html/tab_bd.png deleted file mode 100644 index 91c2524..0000000 Binary files a/docs/html/tab_bd.png and /dev/null differ diff --git a/docs/html/tab_h.png b/docs/html/tab_h.png deleted file mode 100644 index fd5cb70..0000000 Binary files a/docs/html/tab_h.png and /dev/null differ diff --git a/docs/html/tab_hd.png b/docs/html/tab_hd.png deleted file mode 100644 index 2489273..0000000 Binary files a/docs/html/tab_hd.png and /dev/null differ diff --git a/docs/html/tab_s.png b/docs/html/tab_s.png deleted file mode 100644 index ab478c9..0000000 Binary files a/docs/html/tab_s.png and /dev/null differ diff --git a/docs/html/tab_sd.png b/docs/html/tab_sd.png deleted file mode 100644 index 757a565..0000000 Binary files a/docs/html/tab_sd.png and /dev/null differ diff --git a/docs/html/tabs.css b/docs/html/tabs.css deleted file mode 100644 index fe4854a..0000000 --- a/docs/html/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/docs/html/tripack_8f_source.html b/docs/html/tripack_8f_source.html deleted file mode 100644 index 63d2ebb..0000000 --- a/docs/html/tripack_8f_source.html +++ /dev/null @@ -1,6112 +0,0 @@ - - - - - - - -fplot: D:/Code/fplot/src/tripack.f Source File - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot 1.6.2 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    Loading...
    -
    Searching...
    -
    No Matches
    -
    -
    -
    -
    - -
    -
    tripack.f
    -
    -
    -
    1 SUBROUTINE addcst (NCC,LCC,N,X,Y, LWK,IWK,LIST,LPTR,
    -
    2 . LEND, IER)
    -
    3 INTEGER NCC, LCC(*), N, LWK, IWK(LWK), LIST(*),
    -
    4 . lptr(*), lend(n), ier
    -
    5 REAL X(N), Y(N)
    -
    6C
    -
    7C***********************************************************
    -
    8C
    -
    9C From TRIPACK
    -
    10C Robert J. Renka
    -
    11C Dept. of Computer Science
    -
    12C Univ. of North Texas
    -
    13C renka@cs.unt.edu
    -
    14C 11/12/94
    -
    15C
    -
    16C This subroutine provides for creation of a constrained
    -
    17C Delaunay triangulation which, in some sense, covers an
    -
    18C arbitrary connected region R rather than the convex hull
    -
    19C of the nodes. This is achieved simply by forcing the
    -
    20C presence of certain adjacencies (triangulation arcs) cor-
    -
    21C responding to constraint curves. The union of triangles
    -
    22C coincides with the convex hull of the nodes, but triangles
    -
    23C in R can be distinguished from those outside of R. The
    -
    24C only modification required to generalize the definition of
    -
    25C the Delaunay triangulation is replacement of property 5
    -
    26C (refer to TRMESH) by the following:
    -
    27C
    -
    28C 5') If a node is contained in the interior of the cir-
    -
    29C cumcircle of a triangle, then every interior point
    -
    30C of the triangle is separated from the node by a
    -
    31C constraint arc.
    -
    32C
    -
    33C In order to be explicit, we make the following defini-
    -
    34C tions. A constraint region is the open interior of a
    -
    35C simple closed positively oriented polygonal curve defined
    -
    36C by an ordered sequence of three or more distinct nodes
    -
    37C (constraint nodes) P(1),P(2),...,P(K), such that P(I) is
    -
    38C adjacent to P(I+1) for I = 1,...,K with P(K+1) = P(1).
    -
    39C Thus, the constraint region is on the left (and may have
    -
    40C nonfinite area) as the sequence of constraint nodes is
    -
    41C traversed in the specified order. The constraint regions
    -
    42C must not contain nodes and must not overlap. The region
    -
    43C R is the convex hull of the nodes with constraint regions
    -
    44C excluded.
    -
    45C
    -
    46C Note that the terms boundary node and boundary arc are
    -
    47C reserved for nodes and arcs on the boundary of the convex
    -
    48C hull of the nodes.
    -
    49C
    -
    50C The algorithm is as follows: given a triangulation
    -
    51C which includes one or more sets of constraint nodes, the
    -
    52C corresponding adjacencies (constraint arcs) are forced to
    -
    53C be present (Subroutine EDGE). Any additional new arcs
    -
    54C required are chosen to be locally optimal (satisfy the
    -
    55C modified circumcircle property).
    -
    56C
    -
    57C
    -
    58C On input:
    -
    59C
    -
    60C NCC = Number of constraint curves (constraint re-
    -
    61C gions). NCC .GE. 0.
    -
    62C
    -
    63C LCC = Array of length NCC (or dummy array of length
    -
    64C 1 if NCC = 0) containing the index (for X, Y,
    -
    65C and LEND) of the first node of constraint I in
    -
    66C LCC(I) for I = 1 to NCC. Thus, constraint I
    -
    67C contains K = LCC(I+1) - LCC(I) nodes, K .GE.
    -
    68C 3, stored in (X,Y) locations LCC(I), ...,
    -
    69C LCC(I+1)-1, where LCC(NCC+1) = N+1.
    -
    70C
    -
    71C N = Number of nodes in the triangulation, including
    -
    72C constraint nodes. N .GE. 3.
    -
    73C
    -
    74C X,Y = Arrays of length N containing the coordinates
    -
    75C of the nodes with non-constraint nodes in the
    -
    76C first LCC(1)-1 locations, followed by NCC se-
    -
    77C quences of constraint nodes. Only one of
    -
    78C these sequences may be specified in clockwise
    -
    79C order to represent an exterior constraint
    -
    80C curve (a constraint region with nonfinite
    -
    81C area).
    -
    82C
    -
    83C The above parameters are not altered by this routine.
    -
    84C
    -
    85C LWK = Length of IWK. This must be at least 2*NI
    -
    86C where NI is the maximum number of arcs which
    -
    87C intersect a constraint arc to be added. NI
    -
    88C is bounded by N-3.
    -
    89C
    -
    90C IWK = Integer work array of length LWK (used by
    -
    91C Subroutine EDGE to add constraint arcs).
    -
    92C
    -
    93C LIST,LPTR,LEND = Data structure defining the trian-
    -
    94C gulation. Refer to Subroutine
    -
    95C TRMESH.
    -
    96C
    -
    97C On output:
    -
    98C
    -
    99C LWK = Required length of IWK unless IER = 1 or IER =
    -
    100C 3. In the case of IER = 1, LWK is not altered
    -
    101C from its input value.
    -
    102C
    -
    103C IWK = Array containing the endpoint indexes of the
    -
    104C new arcs which were swapped in by the last
    -
    105C call to Subroutine EDGE.
    -
    106C
    -
    107C LIST,LPTR,LEND = Triangulation data structure with
    -
    108C all constraint arcs present unless
    -
    109C IER .NE. 0. These arrays are not
    -
    110C altered if IER = 1.
    -
    111C
    -
    112C IER = Error indicator:
    -
    113C IER = 0 if no errors were encountered.
    -
    114C IER = 1 if NCC, N, or an LCC entry is outside
    -
    115C its valid range, or LWK .LT. 0 on
    -
    116C input.
    -
    117C IER = 2 if more space is required in IWK.
    -
    118C IER = 3 if the triangulation data structure is
    -
    119C invalid, or failure (in EDGE or OPTIM)
    -
    120C was caused by collinear nodes on the
    -
    121C convex hull boundary. An error mes-
    -
    122C sage is written to logical unit 6 in
    -
    123C this case.
    -
    124C IER = 4 if intersecting constraint arcs were
    -
    125C encountered.
    -
    126C IER = 5 if a constraint region contains a
    -
    127C node.
    -
    128C
    -
    129C Modules required by ADDCST: EDGE, LEFT, LSTPTR, OPTIM,
    -
    130C SWAP, SWPTST
    -
    131C
    -
    132C Intrinsic functions called by ADDCST: ABS, MAX
    -
    133C
    -
    134C***********************************************************
    -
    135C
    -
    136 INTEGER I, IFRST, ILAST, K, KBAK, KFOR, KN, LCCIP1,
    -
    137 . lp, lpb, lpf, lpl, lw, lwd2, n1, n2
    -
    138 lwd2 = lwk/2
    -
    139C
    -
    140C Test for errors in input parameters.
    -
    141C
    -
    142 ier = 1
    -
    143 IF (ncc .LT. 0 .OR. lwk .LT. 0) RETURN
    -
    144 IF (ncc .EQ. 0) THEN
    -
    145 IF (n .LT. 3) RETURN
    -
    146 lwk = 0
    -
    147 GO TO 9
    -
    148 ELSE
    -
    149 lccip1 = n+1
    -
    150 DO 1 i = ncc,1,-1
    -
    151 IF (lccip1 - lcc(i) .LT. 3) RETURN
    -
    152 lccip1 = lcc(i)
    -
    153 1 CONTINUE
    -
    154 IF (lccip1 .LT. 1) RETURN
    -
    155 ENDIF
    -
    156C
    -
    157C Force the presence of constraint arcs. The outer loop is
    -
    158C on constraints in reverse order. IFRST and ILAST are
    -
    159C the first and last nodes of constraint I.
    -
    160C
    -
    161 lwk = 0
    -
    162 ifrst = n+1
    -
    163 DO 3 i = ncc,1,-1
    -
    164 ilast = ifrst - 1
    -
    165 ifrst = lcc(i)
    -
    166C
    -
    167C Inner loop on constraint arcs N1-N2 in constraint I.
    -
    168C
    -
    169 n1 = ilast
    -
    170 DO 2 n2 = ifrst,ilast
    -
    171 lw = lwd2
    -
    172 CALL edge (n1,n2,x,y, lw,iwk,list,lptr,lend, ier)
    -
    173 lwk = max(lwk,2*lw)
    -
    174 IF (ier .EQ. 4) ier = 3
    -
    175 IF (ier .NE. 0) RETURN
    -
    176 n1 = n2
    -
    177 2 CONTINUE
    -
    178 3 CONTINUE
    -
    179C
    -
    180C Test for errors. The outer loop is on constraint I with
    -
    181C first and last nodes IFRST and ILAST, and the inner loop
    -
    182C is on constraint nodes K with (KBAK,K,KFOR) a subse-
    -
    183C quence of constraint I.
    -
    184C
    -
    185 ier = 4
    -
    186 ifrst = n+1
    -
    187 DO 8 i = ncc,1,-1
    -
    188 ilast = ifrst - 1
    -
    189 ifrst = lcc(i)
    -
    190 kbak = ilast
    -
    191 DO 7 k = ifrst,ilast
    -
    192 kfor = k + 1
    -
    193 IF (k .EQ. ilast) kfor = ifrst
    -
    194C
    -
    195C Find the LIST pointers LPF and LPB of KFOR and KBAK as
    -
    196C neighbors of K.
    -
    197C
    -
    198 lpf = 0
    -
    199 lpb = 0
    -
    200 lpl = lend(k)
    -
    201 lp = lpl
    -
    202C
    -
    203 4 lp = lptr(lp)
    -
    204 kn = abs(list(lp))
    -
    205 IF (kn .EQ. kfor) lpf = lp
    -
    206 IF (kn .EQ. kbak) lpb = lp
    -
    207 IF (lp .NE. lpl) GO TO 4
    -
    208C
    -
    209C A pair of intersecting constraint arcs was encountered
    -
    210C if and only if a constraint arc is missing (introduc-
    -
    211C tion of the second caused the first to be swapped out).
    -
    212C
    -
    213 IF (lpf .EQ. 0 .OR. lpb .EQ. 0) RETURN
    -
    214C
    -
    215C Loop on neighbors KN of node K which follow KFOR and
    -
    216C precede KBAK. The constraint region contains no nodes
    -
    217C if and only if all such nodes KN are in constraint I.
    -
    218C
    -
    219 lp = lpf
    -
    220 5 lp = lptr(lp)
    -
    221 IF (lp .EQ. lpb) GO TO 6
    -
    222 kn = abs(list(lp))
    -
    223 IF (kn .LT. ifrst .OR. kn .GT. ilast) GO TO 10
    -
    224 GO TO 5
    -
    225C
    -
    226C Bottom of loop.
    -
    227C
    -
    228 6 kbak = k
    -
    229 7 CONTINUE
    -
    230 8 CONTINUE
    -
    231C
    -
    232C No errors encountered.
    -
    233C
    -
    234 9 ier = 0
    -
    235 RETURN
    -
    236C
    -
    237C A constraint region contains a node.
    -
    238C
    -
    239 10 ier = 5
    -
    240 RETURN
    -
    241 END
    -
    242 SUBROUTINE addnod (K,XK,YK,IST,NCC, LCC,N,X,Y,LIST,
    -
    243 . LPTR,LEND,LNEW, IER)
    -
    244 INTEGER K, IST, NCC, LCC(*), N, LIST(*), LPTR(*),
    -
    245 . LEND(*), LNEW, IER
    -
    246 REAL XK, YK, X(*), Y(*)
    -
    247C
    -
    248C***********************************************************
    -
    249C
    -
    250C From TRIPACK
    -
    251C Robert J. Renka
    -
    252C Dept. of Computer Science
    -
    253C Univ. of North Texas
    -
    254C renka@cs.unt.edu
    -
    255C 06/27/98
    -
    256C
    -
    257C Given a triangulation of N nodes in the plane created by
    -
    258C Subroutine TRMESH or TRMSHR, this subroutine updates the
    -
    259C data structure with the addition of a new node in position
    -
    260C K. If node K is inserted into X and Y (K .LE. N) rather
    -
    261C than appended (K = N+1), then a corresponding insertion
    -
    262C must be performed in any additional arrays associated
    -
    263C with the nodes. For example, an array of data values Z
    -
    264C must be shifted down to open up position K for the new
    -
    265C value: set Z(I+1) to Z(I) for I = N,N-1,...,K. For
    -
    266C optimal efficiency, new nodes should be appended whenever
    -
    267C possible. Insertion is necessary, however, to add a non-
    -
    268C constraint node when constraints are present (refer to
    -
    269C Subroutine ADDCST).
    -
    270C
    -
    271C Note that a constraint node cannot be added by this
    -
    272C routine. In order to insert a constraint node, it is
    -
    273C necessary to add the node with no constraints present
    -
    274C (call this routine with NCC = 0), update LCC by increment-
    -
    275C ing the appropriate entries, and then create (or restore)
    -
    276C the constraints by a call to ADDCST.
    -
    277C
    -
    278C The algorithm consists of the following steps: node K
    -
    279C is located relative to the triangulation (TRFIND), its
    -
    280C index is added to the data structure (INTADD or BDYADD),
    -
    281C and a sequence of swaps (SWPTST and SWAP) are applied to
    -
    282C the arcs opposite K so that all arcs incident on node K
    -
    283C and opposite node K (excluding constraint arcs) are local-
    -
    284C ly optimal (satisfy the circumcircle test). Thus, if a
    -
    285C (constrained) Delaunay triangulation is input, a (con-
    -
    286C strained) Delaunay triangulation will result. All indexes
    -
    287C are incremented as necessary for an insertion.
    -
    288C
    -
    289C
    -
    290C On input:
    -
    291C
    -
    292C K = Nodal index (index for X, Y, and LEND) of the
    -
    293C new node to be added. 1 .LE. K .LE. LCC(1).
    -
    294C (K .LE. N+1 if NCC=0).
    -
    295C
    -
    296C XK,YK = Cartesian coordinates of the new node (to be
    -
    297C stored in X(K) and Y(K)). The node must not
    -
    298C lie in a constraint region.
    -
    299C
    -
    300C IST = Index of a node at which TRFIND begins the
    -
    301C search. Search time depends on the proximity
    -
    302C of this node to node K. 1 .LE. IST .LE. N.
    -
    303C
    -
    304C NCC = Number of constraint curves. NCC .GE. 0.
    -
    305C
    -
    306C The above parameters are not altered by this routine.
    -
    307C
    -
    308C LCC = List of constraint curve starting indexes (or
    -
    309C dummy array of length 1 if NCC = 0). Refer to
    -
    310C Subroutine ADDCST.
    -
    311C
    -
    312C N = Number of nodes in the triangulation before K is
    -
    313C added. N .GE. 3. Note that N will be incre-
    -
    314C mented following the addition of node K.
    -
    315C
    -
    316C X,Y = Arrays of length at least N+1 containing the
    -
    317C Cartesian coordinates of the nodes in the
    -
    318C first N positions with non-constraint nodes
    -
    319C in the first LCC(1)-1 locations if NCC > 0.
    -
    320C
    -
    321C LIST,LPTR,LEND,LNEW = Data structure associated with
    -
    322C the triangulation of nodes 1
    -
    323C to N. The arrays must have
    -
    324C sufficient length for N+1
    -
    325C nodes. Refer to TRMESH.
    -
    326C
    -
    327C On output:
    -
    328C
    -
    329C LCC = List of constraint curve starting indexes in-
    -
    330C cremented by 1 to reflect the insertion of K
    -
    331C unless NCC = 0 or (IER .NE. 0 and IER .NE.
    -
    332C -4).
    -
    333C
    -
    334C N = Number of nodes in the triangulation including K
    -
    335C unless IER .NE. 0 and IER .NE. -4. Note that
    -
    336C all comments refer to the input value of N.
    -
    337C
    -
    338C X,Y = Arrays updated with the insertion of XK and YK
    -
    339C in the K-th positions (node I+1 was node I be-
    -
    340C fore the insertion for I = K to N if K .LE. N)
    -
    341C unless IER .NE. 0 and IER .NE. -4.
    -
    342C
    -
    343C LIST,LPTR,LEND,LNEW = Data structure updated with
    -
    344C the addition of node K unless
    -
    345C IER .NE. 0 and IER .NE. -4.
    -
    346C
    -
    347C IER = Error indicator:
    -
    348C IER = 0 if no errors were encountered.
    -
    349C IER = -1 if K, IST, NCC, N, or an LCC entry is
    -
    350C outside its valid range on input.
    -
    351C IER = -2 if all nodes (including K) are col-
    -
    352C linear.
    -
    353C IER = L if nodes L and K coincide for some L.
    -
    354C IER = -3 if K lies in a constraint region.
    -
    355C IER = -4 if an error flag is returned by SWAP
    -
    356C implying that the triangulation
    -
    357C (geometry) was bad on input.
    -
    358C
    -
    359C The errors conditions are tested in the order
    -
    360C specified.
    -
    361C
    -
    362C Modules required by ADDNOD: BDYADD, CRTRI, INDXCC,
    -
    363C INSERT, INTADD, JRAND,
    -
    364C LEFT, LSTPTR, SWAP,
    -
    365C SWPTST, TRFIND
    -
    366C
    -
    367C Intrinsic function called by ADDNOD: ABS
    -
    368C
    -
    369C***********************************************************
    -
    370C
    -
    371 INTEGER INDXCC, LSTPTR
    -
    372 INTEGER I, I1, I2, I3, IBK, IO1, IO2, IN1, KK, L,
    -
    373 . lccip1, lp, lpf, lpo1, nm1
    -
    374 LOGICAL CRTRI, SWPTST
    -
    375 KK = k
    -
    376C
    -
    377C Test for an invalid input parameter.
    -
    378C
    -
    379 IF (kk .LT. 1 .OR. ist .LT. 1 .OR. ist .GT. n
    -
    380 . .OR. ncc .LT. 0 .OR. n .LT. 3) GO TO 7
    -
    381 lccip1 = n+1
    -
    382 DO 1 i = ncc,1,-1
    -
    383 IF (lccip1-lcc(i) .LT. 3) GO TO 7
    -
    384 lccip1 = lcc(i)
    -
    385 1 CONTINUE
    -
    386 IF (kk .GT. lccip1) GO TO 7
    -
    387C
    -
    388C Find a triangle (I1,I2,I3) containing K or the rightmost
    -
    389C (I1) and leftmost (I2) visible boundary nodes as viewed
    -
    390C from node K.
    -
    391C
    -
    392 CALL trfind (ist,xk,yk,n,x,y,list,lptr,lend, i1,i2,i3)
    -
    393C
    -
    394C Test for collinear nodes, duplicate nodes, and K lying in
    -
    395C a constraint region.
    -
    396C
    -
    397 IF (i1 .EQ. 0) GO TO 8
    -
    398 IF (i3 .NE. 0) THEN
    -
    399 l = i1
    -
    400 IF (xk .EQ. x(l) .AND. yk .EQ. y(l)) GO TO 9
    -
    401 l = i2
    -
    402 IF (xk .EQ. x(l) .AND. yk .EQ. y(l)) GO TO 9
    -
    403 l = i3
    -
    404 IF (xk .EQ. x(l) .AND. yk .EQ. y(l)) GO TO 9
    -
    405 IF (ncc .GT. 0 .AND. crtri(ncc,lcc,i1,i2,i3) )
    -
    406 . GO TO 10
    -
    407 ELSE
    -
    408C
    -
    409C K is outside the convex hull of the nodes and lies in a
    -
    410C constraint region iff an exterior constraint curve is
    -
    411C present.
    -
    412C
    -
    413 IF (ncc .GT. 0 .AND. indxcc(ncc,lcc,n,list,lend)
    -
    414 . .NE. 0) GO TO 10
    -
    415 ENDIF
    -
    416C
    -
    417C No errors encountered.
    -
    418C
    -
    419 ier = 0
    -
    420 nm1 = n
    -
    421 n = n + 1
    -
    422 IF (kk .LT. n) THEN
    -
    423C
    -
    424C Open a slot for K in X, Y, and LEND, and increment all
    -
    425C nodal indexes which are greater than or equal to K.
    -
    426C Note that LIST, LPTR, and LNEW are not yet updated with
    -
    427C either the neighbors of K or the edges terminating on K.
    -
    428C
    -
    429 DO 2 ibk = nm1,kk,-1
    -
    430 x(ibk+1) = x(ibk)
    -
    431 y(ibk+1) = y(ibk)
    -
    432 lend(ibk+1) = lend(ibk)
    -
    433 2 CONTINUE
    -
    434 DO 3 i = 1,ncc
    -
    435 lcc(i) = lcc(i) + 1
    -
    436 3 CONTINUE
    -
    437 l = lnew - 1
    -
    438 DO 4 i = 1,l
    -
    439 IF (list(i) .GE. kk) list(i) = list(i) + 1
    -
    440 IF (list(i) .LE. -kk) list(i) = list(i) - 1
    -
    441 4 CONTINUE
    -
    442 IF (i1 .GE. kk) i1 = i1 + 1
    -
    443 IF (i2 .GE. kk) i2 = i2 + 1
    -
    444 IF (i3 .GE. kk) i3 = i3 + 1
    -
    445 ENDIF
    -
    446C
    -
    447C Insert K into X and Y, and update LIST, LPTR, LEND, and
    -
    448C LNEW with the arcs containing node K.
    -
    449C
    -
    450 x(kk) = xk
    -
    451 y(kk) = yk
    -
    452 IF (i3 .EQ. 0) THEN
    -
    453 CALL bdyadd (kk,i1,i2, list,lptr,lend,lnew )
    -
    454 ELSE
    -
    455 CALL intadd (kk,i1,i2,i3, list,lptr,lend,lnew )
    -
    456 ENDIF
    -
    457C
    -
    458C Initialize variables for optimization of the triangula-
    -
    459C tion.
    -
    460C
    -
    461 lp = lend(kk)
    -
    462 lpf = lptr(lp)
    -
    463 io2 = list(lpf)
    -
    464 lpo1 = lptr(lpf)
    -
    465 io1 = abs(list(lpo1))
    -
    466C
    -
    467C Begin loop: find the node opposite K.
    -
    468C
    -
    469 5 lp = lstptr(lend(io1),io2,list,lptr)
    -
    470 IF (list(lp) .LT. 0) GO TO 6
    -
    471 lp = lptr(lp)
    -
    472 in1 = abs(list(lp))
    -
    473 IF ( crtri(ncc,lcc,io1,io2,in1) ) GO TO 6
    -
    474C
    -
    475C Swap test: if a swap occurs, two new arcs are
    -
    476C opposite K and must be tested.
    -
    477C
    -
    478 IF ( .NOT. swptst(in1,kk,io1,io2,x,y) ) GO TO 6
    -
    479 CALL swap (in1,kk,io1,io2, list,lptr,lend, lpo1)
    -
    480 IF (lpo1 .EQ. 0) GO TO 11
    -
    481 io1 = in1
    -
    482 GO TO 5
    -
    483C
    -
    484C No swap occurred. Test for termination and reset
    -
    485C IO2 and IO1.
    -
    486C
    -
    487 6 IF (lpo1 .EQ. lpf .OR. list(lpo1) .LT. 0) RETURN
    -
    488 io2 = io1
    -
    489 lpo1 = lptr(lpo1)
    -
    490 io1 = abs(list(lpo1))
    -
    491 GO TO 5
    -
    492C
    -
    493C A parameter is outside its valid range on input.
    -
    494C
    -
    495 7 ier = -1
    -
    496 RETURN
    -
    497C
    -
    498C All nodes are collinear.
    -
    499C
    -
    500 8 ier = -2
    -
    501 RETURN
    -
    502C
    -
    503C Nodes L and K coincide.
    -
    504C
    -
    505 9 ier = l
    -
    506 RETURN
    -
    507C
    -
    508C Node K lies in a constraint region.
    -
    509C
    -
    510 10 ier = -3
    -
    511 RETURN
    -
    512C
    -
    513C Zero pointer returned by SWAP.
    -
    514C
    -
    515 11 ier = -4
    -
    516 RETURN
    -
    517 END
    -
    518 REAL FUNCTION AREAP (X,Y,NB,NODES)
    -
    519 INTEGER NB, NODES(NB)
    -
    520 REAL X(*), Y(*)
    -
    521C
    -
    522C***********************************************************
    -
    523C
    -
    524C From TRIPACK
    -
    525C Robert J. Renka
    -
    526C Dept. of Computer Science
    -
    527C Univ. of North Texas
    -
    528C renka@cs.unt.edu
    -
    529C 09/21/90
    -
    530C
    -
    531C Given a sequence of NB points in the plane, this func-
    -
    532C tion computes the signed area bounded by the closed poly-
    -
    533C gonal curve which passes through the points in the
    -
    534C specified order. Each simple closed curve is positively
    -
    535C oriented (bounds positive area) if and only if the points
    -
    536C are specified in counterclockwise order. The last point
    -
    537C of the curve is taken to be the first point specified, and
    -
    538C this point should therefore not be specified twice.
    -
    539C
    -
    540C The area of a triangulation may be computed by calling
    -
    541C AREAP with values of NB and NODES determined by Subroutine
    -
    542C BNODES.
    -
    543C
    -
    544C
    -
    545C On input:
    -
    546C
    -
    547C X,Y = Arrays of length N containing the Cartesian
    -
    548C coordinates of a set of points in the plane
    -
    549C for some N .GE. NB.
    -
    550C
    -
    551C NB = Length of NODES.
    -
    552C
    -
    553C NODES = Array of length NB containing the ordered
    -
    554C sequence of nodal indexes (in the range
    -
    555C 1 to N) which define the polygonal curve.
    -
    556C
    -
    557C Input parameters are not altered by this function.
    -
    558C
    -
    559C On output:
    -
    560C
    -
    561C AREAP = Signed area bounded by the polygonal curve,
    -
    562C or zero if NB < 3.
    -
    563C
    -
    564C Modules required by AREAP: None
    -
    565C
    -
    566C***********************************************************
    -
    567C
    -
    568 INTEGER I, ND1, ND2, NNB
    -
    569 REAL A
    -
    570C
    -
    571C Local parameters:
    -
    572C
    -
    573C A = Partial sum of signed (and doubled) trapezoid
    -
    574C areas
    -
    575C I = DO-loop and NODES index
    -
    576C ND1,ND2 = Elements of NODES
    -
    577C NNB = Local copy of NB
    -
    578C
    -
    579 nnb = nb
    -
    580 a = 0.
    -
    581 IF (nnb .LT. 3) GO TO 2
    -
    582 nd2 = nodes(nnb)
    -
    583C
    -
    584C Loop on line segments NODES(I-1) -> NODES(I), where
    -
    585C NODES(0) = NODES(NB), adding twice the signed trapezoid
    -
    586C areas (integrals of the linear interpolants) to A.
    -
    587C
    -
    588 DO 1 i = 1,nnb
    -
    589 nd1 = nd2
    -
    590 nd2 = nodes(i)
    -
    591 a = a + (x(nd2)-x(nd1))*(y(nd1)+y(nd2))
    -
    592 1 CONTINUE
    -
    593C
    -
    594C A contains twice the negative signed area of the region.
    -
    595C
    -
    596 2 areap = -a/2.
    -
    597 RETURN
    -
    598 END
    -
    599 SUBROUTINE bdyadd (KK,I1,I2, LIST,LPTR,LEND,LNEW )
    -
    600 INTEGER KK, I1, I2, LIST(*), LPTR(*), LEND(*), LNEW
    -
    601C
    -
    602C***********************************************************
    -
    603C
    -
    604C From TRIPACK
    -
    605C Robert J. Renka
    -
    606C Dept. of Computer Science
    -
    607C Univ. of North Texas
    -
    608C renka@cs.unt.edu
    -
    609C 02/22/91
    -
    610C
    -
    611C This subroutine adds a boundary node to a triangulation
    -
    612C of a set of points in the plane. The data structure is
    -
    613C updated with the insertion of node KK, but no optimization
    -
    614C is performed.
    -
    615C
    -
    616C
    -
    617C On input:
    -
    618C
    -
    619C KK = Index of a node to be connected to the sequence
    -
    620C of all visible boundary nodes. KK .GE. 1 and
    -
    621C KK must not be equal to I1 or I2.
    -
    622C
    -
    623C I1 = First (rightmost as viewed from KK) boundary
    -
    624C node in the triangulation which is visible from
    -
    625C node KK (the line segment KK-I1 intersects no
    -
    626C arcs.
    -
    627C
    -
    628C I2 = Last (leftmost) boundary node which is visible
    -
    629C from node KK. I1 and I2 may be determined by
    -
    630C Subroutine TRFIND.
    -
    631C
    -
    632C The above parameters are not altered by this routine.
    -
    633C
    -
    634C LIST,LPTR,LEND,LNEW = Triangulation data structure
    -
    635C created by TRMESH or TRMSHR.
    -
    636C Nodes I1 and I2 must be in-
    -
    637C cluded in the triangulation.
    -
    638C
    -
    639C On output:
    -
    640C
    -
    641C LIST,LPTR,LEND,LNEW = Data structure updated with
    -
    642C the addition of node KK. Node
    -
    643C KK is connected to I1, I2, and
    -
    644C all boundary nodes in between.
    -
    645C
    -
    646C Module required by BDYADD: INSERT
    -
    647C
    -
    648C***********************************************************
    -
    649C
    -
    650 INTEGER K, LP, LSAV, N1, N2, NEXT, NSAV
    -
    651 K = kk
    -
    652 n1 = i1
    -
    653 n2 = i2
    -
    654C
    -
    655C Add K as the last neighbor of N1.
    -
    656C
    -
    657 lp = lend(n1)
    -
    658 lsav = lptr(lp)
    -
    659 lptr(lp) = lnew
    -
    660 list(lnew) = -k
    -
    661 lptr(lnew) = lsav
    -
    662 lend(n1) = lnew
    -
    663 lnew = lnew + 1
    -
    664 next = -list(lp)
    -
    665 list(lp) = next
    -
    666 nsav = next
    -
    667C
    -
    668C Loop on the remaining boundary nodes between N1 and N2,
    -
    669C adding K as the first neighbor.
    -
    670C
    -
    671 1 lp = lend(next)
    -
    672 CALL insert (k,lp,list,lptr,lnew)
    -
    673 IF (next .EQ. n2) GO TO 2
    -
    674 next = -list(lp)
    -
    675 list(lp) = next
    -
    676 GO TO 1
    -
    677C
    -
    678C Add the boundary nodes between N1 and N2 as neighbors
    -
    679C of node K.
    -
    680C
    -
    681 2 lsav = lnew
    -
    682 list(lnew) = n1
    -
    683 lptr(lnew) = lnew + 1
    -
    684 lnew = lnew + 1
    -
    685 next = nsav
    -
    686C
    -
    687 3 IF (next .EQ. n2) GO TO 4
    -
    688 list(lnew) = next
    -
    689 lptr(lnew) = lnew + 1
    -
    690 lnew = lnew + 1
    -
    691 lp = lend(next)
    -
    692 next = list(lp)
    -
    693 GO TO 3
    -
    694C
    -
    695 4 list(lnew) = -n2
    -
    696 lptr(lnew) = lsav
    -
    697 lend(k) = lnew
    -
    698 lnew = lnew + 1
    -
    699 RETURN
    -
    700 END
    -
    701 SUBROUTINE bnodes (N,LIST,LPTR,LEND, NODES,NB,NA,NT)
    -
    702 INTEGER N, LIST(*), LPTR(*), LEND(N), NODES(*), NB,
    -
    703 . na, nt
    -
    704C
    -
    705C***********************************************************
    -
    706C
    -
    707C From TRIPACK
    -
    708C Robert J. Renka
    -
    709C Dept. of Computer Science
    -
    710C Univ. of North Texas
    -
    711C renka@cs.unt.edu
    -
    712C 09/01/88
    -
    713C
    -
    714C Given a triangulation of N points in the plane, this
    -
    715C subroutine returns an array containing the indexes, in
    -
    716C counterclockwise order, of the nodes on the boundary of
    -
    717C the convex hull of the set of points.
    -
    718C
    -
    719C
    -
    720C On input:
    -
    721C
    -
    722C N = Number of nodes in the triangulation. N .GE. 3.
    -
    723C
    -
    724C LIST,LPTR,LEND = Data structure defining the trian-
    -
    725C gulation. Refer to Subroutine
    -
    726C TRMESH.
    -
    727C
    -
    728C The above parameters are not altered by this routine.
    -
    729C
    -
    730C NODES = Integer array of length at least NB
    -
    731C (NB .LE. N).
    -
    732C
    -
    733C On output:
    -
    734C
    -
    735C NODES = Ordered sequence of boundary node indexes
    -
    736C in the range 1 to N.
    -
    737C
    -
    738C NB = Number of boundary nodes.
    -
    739C
    -
    740C NA,NT = Number of arcs and triangles, respectively,
    -
    741C in the triangulation.
    -
    742C
    -
    743C Modules required by BNODES: None
    -
    744C
    -
    745C***********************************************************
    -
    746C
    -
    747 INTEGER K, LP, N0, NST
    -
    748C
    -
    749C Set NST to the first boundary node encountered.
    -
    750C
    -
    751 nst = 1
    -
    752 1 lp = lend(nst)
    -
    753 IF (list(lp) .LT. 0) GO TO 2
    -
    754 nst = nst + 1
    -
    755 GO TO 1
    -
    756C
    -
    757C Initialization.
    -
    758C
    -
    759 2 nodes(1) = nst
    -
    760 k = 1
    -
    761 n0 = nst
    -
    762C
    -
    763C Traverse the boundary in counterclockwise order.
    -
    764C
    -
    765 3 lp = lend(n0)
    -
    766 lp = lptr(lp)
    -
    767 n0 = list(lp)
    -
    768 IF (n0 .EQ. nst) GO TO 4
    -
    769 k = k + 1
    -
    770 nodes(k) = n0
    -
    771 GO TO 3
    -
    772C
    -
    773C Termination.
    -
    774C
    -
    775 4 nb = k
    -
    776 nt = 2*n - nb - 2
    -
    777 na = nt + n - 1
    -
    778 RETURN
    -
    779 END
    -
    780 SUBROUTINE circum (X1,Y1,X2,Y2,X3,Y3,RATIO, XC,YC,CR,
    -
    781 . SA,AR)
    -
    782 LOGICAL RATIO
    -
    783 REAL X1, Y1, X2, Y2, X3, Y3, XC, YC, CR, SA, AR
    -
    784C
    -
    785C***********************************************************
    -
    786C
    -
    787C From TRIPACK
    -
    788C Robert J. Renka
    -
    789C Dept. of Computer Science
    -
    790C Univ. of North Texas
    -
    791C renka@cs.unt.edu
    -
    792C 12/10/96
    -
    793C
    -
    794C Given three vertices defining a triangle, this subrou-
    -
    795C tine returns the circumcenter, circumradius, signed
    -
    796C triangle area, and, optionally, the aspect ratio of the
    -
    797C triangle.
    -
    798C
    -
    799C
    -
    800C On input:
    -
    801C
    -
    802C X1,...,Y3 = Cartesian coordinates of the vertices.
    -
    803C
    -
    804C RATIO = Logical variable with value TRUE if and only
    -
    805C if the aspect ratio is to be computed.
    -
    806C
    -
    807C Input parameters are not altered by this routine.
    -
    808C
    -
    809C On output:
    -
    810C
    -
    811C XC,YC = Cartesian coordinates of the circumcenter
    -
    812C (center of the circle defined by the three
    -
    813C points) unless SA = 0, in which XC and YC
    -
    814C are not altered.
    -
    815C
    -
    816C CR = Circumradius (radius of the circle defined by
    -
    817C the three points) unless SA = 0 (infinite
    -
    818C radius), in which case CR is not altered.
    -
    819C
    -
    820C SA = Signed triangle area with positive value if
    -
    821C and only if the vertices are specified in
    -
    822C counterclockwise order: (X3,Y3) is strictly
    -
    823C to the left of the directed line from (X1,Y1)
    -
    824C toward (X2,Y2).
    -
    825C
    -
    826C AR = Aspect ratio r/CR, where r is the radius of the
    -
    827C inscribed circle, unless RATIO = FALSE, in
    -
    828C which case AR is not altered. AR is in the
    -
    829C range 0 to .5, with value 0 iff SA = 0 and
    -
    830C value .5 iff the vertices define an equilateral
    -
    831C triangle.
    -
    832C
    -
    833C Modules required by CIRCUM: None
    -
    834C
    -
    835C Intrinsic functions called by CIRCUM: ABS, SQRT
    -
    836C
    -
    837C***********************************************************
    -
    838C
    -
    839 INTEGER I
    -
    840 REAL DS(3), FX, FY, U(3), V(3)
    -
    841C
    -
    842C Set U(K) and V(K) to the x and y components, respectively,
    -
    843C of the directed edge opposite vertex K.
    -
    844C
    -
    845 u(1) = x3 - x2
    -
    846 u(2) = x1 - x3
    -
    847 u(3) = x2 - x1
    -
    848 v(1) = y3 - y2
    -
    849 v(2) = y1 - y3
    -
    850 v(3) = y2 - y1
    -
    851C
    -
    852C Set SA to the signed triangle area.
    -
    853C
    -
    854 sa = (u(1)*v(2) - u(2)*v(1))/2.
    -
    855 IF (sa .EQ. 0.) THEN
    -
    856 IF (ratio) ar = 0.
    -
    857 RETURN
    -
    858 ENDIF
    -
    859C
    -
    860C Set DS(K) to the squared distance from the origin to
    -
    861C vertex K.
    -
    862C
    -
    863 ds(1) = x1*x1 + y1*y1
    -
    864 ds(2) = x2*x2 + y2*y2
    -
    865 ds(3) = x3*x3 + y3*y3
    -
    866C
    -
    867C Compute factors of XC and YC.
    -
    868C
    -
    869 fx = 0.
    -
    870 fy = 0.
    -
    871 DO 1 i = 1,3
    -
    872 fx = fx - ds(i)*v(i)
    -
    873 fy = fy + ds(i)*u(i)
    -
    874 1 CONTINUE
    -
    875 xc = fx/(4.*sa)
    -
    876 yc = fy/(4.*sa)
    -
    877 cr = sqrt( (xc-x1)**2 + (yc-y1)**2 )
    -
    878 IF (.NOT. ratio) RETURN
    -
    879C
    -
    880C Compute the squared edge lengths and aspect ratio.
    -
    881C
    -
    882 DO 2 i = 1,3
    -
    883 ds(i) = u(i)*u(i) + v(i)*v(i)
    -
    884 2 CONTINUE
    -
    885 ar = 2.*abs(sa)/
    -
    886 . ( (sqrt(ds(1)) + sqrt(ds(2)) + sqrt(ds(3)))*cr )
    -
    887 RETURN
    -
    888 END
    -
    889 LOGICAL FUNCTION crtri (NCC,LCC,I1,I2,I3)
    -
    890 INTEGER NCC, LCC(*), I1, I2, I3
    -
    891C
    -
    892C***********************************************************
    -
    893C
    -
    894C From TRIPACK
    -
    895C Robert J. Renka
    -
    896C Dept. of Computer Science
    -
    897C Univ. of North Texas
    -
    898C renka@cs.unt.edu
    -
    899C 08/14/91
    -
    900C
    -
    901C This function returns TRUE if and only if triangle (I1,
    -
    902C I2,I3) lies in a constraint region.
    -
    903C
    -
    904C
    -
    905C On input:
    -
    906C
    -
    907C NCC,LCC = Constraint data structure. Refer to Sub-
    -
    908C routine ADDCST.
    -
    909C
    -
    910C I1,I2,I3 = Nodal indexes of the counterclockwise-
    -
    911C ordered vertices of a triangle.
    -
    912C
    -
    913C Input parameters are altered by this function.
    -
    914C
    -
    915C CRTRI = TRUE iff (I1,I2,I3) is a constraint region
    -
    916C triangle.
    -
    917C
    -
    918C Note that input parameters are not tested for validity.
    -
    919C
    -
    920C Modules required by CRTRI: None
    -
    921C
    -
    922C Intrinsic functions called by CRTRI: MAX, MIN
    -
    923C
    -
    924C***********************************************************
    -
    925C
    -
    926 INTEGER I, IMAX, IMIN
    -
    927 IMAX = max(i1,i2,i3)
    -
    928C
    -
    929C Find the index I of the constraint containing IMAX.
    -
    930C
    -
    931 i = ncc + 1
    -
    932 1 i = i - 1
    -
    933 IF (i .LE. 0) GO TO 2
    -
    934 IF (imax .LT. lcc(i)) GO TO 1
    -
    935 imin = min(i1,i2,i3)
    -
    936C
    -
    937C P lies in a constraint region iff I1, I2, and I3 are nodes
    -
    938C of the same constraint (IMIN >= LCC(I)), and (IMIN,IMAX)
    -
    939C is (I1,I3), (I2,I1), or (I3,I2).
    -
    940C
    -
    941 crtri = imin .GE. lcc(i) .AND. ((imin .EQ. i1 .AND.
    -
    942 . imax .EQ. i3) .OR. (imin .EQ. i2 .AND.
    -
    943 . imax .EQ. i1) .OR. (imin .EQ. i3 .AND.
    -
    944 . imax .EQ. i2))
    -
    945 RETURN
    -
    946C
    -
    947C NCC .LE. 0 or all vertices are non-constraint nodes.
    -
    948C
    -
    949 2 crtri = .false.
    -
    950 RETURN
    -
    951 END
    -
    952 SUBROUTINE delarc (N,IO1,IO2, LIST,LPTR,LEND,
    -
    953 . LNEW, IER)
    -
    954 INTEGER N, IO1, IO2, LIST(*), LPTR(*), LEND(N), LNEW,
    -
    955 . ier
    -
    956C
    -
    957C***********************************************************
    -
    958C
    -
    959C From TRIPACK
    -
    960C Robert J. Renka
    -
    961C Dept. of Computer Science
    -
    962C Univ. of North Texas
    -
    963C renka@cs.unt.edu
    -
    964C 11/12/94
    -
    965C
    -
    966C This subroutine deletes a boundary arc from a triangula-
    -
    967C tion. It may be used to remove a null triangle from the
    -
    968C convex hull boundary. Note, however, that if the union of
    -
    969C triangles is rendered nonconvex, Subroutines DELNOD, EDGE,
    -
    970C and TRFIND may fail. Thus, Subroutines ADDCST, ADDNOD,
    -
    971C DELNOD, EDGE, and NEARND should not be called following
    -
    972C an arc deletion.
    -
    973C
    -
    974C
    -
    975C On input:
    -
    976C
    -
    977C N = Number of nodes in the triangulation. N .GE. 4.
    -
    978C
    -
    979C IO1,IO2 = Indexes (in the range 1 to N) of a pair of
    -
    980C adjacent boundary nodes defining the arc
    -
    981C to be removed.
    -
    982C
    -
    983C The above parameters are not altered by this routine.
    -
    984C
    -
    985C LIST,LPTR,LEND,LNEW = Triangulation data structure
    -
    986C created by TRMESH or TRMSHR.
    -
    987C
    -
    988C On output:
    -
    989C
    -
    990C LIST,LPTR,LEND,LNEW = Data structure updated with
    -
    991C the removal of arc IO1-IO2
    -
    992C unless IER > 0.
    -
    993C
    -
    994C IER = Error indicator:
    -
    995C IER = 0 if no errors were encountered.
    -
    996C IER = 1 if N, IO1, or IO2 is outside its valid
    -
    997C range, or IO1 = IO2.
    -
    998C IER = 2 if IO1-IO2 is not a boundary arc.
    -
    999C IER = 3 if the node opposite IO1-IO2 is al-
    -
    1000C ready a boundary node, and thus IO1
    -
    1001C or IO2 has only two neighbors or a
    -
    1002C deletion would result in two triangu-
    -
    1003C lations sharing a single node.
    -
    1004C IER = 4 if one of the nodes is a neighbor of
    -
    1005C the other, but not vice versa, imply-
    -
    1006C ing an invalid triangulation data
    -
    1007C structure.
    -
    1008C
    -
    1009C Modules required by DELARC: DELNB, LSTPTR
    -
    1010C
    -
    1011C Intrinsic function called by DELARC: ABS
    -
    1012C
    -
    1013C***********************************************************
    -
    1014C
    -
    1015 INTEGER LSTPTR
    -
    1016 INTEGER LP, LPH, LPL, N1, N2, N3
    -
    1017 N1 = io1
    -
    1018 n2 = io2
    -
    1019C
    -
    1020C Test for errors, and set N1->N2 to the directed boundary
    -
    1021C edge associated with IO1-IO2: (N1,N2,N3) is a triangle
    -
    1022C for some N3.
    -
    1023C
    -
    1024 IF (n .LT. 4 .OR. n1 .LT. 1 .OR. n1 .GT. n .OR.
    -
    1025 . n2 .LT. 1 .OR. n2 .GT. n .OR. n1 .EQ. n2) THEN
    -
    1026 ier = 1
    -
    1027 RETURN
    -
    1028 ENDIF
    -
    1029C
    -
    1030 lpl = lend(n2)
    -
    1031 IF (-list(lpl) .NE. n1) THEN
    -
    1032 n1 = n2
    -
    1033 n2 = io1
    -
    1034 lpl = lend(n2)
    -
    1035 IF (-list(lpl) .NE. n1) THEN
    -
    1036 ier = 2
    -
    1037 RETURN
    -
    1038 ENDIF
    -
    1039 ENDIF
    -
    1040C
    -
    1041C Set N3 to the node opposite N1->N2 (the second neighbor
    -
    1042C of N1), and test for error 3 (N3 already a boundary
    -
    1043C node).
    -
    1044C
    -
    1045 lpl = lend(n1)
    -
    1046 lp = lptr(lpl)
    -
    1047 lp = lptr(lp)
    -
    1048 n3 = abs(list(lp))
    -
    1049 lpl = lend(n3)
    -
    1050 IF (list(lpl) .LE. 0) THEN
    -
    1051 ier = 3
    -
    1052 RETURN
    -
    1053 ENDIF
    -
    1054C
    -
    1055C Delete N2 as a neighbor of N1, making N3 the first
    -
    1056C neighbor, and test for error 4 (N2 not a neighbor
    -
    1057C of N1). Note that previously computed pointers may
    -
    1058C no longer be valid following the call to DELNB.
    -
    1059C
    -
    1060 CALL delnb (n1,n2,n, list,lptr,lend,lnew, lph)
    -
    1061 IF (lph .LT. 0) THEN
    -
    1062 ier = 4
    -
    1063 RETURN
    -
    1064 ENDIF
    -
    1065C
    -
    1066C Delete N1 as a neighbor of N2, making N3 the new last
    -
    1067C neighbor.
    -
    1068C
    -
    1069 CALL delnb (n2,n1,n, list,lptr,lend,lnew, lph)
    -
    1070C
    -
    1071C Make N3 a boundary node with first neighbor N2 and last
    -
    1072C neighbor N1.
    -
    1073C
    -
    1074 lp = lstptr(lend(n3),n1,list,lptr)
    -
    1075 lend(n3) = lp
    -
    1076 list(lp) = -n1
    -
    1077C
    -
    1078C No errors encountered.
    -
    1079C
    -
    1080 ier = 0
    -
    1081 RETURN
    -
    1082 END
    -
    1083 SUBROUTINE delnb (N0,NB,N, LIST,LPTR,LEND,LNEW, LPH)
    -
    1084 INTEGER N0, NB, N, LIST(*), LPTR(*), LEND(N), LNEW,
    -
    1085 . lph
    -
    1086C
    -
    1087C***********************************************************
    -
    1088C
    -
    1089C From TRIPACK
    -
    1090C Robert J. Renka
    -
    1091C Dept. of Computer Science
    -
    1092C Univ. of North Texas
    -
    1093C renka@cs.unt.edu
    -
    1094C 07/30/98
    -
    1095C
    -
    1096C This subroutine deletes a neighbor NB from the adjacency
    -
    1097C list of node N0 (but N0 is not deleted from the adjacency
    -
    1098C list of NB) and, if NB is a boundary node, makes N0 a
    -
    1099C boundary node. For pointer (LIST index) LPH to NB as a
    -
    1100C neighbor of N0, the empty LIST,LPTR location LPH is filled
    -
    1101C in with the values at LNEW-1, pointer LNEW-1 (in LPTR and
    -
    1102C possibly in LEND) is changed to LPH, and LNEW is decremen-
    -
    1103C ted. This requires a search of LEND and LPTR entailing an
    -
    1104C expected operation count of O(N).
    -
    1105C
    -
    1106C
    -
    1107C On input:
    -
    1108C
    -
    1109C N0,NB = Indexes, in the range 1 to N, of a pair of
    -
    1110C nodes such that NB is a neighbor of N0.
    -
    1111C (N0 need not be a neighbor of NB.)
    -
    1112C
    -
    1113C N = Number of nodes in the triangulation. N .GE. 3.
    -
    1114C
    -
    1115C The above parameters are not altered by this routine.
    -
    1116C
    -
    1117C LIST,LPTR,LEND,LNEW = Data structure defining the
    -
    1118C triangulation.
    -
    1119C
    -
    1120C On output:
    -
    1121C
    -
    1122C LIST,LPTR,LEND,LNEW = Data structure updated with
    -
    1123C the removal of NB from the ad-
    -
    1124C jacency list of N0 unless
    -
    1125C LPH < 0.
    -
    1126C
    -
    1127C LPH = List pointer to the hole (NB as a neighbor of
    -
    1128C N0) filled in by the values at LNEW-1 or error
    -
    1129C indicator:
    -
    1130C LPH > 0 if no errors were encountered.
    -
    1131C LPH = -1 if N0, NB, or N is outside its valid
    -
    1132C range.
    -
    1133C LPH = -2 if NB is not a neighbor of N0.
    -
    1134C
    -
    1135C Modules required by DELNB: None
    -
    1136C
    -
    1137C Intrinsic function called by DELNB: ABS
    -
    1138C
    -
    1139C***********************************************************
    -
    1140C
    -
    1141 INTEGER I, LNW, LP, LPB, LPL, LPP, NN
    -
    1142C
    -
    1143C Local parameters:
    -
    1144C
    -
    1145C I = DO-loop index
    -
    1146C LNW = LNEW-1 (output value of LNEW)
    -
    1147C LP = LIST pointer of the last neighbor of NB
    -
    1148C LPB = Pointer to NB as a neighbor of N0
    -
    1149C LPL = Pointer to the last neighbor of N0
    -
    1150C LPP = Pointer to the neighbor of N0 that precedes NB
    -
    1151C NN = Local copy of N
    -
    1152C
    -
    1153 nn = n
    -
    1154C
    -
    1155C Test for error 1.
    -
    1156C
    -
    1157 IF (n0 .LT. 1 .OR. n0 .GT. nn .OR. nb .LT. 1 .OR.
    -
    1158 . nb .GT. nn .OR. nn .LT. 3) THEN
    -
    1159 lph = -1
    -
    1160 RETURN
    -
    1161 ENDIF
    -
    1162C
    -
    1163C Find pointers to neighbors of N0:
    -
    1164C
    -
    1165C LPL points to the last neighbor,
    -
    1166C LPP points to the neighbor NP preceding NB, and
    -
    1167C LPB points to NB.
    -
    1168C
    -
    1169 lpl = lend(n0)
    -
    1170 lpp = lpl
    -
    1171 lpb = lptr(lpp)
    -
    1172 1 IF (list(lpb) .EQ. nb) GO TO 2
    -
    1173 lpp = lpb
    -
    1174 lpb = lptr(lpp)
    -
    1175 IF (lpb .NE. lpl) GO TO 1
    -
    1176C
    -
    1177C Test for error 2 (NB not found).
    -
    1178C
    -
    1179 IF (abs(list(lpb)) .NE. nb) THEN
    -
    1180 lph = -2
    -
    1181 RETURN
    -
    1182 ENDIF
    -
    1183C
    -
    1184C NB is the last neighbor of N0. Make NP the new last
    -
    1185C neighbor and, if NB is a boundary node, then make N0
    -
    1186C a boundary node.
    -
    1187C
    -
    1188 lend(n0) = lpp
    -
    1189 lp = lend(nb)
    -
    1190 IF (list(lp) .LT. 0) list(lpp) = -list(lpp)
    -
    1191 GO TO 3
    -
    1192C
    -
    1193C NB is not the last neighbor of N0. If NB is a boundary
    -
    1194C node and N0 is not, then make N0 a boundary node with
    -
    1195C last neighbor NP.
    -
    1196C
    -
    1197 2 lp = lend(nb)
    -
    1198 IF (list(lp) .LT. 0 .AND. list(lpl) .GT. 0) THEN
    -
    1199 lend(n0) = lpp
    -
    1200 list(lpp) = -list(lpp)
    -
    1201 ENDIF
    -
    1202C
    -
    1203C Update LPTR so that the neighbor following NB now fol-
    -
    1204C lows NP, and fill in the hole at location LPB.
    -
    1205C
    -
    1206 3 lptr(lpp) = lptr(lpb)
    -
    1207 lnw = lnew-1
    -
    1208 list(lpb) = list(lnw)
    -
    1209 lptr(lpb) = lptr(lnw)
    -
    1210 DO 4 i = nn,1,-1
    -
    1211 IF (lend(i) .EQ. lnw) THEN
    -
    1212 lend(i) = lpb
    -
    1213 GO TO 5
    -
    1214 ENDIF
    -
    1215 4 CONTINUE
    -
    1216C
    -
    1217 5 DO 6 i = 1,lnw-1
    -
    1218 IF (lptr(i) .EQ. lnw) THEN
    -
    1219 lptr(i) = lpb
    -
    1220 ENDIF
    -
    1221 6 CONTINUE
    -
    1222C
    -
    1223C No errors encountered.
    -
    1224C
    -
    1225 lnew = lnw
    -
    1226 lph = lpb
    -
    1227 RETURN
    -
    1228 END
    -
    1229 SUBROUTINE delnod (K,NCC, LCC,N,X,Y,LIST,LPTR,LEND,
    -
    1230 . LNEW,LWK,IWK, IER)
    -
    1231 INTEGER K, NCC, LCC(*), N, LIST(*), LPTR(*),
    -
    1232 . lend(*), lnew, lwk, iwk(2,*), ier
    -
    1233 REAL X(*), Y(*)
    -
    1234C
    -
    1235C***********************************************************
    -
    1236C
    -
    1237C From TRIPACK
    -
    1238C Robert J. Renka
    -
    1239C Dept. of Computer Science
    -
    1240C Univ. of North Texas
    -
    1241C renka@cs.unt.edu
    -
    1242C 06/28/98
    -
    1243C
    -
    1244C This subroutine deletes node K (along with all arcs
    -
    1245C incident on node K) from a triangulation of N nodes in the
    -
    1246C plane, and inserts arcs as necessary to produce a triangu-
    -
    1247C lation of the remaining N-1 nodes. If a Delaunay triangu-
    -
    1248C lation is input, a Delaunay triangulation will result, and
    -
    1249C thus, DELNOD reverses the effect of a call to Subroutine
    -
    1250C ADDNOD.
    -
    1251C
    -
    1252C Note that a constraint node cannot be deleted by this
    -
    1253C routine. In order to delete a constraint node, it is
    -
    1254C necessary to call this routine with NCC = 0, decrement the
    -
    1255C appropriate LCC entries (LCC(I) such that LCC(I) > K), and
    -
    1256C then create (or restore) the constraints by a call to Sub-
    -
    1257C routine ADDCST.
    -
    1258C
    -
    1259C
    -
    1260C On input:
    -
    1261C
    -
    1262C K = Index (for X and Y) of the node to be deleted.
    -
    1263C 1 .LE. K .LT. LCC(1). (K .LE. N if NCC=0).
    -
    1264C
    -
    1265C NCC = Number of constraint curves. NCC .GE. 0.
    -
    1266C
    -
    1267C The above parameters are not altered by this routine.
    -
    1268C
    -
    1269C LCC = List of constraint curve starting indexes (or
    -
    1270C dummy array of length 1 if NCC = 0). Refer to
    -
    1271C Subroutine ADDCST.
    -
    1272C
    -
    1273C N = Number of nodes in the triangulation on input.
    -
    1274C N .GE. 4. Note that N will be decremented
    -
    1275C following the deletion.
    -
    1276C
    -
    1277C X,Y = Arrays of length N containing the coordinates
    -
    1278C of the nodes with non-constraint nodes in the
    -
    1279C first LCC(1)-1 locations if NCC > 0.
    -
    1280C
    -
    1281C LIST,LPTR,LEND,LNEW = Data structure defining the
    -
    1282C triangulation. Refer to Sub-
    -
    1283C routine TRMESH.
    -
    1284C
    -
    1285C LWK = Number of columns reserved for IWK. LWK must
    -
    1286C be at least NNB-3, where NNB is the number of
    -
    1287C neighbors of node K, including an extra
    -
    1288C pseudo-node if K is a boundary node.
    -
    1289C
    -
    1290C IWK = Integer work array dimensioned 2 by LWK (or
    -
    1291C array of length .GE. 2*LWK).
    -
    1292C
    -
    1293C On output:
    -
    1294C
    -
    1295C LCC = List of constraint curve starting indexes de-
    -
    1296C cremented by 1 to reflect the deletion of K
    -
    1297C unless NCC = 0 or 1 .LE. IER .LE. 4.
    -
    1298C
    -
    1299C N = New number of nodes (input value minus one) un-
    -
    1300C less 1 .LE. IER .LE. 4.
    -
    1301C
    -
    1302C X,Y = Updated arrays of length N-1 containing nodal
    -
    1303C coordinates (with elements K+1,...,N shifted
    -
    1304C up a position and thus overwriting element K)
    -
    1305C unless 1 .LE. IER .LE. 4. (N here denotes the
    -
    1306C input value.)
    -
    1307C
    -
    1308C LIST,LPTR,LEND,LNEW = Updated triangulation data
    -
    1309C structure reflecting the dele-
    -
    1310C tion unless IER .NE. 0. Note
    -
    1311C that the data structure may
    -
    1312C have been altered if IER .GE.
    -
    1313C 3.
    -
    1314C
    -
    1315C LWK = Number of IWK columns required unless IER = 1
    -
    1316C or IER = 3.
    -
    1317C
    -
    1318C IWK = Indexes of the endpoints of the new arcs added
    -
    1319C unless LWK = 0 or 1 .LE. IER .LE. 4. (Arcs
    -
    1320C are associated with columns, or pairs of
    -
    1321C adjacent elements if IWK is declared as a
    -
    1322C singly-subscripted array.)
    -
    1323C
    -
    1324C IER = Error indicator:
    -
    1325C IER = 0 if no errors were encountered.
    -
    1326C IER = 1 if K, NCC, N, or an LCC entry is out-
    -
    1327C side its valid range or LWK < 0 on
    -
    1328C input.
    -
    1329C IER = 2 if more space is required in IWK.
    -
    1330C Refer to LWK.
    -
    1331C IER = 3 if the triangulation data structure is
    -
    1332C invalid on input.
    -
    1333C IER = 4 if K is an interior node with 4 or
    -
    1334C more neighbors, and the number of
    -
    1335C neighbors could not be reduced to 3
    -
    1336C by swaps. This could be caused by
    -
    1337C floating point errors with collinear
    -
    1338C nodes or by an invalid data structure.
    -
    1339C IER = 5 if an error flag was returned by
    -
    1340C OPTIM. An error message is written
    -
    1341C to the standard output unit in this
    -
    1342C event.
    -
    1343C
    -
    1344C Note that the deletion may result in all remaining nodes
    -
    1345C being collinear. This situation is not flagged.
    -
    1346C
    -
    1347C Modules required by DELNOD: DELNB, LEFT, LSTPTR, NBCNT,
    -
    1348C OPTIM, SWAP, SWPTST
    -
    1349C
    -
    1350C Intrinsic function called by DELNOD: ABS
    -
    1351C
    -
    1352C***********************************************************
    -
    1353C
    -
    1354 INTEGER LSTPTR, NBCNT
    -
    1355 LOGICAL LEFT
    -
    1356 INTEGER I, IERR, IWL, J, LCCIP1, LNW, LP, LP21, LPF,
    -
    1357 . LPH, LPL, LPL2, LPN, LWKL, N1, N2, NFRST, NIT,
    -
    1358 . NL, NN, NNB, NR
    -
    1359 LOGICAL BDRY
    -
    1360 REAL X1, X2, XL, XR, Y1, Y2, YL, YR
    -
    1361C
    -
    1362C Set N1 to K and NNB to the number of neighbors of N1 (plus
    -
    1363C one if N1 is a boundary node), and test for errors. LPF
    -
    1364C and LPL are LIST indexes of the first and last neighbors
    -
    1365C of N1, IWL is the number of IWK columns containing arcs,
    -
    1366C and BDRY is TRUE iff N1 is a boundary node.
    -
    1367C
    -
    1368 n1 = k
    -
    1369 nn = n
    -
    1370 IF (ncc .LT. 0 .OR. n1 .LT. 1 .OR. nn .LT. 4 .OR.
    -
    1371 . lwk .LT. 0) GO TO 21
    -
    1372 lccip1 = nn+1
    -
    1373 DO 1 i = ncc,1,-1
    -
    1374 IF (lccip1-lcc(i) .LT. 3) GO TO 21
    -
    1375 lccip1 = lcc(i)
    -
    1376 1 CONTINUE
    -
    1377 IF (n1 .GE. lccip1) GO TO 21
    -
    1378 lpl = lend(n1)
    -
    1379 lpf = lptr(lpl)
    -
    1380 nnb = nbcnt(lpl,lptr)
    -
    1381 bdry = list(lpl) .LT. 0
    -
    1382 IF (bdry) nnb = nnb + 1
    -
    1383 IF (nnb .LT. 3) GO TO 23
    -
    1384 lwkl = lwk
    -
    1385 lwk = nnb - 3
    -
    1386 IF (lwkl .LT. lwk) GO TO 22
    -
    1387 iwl = 0
    -
    1388 IF (nnb .EQ. 3) GO TO 5
    -
    1389C
    -
    1390C Initialize for loop on arcs N1-N2 for neighbors N2 of N1,
    -
    1391C beginning with the second neighbor. NR and NL are the
    -
    1392C neighbors preceding and following N2, respectively, and
    -
    1393C LP indexes NL. The loop is exited when all possible
    -
    1394C swaps have been applied to arcs incident on N1. If N1
    -
    1395C is interior, the number of neighbors will be reduced
    -
    1396C to 3.
    -
    1397C
    -
    1398 x1 = x(n1)
    -
    1399 y1 = y(n1)
    -
    1400 nfrst = list(lpf)
    -
    1401 nr = nfrst
    -
    1402 xr = x(nr)
    -
    1403 yr = y(nr)
    -
    1404 lp = lptr(lpf)
    -
    1405 n2 = list(lp)
    -
    1406 x2 = x(n2)
    -
    1407 y2 = y(n2)
    -
    1408 lp = lptr(lp)
    -
    1409C
    -
    1410C Top of loop: set NL to the neighbor following N2.
    -
    1411C
    -
    1412 2 nl = abs(list(lp))
    -
    1413 IF (nl .EQ. nfrst .AND. bdry) GO TO 5
    -
    1414 xl = x(nl)
    -
    1415 yl = y(nl)
    -
    1416C
    -
    1417C Test for a convex quadrilateral. To avoid an incorrect
    -
    1418C test caused by collinearity, use the fact that if N1
    -
    1419C is a boundary node, then N1 LEFT NR->NL and if N2 is
    -
    1420C a boundary node, then N2 LEFT NL->NR.
    -
    1421C
    -
    1422 lpl2 = lend(n2)
    -
    1423 IF ( (bdry .OR. left(xr,yr,xl,yl,x1,y1)) .AND.
    -
    1424 . (list(lpl2) .LT. 0 .OR.
    -
    1425 . left(xl,yl,xr,yr,x2,y2)) ) GO TO 3
    -
    1426C
    -
    1427C Nonconvex quadrilateral -- no swap is possible.
    -
    1428C
    -
    1429 nr = n2
    -
    1430 xr = x2
    -
    1431 yr = y2
    -
    1432 GO TO 4
    -
    1433C
    -
    1434C The quadrilateral defined by adjacent triangles
    -
    1435C (N1,N2,NL) and (N2,N1,NR) is convex. Swap in
    -
    1436C NL-NR and store it in IWK. Indexes larger than N1
    -
    1437C must be decremented since N1 will be deleted from
    -
    1438C X and Y.
    -
    1439C
    -
    1440 3 CALL swap (nl,nr,n1,n2, list,lptr,lend, lp21)
    -
    1441 iwl = iwl + 1
    -
    1442 IF (nl .LE. n1) THEN
    -
    1443 iwk(1,iwl) = nl
    -
    1444 ELSE
    -
    1445 iwk(1,iwl) = nl - 1
    -
    1446 ENDIF
    -
    1447 IF (nr .LE. n1) THEN
    -
    1448 iwk(2,iwl) = nr
    -
    1449 ELSE
    -
    1450 iwk(2,iwl) = nr - 1
    -
    1451 ENDIF
    -
    1452C
    -
    1453C Recompute the LIST indexes LPL,LP and decrement NNB.
    -
    1454C
    -
    1455 lpl = lend(n1)
    -
    1456 nnb = nnb - 1
    -
    1457 IF (nnb .EQ. 3) GO TO 5
    -
    1458 lp = lstptr(lpl,nl,list,lptr)
    -
    1459 IF (nr .EQ. nfrst) GO TO 4
    -
    1460C
    -
    1461C NR is not the first neighbor of N1.
    -
    1462C Back up and test N1-NR for a swap again: Set N2 to
    -
    1463C NR and NR to the previous neighbor of N1 -- the
    -
    1464C neighbor of NR which follows N1. LP21 points to NL
    -
    1465C as a neighbor of NR.
    -
    1466C
    -
    1467 n2 = nr
    -
    1468 x2 = xr
    -
    1469 y2 = yr
    -
    1470 lp21 = lptr(lp21)
    -
    1471 lp21 = lptr(lp21)
    -
    1472 nr = abs(list(lp21))
    -
    1473 xr = x(nr)
    -
    1474 yr = y(nr)
    -
    1475 GO TO 2
    -
    1476C
    -
    1477C Bottom of loop -- test for invalid termination.
    -
    1478C
    -
    1479 4 IF (n2 .EQ. nfrst) GO TO 24
    -
    1480 n2 = nl
    -
    1481 x2 = xl
    -
    1482 y2 = yl
    -
    1483 lp = lptr(lp)
    -
    1484 GO TO 2
    -
    1485C
    -
    1486C Delete N1 from the adjacency list of N2 for all neighbors
    -
    1487C N2 of N1. LPL points to the last neighbor of N1.
    -
    1488C LNEW is stored in local variable LNW.
    -
    1489C
    -
    1490 5 lp = lpl
    -
    1491 lnw = lnew
    -
    1492C
    -
    1493C Loop on neighbors N2 of N1, beginning with the first.
    -
    1494C
    -
    1495 6 lp = lptr(lp)
    -
    1496 n2 = abs(list(lp))
    -
    1497 CALL delnb (n2,n1,n, list,lptr,lend,lnw, lph)
    -
    1498 IF (lph .LT. 0) GO TO 23
    -
    1499C
    -
    1500C LP and LPL may require alteration.
    -
    1501C
    -
    1502 IF (lpl .EQ. lnw) lpl = lph
    -
    1503 IF (lp .EQ. lnw) lp = lph
    -
    1504 IF (lp .NE. lpl) GO TO 6
    -
    1505C
    -
    1506C Delete N1 from X, Y, and LEND, and remove its adjacency
    -
    1507C list from LIST and LPTR. LIST entries (nodal indexes)
    -
    1508C which are larger than N1 must be decremented.
    -
    1509C
    -
    1510 nn = nn - 1
    -
    1511 IF (n1 .GT. nn) GO TO 9
    -
    1512 DO 7 i = n1,nn
    -
    1513 x(i) = x(i+1)
    -
    1514 y(i) = y(i+1)
    -
    1515 lend(i) = lend(i+1)
    -
    1516 7 CONTINUE
    -
    1517C
    -
    1518 DO 8 i = 1,lnw-1
    -
    1519 IF (list(i) .GT. n1) list(i) = list(i) - 1
    -
    1520 IF (list(i) .LT. -n1) list(i) = list(i) + 1
    -
    1521 8 CONTINUE
    -
    1522C
    -
    1523C For LPN = first to last neighbors of N1, delete the
    -
    1524C preceding neighbor (indexed by LP).
    -
    1525C
    -
    1526C Each empty LIST,LPTR location LP is filled in with the
    -
    1527C values at LNW-1, and LNW is decremented. All pointers
    -
    1528C (including those in LPTR and LEND) with value LNW-1
    -
    1529C must be changed to LP.
    -
    1530C
    -
    1531C LPL points to the last neighbor of N1.
    -
    1532C
    -
    1533 9 IF (bdry) nnb = nnb - 1
    -
    1534 lpn = lpl
    -
    1535 DO 13 j = 1,nnb
    -
    1536 lnw = lnw - 1
    -
    1537 lp = lpn
    -
    1538 lpn = lptr(lp)
    -
    1539 list(lp) = list(lnw)
    -
    1540 lptr(lp) = lptr(lnw)
    -
    1541 IF (lptr(lpn) .EQ. lnw) lptr(lpn) = lp
    -
    1542 IF (lpn .EQ. lnw) lpn = lp
    -
    1543 DO 10 i = nn,1,-1
    -
    1544 IF (lend(i) .EQ. lnw) THEN
    -
    1545 lend(i) = lp
    -
    1546 GO TO 11
    -
    1547 ENDIF
    -
    1548 10 CONTINUE
    -
    1549C
    -
    1550 11 DO 12 i = lnw-1,1,-1
    -
    1551 IF (lptr(i) .EQ. lnw) lptr(i) = lp
    -
    1552 12 CONTINUE
    -
    1553 13 CONTINUE
    -
    1554C
    -
    1555C Decrement LCC entries.
    -
    1556C
    -
    1557 DO 14 i = 1,ncc
    -
    1558 lcc(i) = lcc(i) - 1
    -
    1559 14 CONTINUE
    -
    1560C
    -
    1561C Update N and LNEW, and optimize the patch of triangles
    -
    1562C containing K (on input) by applying swaps to the arcs
    -
    1563C in IWK.
    -
    1564C
    -
    1565 n = nn
    -
    1566 lnew = lnw
    -
    1567 IF (iwl .GT. 0) THEN
    -
    1568 nit = 4*iwl
    -
    1569 CALL optim (x,y,iwl, list,lptr,lend,nit,iwk, ierr)
    -
    1570 IF (ierr .NE. 0) GO TO 25
    -
    1571 ENDIF
    -
    1572C
    -
    1573C Successful termination.
    -
    1574C
    -
    1575 ier = 0
    -
    1576 RETURN
    -
    1577C
    -
    1578C Invalid input parameter.
    -
    1579C
    -
    1580 21 ier = 1
    -
    1581 RETURN
    -
    1582C
    -
    1583C Insufficient space reserved for IWK.
    -
    1584C
    -
    1585 22 ier = 2
    -
    1586 RETURN
    -
    1587C
    -
    1588C Invalid triangulation data structure. NNB < 3 on input or
    -
    1589C N2 is a neighbor of N1 but N1 is not a neighbor of N2.
    -
    1590C
    -
    1591 23 ier = 3
    -
    1592 RETURN
    -
    1593C
    -
    1594C K is an interior node with 4 or more neighbors, but the
    -
    1595C number of neighbors could not be reduced.
    -
    1596C
    -
    1597 24 ier = 4
    -
    1598 RETURN
    -
    1599C
    -
    1600C Error flag returned by OPTIM.
    -
    1601C
    -
    1602 25 ier = 5
    -
    1603 WRITE (*,100) nit, ierr
    -
    1604 RETURN
    -
    1605 100 FORMAT (//5x,'*** Error in OPTIM: NIT = ',i4,
    -
    1606 . ', IER = ',i1,' ***'/)
    -
    1607 END
    -
    1608 SUBROUTINE edge (IN1,IN2,X,Y, LWK,IWK,LIST,LPTR,
    -
    1609 . LEND, IER)
    -
    1610 INTEGER IN1, IN2, LWK, IWK(2,*), LIST(*), LPTR(*),
    -
    1611 . lend(*), ier
    -
    1612 REAL X(*), Y(*)
    -
    1613C
    -
    1614C***********************************************************
    -
    1615C
    -
    1616C From TRIPACK
    -
    1617C Robert J. Renka
    -
    1618C Dept. of Computer Science
    -
    1619C Univ. of North Texas
    -
    1620C renka@cs.unt.edu
    -
    1621C 06/23/98
    -
    1622C
    -
    1623C Given a triangulation of N nodes and a pair of nodal
    -
    1624C indexes IN1 and IN2, this routine swaps arcs as necessary
    -
    1625C to force IN1 and IN2 to be adjacent. Only arcs which
    -
    1626C intersect IN1-IN2 are swapped out. If a Delaunay triangu-
    -
    1627C lation is input, the resulting triangulation is as close
    -
    1628C as possible to a Delaunay triangulation in the sense that
    -
    1629C all arcs other than IN1-IN2 are locally optimal.
    -
    1630C
    -
    1631C A sequence of calls to EDGE may be used to force the
    -
    1632C presence of a set of edges defining the boundary of a non-
    -
    1633C convex and/or multiply connected region (refer to Subrou-
    -
    1634C tine ADDCST), or to introduce barriers into the triangula-
    -
    1635C tion. Note that Subroutine GETNP will not necessarily
    -
    1636C return closest nodes if the triangulation has been con-
    -
    1637C strained by a call to EDGE. However, this is appropriate
    -
    1638C in some applications, such as triangle-based interpolation
    -
    1639C on a nonconvex domain.
    -
    1640C
    -
    1641C
    -
    1642C On input:
    -
    1643C
    -
    1644C IN1,IN2 = Indexes (of X and Y) in the range 1 to N
    -
    1645C defining a pair of nodes to be connected
    -
    1646C by an arc.
    -
    1647C
    -
    1648C X,Y = Arrays of length N containing the Cartesian
    -
    1649C coordinates of the nodes.
    -
    1650C
    -
    1651C The above parameters are not altered by this routine.
    -
    1652C
    -
    1653C LWK = Number of columns reserved for IWK. This must
    -
    1654C be at least NI -- the number of arcs which
    -
    1655C intersect IN1-IN2. (NI is bounded by N-3.)
    -
    1656C
    -
    1657C IWK = Integer work array of length at least 2*LWK.
    -
    1658C
    -
    1659C LIST,LPTR,LEND = Data structure defining the trian-
    -
    1660C gulation. Refer to Subroutine
    -
    1661C TRMESH.
    -
    1662C
    -
    1663C On output:
    -
    1664C
    -
    1665C LWK = Number of arcs which intersect IN1-IN2 (but
    -
    1666C not more than the input value of LWK) unless
    -
    1667C IER = 1 or IER = 3. LWK = 0 if and only if
    -
    1668C IN1 and IN2 were adjacent (or LWK=0) on input.
    -
    1669C
    -
    1670C IWK = Array containing the indexes of the endpoints
    -
    1671C of the new arcs other than IN1-IN2 unless IER
    -
    1672C .GT. 0 or LWK = 0. New arcs to the left of
    -
    1673C IN2-IN1 are stored in the first K-1 columns
    -
    1674C (left portion of IWK), column K contains
    -
    1675C zeros, and new arcs to the right of IN2-IN1
    -
    1676C occupy columns K+1,...,LWK. (K can be deter-
    -
    1677C mined by searching IWK for the zeros.)
    -
    1678C
    -
    1679C LIST,LPTR,LEND = Data structure updated if necessary
    -
    1680C to reflect the presence of an arc
    -
    1681C connecting IN1 and IN2 unless IER
    -
    1682C .NE. 0. The data structure has
    -
    1683C been altered if IER = 4.
    -
    1684C
    -
    1685C IER = Error indicator:
    -
    1686C IER = 0 if no errors were encountered.
    -
    1687C IER = 1 if IN1 .LT. 1, IN2 .LT. 1, IN1 = IN2,
    -
    1688C or LWK .LT. 0 on input.
    -
    1689C IER = 2 if more space is required in IWK.
    -
    1690C IER = 3 if IN1 and IN2 could not be connected
    -
    1691C due to either an invalid data struc-
    -
    1692C ture or collinear nodes (and floating
    -
    1693C point error).
    -
    1694C IER = 4 if an error flag was returned by
    -
    1695C OPTIM.
    -
    1696C
    -
    1697C An error message is written to the standard output unit
    -
    1698C in the case of IER = 3 or IER = 4.
    -
    1699C
    -
    1700C Modules required by EDGE: LEFT, LSTPTR, OPTIM, SWAP,
    -
    1701C SWPTST
    -
    1702C
    -
    1703C Intrinsic function called by EDGE: ABS
    -
    1704C
    -
    1705C***********************************************************
    -
    1706C
    -
    1707 LOGICAL LEFT
    -
    1708 INTEGER I, IERR, IWC, IWCP1, IWEND, IWF, IWL, LFT, LP,
    -
    1709 . LPL, LP21, NEXT, NIT, NL, NR, N0, N1, N2,
    -
    1710 . N1FRST, N1LST
    -
    1711 REAL DX, DY, X0, Y0, X1, Y1, X2, Y2
    -
    1712C
    -
    1713C Local parameters:
    -
    1714C
    -
    1715C DX,DY = Components of arc N1-N2
    -
    1716C I = DO-loop index and column index for IWK
    -
    1717C IERR = Error flag returned by Subroutine OPTIM
    -
    1718C IWC = IWK index between IWF and IWL -- NL->NR is
    -
    1719C stored in IWK(1,IWC)->IWK(2,IWC)
    -
    1720C IWCP1 = IWC + 1
    -
    1721C IWEND = Input or output value of LWK
    -
    1722C IWF = IWK (column) index of the first (leftmost) arc
    -
    1723C which intersects IN1->IN2
    -
    1724C IWL = IWK (column) index of the last (rightmost) are
    -
    1725C which intersects IN1->IN2
    -
    1726C LFT = Flag used to determine if a swap results in the
    -
    1727C new arc intersecting IN1-IN2 -- LFT = 0 iff
    -
    1728C N0 = IN1, LFT = -1 implies N0 LEFT IN1->IN2,
    -
    1729C and LFT = 1 implies N0 LEFT IN2->IN1
    -
    1730C LP21 = Unused parameter returned by SWAP
    -
    1731C LP = List pointer (index) for LIST and LPTR
    -
    1732C LPL = Pointer to the last neighbor of IN1 or NL
    -
    1733C N0 = Neighbor of N1 or node opposite NR->NL
    -
    1734C N1,N2 = Local copies of IN1 and IN2
    -
    1735C N1FRST = First neighbor of IN1
    -
    1736C N1LST = (Signed) last neighbor of IN1
    -
    1737C NEXT = Node opposite NL->NR
    -
    1738C NIT = Flag or number of iterations employed by OPTIM
    -
    1739C NL,NR = Endpoints of an arc which intersects IN1-IN2
    -
    1740C with NL LEFT IN1->IN2
    -
    1741C X0,Y0 = Coordinates of N0
    -
    1742C X1,Y1 = Coordinates of IN1
    -
    1743C X2,Y2 = Coordinates of IN2
    -
    1744C
    -
    1745C
    -
    1746C Store IN1, IN2, and LWK in local variables and test for
    -
    1747C errors.
    -
    1748C
    -
    1749 n1 = in1
    -
    1750 n2 = in2
    -
    1751 iwend = lwk
    -
    1752 IF (n1 .LT. 1 .OR. n2 .LT. 1 .OR. n1 .EQ. n2 .OR.
    -
    1753 . iwend .LT. 0) GO TO 31
    -
    1754C
    -
    1755C Test for N2 as a neighbor of N1. LPL points to the last
    -
    1756C neighbor of N1.
    -
    1757C
    -
    1758 lpl = lend(n1)
    -
    1759 n0 = abs(list(lpl))
    -
    1760 lp = lpl
    -
    1761 1 IF (n0 .EQ. n2) GO TO 30
    -
    1762 lp = lptr(lp)
    -
    1763 n0 = list(lp)
    -
    1764 IF (lp .NE. lpl) GO TO 1
    -
    1765C
    -
    1766C Initialize parameters.
    -
    1767C
    -
    1768 iwl = 0
    -
    1769 nit = 0
    -
    1770C
    -
    1771C Store the coordinates of N1 and N2.
    -
    1772C
    -
    1773 2 x1 = x(n1)
    -
    1774 y1 = y(n1)
    -
    1775 x2 = x(n2)
    -
    1776 y2 = y(n2)
    -
    1777C
    -
    1778C Set NR and NL to adjacent neighbors of N1 such that
    -
    1779C NR LEFT N2->N1 and NL LEFT N1->N2,
    -
    1780C (NR Forward N1->N2 or NL Forward N1->N2), and
    -
    1781C (NR Forward N2->N1 or NL Forward N2->N1).
    -
    1782C
    -
    1783C Initialization: Set N1FRST and N1LST to the first and
    -
    1784C (signed) last neighbors of N1, respectively, and
    -
    1785C initialize NL to N1FRST.
    -
    1786C
    -
    1787 lpl = lend(n1)
    -
    1788 n1lst = list(lpl)
    -
    1789 lp = lptr(lpl)
    -
    1790 n1frst = list(lp)
    -
    1791 nl = n1frst
    -
    1792 IF (n1lst .LT. 0) GO TO 4
    -
    1793C
    -
    1794C N1 is an interior node. Set NL to the first candidate
    -
    1795C for NR (NL LEFT N2->N1).
    -
    1796C
    -
    1797 3 IF ( left(x2,y2,x1,y1,x(nl),y(nl)) ) GO TO 4
    -
    1798 lp = lptr(lp)
    -
    1799 nl = list(lp)
    -
    1800 IF (nl .NE. n1frst) GO TO 3
    -
    1801C
    -
    1802C All neighbors of N1 are strictly left of N1->N2.
    -
    1803C
    -
    1804 GO TO 5
    -
    1805C
    -
    1806C NL = LIST(LP) LEFT N2->N1. Set NR to NL and NL to the
    -
    1807C following neighbor of N1.
    -
    1808C
    -
    1809 4 nr = nl
    -
    1810 lp = lptr(lp)
    -
    1811 nl = abs(list(lp))
    -
    1812 IF ( left(x1,y1,x2,y2,x(nl),y(nl)) ) THEN
    -
    1813C
    -
    1814C NL LEFT N1->N2 and NR LEFT N2->N1. The Forward tests
    -
    1815C are employed to avoid an error associated with
    -
    1816C collinear nodes.
    -
    1817C
    -
    1818 dx = x2-x1
    -
    1819 dy = y2-y1
    -
    1820 IF ((dx*(x(nl)-x1)+dy*(y(nl)-y1) .GE. 0. .OR.
    -
    1821 . dx*(x(nr)-x1)+dy*(y(nr)-y1) .GE. 0.) .AND.
    -
    1822 . (dx*(x(nl)-x2)+dy*(y(nl)-y2) .LE. 0. .OR.
    -
    1823 . dx*(x(nr)-x2)+dy*(y(nr)-y2) .LE. 0.)) GO TO 6
    -
    1824C
    -
    1825C NL-NR does not intersect N1-N2. However, there is
    -
    1826C another candidate for the first arc if NL lies on
    -
    1827C the line N1-N2.
    -
    1828C
    -
    1829 IF ( .NOT. left(x2,y2,x1,y1,x(nl),y(nl)) ) GO TO 5
    -
    1830 ENDIF
    -
    1831C
    -
    1832C Bottom of loop.
    -
    1833C
    -
    1834 IF (nl .NE. n1frst) GO TO 4
    -
    1835C
    -
    1836C Either the triangulation is invalid or N1-N2 lies on the
    -
    1837C convex hull boundary and an edge NR->NL (opposite N1 and
    -
    1838C intersecting N1-N2) was not found due to floating point
    -
    1839C error. Try interchanging N1 and N2 -- NIT > 0 iff this
    -
    1840C has already been done.
    -
    1841C
    -
    1842 5 IF (nit .GT. 0) GO TO 33
    -
    1843 nit = 1
    -
    1844 n1 = n2
    -
    1845 n2 = in1
    -
    1846 GO TO 2
    -
    1847C
    -
    1848C Store the ordered sequence of intersecting edges NL->NR in
    -
    1849C IWK(1,IWL)->IWK(2,IWL).
    -
    1850C
    -
    1851 6 iwl = iwl + 1
    -
    1852 IF (iwl .GT. iwend) GO TO 32
    -
    1853 iwk(1,iwl) = nl
    -
    1854 iwk(2,iwl) = nr
    -
    1855C
    -
    1856C Set NEXT to the neighbor of NL which follows NR.
    -
    1857C
    -
    1858 lpl = lend(nl)
    -
    1859 lp = lptr(lpl)
    -
    1860C
    -
    1861C Find NR as a neighbor of NL. The search begins with
    -
    1862C the first neighbor.
    -
    1863C
    -
    1864 7 IF (list(lp) .EQ. nr) GO TO 8
    -
    1865 lp = lptr(lp)
    -
    1866 IF (lp .NE. lpl) GO TO 7
    -
    1867C
    -
    1868C NR must be the last neighbor, and NL->NR cannot be a
    -
    1869C boundary edge.
    -
    1870C
    -
    1871 IF (list(lp) .NE. nr) GO TO 33
    -
    1872C
    -
    1873C Set NEXT to the neighbor following NR, and test for
    -
    1874C termination of the store loop.
    -
    1875C
    -
    1876 8 lp = lptr(lp)
    -
    1877 next = abs(list(lp))
    -
    1878 IF (next .EQ. n2) GO TO 9
    -
    1879C
    -
    1880C Set NL or NR to NEXT.
    -
    1881C
    -
    1882 IF ( left(x1,y1,x2,y2,x(next),y(next)) ) THEN
    -
    1883 nl = next
    -
    1884 ELSE
    -
    1885 nr = next
    -
    1886 ENDIF
    -
    1887 GO TO 6
    -
    1888C
    -
    1889C IWL is the number of arcs which intersect N1-N2.
    -
    1890C Store LWK.
    -
    1891C
    -
    1892 9 lwk = iwl
    -
    1893 iwend = iwl
    -
    1894C
    -
    1895C Initialize for edge swapping loop -- all possible swaps
    -
    1896C are applied (even if the new arc again intersects
    -
    1897C N1-N2), arcs to the left of N1->N2 are stored in the
    -
    1898C left portion of IWK, and arcs to the right are stored in
    -
    1899C the right portion. IWF and IWL index the first and last
    -
    1900C intersecting arcs.
    -
    1901C
    -
    1902 iwf = 1
    -
    1903C
    -
    1904C Top of loop -- set N0 to N1 and NL->NR to the first edge.
    -
    1905C IWC points to the arc currently being processed. LFT
    -
    1906C .LE. 0 iff N0 LEFT N1->N2.
    -
    1907C
    -
    1908 10 lft = 0
    -
    1909 n0 = n1
    -
    1910 x0 = x1
    -
    1911 y0 = y1
    -
    1912 nl = iwk(1,iwf)
    -
    1913 nr = iwk(2,iwf)
    -
    1914 iwc = iwf
    -
    1915C
    -
    1916C Set NEXT to the node opposite NL->NR unless IWC is the
    -
    1917C last arc.
    -
    1918C
    -
    1919 11 IF (iwc .EQ. iwl) GO TO 21
    -
    1920 iwcp1 = iwc + 1
    -
    1921 next = iwk(1,iwcp1)
    -
    1922 IF (next .NE. nl) GO TO 16
    -
    1923 next = iwk(2,iwcp1)
    -
    1924C
    -
    1925C NEXT RIGHT N1->N2 and IWC .LT. IWL. Test for a possible
    -
    1926C swap.
    -
    1927C
    -
    1928 IF ( .NOT. left(x0,y0,x(nr),y(nr),x(next),y(next)) )
    -
    1929 . GO TO 14
    -
    1930 IF (lft .GE. 0) GO TO 12
    -
    1931 IF ( .NOT. left(x(nl),y(nl),x0,y0,x(next),y(next)) )
    -
    1932 . GO TO 14
    -
    1933C
    -
    1934C Replace NL->NR with N0->NEXT.
    -
    1935C
    -
    1936 CALL swap (next,n0,nl,nr, list,lptr,lend, lp21)
    -
    1937 iwk(1,iwc) = n0
    -
    1938 iwk(2,iwc) = next
    -
    1939 GO TO 15
    -
    1940C
    -
    1941C Swap NL-NR for N0-NEXT, shift columns IWC+1,...,IWL to
    -
    1942C the left, and store N0-NEXT in the right portion of
    -
    1943C IWK.
    -
    1944C
    -
    1945 12 CALL swap (next,n0,nl,nr, list,lptr,lend, lp21)
    -
    1946 DO 13 i = iwcp1,iwl
    -
    1947 iwk(1,i-1) = iwk(1,i)
    -
    1948 iwk(2,i-1) = iwk(2,i)
    -
    1949 13 CONTINUE
    -
    1950 iwk(1,iwl) = n0
    -
    1951 iwk(2,iwl) = next
    -
    1952 iwl = iwl - 1
    -
    1953 nr = next
    -
    1954 GO TO 11
    -
    1955C
    -
    1956C A swap is not possible. Set N0 to NR.
    -
    1957C
    -
    1958 14 n0 = nr
    -
    1959 x0 = x(n0)
    -
    1960 y0 = y(n0)
    -
    1961 lft = 1
    -
    1962C
    -
    1963C Advance to the next arc.
    -
    1964C
    -
    1965 15 nr = next
    -
    1966 iwc = iwc + 1
    -
    1967 GO TO 11
    -
    1968C
    -
    1969C NEXT LEFT N1->N2, NEXT .NE. N2, and IWC .LT. IWL.
    -
    1970C Test for a possible swap.
    -
    1971C
    -
    1972 16 IF ( .NOT. left(x(nl),y(nl),x0,y0,x(next),y(next)) )
    -
    1973 . GO TO 19
    -
    1974 IF (lft .LE. 0) GO TO 17
    -
    1975 IF ( .NOT. left(x0,y0,x(nr),y(nr),x(next),y(next)) )
    -
    1976 . GO TO 19
    -
    1977C
    -
    1978C Replace NL->NR with NEXT->N0.
    -
    1979C
    -
    1980 CALL swap (next,n0,nl,nr, list,lptr,lend, lp21)
    -
    1981 iwk(1,iwc) = next
    -
    1982 iwk(2,iwc) = n0
    -
    1983 GO TO 20
    -
    1984C
    -
    1985C Swap NL-NR for N0-NEXT, shift columns IWF,...,IWC-1 to
    -
    1986C the right, and store N0-NEXT in the left portion of
    -
    1987C IWK.
    -
    1988C
    -
    1989 17 CALL swap (next,n0,nl,nr, list,lptr,lend, lp21)
    -
    1990 DO 18 i = iwc-1,iwf,-1
    -
    1991 iwk(1,i+1) = iwk(1,i)
    -
    1992 iwk(2,i+1) = iwk(2,i)
    -
    1993 18 CONTINUE
    -
    1994 iwk(1,iwf) = n0
    -
    1995 iwk(2,iwf) = next
    -
    1996 iwf = iwf + 1
    -
    1997 GO TO 20
    -
    1998C
    -
    1999C A swap is not possible. Set N0 to NL.
    -
    2000C
    -
    2001 19 n0 = nl
    -
    2002 x0 = x(n0)
    -
    2003 y0 = y(n0)
    -
    2004 lft = -1
    -
    2005C
    -
    2006C Advance to the next arc.
    -
    2007C
    -
    2008 20 nl = next
    -
    2009 iwc = iwc + 1
    -
    2010 GO TO 11
    -
    2011C
    -
    2012C N2 is opposite NL->NR (IWC = IWL).
    -
    2013C
    -
    2014 21 IF (n0 .EQ. n1) GO TO 24
    -
    2015 IF (lft .LT. 0) GO TO 22
    -
    2016C
    -
    2017C N0 RIGHT N1->N2. Test for a possible swap.
    -
    2018C
    -
    2019 IF ( .NOT. left(x0,y0,x(nr),y(nr),x2,y2) ) GO TO 10
    -
    2020C
    -
    2021C Swap NL-NR for N0-N2 and store N0-N2 in the right
    -
    2022C portion of IWK.
    -
    2023C
    -
    2024 CALL swap (n2,n0,nl,nr, list,lptr,lend, lp21)
    -
    2025 iwk(1,iwl) = n0
    -
    2026 iwk(2,iwl) = n2
    -
    2027 iwl = iwl - 1
    -
    2028 GO TO 10
    -
    2029C
    -
    2030C N0 LEFT N1->N2. Test for a possible swap.
    -
    2031C
    -
    2032 22 IF ( .NOT. left(x(nl),y(nl),x0,y0,x2,y2) ) GO TO 10
    -
    2033C
    -
    2034C Swap NL-NR for N0-N2, shift columns IWF,...,IWL-1 to the
    -
    2035C right, and store N0-N2 in the left portion of IWK.
    -
    2036C
    -
    2037 CALL swap (n2,n0,nl,nr, list,lptr,lend, lp21)
    -
    2038 i = iwl
    -
    2039 23 iwk(1,i) = iwk(1,i-1)
    -
    2040 iwk(2,i) = iwk(2,i-1)
    -
    2041 i = i - 1
    -
    2042 IF (i .GT. iwf) GO TO 23
    -
    2043 iwk(1,iwf) = n0
    -
    2044 iwk(2,iwf) = n2
    -
    2045 iwf = iwf + 1
    -
    2046 GO TO 10
    -
    2047C
    -
    2048C IWF = IWC = IWL. Swap out the last arc for N1-N2 and
    -
    2049C store zeros in IWK.
    -
    2050C
    -
    2051 24 CALL swap (n2,n1,nl,nr, list,lptr,lend, lp21)
    -
    2052 iwk(1,iwc) = 0
    -
    2053 iwk(2,iwc) = 0
    -
    2054C
    -
    2055C Optimization procedure --
    -
    2056C
    -
    2057 IF (iwc .GT. 1) THEN
    -
    2058C
    -
    2059C Optimize the set of new arcs to the left of IN1->IN2.
    -
    2060C
    -
    2061 nit = 3*(iwc-1)
    -
    2062 CALL optim (x,y,iwc-1, list,lptr,lend,nit,iwk, ierr)
    -
    2063 IF (ierr .NE. 0) GO TO 34
    -
    2064 ENDIF
    -
    2065 IF (iwc .LT. iwend) THEN
    -
    2066C
    -
    2067C Optimize the set of new arcs to the right of IN1->IN2.
    -
    2068C
    -
    2069 nit = 3*(iwend-iwc)
    -
    2070 CALL optim (x,y,iwend-iwc, list,lptr,lend,nit,
    -
    2071 . iwk(1,iwc+1), ierr)
    -
    2072 IF (ierr .NE. 0) GO TO 34
    -
    2073 ENDIF
    -
    2074C
    -
    2075C Successful termination.
    -
    2076C
    -
    2077 ier = 0
    -
    2078 RETURN
    -
    2079C
    -
    2080C IN1 and IN2 were adjacent on input.
    -
    2081C
    -
    2082 30 ier = 0
    -
    2083 RETURN
    -
    2084C
    -
    2085C Invalid input parameter.
    -
    2086C
    -
    2087 31 ier = 1
    -
    2088 RETURN
    -
    2089C
    -
    2090C Insufficient space reserved for IWK.
    -
    2091C
    -
    2092 32 ier = 2
    -
    2093 RETURN
    -
    2094C
    -
    2095C Invalid triangulation data structure or collinear nodes
    -
    2096C on convex hull boundary.
    -
    2097C
    -
    2098 33 ier = 3
    -
    2099 WRITE (*,130) in1, in2
    -
    2100 130 FORMAT (//5x,'*** Error in EDGE: Invalid triangula',
    -
    2101 . 'tion or null triangles on boundary'/
    -
    2102 . 9x,'IN1 =',i4,', IN2=',i4/)
    -
    2103 RETURN
    -
    2104C
    -
    2105C Error flag returned by OPTIM.
    -
    2106C
    -
    2107 34 ier = 4
    -
    2108 WRITE (*,140) nit, ierr
    -
    2109 140 FORMAT (//5x,'*** Error in OPTIM: NIT = ',i4,
    -
    2110 . ', IER = ',i1,' ***'/)
    -
    2111 RETURN
    -
    2112 END
    -
    2113 SUBROUTINE getnp (NCC,LCC,N,X,Y,LIST,LPTR,LEND,
    -
    2114 . L, NPTS,DS, IER)
    -
    2115 INTEGER NCC, LCC(*), N, LIST(*), LPTR(*), LEND(N),
    -
    2116 . l, npts(l), ier
    -
    2117 REAL X(N), Y(N), DS(L)
    -
    2118C
    -
    2119C***********************************************************
    -
    2120C
    -
    2121C From TRIPACK
    -
    2122C Robert J. Renka
    -
    2123C Dept. of Computer Science
    -
    2124C Univ. of North Texas
    -
    2125C renka@cs.unt.edu
    -
    2126C 11/12/94
    -
    2127C
    -
    2128C Given a triangulation of N nodes and an array NPTS con-
    -
    2129C taining the indexes of L-1 nodes ordered by distance from
    -
    2130C NPTS(1), this subroutine sets NPTS(L) to the index of the
    -
    2131C next node in the sequence -- the node, other than NPTS(1),
    -
    2132C ...,NPTS(L-1), which is closest to NPTS(1). Thus, the
    -
    2133C ordered sequence of K closest nodes to N1 (including N1)
    -
    2134C may be determined by K-1 calls to GETNP with NPTS(1) = N1
    -
    2135C and L = 2,3,...,K for K .GE. 2. Note that NPTS must in-
    -
    2136C clude constraint nodes as well as non-constraint nodes.
    -
    2137C Thus, a sequence of K1 closest non-constraint nodes to N1
    -
    2138C must be obtained as a subset of the closest K2 nodes to N1
    -
    2139C for some K2 .GE. K1.
    -
    2140C
    -
    2141C The terms closest and distance have special definitions
    -
    2142C when constraint nodes are present in the triangulation.
    -
    2143C Nodes N1 and N2 are said to be visible from each other if
    -
    2144C and only if the line segment N1-N2 intersects no con-
    -
    2145C straint arc (except possibly itself) and is not an interi-
    -
    2146C or constraint arc (arc whose interior lies in a constraint
    -
    2147C region). A path from N1 to N2 is an ordered sequence of
    -
    2148C nodes, with N1 first and N2 last, such that adjacent path
    -
    2149C elements are visible from each other. The path length is
    -
    2150C the sum of the Euclidean distances between adjacent path
    -
    2151C nodes. Finally, the distance from N1 to N2 is defined to
    -
    2152C be the length of the shortest path from N1 to N2.
    -
    2153C
    -
    2154C The algorithm uses the property of a Delaunay triangula-
    -
    2155C tion that the K-th closest node to N1 is a neighbor of one
    -
    2156C of the K-1 closest nodes to N1. With the definition of
    -
    2157C distance used here, this property holds when constraints
    -
    2158C are present as long as non-constraint arcs are locally
    -
    2159C optimal.
    -
    2160C
    -
    2161C
    -
    2162C On input:
    -
    2163C
    -
    2164C NCC = Number of constraints. NCC .GE. 0.
    -
    2165C
    -
    2166C LCC = List of constraint curve starting indexes (or
    -
    2167C dummy array of length 1 if NCC = 0). Refer to
    -
    2168C Subroutine ADDCST.
    -
    2169C
    -
    2170C N = Number of nodes in the triangulation. N .GE. 3.
    -
    2171C
    -
    2172C X,Y = Arrays of length N containing the coordinates
    -
    2173C of the nodes with non-constraint nodes in the
    -
    2174C first LCC(1)-1 locations if NCC > 0.
    -
    2175C
    -
    2176C LIST,LPTR,LEND = Triangulation data structure. Re-
    -
    2177C fer to Subroutine TRMESH.
    -
    2178C
    -
    2179C L = Number of nodes in the sequence on output. 2
    -
    2180C .LE. L .LE. N.
    -
    2181C
    -
    2182C NPTS = Array of length .GE. L containing the indexes
    -
    2183C of the L-1 closest nodes to NPTS(1) in the
    -
    2184C first L-1 locations.
    -
    2185C
    -
    2186C DS = Array of length .GE. L containing the distance
    -
    2187C (defined above) between NPTS(1) and NPTS(I) in
    -
    2188C the I-th position for I = 1,...,L-1. Thus,
    -
    2189C DS(1) = 0.
    -
    2190C
    -
    2191C Input parameters other than NPTS(L) and DS(L) are not
    -
    2192C altered by this routine.
    -
    2193C
    -
    2194C On output:
    -
    2195C
    -
    2196C NPTS = Array updated with the index of the L-th
    -
    2197C closest node to NPTS(1) in position L unless
    -
    2198C IER .NE. 0.
    -
    2199C
    -
    2200C DS = Array updated with the distance between NPTS(1)
    -
    2201C and NPTS(L) in position L unless IER .NE. 0.
    -
    2202C
    -
    2203C IER = Error indicator:
    -
    2204C IER = 0 if no errors were encountered.
    -
    2205C IER = -1 if NCC, N, L, or an LCC entry is
    -
    2206C outside its valid range on input.
    -
    2207C IER = K if NPTS(K) is not a valid index in
    -
    2208C the range 1 to N.
    -
    2209C
    -
    2210C Module required by GETNP: INTSEC
    -
    2211C
    -
    2212C Intrinsic functions called by GETNP: ABS, MIN, SQRT
    -
    2213C
    -
    2214C***********************************************************
    -
    2215C
    -
    2216 LOGICAL INTSEC
    -
    2217 INTEGER I, IFRST, ILAST, J, K, KM1, LCC1, LM1, LP,
    -
    2218 . LPCL, LPK, LPKL, N1, NC, NF1, NF2, NJ, NK,
    -
    2219 . NKBAK, NKFOR, NL, NN
    -
    2220 LOGICAL ISW, VIS, NCF, NJF, SKIP, SKSAV, LFT1, LFT2,
    -
    2221 . LFT12
    -
    2222 REAL DC, DL, X1, XC, XJ, XK, Y1, YC, YJ, YK
    -
    2223C
    -
    2224C Store parameters in local variables and test for errors.
    -
    2225C LCC1 indexes the first constraint node.
    -
    2226C
    -
    2227 ier = -1
    -
    2228 nn = n
    -
    2229 lcc1 = nn+1
    -
    2230 lm1 = l-1
    -
    2231 IF (ncc .LT. 0 .OR. lm1 .LT. 1 .OR. lm1 .GE. nn)
    -
    2232 . RETURN
    -
    2233 IF (ncc .EQ. 0) THEN
    -
    2234 IF (nn .LT. 3) RETURN
    -
    2235 ELSE
    -
    2236 DO 1 i = ncc,1,-1
    -
    2237 IF (lcc1 - lcc(i) .LT. 3) RETURN
    -
    2238 lcc1 = lcc(i)
    -
    2239 1 CONTINUE
    -
    2240 IF (lcc1 .LT. 1) RETURN
    -
    2241 ENDIF
    -
    2242C
    -
    2243C Test for an invalid index in NPTS.
    -
    2244C
    -
    2245 DO 2 k = 1,lm1
    -
    2246 nk = npts(k)
    -
    2247 IF (nk .LT. 1 .OR. nk .GT. nn) THEN
    -
    2248 ier = k
    -
    2249 RETURN
    -
    2250 ENDIF
    -
    2251 2 CONTINUE
    -
    2252C
    -
    2253C Store N1 = NPTS(1) and mark the elements of NPTS.
    -
    2254C
    -
    2255 n1 = npts(1)
    -
    2256 x1 = x(n1)
    -
    2257 y1 = y(n1)
    -
    2258 DO 3 k = 1,lm1
    -
    2259 nk = npts(k)
    -
    2260 lend(nk) = -lend(nk)
    -
    2261 3 CONTINUE
    -
    2262C
    -
    2263C Candidates NC for NL = NPTS(L) are the unmarked visible
    -
    2264C neighbors of nodes NK in NPTS. ISW is an initialization
    -
    2265C switch set to .TRUE. when NL and its distance DL from N1
    -
    2266C have been initialized with the first candidate encount-
    -
    2267C ered.
    -
    2268C
    -
    2269 isw = .false.
    -
    2270 dl = 0.
    -
    2271C
    -
    2272C Loop on marked nodes NK = NPTS(K). LPKL indexes the last
    -
    2273C neighbor of NK in LIST.
    -
    2274C
    -
    2275 DO 16 k = 1,lm1
    -
    2276 km1 = k - 1
    -
    2277 nk = npts(k)
    -
    2278 xk = x(nk)
    -
    2279 yk = y(nk)
    -
    2280 lpkl = -lend(nk)
    -
    2281 nkfor = 0
    -
    2282 nkbak = 0
    -
    2283 vis = .true.
    -
    2284 IF (nk .GE. lcc1) THEN
    -
    2285C
    -
    2286C NK is a constraint node. Set NKFOR and NKBAK to the
    -
    2287C constraint nodes which follow and precede NK. IFRST
    -
    2288C and ILAST are set to the first and last nodes in the
    -
    2289C constraint containing NK.
    -
    2290C
    -
    2291 ifrst = nn + 1
    -
    2292 DO 4 i = ncc,1,-1
    -
    2293 ilast = ifrst - 1
    -
    2294 ifrst = lcc(i)
    -
    2295 IF (nk .GE. ifrst) GO TO 5
    -
    2296 4 CONTINUE
    -
    2297C
    -
    2298 5 IF (nk .LT. ilast) THEN
    -
    2299 nkfor = nk + 1
    -
    2300 ELSE
    -
    2301 nkfor = ifrst
    -
    2302 ENDIF
    -
    2303 IF (nk .GT. ifrst) THEN
    -
    2304 nkbak = nk - 1
    -
    2305 ELSE
    -
    2306 nkbak = ilast
    -
    2307 ENDIF
    -
    2308C
    -
    2309C Initialize VIS to TRUE iff NKFOR precedes NKBAK in the
    -
    2310C adjacency list for NK -- the first neighbor is visi-
    -
    2311C ble and is not NKBAK.
    -
    2312C
    -
    2313 lpk = lpkl
    -
    2314 6 lpk = lptr(lpk)
    -
    2315 nc = abs(list(lpk))
    -
    2316 IF (nc .NE. nkfor .AND. nc .NE. nkbak) GO TO 6
    -
    2317 vis = nc .EQ. nkfor
    -
    2318 ENDIF
    -
    2319C
    -
    2320C Loop on neighbors NC of NK, bypassing marked and nonvis-
    -
    2321C ible neighbors.
    -
    2322C
    -
    2323 lpk = lpkl
    -
    2324 7 lpk = lptr(lpk)
    -
    2325 nc = abs(list(lpk))
    -
    2326 IF (nc .EQ. nkbak) vis = .true.
    -
    2327C
    -
    2328C VIS = .FALSE. iff NK-NC is an interior constraint arc
    -
    2329C (NK is a constraint node and NC lies strictly between
    -
    2330C NKFOR and NKBAK).
    -
    2331C
    -
    2332 IF (.NOT. vis) GO TO 15
    -
    2333 IF (nc .EQ. nkfor) vis = .false.
    -
    2334 IF (lend(nc) .LT. 0) GO TO 15
    -
    2335C
    -
    2336C Initialize distance DC between N1 and NC to Euclidean
    -
    2337C distance.
    -
    2338C
    -
    2339 xc = x(nc)
    -
    2340 yc = y(nc)
    -
    2341 dc = sqrt((xc-x1)*(xc-x1) + (yc-y1)*(yc-y1))
    -
    2342 IF (isw .AND. dc .GE. dl) GO TO 15
    -
    2343 IF (k .EQ. 1) GO TO 14
    -
    2344C
    -
    2345C K .GE. 2. Store the pointer LPCL to the last neighbor
    -
    2346C of NC.
    -
    2347C
    -
    2348 lpcl = lend(nc)
    -
    2349C
    -
    2350C Set DC to the length of the shortest path from N1 to NC
    -
    2351C which has not previously been encountered and which is
    -
    2352C a viable candidate for the shortest path from N1 to NL.
    -
    2353C This is Euclidean distance iff NC is visible from N1.
    -
    2354C Since the shortest path from N1 to NL contains only ele-
    -
    2355C ments of NPTS which are constraint nodes (in addition to
    -
    2356C N1 and NL), only these need be considered for the path
    -
    2357C from N1 to NC. Thus, for distance function D(A,B) and
    -
    2358C J = 1,...,K, DC = min(D(N1,NJ) + D(NJ,NC)) over con-
    -
    2359C straint nodes NJ = NPTS(J) which are visible from NC.
    -
    2360C
    -
    2361 DO 13 j = 1,km1
    -
    2362 nj = npts(j)
    -
    2363 IF (j .GT. 1 .AND. nj .LT. lcc1) GO TO 13
    -
    2364C
    -
    2365C If NC is a visible neighbor of NJ, a path from N1 to NC
    -
    2366C containing NJ has already been considered. Thus, NJ may
    -
    2367C be bypassed if it is adjacent to NC.
    -
    2368C
    -
    2369 lp = lpcl
    -
    2370 8 lp = lptr(lp)
    -
    2371 IF ( nj .EQ. abs(list(lp)) ) GO TO 12
    -
    2372 IF (lp .NE. lpcl) GO TO 8
    -
    2373C
    -
    2374C NJ is a constraint node (unless J=1) not adjacent to NC,
    -
    2375C and is visible from NC iff NJ-NC is not intersected by
    -
    2376C a constraint arc. Loop on constraints I in reverse
    -
    2377C order --
    -
    2378C
    -
    2379 xj = x(nj)
    -
    2380 yj = y(nj)
    -
    2381 ifrst = nn+1
    -
    2382 DO 11 i = ncc,1,-1
    -
    2383 ilast = ifrst - 1
    -
    2384 ifrst = lcc(i)
    -
    2385 nf1 = ilast
    -
    2386 ncf = nf1 .EQ. nc
    -
    2387 njf = nf1 .EQ. nj
    -
    2388 skip = ncf .OR. njf
    -
    2389C
    -
    2390C Loop on boundary constraint arcs NF1-NF2 which contain
    -
    2391C neither NC nor NJ. NCF and NJF are TRUE iff NC (or NJ)
    -
    2392C has been encountered in the constraint, and SKIP =
    -
    2393C .TRUE. iff NF1 = NC or NF1 = NJ.
    -
    2394C
    -
    2395 DO 10 nf2 = ifrst,ilast
    -
    2396 IF (nf2 .EQ. nc) ncf = .true.
    -
    2397 IF (nf2 .EQ. nj) njf = .true.
    -
    2398 sksav = skip
    -
    2399 skip = nf2 .EQ. nc .OR. nf2 .EQ. nj
    -
    2400C
    -
    2401C The last constraint arc in the constraint need not be
    -
    2402C tested if none of the arcs have been skipped.
    -
    2403C
    -
    2404 IF ( sksav .OR. skip .OR.
    -
    2405 . (nf2 .EQ. ilast .AND.
    -
    2406 . .NOT. ncf .AND. .NOT. njf) ) GO TO 9
    -
    2407 IF ( intsec(x(nf1),y(nf1),x(nf2),y(nf2),
    -
    2408 . xc,yc,xj,yj) ) GO TO 12
    -
    2409 9 nf1 = nf2
    -
    2410 10 CONTINUE
    -
    2411 IF (.NOT. ncf .OR. .NOT. njf) GO TO 11
    -
    2412C
    -
    2413C NC and NJ are constraint nodes in the same constraint.
    -
    2414C NC-NJ is intersected by an interior constraint arc iff
    -
    2415C 1) NC LEFT NF2->NF1 and (NJ LEFT NF1->NC and NJ LEFT
    -
    2416C NC->NF2) or
    -
    2417C 2) NC .NOT. LEFT NF2->NF1 and (NJ LEFT NF1->NC or
    -
    2418C NJ LEFT NC->NF2),
    -
    2419C where NF1, NC, NF2 are consecutive constraint nodes.
    -
    2420C
    -
    2421 IF (nc .NE. ifrst) THEN
    -
    2422 nf1 = nc - 1
    -
    2423 ELSE
    -
    2424 nf1 = ilast
    -
    2425 ENDIF
    -
    2426 IF (nc .NE. ilast) THEN
    -
    2427 nf2 = nc + 1
    -
    2428 ELSE
    -
    2429 nf2 = ifrst
    -
    2430 ENDIF
    -
    2431 lft1 = (xc-x(nf1))*(yj-y(nf1)) .GE.
    -
    2432 . (xj-x(nf1))*(yc-y(nf1))
    -
    2433 lft2 = (x(nf2)-xc)*(yj-yc) .GE.
    -
    2434 . (xj-xc)*(y(nf2)-yc)
    -
    2435 lft12 = (x(nf1)-x(nf2))*(yc-y(nf2)) .GE.
    -
    2436 . (xc-x(nf2))*(y(nf1)-y(nf2))
    -
    2437 IF ( (lft1 .AND. lft2) .OR. (.NOT. lft12
    -
    2438 . .AND. (lft1 .OR. lft2)) ) GO TO 12
    -
    2439 11 CONTINUE
    -
    2440C
    -
    2441C NJ is visible from NC. Exit the loop with DC = Euclidean
    -
    2442C distance if J = 1.
    -
    2443C
    -
    2444 IF (j .EQ. 1) GO TO 14
    -
    2445 dc = min(dc,ds(j) + sqrt((xc-xj)*(xc-xj) +
    -
    2446 . (yc-yj)*(yc-yj)))
    -
    2447 GO TO 13
    -
    2448C
    -
    2449C NJ is not visible from NC or is adjacent to NC. Initial-
    -
    2450C ize DC with D(N1,NK) + D(NK,NC) if J = 1.
    -
    2451C
    -
    2452 12 IF (j .EQ. 1) dc = ds(k) + sqrt((xc-xk)*(xc-xk)
    -
    2453 . + (yc-yk)*(yc-yk))
    -
    2454 13 CONTINUE
    -
    2455C
    -
    2456C Compare DC with DL.
    -
    2457C
    -
    2458 IF (isw .AND. dc .GE. dl) GO TO 15
    -
    2459C
    -
    2460C The first (or a closer) candidate for NL has been
    -
    2461C encountered.
    -
    2462C
    -
    2463 14 nl = nc
    -
    2464 dl = dc
    -
    2465 isw = .true.
    -
    2466 15 IF (lpk .NE. lpkl) GO TO 7
    -
    2467 16 CONTINUE
    -
    2468C
    -
    2469C Unmark the elements of NPTS and store NL and DL.
    -
    2470C
    -
    2471 DO 17 k = 1,lm1
    -
    2472 nk = npts(k)
    -
    2473 lend(nk) = -lend(nk)
    -
    2474 17 CONTINUE
    -
    2475 npts(l) = nl
    -
    2476 ds(l) = dl
    -
    2477 ier = 0
    -
    2478 RETURN
    -
    2479 END
    -
    2480 INTEGER FUNCTION indxcc (NCC,LCC,N,LIST,LEND)
    -
    2481 INTEGER NCC, LCC(*), N, LIST(*), LEND(N)
    -
    2482C
    -
    2483C***********************************************************
    -
    2484C
    -
    2485C From TRIPACK
    -
    2486C Robert J. Renka
    -
    2487C Dept. of Computer Science
    -
    2488C Univ. of North Texas
    -
    2489C renka@cs.unt.edu
    -
    2490C 08/25/91
    -
    2491C
    -
    2492C Given a constrained Delaunay triangulation, this func-
    -
    2493C tion returns the index, if any, of an exterior constraint
    -
    2494C curve (an unbounded constraint region). An exterior con-
    -
    2495C straint curve is assumed to be present if and only if the
    -
    2496C clockwise-ordered sequence of boundary nodes is a subse-
    -
    2497C quence of a constraint node sequence. The triangulation
    -
    2498C adjacencies corresponding to constraint edges may or may
    -
    2499C not have been forced by a call to ADDCST, and the con-
    -
    2500C straint region may or may not be valid (contain no nodes).
    -
    2501C
    -
    2502C
    -
    2503C On input:
    -
    2504C
    -
    2505C NCC = Number of constraints. NCC .GE. 0.
    -
    2506C
    -
    2507C LCC = List of constraint curve starting indexes (or
    -
    2508C dummy array of length 1 if NCC = 0). Refer to
    -
    2509C Subroutine ADDCST.
    -
    2510C
    -
    2511C N = Number of nodes in the triangulation. N .GE. 3.
    -
    2512C
    -
    2513C LIST,LEND = Data structure defining the triangula-
    -
    2514C tion. Refer to Subroutine TRMESH.
    -
    2515C
    -
    2516C Input parameters are not altered by this function. Note
    -
    2517C that the parameters are not tested for validity.
    -
    2518C
    -
    2519C On output:
    -
    2520C
    -
    2521C INDXCC = Index of the exterior constraint curve, if
    -
    2522C present, or 0 otherwise.
    -
    2523C
    -
    2524C Modules required by INDXCC: None
    -
    2525C
    -
    2526C***********************************************************
    -
    2527C
    -
    2528 INTEGER I, IFRST, ILAST, LP, N0, NST, NXT
    -
    2529 INDXCC = 0
    -
    2530 if (ncc .LT. 1) RETURN
    -
    2531C
    -
    2532C Set N0 to the boundary node with smallest index.
    -
    2533C
    -
    2534 n0 = 0
    -
    2535 1 n0 = n0 + 1
    -
    2536 lp = lend(n0)
    -
    2537 IF (list(lp) .GT. 0) GO TO 1
    -
    2538C
    -
    2539C Search in reverse order for the constraint I, if any, that
    -
    2540C contains N0. IFRST and ILAST index the first and last
    -
    2541C nodes in constraint I.
    -
    2542C
    -
    2543 i = ncc
    -
    2544 ilast = n
    -
    2545 2 ifrst = lcc(i)
    -
    2546 IF (n0 .GE. ifrst) GO TO 3
    -
    2547 IF (i .EQ. 1) RETURN
    -
    2548 i = i - 1
    -
    2549 ilast = ifrst - 1
    -
    2550 GO TO 2
    -
    2551C
    -
    2552C N0 is in constraint I which indexes an exterior constraint
    -
    2553C curve iff the clockwise-ordered sequence of boundary
    -
    2554C node indexes beginning with N0 is increasing and bounded
    -
    2555C above by ILAST.
    -
    2556C
    -
    2557 3 nst = n0
    -
    2558C
    -
    2559 4 nxt = -list(lp)
    -
    2560 IF (nxt .EQ. nst) GO TO 5
    -
    2561 IF (nxt .LE. n0 .OR. nxt .GT. ilast) RETURN
    -
    2562 n0 = nxt
    -
    2563 lp = lend(n0)
    -
    2564 GO TO 4
    -
    2565C
    -
    2566C Constraint I contains the boundary node sequence as a
    -
    2567C subset.
    -
    2568C
    -
    2569 5 indxcc = i
    -
    2570 RETURN
    -
    2571 END
    -
    2572 SUBROUTINE insert (K,LP, LIST,LPTR,LNEW )
    -
    2573 INTEGER K, LP, LIST(*), LPTR(*), LNEW
    -
    2574C
    -
    2575C***********************************************************
    -
    2576C
    -
    2577C From TRIPACK
    -
    2578C Robert J. Renka
    -
    2579C Dept. of Computer Science
    -
    2580C Univ. of North Texas
    -
    2581C renka@cs.unt.edu
    -
    2582C 09/01/88
    -
    2583C
    -
    2584C This subroutine inserts K as a neighbor of N1 following
    -
    2585C N2, where LP is the LIST pointer of N2 as a neighbor of
    -
    2586C N1. Note that, if N2 is the last neighbor of N1, K will
    -
    2587C become the first neighbor (even if N1 is a boundary node).
    -
    2588C
    -
    2589C
    -
    2590C On input:
    -
    2591C
    -
    2592C K = Index of the node to be inserted.
    -
    2593C
    -
    2594C LP = LIST pointer of N2 as a neighbor of N1.
    -
    2595C
    -
    2596C The above parameters are not altered by this routine.
    -
    2597C
    -
    2598C LIST,LPTR,LNEW = Data structure defining the trian-
    -
    2599C gulation. Refer to Subroutine
    -
    2600C TRMESH.
    -
    2601C
    -
    2602C On output:
    -
    2603C
    -
    2604C LIST,LPTR,LNEW = Data structure updated with the
    -
    2605C addition of node K.
    -
    2606C
    -
    2607C Modules required by INSERT: None
    -
    2608C
    -
    2609C***********************************************************
    -
    2610C
    -
    2611 INTEGER LSAV
    -
    2612C
    -
    2613 LSAV = lptr(lp)
    -
    2614 lptr(lp) = lnew
    -
    2615 list(lnew) = k
    -
    2616 lptr(lnew) = lsav
    -
    2617 lnew = lnew + 1
    -
    2618 RETURN
    -
    2619 END
    -
    2620 SUBROUTINE intadd (KK,I1,I2,I3, LIST,LPTR,LEND,LNEW )
    -
    2621 INTEGER KK, I1, I2, I3, LIST(*), LPTR(*), LEND(*),
    -
    2622 . lnew
    -
    2623C
    -
    2624C***********************************************************
    -
    2625C
    -
    2626C From TRIPACK
    -
    2627C Robert J. Renka
    -
    2628C Dept. of Computer Science
    -
    2629C Univ. of North Texas
    -
    2630C renka@cs.unt.edu
    -
    2631C 02/22/91
    -
    2632C
    -
    2633C This subroutine adds an interior node to a triangulation
    -
    2634C of a set of points in the plane. The data structure is
    -
    2635C updated with the insertion of node KK into the triangle
    -
    2636C whose vertices are I1, I2, and I3. No optimization of the
    -
    2637C triangulation is performed.
    -
    2638C
    -
    2639C
    -
    2640C On input:
    -
    2641C
    -
    2642C KK = Index of the node to be inserted. KK .GE. 1
    -
    2643C and KK must not be equal to I1, I2, or I3.
    -
    2644C
    -
    2645C I1,I2,I3 = Indexes of the counterclockwise-ordered
    -
    2646C sequence of vertices of a triangle which
    -
    2647C contains node KK.
    -
    2648C
    -
    2649C The above parameters are not altered by this routine.
    -
    2650C
    -
    2651C LIST,LPTR,LEND,LNEW = Data structure defining the
    -
    2652C triangulation. Refer to Sub-
    -
    2653C routine TRMESH. Triangle
    -
    2654C (I1,I2,I3) must be included
    -
    2655C in the triangulation.
    -
    2656C
    -
    2657C On output:
    -
    2658C
    -
    2659C LIST,LPTR,LEND,LNEW = Data structure updated with
    -
    2660C the addition of node KK. KK
    -
    2661C will be connected to nodes I1,
    -
    2662C I2, and I3.
    -
    2663C
    -
    2664C Modules required by INTADD: INSERT, LSTPTR
    -
    2665C
    -
    2666C***********************************************************
    -
    2667C
    -
    2668 INTEGER LSTPTR
    -
    2669 INTEGER K, LP, N1, N2, N3
    -
    2670 K = kk
    -
    2671C
    -
    2672C Initialization.
    -
    2673C
    -
    2674 n1 = i1
    -
    2675 n2 = i2
    -
    2676 n3 = i3
    -
    2677C
    -
    2678C Add K as a neighbor of I1, I2, and I3.
    -
    2679C
    -
    2680 lp = lstptr(lend(n1),n2,list,lptr)
    -
    2681 CALL insert (k,lp,list,lptr,lnew)
    -
    2682 lp = lstptr(lend(n2),n3,list,lptr)
    -
    2683 CALL insert (k,lp,list,lptr,lnew)
    -
    2684 lp = lstptr(lend(n3),n1,list,lptr)
    -
    2685 CALL insert (k,lp,list,lptr,lnew)
    -
    2686C
    -
    2687C Add I1, I2, and I3 as neighbors of K.
    -
    2688C
    -
    2689 list(lnew) = n1
    -
    2690 list(lnew+1) = n2
    -
    2691 list(lnew+2) = n3
    -
    2692 lptr(lnew) = lnew + 1
    -
    2693 lptr(lnew+1) = lnew + 2
    -
    2694 lptr(lnew+2) = lnew
    -
    2695 lend(k) = lnew + 2
    -
    2696 lnew = lnew + 3
    -
    2697 RETURN
    -
    2698 END
    -
    2699 LOGICAL FUNCTION intsec (X1,Y1,X2,Y2,X3,Y3,X4,Y4)
    -
    2700 REAL X1, Y1, X2, Y2, X3, Y3, X4, Y4
    -
    2701C
    -
    2702C***********************************************************
    -
    2703C
    -
    2704C From TRIPACK
    -
    2705C Robert J. Renka
    -
    2706C Dept. of Computer Science
    -
    2707C Univ. of North Texas
    -
    2708C renka@cs.unt.edu
    -
    2709C 09/01/88
    -
    2710C
    -
    2711C Given a pair of line segments P1-P2 and P3-P4, this
    -
    2712C function returns the value .TRUE. if and only if P1-P2
    -
    2713C shares one or more points with P3-P4. The line segments
    -
    2714C include their endpoints, and the four points need not be
    -
    2715C distinct. Thus, either line segment may consist of a
    -
    2716C single point, and the segments may meet in a V (which is
    -
    2717C treated as an intersection). Note that an incorrect
    -
    2718C decision may result from floating point error if the four
    -
    2719C endpoints are nearly collinear.
    -
    2720C
    -
    2721C
    -
    2722C On input:
    -
    2723C
    -
    2724C X1,Y1 = Coordinates of P1.
    -
    2725C
    -
    2726C X2,Y2 = Coordinates of P2.
    -
    2727C
    -
    2728C X3,Y3 = Coordinates of P3.
    -
    2729C
    -
    2730C X4,Y4 = Coordinates of P4.
    -
    2731C
    -
    2732C Input parameters are not altered by this function.
    -
    2733C
    -
    2734C On output:
    -
    2735C
    -
    2736C INTSEC = Logical value defined above.
    -
    2737C
    -
    2738C Modules required by INTSEC: None
    -
    2739C
    -
    2740C***********************************************************
    -
    2741C
    -
    2742 REAL A, B, D, DX12, DX31, DX34, DY12, DY31, DY34
    -
    2743C
    -
    2744C Test for overlap between the smallest rectangles that
    -
    2745C contain the line segments and have sides parallel to
    -
    2746C the axes.
    -
    2747C
    -
    2748 IF ((X1 .LT. X3 .AND. X1 .LT. X4 .AND. X2 .LT. X3
    -
    2749 . .AND. x2 .LT. x4) .OR.
    -
    2750 . (x1 .GT. x3 .AND. x1 .GT. x4 .AND. x2 .GT. x3
    -
    2751 . .AND. x2 .GT. x4) .OR.
    -
    2752 . (y1 .LT. y3 .AND. y1 .LT. y4 .AND. y2 .LT. y3
    -
    2753 . .AND. y2 .LT. y4) .OR.
    -
    2754 . (y1 .GT. y3 .AND. y1 .GT. y4 .AND. y2 .GT. y3
    -
    2755 . .AND. y2 .GT. y4)) THEN
    -
    2756 intsec = .false.
    -
    2757 RETURN
    -
    2758 ENDIF
    -
    2759C
    -
    2760C Compute A = P4-P3 X P1-P3, B = P2-P1 X P1-P3, and
    -
    2761C D = P2-P1 X P4-P3 (Z components).
    -
    2762C
    -
    2763 dx12 = x2 - x1
    -
    2764 dy12 = y2 - y1
    -
    2765 dx34 = x4 - x3
    -
    2766 dy34 = y4 - y3
    -
    2767 dx31 = x1 - x3
    -
    2768 dy31 = y1 - y3
    -
    2769 a = dx34*dy31 - dx31*dy34
    -
    2770 b = dx12*dy31 - dx31*dy12
    -
    2771 d = dx12*dy34 - dx34*dy12
    -
    2772 IF (d .EQ. 0.) GO TO 1
    -
    2773C
    -
    2774C D .NE. 0 and the point of intersection of the lines de-
    -
    2775C fined by the line segments is P = P1 + (A/D)*(P2-P1) =
    -
    2776C P3 + (B/D)*(P4-P3).
    -
    2777C
    -
    2778 intsec = a/d .GE. 0. .AND. a/d .LE. 1. .AND.
    -
    2779 . b/d .GE. 0. .AND. b/d .LE. 1.
    -
    2780 RETURN
    -
    2781C
    -
    2782C D .EQ. 0 and thus either the line segments are parallel,
    -
    2783C or one (or both) of them is a single point.
    -
    2784C
    -
    2785 1 intsec = a .EQ. 0. .AND. b .EQ. 0.
    -
    2786 RETURN
    -
    2787 END
    -
    2788 INTEGER FUNCTION jrand (N, IX,IY,IZ )
    -
    2789 INTEGER N, IX, IY, IZ
    -
    2790C
    -
    2791C***********************************************************
    -
    2792C
    -
    2793C From STRIPACK
    -
    2794C Robert J. Renka
    -
    2795C Dept. of Computer Science
    -
    2796C Univ. of North Texas
    -
    2797C renka@cs.unt.edu
    -
    2798C 07/28/98
    -
    2799C
    -
    2800C This function returns a uniformly distributed pseudo-
    -
    2801C random integer in the range 1 to N.
    -
    2802C
    -
    2803C
    -
    2804C On input:
    -
    2805C
    -
    2806C N = Maximum value to be returned.
    -
    2807C
    -
    2808C N is not altered by this function.
    -
    2809C
    -
    2810C IX,IY,IZ = Integer seeds initialized to values in
    -
    2811C the range 1 to 30,000 before the first
    -
    2812C call to JRAND, and not altered between
    -
    2813C subsequent calls (unless a sequence of
    -
    2814C random numbers is to be repeated by
    -
    2815C reinitializing the seeds).
    -
    2816C
    -
    2817C On output:
    -
    2818C
    -
    2819C IX,IY,IZ = Updated integer seeds.
    -
    2820C
    -
    2821C JRAND = Random integer in the range 1 to N.
    -
    2822C
    -
    2823C Reference: B. A. Wichmann and I. D. Hill, "An Efficient
    -
    2824C and Portable Pseudo-random Number Generator",
    -
    2825C Applied Statistics, Vol. 31, No. 2, 1982,
    -
    2826C pp. 188-190.
    -
    2827C
    -
    2828C Modules required by JRAND: None
    -
    2829C
    -
    2830C Intrinsic functions called by JRAND: INT, MOD, REAL
    -
    2831C
    -
    2832C***********************************************************
    -
    2833C
    -
    2834 REAL U, X
    -
    2835C
    -
    2836C Local parameters:
    -
    2837C
    -
    2838C U = Pseudo-random number uniformly distributed in the
    -
    2839C interval (0,1).
    -
    2840C X = Pseudo-random number in the range 0 to 3 whose frac-
    -
    2841C tional part is U.
    -
    2842C
    -
    2843 ix = mod(171*ix,30269)
    -
    2844 iy = mod(172*iy,30307)
    -
    2845 iz = mod(170*iz,30323)
    -
    2846 x = (real(ix)/30269.) + (real(iy)/30307.) +
    -
    2847 . (real(iz)/30323.)
    -
    2848 u = x - int(x)
    -
    2849 jrand = real(n)*u + 1.
    -
    2850 RETURN
    -
    2851 END
    -
    2852 LOGICAL FUNCTION left (X1,Y1,X2,Y2,X0,Y0)
    -
    2853 REAL X1, Y1, X2, Y2, X0, Y0
    -
    2854C
    -
    2855C***********************************************************
    -
    2856C
    -
    2857C From TRIPACK
    -
    2858C Robert J. Renka
    -
    2859C Dept. of Computer Science
    -
    2860C Univ. of North Texas
    -
    2861C renka@cs.unt.edu
    -
    2862C 09/01/88
    -
    2863C
    -
    2864C This function determines whether node N0 is to the left
    -
    2865C or to the right of the line through N1-N2 as viewed by an
    -
    2866C observer at N1 facing N2.
    -
    2867C
    -
    2868C
    -
    2869C On input:
    -
    2870C
    -
    2871C X1,Y1 = Coordinates of N1.
    -
    2872C
    -
    2873C X2,Y2 = Coordinates of N2.
    -
    2874C
    -
    2875C X0,Y0 = Coordinates of N0.
    -
    2876C
    -
    2877C Input parameters are not altered by this function.
    -
    2878C
    -
    2879C On output:
    -
    2880C
    -
    2881C LEFT = .TRUE. if and only if (X0,Y0) is on or to the
    -
    2882C left of the directed line N1->N2.
    -
    2883C
    -
    2884C Modules required by LEFT: None
    -
    2885C
    -
    2886C***********************************************************
    -
    2887C
    -
    2888 REAL DX1, DY1, DX2, DY2
    -
    2889C
    -
    2890C Local parameters:
    -
    2891C
    -
    2892C DX1,DY1 = X,Y components of the vector N1->N2
    -
    2893C DX2,DY2 = X,Y components of the vector N1->N0
    -
    2894C
    -
    2895 dx1 = x2-x1
    -
    2896 dy1 = y2-y1
    -
    2897 dx2 = x0-x1
    -
    2898 dy2 = y0-y1
    -
    2899C
    -
    2900C If the sign of the vector cross product of N1->N2 and
    -
    2901C N1->N0 is positive, then sin(A) > 0, where A is the
    -
    2902C angle between the vectors, and thus A is in the range
    -
    2903C (0,180) degrees.
    -
    2904C
    -
    2905 left = dx1*dy2 .GE. dx2*dy1
    -
    2906 RETURN
    -
    2907 END
    -
    2908 INTEGER FUNCTION lstptr (LPL,NB,LIST,LPTR)
    -
    2909 INTEGER LPL, NB, LIST(*), LPTR(*)
    -
    2910C
    -
    2911C***********************************************************
    -
    2912C
    -
    2913C From TRIPACK
    -
    2914C Robert J. Renka
    -
    2915C Dept. of Computer Science
    -
    2916C Univ. of North Texas
    -
    2917C renka@cs.unt.edu
    -
    2918C 09/01/88
    -
    2919C
    -
    2920C This function returns the index (LIST pointer) of NB in
    -
    2921C the adjacency list for N0, where LPL = LEND(N0).
    -
    2922C
    -
    2923C
    -
    2924C On input:
    -
    2925C
    -
    2926C LPL = LEND(N0)
    -
    2927C
    -
    2928C NB = Index of the node whose pointer is to be re-
    -
    2929C turned. NB must be connected to N0.
    -
    2930C
    -
    2931C LIST,LPTR = Data structure defining the triangula-
    -
    2932C tion. Refer to Subroutine TRMESH.
    -
    2933C
    -
    2934C Input parameters are not altered by this function.
    -
    2935C
    -
    2936C On output:
    -
    2937C
    -
    2938C LSTPTR = Pointer such that LIST(LSTPTR) = NB or
    -
    2939C LIST(LSTPTR) = -NB, unless NB is not a
    -
    2940C neighbor of N0, in which case LSTPTR = LPL.
    -
    2941C
    -
    2942C Modules required by LSTPTR: None
    -
    2943C
    -
    2944C***********************************************************
    -
    2945C
    -
    2946 INTEGER LP, ND
    -
    2947C
    -
    2948 LP = lptr(lpl)
    -
    2949 1 nd = list(lp)
    -
    2950 IF (nd .EQ. nb) GO TO 2
    -
    2951 lp = lptr(lp)
    -
    2952 IF (lp .NE. lpl) GO TO 1
    -
    2953C
    -
    2954 2 lstptr = lp
    -
    2955 RETURN
    -
    2956 END
    -
    2957 INTEGER FUNCTION nbcnt (LPL,LPTR)
    -
    2958 INTEGER LPL, LPTR(*)
    -
    2959C
    -
    2960C***********************************************************
    -
    2961C
    -
    2962C From TRIPACK
    -
    2963C Robert J. Renka
    -
    2964C Dept. of Computer Science
    -
    2965C Univ. of North Texas
    -
    2966C renka@cs.unt.edu
    -
    2967C 09/01/88
    -
    2968C
    -
    2969C This function returns the number of neighbors of a node
    -
    2970C N0 in a triangulation created by Subroutine TRMESH (or
    -
    2971C TRMSHR).
    -
    2972C
    -
    2973C
    -
    2974C On input:
    -
    2975C
    -
    2976C LPL = LIST pointer to the last neighbor of N0 --
    -
    2977C LPL = LEND(N0).
    -
    2978C
    -
    2979C LPTR = Array of pointers associated with LIST.
    -
    2980C
    -
    2981C Input parameters are not altered by this function.
    -
    2982C
    -
    2983C On output:
    -
    2984C
    -
    2985C NBCNT = Number of neighbors of N0.
    -
    2986C
    -
    2987C Modules required by NBCNT: None
    -
    2988C
    -
    2989C***********************************************************
    -
    2990C
    -
    2991 INTEGER K, LP
    -
    2992C
    -
    2993 LP = lpl
    -
    2994 k = 1
    -
    2995C
    -
    2996 1 lp = lptr(lp)
    -
    2997 IF (lp .EQ. lpl) GO TO 2
    -
    2998 k = k + 1
    -
    2999 GO TO 1
    -
    3000C
    -
    3001 2 nbcnt = k
    -
    3002 RETURN
    -
    3003 END
    -
    3004 INTEGER FUNCTION nearnd (XP,YP,IST,N,X,Y,LIST,LPTR,
    -
    3005 . LEND, DSQ)
    -
    3006 INTEGER IST, N, LIST(*), LPTR(*), LEND(N)
    -
    3007 REAL XP, YP, X(N), Y(N), DSQ
    -
    3008C
    -
    3009C***********************************************************
    -
    3010C
    -
    3011C From TRIPACK
    -
    3012C Robert J. Renka
    -
    3013C Dept. of Computer Science
    -
    3014C Univ. of North Texas
    -
    3015C renka@cs.unt.edu
    -
    3016C 06/27/98
    -
    3017C
    -
    3018C Given a point P in the plane and a Delaunay triangula-
    -
    3019C tion created by Subroutine TRMESH or TRMSHR, this function
    -
    3020C returns the index of the nearest triangulation node to P.
    -
    3021C
    -
    3022C The algorithm consists of implicitly adding P to the
    -
    3023C triangulation, finding the nearest neighbor to P, and
    -
    3024C implicitly deleting P from the triangulation. Thus, it
    -
    3025C is based on the fact that, if P is a node in a Delaunay
    -
    3026C triangulation, the nearest node to P is a neighbor of P.
    -
    3027C
    -
    3028C
    -
    3029C On input:
    -
    3030C
    -
    3031C XP,YP = Cartesian coordinates of the point P to be
    -
    3032C located relative to the triangulation.
    -
    3033C
    -
    3034C IST = Index of a node at which TRFIND begins the
    -
    3035C search. Search time depends on the proximity
    -
    3036C of this node to P.
    -
    3037C
    -
    3038C N = Number of nodes in the triangulation. N .GE. 3.
    -
    3039C
    -
    3040C X,Y = Arrays of length N containing the Cartesian
    -
    3041C coordinates of the nodes.
    -
    3042C
    -
    3043C LIST,LPTR,LEND = Data structure defining the trian-
    -
    3044C gulation. Refer to TRMESH.
    -
    3045C
    -
    3046C Input parameters are not altered by this function.
    -
    3047C
    -
    3048C On output:
    -
    3049C
    -
    3050C NEARND = Nodal index of the nearest node to P, or 0
    -
    3051C if N < 3 or the triangulation data struc-
    -
    3052C ture is invalid.
    -
    3053C
    -
    3054C DSQ = Squared distance between P and NEARND unless
    -
    3055C NEARND = 0.
    -
    3056C
    -
    3057C Note that the number of candidates for NEARND
    -
    3058C (neighbors of P) is limited to LMAX defined in
    -
    3059C the PARAMETER statement below.
    -
    3060C
    -
    3061C Modules required by NEARND: JRAND, LEFT, LSTPTR, TRFIND
    -
    3062C
    -
    3063C Intrinsic function called by NEARND: ABS
    -
    3064C
    -
    3065C***********************************************************
    -
    3066C
    -
    3067 INTEGER LSTPTR
    -
    3068 INTEGER LMAX
    -
    3069 PARAMETER (LMAX=25)
    -
    3070 integer i1, i2, i3, l, listp(lmax), lp, lp1, lp2,
    -
    3071 . lpl, lptrp(lmax), n1, n2, n3, nr, nst
    -
    3072 REAL COS1, COS2, DS1, DSR, DX11, DX12, DX21,
    -
    3073 . DX22, DY11, DY12, DY21, DY22, SIN1, SIN2
    -
    3074C
    -
    3075C Store local parameters and test for N invalid.
    -
    3076C
    -
    3077 IF (n .LT. 3) GO TO 7
    -
    3078 nst = ist
    -
    3079 IF (nst .LT. 1 .OR. nst .GT. n) nst = 1
    -
    3080C
    -
    3081C Find a triangle (I1,I2,I3) containing P, or the rightmost
    -
    3082C (I1) and leftmost (I2) visible boundary nodes as viewed
    -
    3083C from P.
    -
    3084C
    -
    3085 CALL trfind (nst,xp,yp,n,x,y,list,lptr,lend, i1,i2,i3)
    -
    3086C
    -
    3087C Test for collinear nodes.
    -
    3088C
    -
    3089 IF (i1 .EQ. 0) GO TO 7
    -
    3090C
    -
    3091C Store the linked list of 'neighbors' of P in LISTP and
    -
    3092C LPTRP. I1 is the first neighbor, and 0 is stored as
    -
    3093C the last neighbor if P is not contained in a triangle.
    -
    3094C L is the length of LISTP and LPTRP, and is limited to
    -
    3095C LMAX.
    -
    3096C
    -
    3097 IF (i3 .NE. 0) THEN
    -
    3098 listp(1) = i1
    -
    3099 lptrp(1) = 2
    -
    3100 listp(2) = i2
    -
    3101 lptrp(2) = 3
    -
    3102 listp(3) = i3
    -
    3103 lptrp(3) = 1
    -
    3104 l = 3
    -
    3105 ELSE
    -
    3106 n1 = i1
    -
    3107 l = 1
    -
    3108 lp1 = 2
    -
    3109 listp(l) = n1
    -
    3110 lptrp(l) = lp1
    -
    3111C
    -
    3112C Loop on the ordered sequence of visible boundary nodes
    -
    3113C N1 from I1 to I2.
    -
    3114C
    -
    3115 1 lpl = lend(n1)
    -
    3116 n1 = -list(lpl)
    -
    3117 l = lp1
    -
    3118 lp1 = l+1
    -
    3119 listp(l) = n1
    -
    3120 lptrp(l) = lp1
    -
    3121 IF (n1 .NE. i2 .AND. lp1 .LT. lmax) GO TO 1
    -
    3122 l = lp1
    -
    3123 listp(l) = 0
    -
    3124 lptrp(l) = 1
    -
    3125 ENDIF
    -
    3126C
    -
    3127C Initialize variables for a loop on arcs N1-N2 opposite P
    -
    3128C in which new 'neighbors' are 'swapped' in. N1 follows
    -
    3129C N2 as a neighbor of P, and LP1 and LP2 are the LISTP
    -
    3130C indexes of N1 and N2.
    -
    3131C
    -
    3132 lp2 = 1
    -
    3133 n2 = i1
    -
    3134 lp1 = lptrp(1)
    -
    3135 n1 = listp(lp1)
    -
    3136C
    -
    3137C Begin loop: find the node N3 opposite N1->N2.
    -
    3138C
    -
    3139 2 lp = lstptr(lend(n1),n2,list,lptr)
    -
    3140 IF (list(lp) .LT. 0) GO TO 4
    -
    3141 lp = lptr(lp)
    -
    3142 n3 = abs(list(lp))
    -
    3143C
    -
    3144C Swap test: Exit the loop if L = LMAX.
    -
    3145C
    -
    3146 IF (l .EQ. lmax) GO TO 5
    -
    3147 dx11 = x(n1) - x(n3)
    -
    3148 dx12 = x(n2) - x(n3)
    -
    3149 dx22 = x(n2) - xp
    -
    3150 dx21 = x(n1) - xp
    -
    3151C
    -
    3152 dy11 = y(n1) - y(n3)
    -
    3153 dy12 = y(n2) - y(n3)
    -
    3154 dy22 = y(n2) - yp
    -
    3155 dy21 = y(n1) - yp
    -
    3156C
    -
    3157 cos1 = dx11*dx12 + dy11*dy12
    -
    3158 cos2 = dx22*dx21 + dy22*dy21
    -
    3159 IF (cos1 .GE. 0. .AND. cos2 .GE. 0.) GO TO 4
    -
    3160 IF (cos1 .LT. 0. .AND. cos2 .LT. 0.) GO TO 3
    -
    3161C
    -
    3162 sin1 = dx11*dy12 - dx12*dy11
    -
    3163 sin2 = dx22*dy21 - dx21*dy22
    -
    3164 IF (sin1*cos2 + cos1*sin2 .GE. 0.) GO TO 4
    -
    3165C
    -
    3166C Swap: Insert N3 following N2 in the adjacency list for P.
    -
    3167C The two new arcs opposite P must be tested.
    -
    3168C
    -
    3169 3 l = l+1
    -
    3170 lptrp(lp2) = l
    -
    3171 listp(l) = n3
    -
    3172 lptrp(l) = lp1
    -
    3173 lp1 = l
    -
    3174 n1 = n3
    -
    3175 GO TO 2
    -
    3176C
    -
    3177C No swap: Advance to the next arc and test for termination
    -
    3178C on N1 = I1 (LP1 = 1) or N1 followed by 0.
    -
    3179C
    -
    3180 4 IF (lp1 .EQ. 1) GO TO 5
    -
    3181 lp2 = lp1
    -
    3182 n2 = n1
    -
    3183 lp1 = lptrp(lp1)
    -
    3184 n1 = listp(lp1)
    -
    3185 IF (n1 .EQ. 0) GO TO 5
    -
    3186 GO TO 2
    -
    3187C
    -
    3188C Set NR and DSR to the index of the nearest node to P and
    -
    3189C its squared distance from P, respectively.
    -
    3190C
    -
    3191 5 nr = i1
    -
    3192 dsr = (x(nr)-xp)**2 + (y(nr)-yp)**2
    -
    3193 DO 6 lp = 2,l
    -
    3194 n1 = listp(lp)
    -
    3195 IF (n1 .EQ. 0) GO TO 6
    -
    3196 ds1 = (x(n1)-xp)**2 + (y(n1)-yp)**2
    -
    3197 IF (ds1 .LT. dsr) THEN
    -
    3198 nr = n1
    -
    3199 dsr = ds1
    -
    3200 ENDIF
    -
    3201 6 CONTINUE
    -
    3202 dsq = dsr
    -
    3203 nearnd = nr
    -
    3204 RETURN
    -
    3205C
    -
    3206C Invalid input.
    -
    3207C
    -
    3208 7 nearnd = 0
    -
    3209 RETURN
    -
    3210 END
    -
    3211 SUBROUTINE optim (X,Y,NA, LIST,LPTR,LEND,NIT,IWK, IER)
    -
    3212 INTEGER NA, LIST(*), LPTR(*), LEND(*), NIT, IWK(2,NA),
    -
    3213 . IER
    -
    3214 REAL X(*), Y(*)
    -
    3215C
    -
    3216C***********************************************************
    -
    3217C
    -
    3218C From TRIPACK
    -
    3219C Robert J. Renka
    -
    3220C Dept. of Computer Science
    -
    3221C Univ. of North Texas
    -
    3222C renka@cs.unt.edu
    -
    3223C 06/27/98
    -
    3224C
    -
    3225C Given a set of NA triangulation arcs, this subroutine
    -
    3226C optimizes the portion of the triangulation consisting of
    -
    3227C the quadrilaterals (pairs of adjacent triangles) which
    -
    3228C have the arcs as diagonals by applying the circumcircle
    -
    3229C test and appropriate swaps to the arcs.
    -
    3230C
    -
    3231C An iteration consists of applying the swap test and
    -
    3232C swaps to all NA arcs in the order in which they are
    -
    3233C stored. The iteration is repeated until no swap occurs
    -
    3234C or NIT iterations have been performed. The bound on the
    -
    3235C number of iterations may be necessary to prevent an
    -
    3236C infinite loop caused by cycling (reversing the effect of a
    -
    3237C previous swap) due to floating point inaccuracy when four
    -
    3238C or more nodes are nearly cocircular.
    -
    3239C
    -
    3240C
    -
    3241C On input:
    -
    3242C
    -
    3243C X,Y = Arrays containing the nodal coordinates.
    -
    3244C
    -
    3245C NA = Number of arcs in the set. NA .GE. 0.
    -
    3246C
    -
    3247C The above parameters are not altered by this routine.
    -
    3248C
    -
    3249C LIST,LPTR,LEND = Data structure defining the trian-
    -
    3250C gulation. Refer to Subroutine
    -
    3251C TRMESH.
    -
    3252C
    -
    3253C NIT = Maximum number of iterations to be performed.
    -
    3254C A reasonable value is 3*NA. NIT .GE. 1.
    -
    3255C
    -
    3256C IWK = Integer array dimensioned 2 by NA containing
    -
    3257C the nodal indexes of the arc endpoints (pairs
    -
    3258C of endpoints are stored in columns).
    -
    3259C
    -
    3260C On output:
    -
    3261C
    -
    3262C LIST,LPTR,LEND = Updated triangulation data struc-
    -
    3263C ture reflecting the swaps.
    -
    3264C
    -
    3265C NIT = Number of iterations performed.
    -
    3266C
    -
    3267C IWK = Endpoint indexes of the new set of arcs
    -
    3268C reflecting the swaps.
    -
    3269C
    -
    3270C IER = Error indicator:
    -
    3271C IER = 0 if no errors were encountered.
    -
    3272C IER = 1 if a swap occurred on the last of
    -
    3273C MAXIT iterations, where MAXIT is the
    -
    3274C value of NIT on input. The new set
    -
    3275C of arcs in not necessarily optimal
    -
    3276C in this case.
    -
    3277C IER = 2 if NA < 0 or NIT < 1 on input.
    -
    3278C IER = 3 if IWK(2,I) is not a neighbor of
    -
    3279C IWK(1,I) for some I in the range 1
    -
    3280C to NA. A swap may have occurred in
    -
    3281C this case.
    -
    3282C IER = 4 if a zero pointer was returned by
    -
    3283C Subroutine SWAP.
    -
    3284C
    -
    3285C Modules required by OPTIM: LSTPTR, SWAP, SWPTST
    -
    3286C
    -
    3287C Intrinsic function called by OPTIM: ABS
    -
    3288C
    -
    3289C***********************************************************
    -
    3290C
    -
    3291 LOGICAL SWPTST
    -
    3292 INTEGER I, IO1, IO2, ITER, LP, LP21, LPL, LPP, MAXIT,
    -
    3293 . N1, N2, NNA
    -
    3294 LOGICAL SWP
    -
    3295C
    -
    3296C Local parameters:
    -
    3297C
    -
    3298C I = Column index for IWK
    -
    3299C IO1,IO2 = Nodal indexes of the endpoints of an arc in IWK
    -
    3300C ITER = Iteration count
    -
    3301C LP = LIST pointer
    -
    3302C LP21 = Parameter returned by SWAP (not used)
    -
    3303C LPL = Pointer to the last neighbor of IO1
    -
    3304C LPP = Pointer to the node preceding IO2 as a neighbor
    -
    3305C of IO1
    -
    3306C MAXIT = Input value of NIT
    -
    3307C N1,N2 = Nodes opposite IO1->IO2 and IO2->IO1,
    -
    3308C respectively
    -
    3309C NNA = Local copy of NA
    -
    3310C SWP = Flag set to TRUE iff a swap occurs in the
    -
    3311C optimization loop
    -
    3312C
    -
    3313 nna = na
    -
    3314 maxit = nit
    -
    3315 IF (nna .LT. 0 .OR. maxit .LT. 1) GO TO 7
    -
    3316C
    -
    3317C Initialize iteration count ITER and test for NA = 0.
    -
    3318C
    -
    3319 iter = 0
    -
    3320 IF (nna .EQ. 0) GO TO 5
    -
    3321C
    -
    3322C Top of loop --
    -
    3323C SWP = TRUE iff a swap occurred in the current iteration.
    -
    3324C
    -
    3325 1 IF (iter .EQ. maxit) GO TO 6
    -
    3326 iter = iter + 1
    -
    3327 swp = .false.
    -
    3328C
    -
    3329C Inner loop on arcs IO1-IO2 --
    -
    3330C
    -
    3331 DO 4 i = 1,nna
    -
    3332 io1 = iwk(1,i)
    -
    3333 io2 = iwk(2,i)
    -
    3334C
    -
    3335C Set N1 and N2 to the nodes opposite IO1->IO2 and
    -
    3336C IO2->IO1, respectively. Determine the following:
    -
    3337C
    -
    3338C LPL = pointer to the last neighbor of IO1,
    -
    3339C LP = pointer to IO2 as a neighbor of IO1, and
    -
    3340C LPP = pointer to the node N2 preceding IO2.
    -
    3341C
    -
    3342 lpl = lend(io1)
    -
    3343 lpp = lpl
    -
    3344 lp = lptr(lpp)
    -
    3345 2 IF (list(lp) .EQ. io2) GO TO 3
    -
    3346 lpp = lp
    -
    3347 lp = lptr(lpp)
    -
    3348 IF (lp .NE. lpl) GO TO 2
    -
    3349C
    -
    3350C IO2 should be the last neighbor of IO1. Test for no
    -
    3351C arc and bypass the swap test if IO1 is a boundary
    -
    3352C node.
    -
    3353C
    -
    3354 IF (abs(list(lp)) .NE. io2) GO TO 8
    -
    3355 IF (list(lp) .LT. 0) GO TO 4
    -
    3356C
    -
    3357C Store N1 and N2, or bypass the swap test if IO1 is a
    -
    3358C boundary node and IO2 is its first neighbor.
    -
    3359C
    -
    3360 3 n2 = list(lpp)
    -
    3361 IF (n2 .LT. 0) GO TO 4
    -
    3362 lp = lptr(lp)
    -
    3363 n1 = abs(list(lp))
    -
    3364C
    -
    3365C Test IO1-IO2 for a swap, and update IWK if necessary.
    -
    3366C
    -
    3367 IF ( .NOT. swptst(n1,n2,io1,io2,x,y) ) GO TO 4
    -
    3368 CALL swap (n1,n2,io1,io2, list,lptr,lend, lp21)
    -
    3369 IF (lp21 .EQ. 0) GO TO 9
    -
    3370 swp = .true.
    -
    3371 iwk(1,i) = n1
    -
    3372 iwk(2,i) = n2
    -
    3373 4 CONTINUE
    -
    3374 IF (swp) GO TO 1
    -
    3375C
    -
    3376C Successful termination.
    -
    3377C
    -
    3378 5 nit = iter
    -
    3379 ier = 0
    -
    3380 RETURN
    -
    3381C
    -
    3382C MAXIT iterations performed without convergence.
    -
    3383C
    -
    3384 6 nit = maxit
    -
    3385 ier = 1
    -
    3386 RETURN
    -
    3387C
    -
    3388C Invalid input parameter.
    -
    3389C
    -
    3390 7 nit = 0
    -
    3391 ier = 2
    -
    3392 RETURN
    -
    3393C
    -
    3394C IO2 is not a neighbor of IO1.
    -
    3395C
    -
    3396 8 nit = iter
    -
    3397 ier = 3
    -
    3398 RETURN
    -
    3399C
    -
    3400C Zero pointer returned by SWAP.
    -
    3401C
    -
    3402 9 nit = iter
    -
    3403 ier = 4
    -
    3404 RETURN
    -
    3405 END
    -
    3406 REAL FUNCTION STORE (X)
    -
    3407 REAL X
    -
    3408C
    -
    3409C***********************************************************
    -
    3410C
    -
    3411C From TRIPACK
    -
    3412C Robert J. Renka
    -
    3413C Dept. of Computer Science
    -
    3414C Univ. of North Texas
    -
    3415C renka@cs.unt.edu
    -
    3416C 03/18/90
    -
    3417C
    -
    3418C This function forces its argument X to be stored in a
    -
    3419C memory location, thus providing a means of determining
    -
    3420C floating point number characteristics (such as the machine
    -
    3421C precision) when it is necessary to avoid computation in
    -
    3422C high precision registers.
    -
    3423C
    -
    3424C
    -
    3425C On input:
    -
    3426C
    -
    3427C X = Value to be stored.
    -
    3428C
    -
    3429C X is not altered by this function.
    -
    3430C
    -
    3431C On output:
    -
    3432C
    -
    3433C STORE = Value of X after it has been stored and
    -
    3434C possibly truncated or rounded to the single
    -
    3435C precision word length.
    -
    3436C
    -
    3437C Modules required by STORE: None
    -
    3438C
    -
    3439C***********************************************************
    -
    3440C
    -
    3441 REAL Y
    -
    3442 COMMON/STCOM/Y
    -
    3443C
    -
    3444 Y = x
    -
    3445 store = y
    -
    3446 RETURN
    -
    3447 END
    -
    3448 SUBROUTINE swap (IN1,IN2,IO1,IO2, LIST,LPTR,
    -
    3449 . LEND, LP21)
    -
    3450 INTEGER IN1, IN2, IO1, IO2, LIST(*), LPTR(*), LEND(*),
    -
    3451 . lp21
    -
    3452C
    -
    3453C***********************************************************
    -
    3454C
    -
    3455C From TRIPACK
    -
    3456C Robert J. Renka
    -
    3457C Dept. of Computer Science
    -
    3458C Univ. of North Texas
    -
    3459C renka@cs.unt.edu
    -
    3460C 06/22/98
    -
    3461C
    -
    3462C Given a triangulation of a set of points on the unit
    -
    3463C sphere, this subroutine replaces a diagonal arc in a
    -
    3464C strictly convex quadrilateral (defined by a pair of adja-
    -
    3465C cent triangles) with the other diagonal. Equivalently, a
    -
    3466C pair of adjacent triangles is replaced by another pair
    -
    3467C having the same union.
    -
    3468C
    -
    3469C
    -
    3470C On input:
    -
    3471C
    -
    3472C IN1,IN2,IO1,IO2 = Nodal indexes of the vertices of
    -
    3473C the quadrilateral. IO1-IO2 is re-
    -
    3474C placed by IN1-IN2. (IO1,IO2,IN1)
    -
    3475C and (IO2,IO1,IN2) must be trian-
    -
    3476C gles on input.
    -
    3477C
    -
    3478C The above parameters are not altered by this routine.
    -
    3479C
    -
    3480C LIST,LPTR,LEND = Data structure defining the trian-
    -
    3481C gulation. Refer to Subroutine
    -
    3482C TRMESH.
    -
    3483C
    -
    3484C On output:
    -
    3485C
    -
    3486C LIST,LPTR,LEND = Data structure updated with the
    -
    3487C swap -- triangles (IO1,IO2,IN1) and
    -
    3488C (IO2,IO1,IN2) are replaced by
    -
    3489C (IN1,IN2,IO2) and (IN2,IN1,IO1)
    -
    3490C unless LP21 = 0.
    -
    3491C
    -
    3492C LP21 = Index of IN1 as a neighbor of IN2 after the
    -
    3493C swap is performed unless IN1 and IN2 are
    -
    3494C adjacent on input, in which case LP21 = 0.
    -
    3495C
    -
    3496C Module required by SWAP: LSTPTR
    -
    3497C
    -
    3498C Intrinsic function called by SWAP: ABS
    -
    3499C
    -
    3500C***********************************************************
    -
    3501C
    -
    3502 INTEGER LSTPTR
    -
    3503 INTEGER LP, LPH, LPSAV
    -
    3504C
    -
    3505C Local parameters:
    -
    3506C
    -
    3507C LP,LPH,LPSAV = LIST pointers
    -
    3508C
    -
    3509C
    -
    3510C Test for IN1 and IN2 adjacent.
    -
    3511C
    -
    3512 lp = lstptr(lend(in1),in2,list,lptr)
    -
    3513 IF (abs(list(lp)) .EQ. in2) THEN
    -
    3514 lp21 = 0
    -
    3515 RETURN
    -
    3516 ENDIF
    -
    3517C
    -
    3518C Delete IO2 as a neighbor of IO1.
    -
    3519C
    -
    3520 lp = lstptr(lend(io1),in2,list,lptr)
    -
    3521 lph = lptr(lp)
    -
    3522 lptr(lp) = lptr(lph)
    -
    3523C
    -
    3524C If IO2 is the last neighbor of IO1, make IN2 the
    -
    3525C last neighbor.
    -
    3526C
    -
    3527 IF (lend(io1) .EQ. lph) lend(io1) = lp
    -
    3528C
    -
    3529C Insert IN2 as a neighbor of IN1 following IO1
    -
    3530C using the hole created above.
    -
    3531C
    -
    3532 lp = lstptr(lend(in1),io1,list,lptr)
    -
    3533 lpsav = lptr(lp)
    -
    3534 lptr(lp) = lph
    -
    3535 list(lph) = in2
    -
    3536 lptr(lph) = lpsav
    -
    3537C
    -
    3538C Delete IO1 as a neighbor of IO2.
    -
    3539C
    -
    3540 lp = lstptr(lend(io2),in1,list,lptr)
    -
    3541 lph = lptr(lp)
    -
    3542 lptr(lp) = lptr(lph)
    -
    3543C
    -
    3544C If IO1 is the last neighbor of IO2, make IN1 the
    -
    3545C last neighbor.
    -
    3546C
    -
    3547 IF (lend(io2) .EQ. lph) lend(io2) = lp
    -
    3548C
    -
    3549C Insert IN1 as a neighbor of IN2 following IO2.
    -
    3550C
    -
    3551 lp = lstptr(lend(in2),io2,list,lptr)
    -
    3552 lpsav = lptr(lp)
    -
    3553 lptr(lp) = lph
    -
    3554 list(lph) = in1
    -
    3555 lptr(lph) = lpsav
    -
    3556 lp21 = lph
    -
    3557 RETURN
    -
    3558 END
    -
    3559 LOGICAL FUNCTION swptst (IN1,IN2,IO1,IO2,X,Y)
    -
    3560 INTEGER IN1, IN2, IO1, IO2
    -
    3561 REAL X(*), Y(*)
    -
    3562C
    -
    3563C***********************************************************
    -
    3564C
    -
    3565C From TRIPACK
    -
    3566C Robert J. Renka
    -
    3567C Dept. of Computer Science
    -
    3568C Univ. of North Texas
    -
    3569C renka@cs.unt.edu
    -
    3570C 09/01/88
    -
    3571C
    -
    3572C This function applies the circumcircle test to a quadri-
    -
    3573C lateral defined by a pair of adjacent triangles. The
    -
    3574C diagonal arc (shared triangle side) should be swapped for
    -
    3575C the other diagonl if and only if the fourth vertex is
    -
    3576C strictly interior to the circumcircle of one of the
    -
    3577C triangles (the decision is independent of the choice of
    -
    3578C triangle). Equivalently, the diagonal is chosen to maxi-
    -
    3579C mize the smallest of the six interior angles over the two
    -
    3580C pairs of possible triangles (the decision is for no swap
    -
    3581C if the quadrilateral is not strictly convex).
    -
    3582C
    -
    3583C When the four vertices are nearly cocircular (the
    -
    3584C neutral case), the preferred decision is no swap -- in
    -
    3585C order to avoid unnecessary swaps and, more important, to
    -
    3586C avoid cycling in Subroutine OPTIM which is called by
    -
    3587C DELNOD and EDGE. Thus, a tolerance SWTOL (stored in
    -
    3588C SWPCOM by TRMESH or TRMSHR) is used to define 'nearness'
    -
    3589C to the neutral case.
    -
    3590C
    -
    3591C
    -
    3592C On input:
    -
    3593C
    -
    3594C IN1,IN2,IO1,IO2 = Nodal indexes of the vertices of
    -
    3595C the quadrilateral. IO1-IO2 is the
    -
    3596C triangulation arc (shared triangle
    -
    3597C side) to be replaced by IN1-IN2 if
    -
    3598C the decision is to swap. The
    -
    3599C triples (IO1,IO2,IN1) and (IO2,
    -
    3600C IO1,IN2) must define triangles (be
    -
    3601C in counterclockwise order) on in-
    -
    3602C put.
    -
    3603C
    -
    3604C X,Y = Arrays containing the nodal coordinates.
    -
    3605C
    -
    3606C Input parameters are not altered by this routine.
    -
    3607C
    -
    3608C On output:
    -
    3609C
    -
    3610C SWPTST = .TRUE. if and only if the arc connecting
    -
    3611C IO1 and IO2 is to be replaced.
    -
    3612C
    -
    3613C Modules required by SWPTST: None
    -
    3614C
    -
    3615C***********************************************************
    -
    3616C
    -
    3617 REAL DX11, DX12, DX22, DX21, DY11, DY12, DY22, DY21,
    -
    3618 . SIN1, SIN2, COS1, COS2, SIN12, SWTOL
    -
    3619C
    -
    3620C Tolerance stored by TRMESH or TRMSHR.
    -
    3621C
    -
    3622 COMMON/SWPCOM/SWTOL
    -
    3623C
    -
    3624C Local parameters:
    -
    3625C
    -
    3626C DX11,DY11 = X,Y components of the vector IN1->IO1
    -
    3627C DX12,DY12 = X,Y components of the vector IN1->IO2
    -
    3628C DX22,DY22 = X,Y components of the vector IN2->IO2
    -
    3629C DX21,DY21 = X,Y components of the vector IN2->IO1
    -
    3630C SIN1 = Cross product of the vectors IN1->IO1 and
    -
    3631C IN1->IO2 -- proportional to sin(T1), where
    -
    3632C T1 is the angle at IN1 formed by the vectors
    -
    3633C COS1 = Inner product of the vectors IN1->IO1 and
    -
    3634C IN1->IO2 -- proportional to cos(T1)
    -
    3635C SIN2 = Cross product of the vectors IN2->IO2 and
    -
    3636C IN2->IO1 -- proportional to sin(T2), where
    -
    3637C T2 is the angle at IN2 formed by the vectors
    -
    3638C COS2 = Inner product of the vectors IN2->IO2 and
    -
    3639C IN2->IO1 -- proportional to cos(T2)
    -
    3640C SIN12 = SIN1*COS2 + COS1*SIN2 -- proportional to
    -
    3641C sin(T1+T2)
    -
    3642C
    -
    3643C
    -
    3644C Compute the vectors containing the angles T1 and T2.
    -
    3645C
    -
    3646 dx11 = x(io1) - x(in1)
    -
    3647 dx12 = x(io2) - x(in1)
    -
    3648 dx22 = x(io2) - x(in2)
    -
    3649 dx21 = x(io1) - x(in2)
    -
    3650C
    -
    3651 dy11 = y(io1) - y(in1)
    -
    3652 dy12 = y(io2) - y(in1)
    -
    3653 dy22 = y(io2) - y(in2)
    -
    3654 dy21 = y(io1) - y(in2)
    -
    3655C
    -
    3656C Compute inner products.
    -
    3657C
    -
    3658 cos1 = dx11*dx12 + dy11*dy12
    -
    3659 cos2 = dx22*dx21 + dy22*dy21
    -
    3660C
    -
    3661C The diagonals should be swapped iff (T1+T2) > 180
    -
    3662C degrees. The following two tests ensure numerical
    -
    3663C stability: the decision must be FALSE when both
    -
    3664C angles are close to 0, and TRUE when both angles
    -
    3665C are close to 180 degrees.
    -
    3666C
    -
    3667 IF (cos1 .GE. 0. .AND. cos2 .GE. 0.) GO TO 2
    -
    3668 IF (cos1 .LT. 0. .AND. cos2 .LT. 0.) GO TO 1
    -
    3669C
    -
    3670C Compute vector cross products (Z-components).
    -
    3671C
    -
    3672 sin1 = dx11*dy12 - dx12*dy11
    -
    3673 sin2 = dx22*dy21 - dx21*dy22
    -
    3674 sin12 = sin1*cos2 + cos1*sin2
    -
    3675 IF (sin12 .GE. -swtol) GO TO 2
    -
    3676C
    -
    3677C Swap.
    -
    3678C
    -
    3679 1 swptst = .true.
    -
    3680 RETURN
    -
    3681C
    -
    3682C No swap.
    -
    3683C
    -
    3684 2 swptst = .false.
    -
    3685 RETURN
    -
    3686 END
    -
    3687 SUBROUTINE trfind (NST,PX,PY,N,X,Y,LIST,LPTR,LEND, I1,
    -
    3688 . I2,I3)
    -
    3689 INTEGER NST, N, LIST(*), LPTR(*), LEND(N), I1, I2, I3
    -
    3690 REAL PX, PY, X(N), Y(N)
    -
    3691C
    -
    3692C***********************************************************
    -
    3693C
    -
    3694C From TRIPACK
    -
    3695C Robert J. Renka
    -
    3696C Dept. of Computer Science
    -
    3697C Univ. of North Texas
    -
    3698C renka@cs.unt.edu
    -
    3699C 07/28/98
    -
    3700C
    -
    3701C This subroutine locates a point P relative to a triangu-
    -
    3702C lation created by Subroutine TRMESH or TRMSHR. If P is
    -
    3703C contained in a triangle, the three vertex indexes are
    -
    3704C returned. Otherwise, the indexes of the rightmost and
    -
    3705C leftmost visible boundary nodes are returned.
    -
    3706C
    -
    3707C
    -
    3708C On input:
    -
    3709C
    -
    3710C NST = Index of a node at which TRFIND begins the
    -
    3711C search. Search time depends on the proximity
    -
    3712C of this node to P.
    -
    3713C
    -
    3714C PX,PY = X and y coordinates of the point P to be
    -
    3715C located.
    -
    3716C
    -
    3717C N = Number of nodes in the triangulation. N .GE. 3.
    -
    3718C
    -
    3719C X,Y = Arrays of length N containing the coordinates
    -
    3720C of the nodes in the triangulation.
    -
    3721C
    -
    3722C LIST,LPTR,LEND = Data structure defining the trian-
    -
    3723C gulation. Refer to Subroutine
    -
    3724C TRMESH.
    -
    3725C
    -
    3726C Input parameters are not altered by this routine.
    -
    3727C
    -
    3728C On output:
    -
    3729C
    -
    3730C I1,I2,I3 = Nodal indexes, in counterclockwise order,
    -
    3731C of the vertices of a triangle containing
    -
    3732C P if P is contained in a triangle. If P
    -
    3733C is not in the convex hull of the nodes,
    -
    3734C I1 indexes the rightmost visible boundary
    -
    3735C node, I2 indexes the leftmost visible
    -
    3736C boundary node, and I3 = 0. Rightmost and
    -
    3737C leftmost are defined from the perspective
    -
    3738C of P, and a pair of points are visible
    -
    3739C from each other if and only if the line
    -
    3740C segment joining them intersects no trian-
    -
    3741C gulation arc. If P and all of the nodes
    -
    3742C lie on a common line, then I1 = I2 = I3 =
    -
    3743C 0 on output.
    -
    3744C
    -
    3745C Modules required by TRFIND: JRAND, LEFT, LSTPTR, STORE
    -
    3746C
    -
    3747C Intrinsic function called by TRFIND: ABS
    -
    3748C
    -
    3749C***********************************************************
    -
    3750C
    -
    3751 INTEGER JRAND, LSTPTR
    -
    3752 LOGICAL LEFT
    -
    3753 REAL STORE
    -
    3754 INTEGER IX, IY, IZ, LP, N0, N1, N1S, N2, N2S, N3, N4,
    -
    3755 . NB, NF, NL, NP, NPP
    -
    3756 LOGICAL FRWRD
    -
    3757 REAL B1, B2, XA, XB, XC, XP, YA, YB, YC, YP
    -
    3758C
    -
    3759 SAVE IX, IY, IZ
    -
    3760 DATA IX/1/, IY/2/, IZ/3/
    -
    3761C
    -
    3762C Local parameters:
    -
    3763C
    -
    3764C B1,B2 = Unnormalized barycentric coordinates of P with
    -
    3765C respect to (N1,N2,N3)
    -
    3766C IX,IY,IZ = Integer seeds for JRAND
    -
    3767C LP = LIST pointer
    -
    3768C N0,N1,N2 = Nodes in counterclockwise order defining a
    -
    3769C cone (with vertex N0) containing P
    -
    3770C N1S,N2S = Saved values of N1 and N2
    -
    3771C N3,N4 = Nodes opposite N1->N2 and N2->N1, respectively
    -
    3772C NB = Index of a boundary node -- first neighbor of
    -
    3773C NF or last neighbor of NL in the boundary
    -
    3774C traversal loops
    -
    3775C NF,NL = First and last neighbors of N0, or first
    -
    3776C (rightmost) and last (leftmost) nodes
    -
    3777C visible from P when P is exterior to the
    -
    3778C triangulation
    -
    3779C NP,NPP = Indexes of boundary nodes used in the boundary
    -
    3780C traversal loops
    -
    3781C XA,XB,XC = Dummy arguments for FRWRD
    -
    3782C YA,YB,YC = Dummy arguments for FRWRD
    -
    3783C XP,YP = Local variables containing the components of P
    -
    3784C
    -
    3785C Statement function:
    -
    3786C
    -
    3787C FRWRD = TRUE iff C is forward of A->B
    -
    3788C iff <A->B,A->C> .GE. 0.
    -
    3789C
    -
    3790 frwrd(xa,ya,xb,yb,xc,yc) = (xb-xa)*(xc-xa) +
    -
    3791 . (yb-ya)*(yc-ya) .GE. 0.
    -
    3792C
    -
    3793C Initialize variables.
    -
    3794C
    -
    3795 xp = px
    -
    3796 yp = py
    -
    3797 n0 = nst
    -
    3798 IF (n0 .LT. 1 .OR. n0 .GT. n)
    -
    3799 . n0 = jrand(n, ix,iy,iz )
    -
    3800C
    -
    3801C Set NF and NL to the first and last neighbors of N0, and
    -
    3802C initialize N1 = NF.
    -
    3803C
    -
    3804 1 lp = lend(n0)
    -
    3805 nl = list(lp)
    -
    3806 lp = lptr(lp)
    -
    3807 nf = list(lp)
    -
    3808 n1 = nf
    -
    3809C
    -
    3810C Find a pair of adjacent neighbors N1,N2 of N0 that define
    -
    3811C a wedge containing P: P LEFT N0->N1 and P RIGHT N0->N2.
    -
    3812C
    -
    3813 IF (nl .GT. 0) GO TO 2
    -
    3814C
    -
    3815C N0 is a boundary node. Test for P exterior.
    -
    3816C
    -
    3817 nl = -nl
    -
    3818 IF ( .NOT. left(x(n0),y(n0),x(nf),y(nf),xp,yp) ) THEN
    -
    3819 nl = n0
    -
    3820 GO TO 9
    -
    3821 ENDIF
    -
    3822 IF ( .NOT. left(x(nl),y(nl),x(n0),y(n0),xp,yp) ) THEN
    -
    3823 nb = nf
    -
    3824 nf = n0
    -
    3825 np = nl
    -
    3826 npp = n0
    -
    3827 GO TO 11
    -
    3828 ENDIF
    -
    3829 GO TO 3
    -
    3830C
    -
    3831C N0 is an interior node. Find N1.
    -
    3832C
    -
    3833 2 IF ( left(x(n0),y(n0),x(n1),y(n1),xp,yp) ) GO TO 3
    -
    3834 lp = lptr(lp)
    -
    3835 n1 = list(lp)
    -
    3836 IF (n1 .EQ. nl) GO TO 6
    -
    3837 GO TO 2
    -
    3838C
    -
    3839C P is to the left of edge N0->N1. Initialize N2 to the
    -
    3840C next neighbor of N0.
    -
    3841C
    -
    3842 3 lp = lptr(lp)
    -
    3843 n2 = abs(list(lp))
    -
    3844 IF ( .NOT. left(x(n0),y(n0),x(n2),y(n2),xp,yp) )
    -
    3845 . GO TO 7
    -
    3846 n1 = n2
    -
    3847 IF (n1 .NE. nl) GO TO 3
    -
    3848 IF ( .NOT. left(x(n0),y(n0),x(nf),y(nf),xp,yp) )
    -
    3849 . GO TO 6
    -
    3850 IF (xp .EQ. x(n0) .AND. yp .EQ. y(n0)) GO TO 5
    -
    3851C
    -
    3852C P is left of or on edges N0->NB for all neighbors NB
    -
    3853C of N0.
    -
    3854C All points are collinear iff P is left of NB->N0 for
    -
    3855C all neighbors NB of N0. Search the neighbors of N0.
    -
    3856C NOTE -- N1 = NL and LP points to NL.
    -
    3857C
    -
    3858 4 IF ( .NOT. left(x(n1),y(n1),x(n0),y(n0),xp,yp) )
    -
    3859 . GO TO 5
    -
    3860 lp = lptr(lp)
    -
    3861 n1 = abs(list(lp))
    -
    3862 IF (n1 .EQ. nl) GO TO 17
    -
    3863 GO TO 4
    -
    3864C
    -
    3865C P is to the right of N1->N0, or P=N0. Set N0 to N1 and
    -
    3866C start over.
    -
    3867C
    -
    3868 5 n0 = n1
    -
    3869 GO TO 1
    -
    3870C
    -
    3871C P is between edges N0->N1 and N0->NF.
    -
    3872C
    -
    3873 6 n2 = nf
    -
    3874C
    -
    3875C P is contained in the wedge defined by line segments
    -
    3876C N0->N1 and N0->N2, where N1 is adjacent to N2. Set
    -
    3877C N3 to the node opposite N1->N2, and save N1 and N2 to
    -
    3878C test for cycling.
    -
    3879C
    -
    3880 7 n3 = n0
    -
    3881 n1s = n1
    -
    3882 n2s = n2
    -
    3883C
    -
    3884C Top of edge hopping loop. Test for termination.
    -
    3885C
    -
    3886 8 IF ( left(x(n1),y(n1),x(n2),y(n2),xp,yp) ) THEN
    -
    3887C
    -
    3888C P LEFT N1->N2 and hence P is in (N1,N2,N3) unless an
    -
    3889C error resulted from floating point inaccuracy and
    -
    3890C collinearity. Compute the unnormalized barycentric
    -
    3891C coordinates of P with respect to (N1,N2,N3).
    -
    3892C
    -
    3893 b1 = (x(n3)-x(n2))*(yp-y(n2)) -
    -
    3894 . (xp-x(n2))*(y(n3)-y(n2))
    -
    3895 b2 = (x(n1)-x(n3))*(yp-y(n3)) -
    -
    3896 . (xp-x(n3))*(y(n1)-y(n3))
    -
    3897 IF (store(b1+1.) .GE. 1. .AND.
    -
    3898 . store(b2+1.) .GE. 1.) GO TO 16
    -
    3899C
    -
    3900C Restart with N0 randomly selected.
    -
    3901C
    -
    3902 n0 = jrand(n, ix,iy,iz )
    -
    3903 GO TO 1
    -
    3904 ENDIF
    -
    3905C
    -
    3906C Set N4 to the neighbor of N2 which follows N1 (node
    -
    3907C opposite N2->N1) unless N1->N2 is a boundary edge.
    -
    3908C
    -
    3909 lp = lstptr(lend(n2),n1,list,lptr)
    -
    3910 IF (list(lp) .LT. 0) THEN
    -
    3911 nf = n2
    -
    3912 nl = n1
    -
    3913 GO TO 9
    -
    3914 ENDIF
    -
    3915 lp = lptr(lp)
    -
    3916 n4 = abs(list(lp))
    -
    3917C
    -
    3918C Select the new edge N1->N2 which intersects the line
    -
    3919C segment N0-P, and set N3 to the node opposite N1->N2.
    -
    3920C
    -
    3921 IF ( left(x(n0),y(n0),x(n4),y(n4),xp,yp) ) THEN
    -
    3922 n3 = n1
    -
    3923 n1 = n4
    -
    3924 n2s = n2
    -
    3925 IF (n1 .NE. n1s .AND. n1 .NE. n0) GO TO 8
    -
    3926 ELSE
    -
    3927 n3 = n2
    -
    3928 n2 = n4
    -
    3929 n1s = n1
    -
    3930 IF (n2 .NE. n2s .AND. n2 .NE. n0) GO TO 8
    -
    3931 ENDIF
    -
    3932C
    -
    3933C The starting node N0 or edge N1-N2 was encountered
    -
    3934C again, implying a cycle (infinite loop). Restart
    -
    3935C with N0 randomly selected.
    -
    3936C
    -
    3937 n0 = jrand(n, ix,iy,iz )
    -
    3938 GO TO 1
    -
    3939C
    -
    3940C Boundary traversal loops. NL->NF is a boundary edge and
    -
    3941C P RIGHT NL->NF. Save NL and NF.
    -
    3942
    -
    3943 9 np = nl
    -
    3944 npp = nf
    -
    3945C
    -
    3946C Find the first (rightmost) visible boundary node NF. NB
    -
    3947C is set to the first neighbor of NF, and NP is the last
    -
    3948C neighbor.
    -
    3949C
    -
    3950 10 lp = lend(nf)
    -
    3951 lp = lptr(lp)
    -
    3952 nb = list(lp)
    -
    3953 IF ( .NOT. left(x(nf),y(nf),x(nb),y(nb),xp,yp) )
    -
    3954 . GO TO 12
    -
    3955C
    -
    3956C P LEFT NF->NB and thus NB is not visible unless an error
    -
    3957C resulted from floating point inaccuracy and collinear-
    -
    3958C ity of the 4 points NP, NF, NB, and P.
    -
    3959C
    -
    3960 11 IF ( frwrd(x(nf),y(nf),x(np),y(np),xp,yp) .OR.
    -
    3961 . frwrd(x(nf),y(nf),x(np),y(np),x(nb),y(nb)) ) THEN
    -
    3962 i1 = nf
    -
    3963 GO TO 13
    -
    3964 ENDIF
    -
    3965C
    -
    3966C Bottom of loop.
    -
    3967C
    -
    3968 12 np = nf
    -
    3969 nf = nb
    -
    3970 GO TO 10
    -
    3971C
    -
    3972C Find the last (leftmost) visible boundary node NL. NB
    -
    3973C is set to the last neighbor of NL, and NPP is the first
    -
    3974C neighbor.
    -
    3975C
    -
    3976 13 lp = lend(nl)
    -
    3977 nb = -list(lp)
    -
    3978 IF ( .NOT. left(x(nb),y(nb),x(nl),y(nl),xp,yp) )
    -
    3979 . GO TO 14
    -
    3980C
    -
    3981C P LEFT NB->NL and thus NB is not visible unless an error
    -
    3982C resulted from floating point inaccuracy and collinear-
    -
    3983C ity of the 4 points P, NB, NL, and NPP.
    -
    3984C
    -
    3985 IF ( frwrd(x(nl),y(nl),x(npp),y(npp),xp,yp) .OR.
    -
    3986 . frwrd(x(nl),y(nl),x(npp),y(npp),x(nb),y(nb)) )
    -
    3987 . GO TO 15
    -
    3988C
    -
    3989C Bottom of loop.
    -
    3990C
    -
    3991 14 npp = nl
    -
    3992 nl = nb
    -
    3993 GO TO 13
    -
    3994C
    -
    3995C NL is the leftmost visible boundary node.
    -
    3996C
    -
    3997 15 i2 = nl
    -
    3998 i3 = 0
    -
    3999 RETURN
    -
    4000C
    -
    4001C P is in the triangle (N1,N2,N3).
    -
    4002C
    -
    4003 16 i1 = n1
    -
    4004 i2 = n2
    -
    4005 i3 = n3
    -
    4006 RETURN
    -
    4007C
    -
    4008C All points are collinear.
    -
    4009C
    -
    4010 17 i1 = 0
    -
    4011 i2 = 0
    -
    4012 i3 = 0
    -
    4013 RETURN
    -
    4014 END
    -
    4015 SUBROUTINE trlist (NCC,LCC,N,LIST,LPTR,LEND,NROW, NT,
    -
    4016 . LTRI,LCT,IER)
    -
    4017 INTEGER NCC, LCC(*), N, LIST(*), LPTR(*), LEND(N),
    -
    4018 . NROW, NT, LTRI(NROW,*), LCT(*), IER
    -
    4019C
    -
    4020C***********************************************************
    -
    4021C
    -
    4022C From TRIPACK
    -
    4023C Robert J. Renka
    -
    4024C Dept. of Computer Science
    -
    4025C Univ. of North Texas
    -
    4026C renka@cs.unt.edu
    -
    4027C 03/22/97
    -
    4028C
    -
    4029C This subroutine converts a triangulation data structure
    -
    4030C from the linked list created by Subroutine TRMESH or
    -
    4031C TRMSHR to a triangle list.
    -
    4032C
    -
    4033C On input:
    -
    4034C
    -
    4035C NCC = Number of constraints. NCC .GE. 0.
    -
    4036C
    -
    4037C LCC = List of constraint curve starting indexes (or
    -
    4038C dummy array of length 1 if NCC = 0). Refer to
    -
    4039C Subroutine ADDCST.
    -
    4040C
    -
    4041C N = Number of nodes in the triangulation. N .GE. 3.
    -
    4042C
    -
    4043C LIST,LPTR,LEND = Linked list data structure defin-
    -
    4044C ing the triangulation. Refer to
    -
    4045C Subroutine TRMESH.
    -
    4046C
    -
    4047C NROW = Number of rows (entries per triangle) re-
    -
    4048C served for the triangle list LTRI. The value
    -
    4049C must be 6 if only the vertex indexes and
    -
    4050C neighboring triangle indexes are to be
    -
    4051C stored, or 9 if arc indexes are also to be
    -
    4052C assigned and stored. Refer to LTRI.
    -
    4053C
    -
    4054C The above parameters are not altered by this routine.
    -
    4055C
    -
    4056C LTRI = Integer array of length at least NROW*NT,
    -
    4057C where NT is at most 2N-5. (A sufficient
    -
    4058C length is 12N if NROW=6 or 18N if NROW=9.)
    -
    4059C
    -
    4060C LCT = Integer array of length NCC or dummy array of
    -
    4061C length 1 if NCC = 0.
    -
    4062C
    -
    4063C On output:
    -
    4064C
    -
    4065C NT = Number of triangles in the triangulation unless
    -
    4066C IER .NE. 0, in which case NT = 0. NT = 2N - NB
    -
    4067C - 2, where NB is the number of boundary nodes.
    -
    4068C
    -
    4069C LTRI = NROW by NT array whose J-th column contains
    -
    4070C the vertex nodal indexes (first three rows),
    -
    4071C neighboring triangle indexes (second three
    -
    4072C rows), and, if NROW = 9, arc indexes (last
    -
    4073C three rows) associated with triangle J for
    -
    4074C J = 1,...,NT. The vertices are ordered
    -
    4075C counterclockwise with the first vertex taken
    -
    4076C to be the one with smallest index. Thus,
    -
    4077C LTRI(2,J) and LTRI(3,J) are larger than
    -
    4078C LTRI(1,J) and index adjacent neighbors of
    -
    4079C node LTRI(1,J). For I = 1,2,3, LTRI(I+3,J)
    -
    4080C and LTRI(I+6,J) index the triangle and arc,
    -
    4081C respectively, which are opposite (not shared
    -
    4082C by) node LTRI(I,J), with LTRI(I+3,J) = 0 if
    -
    4083C LTRI(I+6,J) indexes a boundary arc. Vertex
    -
    4084C indexes range from 1 to N, triangle indexes
    -
    4085C from 0 to NT, and, if included, arc indexes
    -
    4086C from 1 to NA = NT+N-1. The triangles are or-
    -
    4087C dered on first (smallest) vertex indexes,
    -
    4088C except that the sets of constraint triangles
    -
    4089C (triangles contained in the closure of a con-
    -
    4090C straint region) follow the non-constraint
    -
    4091C triangles.
    -
    4092C
    -
    4093C LCT = Array of length NCC containing the triangle
    -
    4094C index of the first triangle of constraint J in
    -
    4095C LCT(J). Thus, the number of non-constraint
    -
    4096C triangles is LCT(1)-1, and constraint J con-
    -
    4097C tains LCT(J+1)-LCT(J) triangles, where
    -
    4098C LCT(NCC+1) = NT+1.
    -
    4099C
    -
    4100C IER = Error indicator.
    -
    4101C IER = 0 if no errors were encountered.
    -
    4102C IER = 1 if NCC, N, NROW, or an LCC entry is
    -
    4103C outside its valid range on input.
    -
    4104C IER = 2 if the triangulation data structure
    -
    4105C (LIST,LPTR,LEND) is invalid. Note,
    -
    4106C however, that these arrays are not
    -
    4107C completely tested for validity.
    -
    4108C
    -
    4109C Modules required by TRLIST: None
    -
    4110C
    -
    4111C Intrinsic function called by TRLIST: ABS
    -
    4112C
    -
    4113C***********************************************************
    -
    4114C
    -
    4115 INTEGER I, I1, I2, I3, ISV, J, JLAST, KA, KN, KT, L,
    -
    4116 . LCC1, LP, LP2, LPL, LPLN1, N1, N1ST, N2, N3,
    -
    4117 . NM2, NN
    -
    4118 LOGICAL ARCS, CSTRI, PASS2
    -
    4119C
    -
    4120C Test for invalid input parameters and store the index
    -
    4121C LCC1 of the first constraint node (if any).
    -
    4122C
    -
    4123 NN = n
    -
    4124 IF (ncc .LT. 0 .OR. (nrow .NE. 6 .AND.
    -
    4125 . nrow .NE. 9)) GO TO 12
    -
    4126 lcc1 = nn+1
    -
    4127 IF (ncc .EQ. 0) THEN
    -
    4128 IF (nn .LT. 3) GO TO 12
    -
    4129 ELSE
    -
    4130 DO 1 i = ncc,1,-1
    -
    4131 IF (lcc1-lcc(i) .LT. 3) GO TO 12
    -
    4132 lcc1 = lcc(i)
    -
    4133 1 CONTINUE
    -
    4134 IF (lcc1 .LT. 1) GO TO 12
    -
    4135 ENDIF
    -
    4136C
    -
    4137C Initialize parameters for loop on triangles KT = (N1,N2,
    -
    4138C N3), where N1 < N2 and N1 < N3. This requires two
    -
    4139C passes through the nodes with all non-constraint
    -
    4140C triangles stored on the first pass, and the constraint
    -
    4141C triangles stored on the second.
    -
    4142C
    -
    4143C ARCS = TRUE iff arc indexes are to be stored.
    -
    4144C KA,KT = Numbers of currently stored arcs and triangles.
    -
    4145C N1ST = Starting index for the loop on nodes (N1ST = 1 on
    -
    4146C pass 1, and N1ST = LCC1 on pass 2).
    -
    4147C NM2 = Upper bound on candidates for N1.
    -
    4148C PASS2 = TRUE iff constraint triangles are to be stored.
    -
    4149C
    -
    4150 arcs = nrow .EQ. 9
    -
    4151 ka = 0
    -
    4152 kt = 0
    -
    4153 n1st = 1
    -
    4154 nm2 = nn-2
    -
    4155 pass2 = .false.
    -
    4156C
    -
    4157C Loop on nodes N1: J = constraint containing N1,
    -
    4158C JLAST = last node in constraint J.
    -
    4159C
    -
    4160 2 j = 0
    -
    4161 jlast = lcc1 - 1
    -
    4162 DO 11 n1 = n1st,nm2
    -
    4163 IF (n1 .GT. jlast) THEN
    -
    4164C
    -
    4165C N1 is the first node in constraint J+1. Update J and
    -
    4166C JLAST, and store the first constraint triangle index
    -
    4167C if in pass 2.
    -
    4168C
    -
    4169 j = j + 1
    -
    4170 IF (j .LT. ncc) THEN
    -
    4171 jlast = lcc(j+1) - 1
    -
    4172 ELSE
    -
    4173 jlast = nn
    -
    4174 ENDIF
    -
    4175 IF (pass2) lct(j) = kt + 1
    -
    4176 ENDIF
    -
    4177C
    -
    4178C Loop on pairs of adjacent neighbors (N2,N3). LPLN1 points
    -
    4179C to the last neighbor of N1, and LP2 points to N2.
    -
    4180C
    -
    4181 lpln1 = lend(n1)
    -
    4182 lp2 = lpln1
    -
    4183 3 lp2 = lptr(lp2)
    -
    4184 n2 = list(lp2)
    -
    4185 lp = lptr(lp2)
    -
    4186 n3 = abs(list(lp))
    -
    4187 IF (n2 .LT. n1 .OR. n3 .LT. n1) GO TO 10
    -
    4188C
    -
    4189C (N1,N2,N3) is a constraint triangle iff the three nodes
    -
    4190C are in the same constraint and N2 < N3. Bypass con-
    -
    4191C straint triangles on pass 1 and non-constraint triangles
    -
    4192C on pass 2.
    -
    4193C
    -
    4194 cstri = n1 .GE. lcc1 .AND. n2 .LT. n3 .AND.
    -
    4195 . n3 .LE. jlast
    -
    4196 IF ((cstri .AND. .NOT. pass2) .OR.
    -
    4197 . (.NOT. cstri .AND. pass2)) GO TO 10
    -
    4198C
    -
    4199C Add a new triangle KT = (N1,N2,N3).
    -
    4200C
    -
    4201 kt = kt + 1
    -
    4202 ltri(1,kt) = n1
    -
    4203 ltri(2,kt) = n2
    -
    4204 ltri(3,kt) = n3
    -
    4205C
    -
    4206C Loop on triangle sides (I1,I2) with neighboring triangles
    -
    4207C KN = (I1,I2,I3).
    -
    4208C
    -
    4209 DO 9 i = 1,3
    -
    4210 IF (i .EQ. 1) THEN
    -
    4211 i1 = n3
    -
    4212 i2 = n2
    -
    4213 ELSEIF (i .EQ. 2) THEN
    -
    4214 i1 = n1
    -
    4215 i2 = n3
    -
    4216 ELSE
    -
    4217 i1 = n2
    -
    4218 i2 = n1
    -
    4219 ENDIF
    -
    4220C
    -
    4221C Set I3 to the neighbor of I1 which follows I2 unless
    -
    4222C I2->I1 is a boundary arc.
    -
    4223C
    -
    4224 lpl = lend(i1)
    -
    4225 lp = lptr(lpl)
    -
    4226 4 IF (list(lp) .EQ. i2) GO TO 5
    -
    4227 lp = lptr(lp)
    -
    4228 IF (lp .NE. lpl) GO TO 4
    -
    4229C
    -
    4230C I2 is the last neighbor of I1 unless the data structure
    -
    4231C is invalid. Bypass the search for a neighboring
    -
    4232C triangle if I2->I1 is a boundary arc.
    -
    4233C
    -
    4234 IF (abs(list(lp)) .NE. i2) GO TO 13
    -
    4235 kn = 0
    -
    4236 IF (list(lp) .LT. 0) GO TO 8
    -
    4237C
    -
    4238C I2->I1 is not a boundary arc, and LP points to I2 as
    -
    4239C a neighbor of I1.
    -
    4240C
    -
    4241 5 lp = lptr(lp)
    -
    4242 i3 = abs(list(lp))
    -
    4243C
    -
    4244C Find L such that LTRI(L,KN) = I3 (not used if KN > KT),
    -
    4245C and permute the vertex indexes of KN so that I1 is
    -
    4246C smallest.
    -
    4247C
    -
    4248 IF (i1 .LT. i2 .AND. i1 .LT. i3) THEN
    -
    4249 l = 3
    -
    4250 ELSEIF (i2 .LT. i3) THEN
    -
    4251 l = 2
    -
    4252 isv = i1
    -
    4253 i1 = i2
    -
    4254 i2 = i3
    -
    4255 i3 = isv
    -
    4256 ELSE
    -
    4257 l = 1
    -
    4258 isv = i1
    -
    4259 i1 = i3
    -
    4260 i3 = i2
    -
    4261 i2 = isv
    -
    4262 ENDIF
    -
    4263C
    -
    4264C Test for KN > KT (triangle index not yet assigned).
    -
    4265C
    -
    4266 IF (i1 .GT. n1 .AND. .NOT. pass2) GO TO 9
    -
    4267C
    -
    4268C Find KN, if it exists, by searching the triangle list in
    -
    4269C reverse order.
    -
    4270C
    -
    4271 DO 6 kn = kt-1,1,-1
    -
    4272 IF (ltri(1,kn) .EQ. i1 .AND. ltri(2,kn) .EQ.
    -
    4273 . i2 .AND. ltri(3,kn) .EQ. i3) GO TO 7
    -
    4274 6 CONTINUE
    -
    4275 GO TO 9
    -
    4276C
    -
    4277C Store KT as a neighbor of KN.
    -
    4278C
    -
    4279 7 ltri(l+3,kn) = kt
    -
    4280C
    -
    4281C Store KN as a neighbor of KT, and add a new arc KA.
    -
    4282C
    -
    4283 8 ltri(i+3,kt) = kn
    -
    4284 IF (arcs) THEN
    -
    4285 ka = ka + 1
    -
    4286 ltri(i+6,kt) = ka
    -
    4287 IF (kn .NE. 0) ltri(l+6,kn) = ka
    -
    4288 ENDIF
    -
    4289 9 CONTINUE
    -
    4290C
    -
    4291C Bottom of loop on triangles.
    -
    4292C
    -
    4293 10 IF (lp2 .NE. lpln1) GO TO 3
    -
    4294 11 CONTINUE
    -
    4295C
    -
    4296C Bottom of loop on nodes.
    -
    4297C
    -
    4298 IF (.NOT. pass2 .AND. ncc .GT. 0) THEN
    -
    4299 pass2 = .true.
    -
    4300 n1st = lcc1
    -
    4301 GO TO 2
    -
    4302 ENDIF
    -
    4303C
    -
    4304C No errors encountered.
    -
    4305C
    -
    4306 nt = kt
    -
    4307 ier = 0
    -
    4308 RETURN
    -
    4309C
    -
    4310C Invalid input parameter.
    -
    4311C
    -
    4312 12 nt = 0
    -
    4313 ier = 1
    -
    4314 RETURN
    -
    4315C
    -
    4316C Invalid triangulation data structure: I1 is a neighbor of
    -
    4317C I2, but I2 is not a neighbor of I1.
    -
    4318C
    -
    4319 13 nt = 0
    -
    4320 ier = 2
    -
    4321 RETURN
    -
    4322 END
    -
    4323 SUBROUTINE trlprt (NCC,LCT,N,X,Y,NROW,NT,LTRI,LOUT,
    -
    4324 . PRNTX)
    -
    4325 INTEGER NCC, LCT(*), N, NROW, NT, LTRI(NROW,NT),
    -
    4326 . lout
    -
    4327 LOGICAL PRNTX
    -
    4328 REAL X(N), Y(N)
    -
    4329C
    -
    4330C***********************************************************
    -
    4331C
    -
    4332C From TRLPACK
    -
    4333C Robert J. Renka
    -
    4334C Dept. of Computer Science
    -
    4335C Univ. of North Texas
    -
    4336C renka@cs.unt.edu
    -
    4337C 07/02/98
    -
    4338C
    -
    4339C Given a triangulation of a set of points in the plane,
    -
    4340C this subroutine prints the triangle list created by
    -
    4341C Subroutine TRLIST and, optionally, the nodal coordinates
    -
    4342C on logical unit LOUT. The numbers of boundary nodes,
    -
    4343C triangles, and arcs, and the constraint region triangle
    -
    4344C indexes, if any, are also printed.
    -
    4345C
    -
    4346C All parameters other than LOUT and PRNTX should be
    -
    4347C unaltered from their values on output from TRLIST.
    -
    4348C
    -
    4349C
    -
    4350C On input:
    -
    4351C
    -
    4352C NCC = Number of constraints.
    -
    4353C
    -
    4354C LCT = List of constraint triangle starting indexes
    -
    4355C (or dummy array of length 1 if NCC = 0).
    -
    4356C
    -
    4357C N = Number of nodes in the triangulation.
    -
    4358C 3 .LE. N .LE. 9999.
    -
    4359C
    -
    4360C X,Y = Arrays of length N containing the coordinates
    -
    4361C of the nodes in the triangulation -- not used
    -
    4362C unless PRNTX = TRUE.
    -
    4363C
    -
    4364C NROW = Number of rows (entries per triangle) re-
    -
    4365C served for the triangle list LTRI. The value
    -
    4366C must be 6 if only the vertex indexes and
    -
    4367C neighboring triangle indexes are stored, or 9
    -
    4368C if arc indexes are also stored.
    -
    4369C
    -
    4370C NT = Number of triangles in the triangulation.
    -
    4371C 1 .LE. NT .LE. 9999.
    -
    4372C
    -
    4373C LTRI = NROW by NT array whose J-th column contains
    -
    4374C the vertex nodal indexes (first three rows),
    -
    4375C neighboring triangle indexes (second three
    -
    4376C rows), and, if NROW = 9, arc indexes (last
    -
    4377C three rows) associated with triangle J for
    -
    4378C J = 1,...,NT.
    -
    4379C
    -
    4380C LOUT = Logical unit number for output. 0 .LE. LOUT
    -
    4381C .LE. 99. Output is printed on unit 6 if LOUT
    -
    4382C is outside its valid range on input.
    -
    4383C
    -
    4384C PRNTX = Logical variable with value TRUE if and only
    -
    4385C if X and Y are to be printed (to 6 decimal
    -
    4386C places).
    -
    4387C
    -
    4388C None of the parameters are altered by this routine.
    -
    4389C
    -
    4390C Modules required by TRLPRT: None
    -
    4391C
    -
    4392C***********************************************************
    -
    4393C
    -
    4394 INTEGER I, K, LUN, NA, NB, NL, NLMAX, NMAX
    -
    4395 DATA NMAX/9999/, NLMAX/60/
    -
    4396C
    -
    4397C Local parameters:
    -
    4398C
    -
    4399C I = DO-loop, nodal index, and row index for LTRI
    -
    4400C K = DO-loop and triangle index
    -
    4401C LUN = Logical unit number for output
    -
    4402C NA = Number of triangulation arcs
    -
    4403C NB = Number of boundary nodes
    -
    4404C NL = Number of lines printed on the current page
    -
    4405C NLMAX = Maximum number of print lines per page
    -
    4406C NMAX = Maximum value of N and NT (4-digit format)
    -
    4407C
    -
    4408 lun = lout
    -
    4409 IF (lun .LT. 0 .OR. lun .GT. 99) lun = 6
    -
    4410C
    -
    4411C Print a heading and test for invalid input.
    -
    4412C
    -
    4413 WRITE (lun,100)
    -
    4414 nl = 1
    -
    4415 IF (n .LT. 3 .OR. n .GT. nmax .OR.
    -
    4416 . (nrow .NE. 6 .AND. nrow .NE. 9) .OR.
    -
    4417 . nt .LT. 1 .OR. nt .GT. nmax) THEN
    -
    4418C
    -
    4419C Print an error message and bypass the loops.
    -
    4420C
    -
    4421 WRITE (lun,110) n, nrow, nt
    -
    4422 GO TO 3
    -
    4423 ENDIF
    -
    4424 IF (prntx) THEN
    -
    4425C
    -
    4426C Print X and Y.
    -
    4427C
    -
    4428 WRITE (lun,101)
    -
    4429 nl = 6
    -
    4430 DO 1 i = 1,n
    -
    4431 IF (nl .GE. nlmax) THEN
    -
    4432 WRITE (lun,106)
    -
    4433 nl = 0
    -
    4434 ENDIF
    -
    4435 WRITE (lun,102) i, x(i), y(i)
    -
    4436 nl = nl + 1
    -
    4437 1 CONTINUE
    -
    4438 ENDIF
    -
    4439C
    -
    4440C Print the triangulation LTRI.
    -
    4441C
    -
    4442 IF (nl .GT. nlmax/2) THEN
    -
    4443 WRITE (lun,106)
    -
    4444 nl = 0
    -
    4445 ENDIF
    -
    4446 IF (nrow .EQ. 6) THEN
    -
    4447 WRITE (lun,103)
    -
    4448 ELSE
    -
    4449 WRITE (lun,104)
    -
    4450 ENDIF
    -
    4451 nl = nl + 5
    -
    4452 DO 2 k = 1,nt
    -
    4453 IF (nl .GE. nlmax) THEN
    -
    4454 WRITE (lun,106)
    -
    4455 nl = 0
    -
    4456 ENDIF
    -
    4457 WRITE (lun,105) k, (ltri(i,k), i = 1,nrow)
    -
    4458 nl = nl + 1
    -
    4459 2 CONTINUE
    -
    4460C
    -
    4461C Print NB, NA, and NT (boundary nodes, arcs, and
    -
    4462C triangles).
    -
    4463C
    -
    4464 nb = 2*n - nt - 2
    -
    4465 na = nt + n - 1
    -
    4466 IF (nl .GT. nlmax-6) WRITE (lun,106)
    -
    4467 WRITE (lun,107) nb, na, nt
    -
    4468C
    -
    4469C Print NCC and LCT.
    -
    4470C
    -
    4471 3 WRITE (lun,108) ncc
    -
    4472 IF (ncc .GT. 0) WRITE (lun,109) (lct(i), i = 1,ncc)
    -
    4473 RETURN
    -
    4474C
    -
    4475C Print formats:
    -
    4476C
    -
    4477 100 FORMAT (///,24x,'TRIPACK (TRLIST) Output')
    -
    4478 101 FORMAT (//16x,'Node',7x,'X(Node)',10x,'Y(Node)'//)
    -
    4479 102 FORMAT (16x,i4,2e17.6)
    -
    4480 103 FORMAT (//1x,'Triangle',8x,'Vertices',12x,'Neighbors'/
    -
    4481 . 4x,'KT',7x,'N1',5x,'N2',5x,'N3',4x,'KT1',4x,
    -
    4482 . 'KT2',4x,'KT3'/)
    -
    4483 104 FORMAT (//1x,'Triangle',8x,'Vertices',12x,'Neighbors',
    -
    4484 . 14x,'Arcs'/
    -
    4485 . 4x,'KT',7x,'N1',5x,'N2',5x,'N3',4x,'KT1',4x,
    -
    4486 . 'KT2',4x,'KT3',4x,'KA1',4x,'KA2',4x,'KA3'/)
    -
    4487 105 FORMAT (2x,i4,2x,6(3x,i4),3(2x,i5))
    -
    4488 106 FORMAT (///)
    -
    4489 107 FORMAT (/1x,'NB = ',i4,' Boundary Nodes',5x,
    -
    4490 . 'NA = ',i5,' Arcs',5x,'NT = ',i5,
    -
    4491 . ' Triangles')
    -
    4492 108 FORMAT (/1x,'NCC =',i3,' Constraint Curves')
    -
    4493 109 FORMAT (1x,9x,14i5)
    -
    4494 110 FORMAT (//1x,10x,'*** Invalid Parameter: N =',i5,
    -
    4495 . ', NROW =',i5,', NT =',i5,' ***')
    -
    4496 END
    -
    4497 SUBROUTINE trmesh (N,X,Y, LIST,LPTR,LEND,LNEW,NEAR,
    -
    4498 . NEXT,DIST,IER)
    -
    4499 INTEGER N, LIST(*), LPTR(*), LEND(N), LNEW, NEAR(N),
    -
    4500 . next(n), ier
    -
    4501 REAL X(N), Y(N), DIST(N)
    -
    4502C
    -
    4503C***********************************************************
    -
    4504C
    -
    4505C From TRIPACK
    -
    4506C Robert J. Renka
    -
    4507C Dept. of Computer Science
    -
    4508C Univ. of North Texas
    -
    4509C renka@cs.unt.edu
    -
    4510C 06/28/98
    -
    4511C
    -
    4512C This subroutine creates a Delaunay triangulation of a
    -
    4513C set of N arbitrarily distributed points in the plane re-
    -
    4514C ferred to as nodes. The Delaunay triangulation is defined
    -
    4515C as a set of triangles with the following five properties:
    -
    4516C
    -
    4517C 1) The triangle vertices are nodes.
    -
    4518C 2) No triangle contains a node other than its vertices.
    -
    4519C 3) The interiors of the triangles are pairwise disjoint.
    -
    4520C 4) The union of triangles is the convex hull of the set
    -
    4521C of nodes (the smallest convex set which contains
    -
    4522C the nodes).
    -
    4523C 5) The interior of the circumcircle of each triangle
    -
    4524C contains no node.
    -
    4525C
    -
    4526C The first four properties define a triangulation, and the
    -
    4527C last property results in a triangulation which is as close
    -
    4528C as possible to equiangular in a certain sense and which is
    -
    4529C uniquely defined unless four or more nodes lie on a common
    -
    4530C circle. This property makes the triangulation well-suited
    -
    4531C for solving closest point problems and for triangle-based
    -
    4532C interpolation.
    -
    4533C
    -
    4534C The triangulation can be generalized to a constrained
    -
    4535C Delaunay triangulation by a call to Subroutine ADDCST.
    -
    4536C This allows for user-specified boundaries defining a non-
    -
    4537C convex and/or multiply connected region.
    -
    4538C
    -
    4539C The algorithm for constructing the triangulation has
    -
    4540C expected time complexity O(N*log(N)) for most nodal dis-
    -
    4541C tributions. Also, since the algorithm proceeds by adding
    -
    4542C nodes incrementally, the triangulation may be updated with
    -
    4543C the addition (or deletion) of a node very efficiently.
    -
    4544C The adjacency information representing the triangulation
    -
    4545C is stored as a linked list requiring approximately 13N
    -
    4546C storage locations.
    -
    4547C
    -
    4548C
    -
    4549C The following is a list of the software package modules
    -
    4550C which a user may wish to call directly:
    -
    4551C
    -
    4552C ADDCST - Generalizes the Delaunay triangulation to allow
    -
    4553C for user-specified constraints.
    -
    4554C
    -
    4555C ADDNOD - Updates the triangulation by appending or
    -
    4556C inserting a new node.
    -
    4557C
    -
    4558C AREAP - Computes the area bounded by a closed polygonal
    -
    4559C curve such as the boundary of the triangula-
    -
    4560C tion or of a constraint region.
    -
    4561C
    -
    4562C BNODES - Returns an array containing the indexes of the
    -
    4563C boundary nodes in counterclockwise order.
    -
    4564C Counts of boundary nodes, triangles, and arcs
    -
    4565C are also returned.
    -
    4566C
    -
    4567C CIRCUM - Computes the area, circumcenter, circumradius,
    -
    4568C and, optionally, the aspect ratio of a trian-
    -
    4569C gle defined by user-specified vertices.
    -
    4570C
    -
    4571C DELARC - Deletes a boundary arc from the triangulation.
    -
    4572C
    -
    4573C DELNOD - Updates the triangulation with the deletion of a
    -
    4574C node.
    -
    4575C
    -
    4576C EDGE - Forces a pair of nodes to be connected by an arc
    -
    4577C in the triangulation.
    -
    4578C
    -
    4579C GETNP - Determines the ordered sequence of L closest
    -
    4580C nodes to a given node, along with the associ-
    -
    4581C ated distances. The distance between nodes is
    -
    4582C taken to be the length of the shortest connec-
    -
    4583C ting path which intersects no constraint
    -
    4584C region.
    -
    4585C
    -
    4586C INTSEC - Determines whether or not an arbitrary pair of
    -
    4587C line segments share a common point.
    -
    4588C
    -
    4589C JRAND - Generates a uniformly distributed pseudo-random
    -
    4590C integer.
    -
    4591C
    -
    4592C LEFT - Locates a point relative to a line.
    -
    4593C
    -
    4594C NEARND - Returns the index of the nearest node to an
    -
    4595C arbitrary point, along with its squared
    -
    4596C distance.
    -
    4597C
    -
    4598C STORE - Forces a value to be stored in main memory so
    -
    4599C that the precision of floating point numbers
    -
    4600C in memory locations rather than registers is
    -
    4601C computed.
    -
    4602C
    -
    4603C TRLIST - Converts the triangulation data structure to a
    -
    4604C triangle list more suitable for use in a fin-
    -
    4605C ite element code.
    -
    4606C
    -
    4607C TRLPRT - Prints the triangle list created by Subroutine
    -
    4608C TRLIST.
    -
    4609C
    -
    4610C TRMESH - Creates a Delaunay triangulation of a set of
    -
    4611C nodes.
    -
    4612C
    -
    4613C TRMSHR - Creates a Delaunay triangulation (more effici-
    -
    4614C ently than TRMESH) of a set of nodes lying at
    -
    4615C the vertices of a (possibly skewed) rectangu-
    -
    4616C lar grid.
    -
    4617C
    -
    4618C TRPLOT - Creates a level-2 Encapsulated Postscript (EPS)
    -
    4619C file containing a triangulation plot.
    -
    4620C
    -
    4621C TRPRNT - Prints the triangulation data structure and,
    -
    4622C optionally, the nodal coordinates.
    -
    4623C
    -
    4624C
    -
    4625C On input:
    -
    4626C
    -
    4627C N = Number of nodes in the triangulation. N .GE. 3.
    -
    4628C
    -
    4629C X,Y = Arrays of length N containing the Cartesian
    -
    4630C coordinates of the nodes. (X(K),Y(K)) is re-
    -
    4631C ferred to as node K, and K is referred to as
    -
    4632C a nodal index. The first three nodes must not
    -
    4633C be collinear.
    -
    4634C
    -
    4635C The above parameters are not altered by this routine.
    -
    4636C
    -
    4637C LIST,LPTR = Arrays of length at least 6N-12.
    -
    4638C
    -
    4639C LEND = Array of length at least N.
    -
    4640C
    -
    4641C NEAR,NEXT,DIST = Work space arrays of length at
    -
    4642C least N. The space is used to
    -
    4643C efficiently determine the nearest
    -
    4644C triangulation node to each un-
    -
    4645C processed node for use by ADDNOD.
    -
    4646C
    -
    4647C On output:
    -
    4648C
    -
    4649C LIST = Set of nodal indexes which, along with LPTR,
    -
    4650C LEND, and LNEW, define the triangulation as a
    -
    4651C set of N adjacency lists -- counterclockwise-
    -
    4652C ordered sequences of neighboring nodes such
    -
    4653C that the first and last neighbors of a bound-
    -
    4654C ary node are boundary nodes (the first neigh-
    -
    4655C bor of an interior node is arbitrary). In
    -
    4656C order to distinguish between interior and
    -
    4657C boundary nodes, the last neighbor of each
    -
    4658C boundary node is represented by the negative
    -
    4659C of its index.
    -
    4660C
    -
    4661C LPTR = Set of pointers (LIST indexes) in one-to-one
    -
    4662C correspondence with the elements of LIST.
    -
    4663C LIST(LPTR(I)) indexes the node which follows
    -
    4664C LIST(I) in cyclical counterclockwise order
    -
    4665C (the first neighbor follows the last neigh-
    -
    4666C bor).
    -
    4667C
    -
    4668C LEND = Set of pointers to adjacency lists. LEND(K)
    -
    4669C points to the last neighbor of node K for
    -
    4670C K = 1,...,N. Thus, LIST(LEND(K)) < 0 if and
    -
    4671C only if K is a boundary node.
    -
    4672C
    -
    4673C LNEW = Pointer to the first empty location in LIST
    -
    4674C and LPTR (list length plus one). LIST, LPTR,
    -
    4675C LEND, and LNEW are not altered if IER < 0,
    -
    4676C and are incomplete if IER > 0.
    -
    4677C
    -
    4678C NEAR,NEXT,DIST = Garbage.
    -
    4679C
    -
    4680C IER = Error indicator:
    -
    4681C IER = 0 if no errors were encountered.
    -
    4682C IER = -1 if N < 3 on input.
    -
    4683C IER = -2 if the first three nodes are
    -
    4684C collinear.
    -
    4685C IER = -4 if an error flag was returned by a
    -
    4686C call to SWAP in ADDNOD. This is an
    -
    4687C internal error and should be reported
    -
    4688C to the programmer.
    -
    4689C IER = L if nodes L and M coincide for some
    -
    4690C M > L. The linked list represents
    -
    4691C a triangulation of nodes 1 to M-1
    -
    4692C in this case.
    -
    4693C
    -
    4694C Modules required by TRMESH: ADDNOD, BDYADD, INSERT,
    -
    4695C INTADD, JRAND, LEFT,
    -
    4696C LSTPTR, STORE, SWAP,
    -
    4697C SWPTST, TRFIND
    -
    4698C
    -
    4699C Intrinsic function called by TRMESH: ABS
    -
    4700C
    -
    4701C***********************************************************
    -
    4702C
    -
    4703 LOGICAL LEFT
    -
    4704 REAL STORE
    -
    4705 INTEGER I, I0, J, K, KM1, LCC(1), LP, LPL, NCC, NEXTI,
    -
    4706 . NN
    -
    4707 REAL D, D1, D2, D3, EPS, SWTOL
    -
    4708 COMMON/SWPCOM/SWTOL
    -
    4709C
    -
    4710C Local parameters:
    -
    4711C
    -
    4712C D = Squared distance from node K to node I
    -
    4713C D1,D2,D3 = Squared distances from node K to nodes 1, 2,
    -
    4714C and 3, respectively
    -
    4715C EPS = Half the machine precision
    -
    4716C I,J = Nodal indexes
    -
    4717C I0 = Index of the node preceding I in a sequence of
    -
    4718C unprocessed nodes: I = NEXT(I0)
    -
    4719C K = Index of node to be added and DO-loop index:
    -
    4720C K > 3
    -
    4721C KM1 = K-1
    -
    4722C LCC(1) = Dummy array
    -
    4723C LP = LIST index (pointer) of a neighbor of K
    -
    4724C LPL = Pointer to the last neighbor of K
    -
    4725C NCC = Number of constraint curves
    -
    4726C NEXTI = NEXT(I)
    -
    4727C NN = Local copy of N
    -
    4728C SWTOL = Tolerance for function SWPTST
    -
    4729C
    -
    4730 nn = n
    -
    4731 IF (nn .LT. 3) THEN
    -
    4732 ier = -1
    -
    4733 RETURN
    -
    4734 ENDIF
    -
    4735C
    -
    4736C Compute a tolerance for function SWPTST: SWTOL = 10*
    -
    4737C (machine precision)
    -
    4738C
    -
    4739 eps = 1.
    -
    4740 1 eps = eps/2.
    -
    4741 swtol = store(eps + 1.)
    -
    4742 IF (swtol .GT. 1.) GO TO 1
    -
    4743 swtol = eps*20.
    -
    4744C
    -
    4745C Store the first triangle in the linked list.
    -
    4746C
    -
    4747 IF ( .NOT. left(x(1),y(1),x(2),y(2),x(3),y(3)) ) THEN
    -
    4748C
    -
    4749C The initial triangle is (3,2,1) = (2,1,3) = (1,3,2).
    -
    4750C
    -
    4751 list(1) = 3
    -
    4752 lptr(1) = 2
    -
    4753 list(2) = -2
    -
    4754 lptr(2) = 1
    -
    4755 lend(1) = 2
    -
    4756C
    -
    4757 list(3) = 1
    -
    4758 lptr(3) = 4
    -
    4759 list(4) = -3
    -
    4760 lptr(4) = 3
    -
    4761 lend(2) = 4
    -
    4762C
    -
    4763 list(5) = 2
    -
    4764 lptr(5) = 6
    -
    4765 list(6) = -1
    -
    4766 lptr(6) = 5
    -
    4767 lend(3) = 6
    -
    4768C
    -
    4769 ELSEIF ( .NOT. left(x(2),y(2),x(1),y(1),x(3),y(3)) )
    -
    4770 . THEN
    -
    4771C
    -
    4772C The initial triangle is (1,2,3).
    -
    4773C
    -
    4774 list(1) = 2
    -
    4775 lptr(1) = 2
    -
    4776 list(2) = -3
    -
    4777 lptr(2) = 1
    -
    4778 lend(1) = 2
    -
    4779C
    -
    4780 list(3) = 3
    -
    4781 lptr(3) = 4
    -
    4782 list(4) = -1
    -
    4783 lptr(4) = 3
    -
    4784 lend(2) = 4
    -
    4785C
    -
    4786 list(5) = 1
    -
    4787 lptr(5) = 6
    -
    4788 list(6) = -2
    -
    4789 lptr(6) = 5
    -
    4790 lend(3) = 6
    -
    4791C
    -
    4792 ELSE
    -
    4793C
    -
    4794C The first three nodes are collinear.
    -
    4795C
    -
    4796 ier = -2
    -
    4797 RETURN
    -
    4798 ENDIF
    -
    4799C
    -
    4800C Initialize LNEW and test for N = 3.
    -
    4801C
    -
    4802 lnew = 7
    -
    4803 IF (nn .EQ. 3) THEN
    -
    4804 ier = 0
    -
    4805 RETURN
    -
    4806 ENDIF
    -
    4807C
    -
    4808C A nearest-node data structure (NEAR, NEXT, and DIST) is
    -
    4809C used to obtain an expected-time (N*log(N)) incremental
    -
    4810C algorithm by enabling constant search time for locating
    -
    4811C each new node in the triangulation.
    -
    4812C
    -
    4813C For each unprocessed node K, NEAR(K) is the index of the
    -
    4814C triangulation node closest to K (used as the starting
    -
    4815C point for the search in Subroutine TRFIND) and DIST(K)
    -
    4816C is an increasing function of the distance between nodes
    -
    4817C K and NEAR(K).
    -
    4818C
    -
    4819C Since it is necessary to efficiently find the subset of
    -
    4820C unprocessed nodes associated with each triangulation
    -
    4821C node J (those that have J as their NEAR entries), the
    -
    4822C subsets are stored in NEAR and NEXT as follows: for
    -
    4823C each node J in the triangulation, I = NEAR(J) is the
    -
    4824C first unprocessed node in J's set (with I = 0 if the
    -
    4825C set is empty), L = NEXT(I) (if I > 0) is the second,
    -
    4826C NEXT(L) (if L > 0) is the third, etc. The nodes in each
    -
    4827C set are initially ordered by increasing indexes (which
    -
    4828C maximizes efficiency) but that ordering is not main-
    -
    4829C tained as the data structure is updated.
    -
    4830C
    -
    4831C Initialize the data structure for the single triangle.
    -
    4832C
    -
    4833 near(1) = 0
    -
    4834 near(2) = 0
    -
    4835 near(3) = 0
    -
    4836 DO 2 k = nn,4,-1
    -
    4837 d1 = (x(k)-x(1))**2 + (y(k)-y(1))**2
    -
    4838 d2 = (x(k)-x(2))**2 + (y(k)-y(2))**2
    -
    4839 d3 = (x(k)-x(3))**2 + (y(k)-y(3))**2
    -
    4840 IF (d1 .LE. d2 .AND. d1 .LE. d3) THEN
    -
    4841 near(k) = 1
    -
    4842 dist(k) = d1
    -
    4843 next(k) = near(1)
    -
    4844 near(1) = k
    -
    4845 ELSEIF (d2 .LE. d1 .AND. d2 .LE. d3) THEN
    -
    4846 near(k) = 2
    -
    4847 dist(k) = d2
    -
    4848 next(k) = near(2)
    -
    4849 near(2) = k
    -
    4850 ELSE
    -
    4851 near(k) = 3
    -
    4852 dist(k) = d3
    -
    4853 next(k) = near(3)
    -
    4854 near(3) = k
    -
    4855 ENDIF
    -
    4856 2 CONTINUE
    -
    4857C
    -
    4858C Add the remaining nodes. Parameters for ADDNOD are as
    -
    4859C follows:
    -
    4860C
    -
    4861C K = Index of the node to be added.
    -
    4862C NEAR(K) = Index of the starting node for the search in
    -
    4863C TRFIND.
    -
    4864C NCC = Number of constraint curves.
    -
    4865C LCC = Dummy array (since NCC = 0).
    -
    4866C KM1 = Number of nodes in the triangulation.
    -
    4867C
    -
    4868 ncc = 0
    -
    4869 DO 7 k = 4,nn
    -
    4870 km1 = k-1
    -
    4871 CALL addnod (k,x(k),y(k),near(k),ncc, lcc,km1,x,y,
    -
    4872 . list,lptr,lend,lnew, ier)
    -
    4873 IF (ier .NE. 0) RETURN
    -
    4874C
    -
    4875C Remove K from the set of unprocessed nodes associated
    -
    4876C with NEAR(K).
    -
    4877C
    -
    4878 i = near(k)
    -
    4879 IF (near(i) .EQ. k) THEN
    -
    4880 near(i) = next(k)
    -
    4881 ELSE
    -
    4882 i = near(i)
    -
    4883 3 i0 = i
    -
    4884 i = next(i0)
    -
    4885 IF (i .NE. k) GO TO 3
    -
    4886 next(i0) = next(k)
    -
    4887 ENDIF
    -
    4888 near(k) = 0
    -
    4889C
    -
    4890C Loop on neighbors J of node K.
    -
    4891C
    -
    4892 lpl = lend(k)
    -
    4893 lp = lpl
    -
    4894 4 lp = lptr(lp)
    -
    4895 j = abs(list(lp))
    -
    4896C
    -
    4897C Loop on elements I in the sequence of unprocessed nodes
    -
    4898C associated with J: K is a candidate for replacing J
    -
    4899C as the nearest triangulation node to I. The next value
    -
    4900C of I in the sequence, NEXT(I), must be saved before I
    -
    4901C is moved because it is altered by adding I to K's set.
    -
    4902C
    -
    4903 i = near(j)
    -
    4904 5 IF (i .EQ. 0) GO TO 6
    -
    4905 nexti = next(i)
    -
    4906C
    -
    4907C Test for the distance from I to K less than the distance
    -
    4908C from I to J.
    -
    4909C
    -
    4910 d = (x(k)-x(i))**2 + (y(k)-y(i))**2
    -
    4911 IF (d .LT. dist(i)) THEN
    -
    4912C
    -
    4913C Replace J by K as the nearest triangulation node to I:
    -
    4914C update NEAR(I) and DIST(I), and remove I from J's set
    -
    4915C of unprocessed nodes and add it to K's set.
    -
    4916C
    -
    4917 near(i) = k
    -
    4918 dist(i) = d
    -
    4919 IF (i .EQ. near(j)) THEN
    -
    4920 near(j) = nexti
    -
    4921 ELSE
    -
    4922 next(i0) = nexti
    -
    4923 ENDIF
    -
    4924 next(i) = near(k)
    -
    4925 near(k) = i
    -
    4926 ELSE
    -
    4927 i0 = i
    -
    4928 ENDIF
    -
    4929C
    -
    4930C Bottom of loop on I.
    -
    4931C
    -
    4932 i = nexti
    -
    4933 GO TO 5
    -
    4934C
    -
    4935C Bottom of loop on neighbors J.
    -
    4936C
    -
    4937 6 IF (lp .NE. lpl) GO TO 4
    -
    4938 7 CONTINUE
    -
    4939 RETURN
    -
    4940 END
    -
    4941 SUBROUTINE trmshr (N,NX,X,Y, NIT, LIST,LPTR,LEND,LNEW,
    -
    4942 . IER)
    -
    4943 INTEGER N, NX, NIT, LIST(*), LPTR(*), LEND(N), LNEW,
    -
    4944 . IER
    -
    4945 REAL X(N), Y(N)
    -
    4946C
    -
    4947C***********************************************************
    -
    4948C
    -
    4949C From TRIPACK
    -
    4950C Robert J. Renka
    -
    4951C Dept. of Computer Science
    -
    4952C Univ. of North Texas
    -
    4953C renka@cs.unt.edu
    -
    4954C 06/27/98
    -
    4955C
    -
    4956C This subroutine creates a Delaunay triangulation of a
    -
    4957C set of N nodes in the plane, where the nodes are the vert-
    -
    4958C ices of an NX by NY skewed rectangular grid with the
    -
    4959C natural ordering. Thus, N = NX*NY, and the nodes are
    -
    4960C ordered from left to right beginning at the top row so
    -
    4961C that adjacent nodes have indexes which differ by 1 in the
    -
    4962C x-direction and by NX in the y-direction. A skewed rec-
    -
    4963C tangular grid is defined as one in which each grid cell is
    -
    4964C a strictly convex quadrilateral (and is thus the convex
    -
    4965C hull of its four vertices). Equivalently, any transfor-
    -
    4966C mation from a rectangle to a grid cell which is bilinear
    -
    4967C in both components has an invertible Jacobian.
    -
    4968C
    -
    4969C If the nodes are not distributed and ordered as defined
    -
    4970C above, Subroutine TRMESH must be called in place of this
    -
    4971C routine. Refer to Subroutine ADDCST for the treatment of
    -
    4972C constraints.
    -
    4973C
    -
    4974C The first phase of the algorithm consists of construc-
    -
    4975C ting a triangulation by choosing a diagonal arc in each
    -
    4976C grid cell. If NIT = 0, all diagonals connect lower left
    -
    4977C to upper right corners and no error checking or additional
    -
    4978C computation is performed. Otherwise, each diagonal arc is
    -
    4979C chosen to be locally optimal, and boundary arcs are added
    -
    4980C where necessary in order to cover the convex hull of the
    -
    4981C nodes. (This is the first iteration.) If NIT > 1 and no
    -
    4982C error was detected, the triangulation is then optimized by
    -
    4983C a sequence of up to NIT-1 iterations in which interior
    -
    4984C arcs of the triangulation are tested and swapped if appro-
    -
    4985C priate. The algorithm terminates when an iteration
    -
    4986C results in no swaps and/or when the allowable number of
    -
    4987C iterations has been performed. NIT = 0 is sufficient to
    -
    4988C produce a Delaunay triangulation if the original grid is
    -
    4989C actually rectangular, and NIT = 1 is sufficient if it is
    -
    4990C close to rectangular. Note, however, that the ordering
    -
    4991C and distribution of nodes is not checked for validity in
    -
    4992C the case NIT = 0, and the triangulation will not be valid
    -
    4993C unless the rectangular grid covers the convex hull of the
    -
    4994C nodes.
    -
    4995C
    -
    4996C
    -
    4997C On input:
    -
    4998C
    -
    4999C N = Number of nodes in the grid. N = NX*NY for some
    -
    5000C NY .GE. 2.
    -
    5001C
    -
    5002C NX = Number of grid points in the x-direction. NX
    -
    5003C .GE. 2.
    -
    5004C
    -
    5005C X,Y = Arrays of length N containing coordinates of
    -
    5006C the nodes with the ordering and distribution
    -
    5007C defined in the header comments above.
    -
    5008C (X(K),Y(K)) is referred to as node K.
    -
    5009C
    -
    5010C The above parameters are not altered by this routine.
    -
    5011C
    -
    5012C NIT = Nonnegative integer specifying the maximum
    -
    5013C number of iterations to be employed. Refer
    -
    5014C to the header comments above.
    -
    5015C
    -
    5016C LIST,LPTR = Arrays of length at least 6N-12.
    -
    5017C
    -
    5018C LEND = Array of length at least N.
    -
    5019C
    -
    5020C On output:
    -
    5021C
    -
    5022C NIT = Number of iterations employed.
    -
    5023C
    -
    5024C LIST,LPTR,LEND,LNEW = Data structure defining the
    -
    5025C triangulation. Refer to Sub-
    -
    5026C routine TRMESH.
    -
    5027C
    -
    5028C IER = Error indicator:
    -
    5029C IER = 0 if no errors were encountered.
    -
    5030C IER = K if the grid element with upper left
    -
    5031C corner at node K is not a strictly
    -
    5032C convex quadrilateral. The algorithm
    -
    5033C is terminated when the first such
    -
    5034C occurrence is detected. Note that
    -
    5035C this test is not performed if NIT = 0
    -
    5036C on input.
    -
    5037C IER = -1 if N, NX, or NIT is outside its valid
    -
    5038C range on input.
    -
    5039C IER = -2 if NIT > 1 on input, and the optimi-
    -
    5040C zation loop failed to converge within
    -
    5041C the allowable number of iterations.
    -
    5042C The triangulation is valid but not
    -
    5043C optimal in this case.
    -
    5044C
    -
    5045C Modules required by TRMSHR: INSERT, LEFT, LSTPTR, NBCNT,
    -
    5046C STORE, SWAP, SWPTST
    -
    5047C
    -
    5048C Intrinsic function called by TRMSHR: ABS
    -
    5049C
    -
    5050C***********************************************************
    -
    5051C
    -
    5052 INTEGER LSTPTR, NBCNT
    -
    5053 LOGICAL LEFT, SWPTST
    -
    5054 REAL STORE
    -
    5055 INTEGER I, ITER, J, K, KP1, LP, LPF, LPK, LPL, LPP,
    -
    5056 . M1, M2, M3, M4, MAXIT, N0, N1, N2, N3, N4, NI,
    -
    5057 . NJ, NM1, NN, NNB
    -
    5058 LOGICAL TST
    -
    5059 REAL EPS, SWTOL
    -
    5060 COMMON/SWPCOM/SWTOL
    -
    5061C
    -
    5062C Store local variables and test for errors in input
    -
    5063C parameters.
    -
    5064C
    -
    5065 NI = nx
    -
    5066 nj = n/ni
    -
    5067 nn = ni*nj
    -
    5068 maxit = nit
    -
    5069 nit = 0
    -
    5070 IF (n .NE. nn .OR. nj .LT. 2 .OR. ni .LT. 2 .OR.
    -
    5071 . maxit .LT. 0) THEN
    -
    5072 ier = -1
    -
    5073 RETURN
    -
    5074 ENDIF
    -
    5075 ier = 0
    -
    5076C
    -
    5077C Compute a tolerance for function SWPTST: SWTOL = 10*
    -
    5078C (machine precision)
    -
    5079C
    -
    5080 eps = 1.
    -
    5081 1 eps = eps/2.
    -
    5082 swtol = store(eps + 1.)
    -
    5083 IF (swtol .GT. 1.) GO TO 1
    -
    5084 swtol = eps*20.
    -
    5085C
    -
    5086C Loop on grid points (I,J) corresponding to nodes K =
    -
    5087C (J-1)*NI + I. TST = TRUE iff diagonals are to be
    -
    5088C chosen by the swap test. M1, M2, M3, and M4 are the
    -
    5089C slopes (-1, 0, or 1) of the diagonals in quadrants 1
    -
    5090C to 4 (counterclockwise beginning with the upper right)
    -
    5091C for a coordinate system with origin at node K.
    -
    5092C
    -
    5093 tst = maxit .GT. 0
    -
    5094 m1 = 0
    -
    5095 m4 = 0
    -
    5096 lp = 0
    -
    5097 kp1 = 1
    -
    5098 DO 6 j = 1,nj
    -
    5099 DO 5 i = 1,ni
    -
    5100 m2 = m1
    -
    5101 m3 = m4
    -
    5102 k = kp1
    -
    5103 kp1 = k + 1
    -
    5104 lpf = lp + 1
    -
    5105 IF (j .EQ. nj .AND. i .NE. ni) GO TO 2
    -
    5106 IF (i .NE. 1) THEN
    -
    5107 IF (j .NE. 1) THEN
    -
    5108C
    -
    5109C K is not in the top row, leftmost column, or bottom row
    -
    5110C (unless K is the lower right corner). Take the first
    -
    5111C neighbor to be the node above K.
    -
    5112C
    -
    5113 lp = lp + 1
    -
    5114 list(lp) = k - ni
    -
    5115 lptr(lp) = lp + 1
    -
    5116 IF (m2 .LE. 0) THEN
    -
    5117 lp = lp + 1
    -
    5118 list(lp) = k - 1 - ni
    -
    5119 lptr(lp) = lp + 1
    -
    5120 ENDIF
    -
    5121 ENDIF
    -
    5122C
    -
    5123C K is not in the leftmost column. The next (or first)
    -
    5124C neighbor is to the left of K.
    -
    5125C
    -
    5126 lp = lp + 1
    -
    5127 list(lp) = k - 1
    -
    5128 lptr(lp) = lp + 1
    -
    5129 IF (j .EQ. nj) GO TO 3
    -
    5130 IF (m3 .GE. 0) THEN
    -
    5131 lp = lp + 1
    -
    5132 list(lp) = k - 1 + ni
    -
    5133 lptr(lp) = lp + 1
    -
    5134 ENDIF
    -
    5135 ENDIF
    -
    5136C
    -
    5137C K is not in the bottom row. The next (or first)
    -
    5138C neighbor is below K.
    -
    5139C
    -
    5140 lp = lp + 1
    -
    5141 list(lp) = k + ni
    -
    5142 lptr(lp) = lp + 1
    -
    5143C
    -
    5144C Test for a negative diagonal in quadrant 4 unless K is
    -
    5145C in the rightmost column. The quadrilateral associated
    -
    5146C with the quadrant is tested for strict convexity un-
    -
    5147C less NIT = 0 on input.
    -
    5148C
    -
    5149 IF (i .EQ. ni) GO TO 3
    -
    5150 m4 = 1
    -
    5151 IF (.NOT. tst) GO TO 2
    -
    5152 IF ( left(x(kp1),y(kp1),x(k+ni),y(k+ni),x(k),y(k))
    -
    5153 . .OR. left(x(k),y(k),x(kp1+ni),y(kp1+ni),
    -
    5154 . x(k+ni),y(k+ni))
    -
    5155 . .OR. left(x(k+ni),y(k+ni),x(kp1),y(kp1),
    -
    5156 . x(kp1+ni),y(kp1+ni))
    -
    5157 . .OR. left(x(kp1+ni),y(kp1+ni),x(k),y(k),
    -
    5158 . x(kp1),y(kp1)) ) GO TO 12
    -
    5159 IF ( swptst(kp1,k+ni,k,kp1+ni,x,y) ) GO TO 2
    -
    5160 m4 = -1
    -
    5161 lp = lp + 1
    -
    5162 list(lp) = kp1 + ni
    -
    5163 lptr(lp) = lp + 1
    -
    5164C
    -
    5165C The next (or first) neighbor is to the right of K.
    -
    5166C
    -
    5167 2 lp = lp + 1
    -
    5168 list(lp) = kp1
    -
    5169 lptr(lp) = lp + 1
    -
    5170C
    -
    5171C Test for a positive diagonal in quadrant 1 (the neighbor
    -
    5172C of K-NI which follows K is not K+1) unless K is in the
    -
    5173C top row.
    -
    5174C
    -
    5175 IF (j .EQ. 1) GO TO 3
    -
    5176 IF (tst) THEN
    -
    5177 m1 = -1
    -
    5178 lpk = lstptr(lend(k-ni),k,list,lptr)
    -
    5179 lpk = lptr(lpk)
    -
    5180 IF (list(lpk) .NE. kp1) THEN
    -
    5181 m1 = 1
    -
    5182 lp = lp + 1
    -
    5183 list(lp) = kp1 - ni
    -
    5184 lptr(lp) = lp + 1
    -
    5185 ENDIF
    -
    5186 ENDIF
    -
    5187C
    -
    5188C If K is in the leftmost column (and not the top row) or
    -
    5189C in the bottom row (and not the rightmost column), then
    -
    5190C the next neighbor is the node above K.
    -
    5191C
    -
    5192 IF (i .NE. 1 .AND. j .NE. nj) GO TO 4
    -
    5193 lp = lp + 1
    -
    5194 list(lp) = k - ni
    -
    5195 lptr(lp) = lp + 1
    -
    5196 IF (i .EQ. 1) GO TO 3
    -
    5197C
    -
    5198C K is on the bottom row (and not the leftmost or right-
    -
    5199C most column).
    -
    5200C
    -
    5201 IF (m2 .LE. 0) THEN
    -
    5202 lp = lp + 1
    -
    5203 list(lp) = k - 1 - ni
    -
    5204 lptr(lp) = lp + 1
    -
    5205 ENDIF
    -
    5206 lp = lp + 1
    -
    5207 list(lp) = k - 1
    -
    5208 lptr(lp) = lp + 1
    -
    5209C
    -
    5210C K is a boundary node.
    -
    5211C
    -
    5212 3 list(lp) = -list(lp)
    -
    5213C
    -
    5214C Bottom of loop. Store LEND and correct LPTR(LP).
    -
    5215C LPF and LP point to the first and last neighbors
    -
    5216C of K.
    -
    5217C
    -
    5218 4 lend(k) = lp
    -
    5219 lptr(lp) = lpf
    -
    5220 5 CONTINUE
    -
    5221 6 CONTINUE
    -
    5222C
    -
    5223C Store LNEW, and terminate the algorithm if NIT = 0 on
    -
    5224C input.
    -
    5225C
    -
    5226 lnew = lp + 1
    -
    5227 IF (maxit .EQ. 0) RETURN
    -
    5228C
    -
    5229C Add boundary arcs where necessary in order to cover the
    -
    5230C convex hull of the nodes. N1, N2, and N3 are consecu-
    -
    5231C tive boundary nodes in counterclockwise order, and N0
    -
    5232C is the starting point for each loop around the boundary.
    -
    5233C
    -
    5234 n0 = 1
    -
    5235 n1 = n0
    -
    5236 n2 = ni + 1
    -
    5237C
    -
    5238C TST is set to TRUE if an arc is added. The boundary
    -
    5239C loop is repeated until a traversal results in no
    -
    5240C added arcs.
    -
    5241C
    -
    5242 7 tst = .false.
    -
    5243C
    -
    5244C Top of boundary loop. Set N3 to the first neighbor of
    -
    5245C N2, and test for N3 LEFT N1 -> N2.
    -
    5246C
    -
    5247 8 lpl = lend(n2)
    -
    5248 lp = lptr(lpl)
    -
    5249 n3 = list(lp)
    -
    5250 IF ( left(x(n1),y(n1),x(n2),y(n2),x(n3),y(n3)) )
    -
    5251 . n1 = n2
    -
    5252 IF (n1 .NE. n2) THEN
    -
    5253C
    -
    5254C Add the boundary arc N1-N3. If N0 = N2, the starting
    -
    5255C point is changed to N3, since N2 will be removed from
    -
    5256C the boundary. N3 is inserted as the first neighbor of
    -
    5257C N1, N2 is changed to an interior node, and N1 is
    -
    5258C inserted as the last neighbor of N3.
    -
    5259C
    -
    5260 tst = .true.
    -
    5261 IF (n2 .EQ. n0) n0 = n3
    -
    5262 lp = lend(n1)
    -
    5263 CALL insert (n3,lp, list,lptr,lnew )
    -
    5264 list(lpl) = -list(lpl)
    -
    5265 lp = lend(n3)
    -
    5266 list(lp) = n2
    -
    5267 CALL insert (-n1,lp, list,lptr,lnew )
    -
    5268 lend(n3) = lnew - 1
    -
    5269 ENDIF
    -
    5270C
    -
    5271C Bottom of loops. Test for termination.
    -
    5272C
    -
    5273 n2 = n3
    -
    5274 IF (n1 .NE. n0) GO TO 8
    -
    5275 IF (tst) GO TO 7
    -
    5276C
    -
    5277C Terminate the algorithm if NIT = 1 on input.
    -
    5278C
    -
    5279 nit = 1
    -
    5280 IF (maxit .EQ. 1) RETURN
    -
    5281C
    -
    5282C Optimize the triangulation by applying the swap test and
    -
    5283C appropriate swaps to the interior arcs. The loop is
    -
    5284C repeated until no swaps are performed or MAXIT itera-
    -
    5285C tions have been applied. ITER is the current iteration,
    -
    5286C and TST is set to TRUE if a swap occurs.
    -
    5287C
    -
    5288 iter = 1
    -
    5289 nm1 = nn - 1
    -
    5290 9 iter = iter + 1
    -
    5291 tst = .false.
    -
    5292C
    -
    5293C Loop on interior arcs N1-N2, where N2 > N1 and
    -
    5294C (N1,N2,N3) and (N2,N1,N4) are adjacent triangles.
    -
    5295C
    -
    5296C Top of loop on nodes N1.
    -
    5297C
    -
    5298 DO 11 n1 = 1,nm1
    -
    5299 lpl = lend(n1)
    -
    5300 n4 = list(lpl)
    -
    5301 lpf = lptr(lpl)
    -
    5302 n2 = list(lpf)
    -
    5303 lp = lptr(lpf)
    -
    5304 n3 = list(lp)
    -
    5305 nnb = nbcnt(lpl,lptr)
    -
    5306C
    -
    5307C Top of loop on neighbors N2 of N1. NNB is the number of
    -
    5308C neighbors of N1.
    -
    5309C
    -
    5310 DO 10 i = 1,nnb
    -
    5311C
    -
    5312C Bypass the swap test if N1 is a boundary node and N2 is
    -
    5313C the first neighbor (N4 < 0), N2 < N1, or N1-N2 is a
    -
    5314C diagonal arc (already locally optimal) when ITER = 2.
    -
    5315C
    -
    5316 IF ( n4 .GT. 0 .AND. n2 .GT. n1 .AND.
    -
    5317 . (iter .NE. 2 .OR. abs(n1+ni-n2) .NE. 1) )
    -
    5318 . THEN
    -
    5319 IF (swptst(n3,n4,n1,n2,x,y) ) THEN
    -
    5320C
    -
    5321C Swap diagonal N1-N2 for N3-N4, set TST to TRUE, and set
    -
    5322C N2 to N4 (the neighbor preceding N3).
    -
    5323C
    -
    5324 CALL swap (n3,n4,n1,n2, list,lptr,lend, lpp)
    -
    5325 IF (lpp .NE. 0) THEN
    -
    5326 tst = .true.
    -
    5327 n2 = n4
    -
    5328 ENDIF
    -
    5329 ENDIF
    -
    5330 ENDIF
    -
    5331C
    -
    5332C Bottom of neighbor loop.
    -
    5333C
    -
    5334 IF (list(lpl) .EQ. -n3) GO TO 11
    -
    5335 n4 = n2
    -
    5336 n2 = n3
    -
    5337 lp = lstptr(lpl,n2,list,lptr)
    -
    5338 lp = lptr(lp)
    -
    5339 n3 = abs(list(lp))
    -
    5340 10 CONTINUE
    -
    5341 11 CONTINUE
    -
    5342C
    -
    5343C Test for termination.
    -
    5344C
    -
    5345 IF (tst .AND. iter .LT. maxit) GO TO 9
    -
    5346 nit = iter
    -
    5347 IF (tst) ier = -2
    -
    5348 RETURN
    -
    5349C
    -
    5350C Invalid grid cell encountered.
    -
    5351C
    -
    5352 12 ier = k
    -
    5353 RETURN
    -
    5354 END
    -
    5355 SUBROUTINE trplot (LUN,PLTSIZ,WX1,WX2,WY1,WY2,NCC,LCC,
    -
    5356 . N,X,Y,LIST,LPTR,LEND,TITLE,
    -
    5357 . NUMBR, IER)
    -
    5358 CHARACTER*(*) TITLE
    -
    5359 INTEGER LUN, NCC, LCC(*), N, LIST(*), LPTR(*),
    -
    5360 . LEND(N), IER
    -
    5361 LOGICAL NUMBR
    -
    5362 REAL PLTSIZ, WX1, WX2, WY1, WY2, X(N), Y(N)
    -
    5363C
    -
    5364C***********************************************************
    -
    5365C
    -
    5366C From TRIPACK
    -
    5367C Robert J. Renka
    -
    5368C Dept. of Computer Science
    -
    5369C Univ. of North Texas
    -
    5370C renka@cs.unt.edu
    -
    5371C 07/15/98
    -
    5372C
    -
    5373C This subroutine creates a level-2 Encapsulated Post-
    -
    5374C script (EPS) file containing a triangulation plot.
    -
    5375C
    -
    5376C
    -
    5377C On input:
    -
    5378C
    -
    5379C LUN = Logical unit number in the range 0 to 99.
    -
    5380C The unit should be opened with an appropriate
    -
    5381C file name before the call to this routine.
    -
    5382C
    -
    5383C PLTSIZ = Plot size in inches. The window is mapped,
    -
    5384C with aspect ratio preserved, to a rectangu-
    -
    5385C lar viewport with maximum side-length equal
    -
    5386C to .88*PLTSIZ (leaving room for labels out-
    -
    5387C side the viewport). The viewport is
    -
    5388C centered on the 8.5 by 11 inch page, and
    -
    5389C its boundary is drawn. 1.0 .LE. PLTSIZ
    -
    5390C .LE. 8.5.
    -
    5391C
    -
    5392C WX1,WX2,WY1,WY2 = Parameters defining a rectangular
    -
    5393C window against which the triangu-
    -
    5394C lation is clipped. (Only the
    -
    5395C portion of the triangulation that
    -
    5396C lies in the window is drawn.)
    -
    5397C (WX1,WY1) and (WX2,WY2) are the
    -
    5398C lower left and upper right cor-
    -
    5399C ners, respectively. WX1 < WX2 and
    -
    5400C WY1 < WY2.
    -
    5401C
    -
    5402C NCC = Number of constraint curves. Refer to Subrou-
    -
    5403C tine ADDCST. NCC .GE. 0.
    -
    5404C
    -
    5405C LCC = Array of length NCC (or dummy parameter if
    -
    5406C NCC = 0) containing the index of the first
    -
    5407C node of constraint I in LCC(I). For I = 1 to
    -
    5408C NCC, LCC(I+1)-LCC(I) .GE. 3, where LCC(NCC+1)
    -
    5409C = N+1.
    -
    5410C
    -
    5411C N = Number of nodes in the triangulation. N .GE. 3.
    -
    5412C
    -
    5413C X,Y = Arrays of length N containing the coordinates
    -
    5414C of the nodes with non-constraint nodes in the
    -
    5415C first LCC(1)-1 locations.
    -
    5416C
    -
    5417C LIST,LPTR,LEND = Data structure defining the trian-
    -
    5418C gulation. Refer to Subroutine
    -
    5419C TRMESH.
    -
    5420C
    -
    5421C TITLE = Type CHARACTER variable or constant contain-
    -
    5422C ing a string to be centered above the plot.
    -
    5423C The string must be enclosed in parentheses;
    -
    5424C i.e., the first and last characters must be
    -
    5425C '(' and ')', respectively, but these are not
    -
    5426C displayed. TITLE may have at most 80 char-
    -
    5427C acters including the parentheses.
    -
    5428C
    -
    5429C NUMBR = Option indicator: If NUMBR = TRUE, the
    -
    5430C nodal indexes are plotted next to the nodes.
    -
    5431C
    -
    5432C Input parameters are not altered by this routine.
    -
    5433C
    -
    5434C On output:
    -
    5435C
    -
    5436C IER = Error indicator:
    -
    5437C IER = 0 if no errors were encountered.
    -
    5438C IER = 1 if LUN, PLTSIZ, NCC, or N is outside
    -
    5439C its valid range. LCC is not tested
    -
    5440C for validity.
    -
    5441C IER = 2 if WX1 >= WX2 or WY1 >= WY2.
    -
    5442C IER = 3 if an error was encountered in writing
    -
    5443C to unit LUN.
    -
    5444C
    -
    5445C Various plotting options can be controlled by altering
    -
    5446C the data statement below.
    -
    5447C
    -
    5448C Modules required by TRPLOT: None
    -
    5449C
    -
    5450C Intrinsic functions called by TRPLOT: ABS, CHAR, NINT,
    -
    5451C REAL
    -
    5452C
    -
    5453C***********************************************************
    -
    5454C
    -
    5455 INTEGER I, IFRST, IH, ILAST, IPX1, IPX2, IPY1, IPY2,
    -
    5456 . IW, LP, LPL, N0, N0BAK, N0FOR, N1, NLS
    -
    5457 LOGICAL ANNOT, CNSTR, PASS1
    -
    5458 REAL DASHL, DX, DY, FSIZN, FSIZT, R, SFX, SFY, T,
    -
    5459 . TX, TY, X0, Y0
    -
    5460C
    -
    5461 DATA ANNOT/.TRUE./, DASHL/4.0/, FSIZN/10.0/,
    -
    5462 . FSIZT/16.0/
    -
    5463C
    -
    5464C Local parameters:
    -
    5465C
    -
    5466C ANNOT = Logical variable with value TRUE iff the plot
    -
    5467C is to be annotated with the values of WX1,
    -
    5468C WX2, WY1, and WY2
    -
    5469C CNSTR Logical variable used to flag constraint arcs:
    -
    5470C TRUE iff N0-N1 lies in a constraint region
    -
    5471C DASHL = Length (in points, at 72 points per inch) of
    -
    5472C dashes and spaces in a dashed line pattern
    -
    5473C used for drawing constraint arcs
    -
    5474C DX = Window width WX2-WX1
    -
    5475C DY = Window height WY2-WY1
    -
    5476C FSIZN = Font size in points for labeling nodes with
    -
    5477C their indexes if NUMBR = TRUE
    -
    5478C FSIZT = Font size in points for the title (and
    -
    5479C annotation if ANNOT = TRUE)
    -
    5480C I = Constraint index (1 to NCC)
    -
    5481C IFRST = Index of the first node in constraint I
    -
    5482C IH = Height of the viewport in points
    -
    5483C ILAST = Index of the last node in constraint I
    -
    5484C IPX1,IPY1 = X and y coordinates (in points) of the lower
    -
    5485C left corner of the bounding box or viewport
    -
    5486C IPX2,IPY2 = X and y coordinates (in points) of the upper
    -
    5487C right corner of the bounding box or viewport
    -
    5488C IW = Width of the viewport in points
    -
    5489C LP = LIST index (pointer)
    -
    5490C LPL = Pointer to the last neighbor of N0
    -
    5491C N0 = Nodal index and DO-loop index
    -
    5492C N0BAK = Predecessor of N0 in a constraint curve
    -
    5493C (sequence of adjacent constraint nodes)
    -
    5494C N0FOR = Successor to N0 in a constraint curve
    -
    5495C N1 = Index of a neighbor of N0
    -
    5496C NLS = Index of the last non-constraint node
    -
    5497C PASS1 = Logical variable used to flag the first pass
    -
    5498C through the constraint nodes
    -
    5499C R = Aspect ratio DX/DY
    -
    5500C SFX,SFY = Scale factors for mapping world coordinates
    -
    5501C (window coordinates in [WX1,WX2] X [WY1,WY2])
    -
    5502C to viewport coordinates in [IPX1,IPX2] X
    -
    5503C [IPY1,IPY2]
    -
    5504C T = Temporary variable
    -
    5505C TX,TY = Translation vector for mapping world coordi-
    -
    5506C nates to viewport coordinates
    -
    5507C X0,Y0 = X(N0),Y(N0) or label location
    -
    5508C
    -
    5509C
    -
    5510C Test for error 1, and set NLS to the last non-constraint
    -
    5511C node.
    -
    5512C
    -
    5513 IF (lun .LT. 0 .OR. lun .GT. 99 .OR.
    -
    5514 . pltsiz .LT. 1.0 .OR. pltsiz .GT. 8.5 .OR.
    -
    5515 . ncc .LT. 0 .OR. n .LT. 3) GO TO 11
    -
    5516 nls = n
    -
    5517 IF (ncc .GT. 0) nls = lcc(1)-1
    -
    5518C
    -
    5519C Compute the aspect ratio of the window.
    -
    5520C
    -
    5521 dx = wx2 - wx1
    -
    5522 dy = wy2 - wy1
    -
    5523 IF (dx .LE. 0.0 .OR. dy .LE. 0.0) GO TO 12
    -
    5524 r = dx/dy
    -
    5525C
    -
    5526C Compute the lower left (IPX1,IPY1) and upper right
    -
    5527C (IPX2,IPY2) corner coordinates of the bounding box.
    -
    5528C The coordinates, specified in default user space units
    -
    5529C (points, at 72 points/inch with origin at the lower
    -
    5530C left corner of the page), are chosen to preserve the
    -
    5531C aspect ratio R, and to center the plot on the 8.5 by 11
    -
    5532C inch page. The center of the page is (306,396), and
    -
    5533C T = PLTSIZ/2 in points.
    -
    5534C
    -
    5535 t = 36.0*pltsiz
    -
    5536 IF (r .GE. 1.0) THEN
    -
    5537 ipx1 = 306 - nint(t)
    -
    5538 ipx2 = 306 + nint(t)
    -
    5539 ipy1 = 396 - nint(t/r)
    -
    5540 ipy2 = 396 + nint(t/r)
    -
    5541 ELSE
    -
    5542 ipx1 = 306 - nint(t*r)
    -
    5543 ipx2 = 306 + nint(t*r)
    -
    5544 ipy1 = 396 - nint(t)
    -
    5545 ipy2 = 396 + nint(t)
    -
    5546 ENDIF
    -
    5547C
    -
    5548C Output header comments.
    -
    5549C
    -
    5550 WRITE (lun,100,err=13) ipx1, ipy1, ipx2, ipy2
    -
    5551 100 FORMAT ('%!PS-Adobe-3.0 EPSF-3.0'/
    -
    5552 . '%%BoundingBox:',4i4/
    -
    5553 . '%%Title: Triangulation'/
    -
    5554 . '%%Creator: TRIPACK'/
    -
    5555 . '%%EndComments')
    -
    5556C
    -
    5557C Set (IPX1,IPY1) and (IPX2,IPY2) to the corner coordinates
    -
    5558C of a viewport obtained by shrinking the bounding box by
    -
    5559C 12% in each dimension.
    -
    5560C
    -
    5561 iw = nint(0.88*real(ipx2-ipx1))
    -
    5562 ih = nint(0.88*real(ipy2-ipy1))
    -
    5563 ipx1 = 306 - iw/2
    -
    5564 ipx2 = 306 + iw/2
    -
    5565 ipy1 = 396 - ih/2
    -
    5566 ipy2 = 396 + ih/2
    -
    5567C
    -
    5568C Set the line thickness to 2 points, and draw the
    -
    5569C viewport boundary.
    -
    5570C
    -
    5571 t = 2.0
    -
    5572 WRITE (lun,110,err=13) t
    -
    5573 WRITE (lun,120,err=13) ipx1, ipy1
    -
    5574 WRITE (lun,130,err=13) ipx1, ipy2
    -
    5575 WRITE (lun,130,err=13) ipx2, ipy2
    -
    5576 WRITE (lun,130,err=13) ipx2, ipy1
    -
    5577 WRITE (lun,140,err=13)
    -
    5578 WRITE (lun,150,err=13)
    -
    5579 110 FORMAT (f12.6,' setlinewidth')
    -
    5580 120 FORMAT (2i4,' moveto')
    -
    5581 130 FORMAT (2i4,' lineto')
    -
    5582 140 FORMAT ('closepath')
    -
    5583 150 FORMAT ('stroke')
    -
    5584C
    -
    5585C Set up a mapping from the window to the viewport.
    -
    5586C
    -
    5587 sfx = real(iw)/dx
    -
    5588 sfy = real(ih)/dy
    -
    5589 tx = ipx1 - sfx*wx1
    -
    5590 ty = ipy1 - sfy*wy1
    -
    5591 WRITE (lun,160,err=13) tx, ty, sfx, sfy
    -
    5592 160 FORMAT (2f12.6,' translate'/
    -
    5593 . 2f12.6,' scale')
    -
    5594C
    -
    5595C The line thickness (believe it or fucking not) must be
    -
    5596C changed to reflect the new scaling which is applied to
    -
    5597C all subsequent output. Set it to 1.0 point.
    -
    5598C
    -
    5599 t = 2.0/(sfx+sfy)
    -
    5600 WRITE (lun,110,err=13) t
    -
    5601C
    -
    5602C Save the current graphics state, and set the clip path to
    -
    5603C the boundary of the window.
    -
    5604C
    -
    5605 WRITE (lun,170,err=13)
    -
    5606 WRITE (lun,180,err=13) wx1, wy1
    -
    5607 WRITE (lun,190,err=13) wx2, wy1
    -
    5608 WRITE (lun,190,err=13) wx2, wy2
    -
    5609 WRITE (lun,190,err=13) wx1, wy2
    -
    5610 WRITE (lun,200,err=13)
    -
    5611 170 FORMAT ('gsave')
    -
    5612 180 FORMAT (2f12.6,' moveto')
    -
    5613 190 FORMAT (2f12.6,' lineto')
    -
    5614 200 FORMAT ('closepath clip newpath')
    -
    5615C
    -
    5616C Draw the edges N0->N1, where N1 > N0, beginning with a
    -
    5617C loop on non-constraint nodes N0. LPL points to the
    -
    5618C last neighbor of N0.
    -
    5619C
    -
    5620 DO 3 n0 = 1,nls
    -
    5621 x0 = x(n0)
    -
    5622 y0 = y(n0)
    -
    5623 lpl = lend(n0)
    -
    5624 lp = lpl
    -
    5625C
    -
    5626C Loop on neighbors N1 of N0.
    -
    5627C
    -
    5628 2 lp = lptr(lp)
    -
    5629 n1 = abs(list(lp))
    -
    5630 IF (n1 .GT. n0) THEN
    -
    5631C
    -
    5632C Add the edge to the path.
    -
    5633C
    -
    5634 WRITE (lun,210,err=13) x0, y0, x(n1), y(n1)
    -
    5635 210 FORMAT (2f12.6,' moveto',2f12.6,' lineto')
    -
    5636 ENDIF
    -
    5637 IF (lp .NE. lpl) GO TO 2
    -
    5638 3 CONTINUE
    -
    5639C
    -
    5640C Loop through the constraint nodes twice. The non-
    -
    5641C constraint arcs incident on constraint nodes are
    -
    5642C drawn (with solid lines) on the first pass, and the
    -
    5643C constraint arcs (both boundary and interior, if any)
    -
    5644C are drawn (with dashed lines) on the second pass.
    -
    5645C
    -
    5646 pass1 = .true.
    -
    5647C
    -
    5648C Loop on constraint nodes N0 with (N0BAK,N0,N0FOR) a sub-
    -
    5649C sequence of constraint I. The outer loop is on
    -
    5650C constraints I with first and last nodes IFRST and ILAST.
    -
    5651C
    -
    5652 4 ifrst = n+1
    -
    5653 DO 8 i = ncc,1,-1
    -
    5654 ilast = ifrst - 1
    -
    5655 ifrst = lcc(i)
    -
    5656 n0bak = ilast
    -
    5657 DO 7 n0 = ifrst,ilast
    -
    5658 n0for = n0 + 1
    -
    5659 IF (n0 .EQ. ilast) n0for = ifrst
    -
    5660 lpl = lend(n0)
    -
    5661 x0 = x(n0)
    -
    5662 y0 = y(n0)
    -
    5663 lp = lpl
    -
    5664C
    -
    5665C Loop on neighbors N1 of N0. CNSTR = TRUE iff N0-N1 is a
    -
    5666C constraint arc.
    -
    5667C
    -
    5668C Initialize CNSTR to TRUE iff the first neighbor of N0
    -
    5669C strictly follows N0FOR and precedes or coincides with
    -
    5670C N0BAK (in counterclockwise order).
    -
    5671C
    -
    5672 5 lp = lptr(lp)
    -
    5673 n1 = abs(list(lp))
    -
    5674 IF (n1 .NE. n0for .AND. n1 .NE. n0bak) GO TO 5
    -
    5675 cnstr = n1 .EQ. n0bak
    -
    5676 lp = lpl
    -
    5677C
    -
    5678C Loop on neighbors N1 of N0. Update CNSTR and test for
    -
    5679C N1 > N0.
    -
    5680C
    -
    5681 6 lp = lptr(lp)
    -
    5682 n1 = abs(list(lp))
    -
    5683 IF (n1 .EQ. n0for) cnstr = .true.
    -
    5684 IF (n1 .GT. n0) THEN
    -
    5685C
    -
    5686C Draw the edge iff (PASS1=TRUE and CNSTR=FALSE) or
    -
    5687C (PASS1=FALSE and CNSTR=TRUE); i.e., CNSTR and PASS1
    -
    5688C have opposite values.
    -
    5689C
    -
    5690 IF (cnstr .NEQV. pass1)
    -
    5691 . WRITE (lun,210,err=13) x0, y0, x(n1), y(n1)
    -
    5692 ENDIF
    -
    5693 IF (n1 .EQ. n0bak) cnstr = .false.
    -
    5694C
    -
    5695C Bottom of loops.
    -
    5696C
    -
    5697 IF (lp .NE. lpl) GO TO 6
    -
    5698 n0bak = n0
    -
    5699 7 CONTINUE
    -
    5700 8 CONTINUE
    -
    5701 IF (pass1) THEN
    -
    5702C
    -
    5703C End of first pass: paint the path and change to dashed
    -
    5704C lines for subsequent drawing. Since the scale factors
    -
    5705C are applied to everything, the dash length must be
    -
    5706C specified in world coordinates.
    -
    5707C
    -
    5708 pass1 = .false.
    -
    5709 WRITE (lun,150,err=13)
    -
    5710 t = dashl*2.0/(sfx+sfy)
    -
    5711 WRITE (lun,220,err=13) t
    -
    5712 220 FORMAT ('[',f12.6,'] 0 setdash')
    -
    5713 GO TO 4
    -
    5714 ENDIF
    -
    5715C
    -
    5716C Paint the path and restore the saved graphics state (with
    -
    5717C no clip path).
    -
    5718C
    -
    5719 WRITE (lun,150,err=13)
    -
    5720 WRITE (lun,230,err=13)
    -
    5721 230 FORMAT ('grestore')
    -
    5722 IF (numbr) THEN
    -
    5723C
    -
    5724C Nodes in the window are to be labeled with their indexes.
    -
    5725C Convert FSIZN from points to world coordinates, and
    -
    5726C output the commands to select a font and scale it.
    -
    5727C
    -
    5728 t = fsizn*2.0/(sfx+sfy)
    -
    5729 WRITE (lun,240,err=13) t
    -
    5730 240 FORMAT ('/Helvetica findfont'/
    -
    5731 . f12.6,' scalefont setfont')
    -
    5732C
    -
    5733C Loop on nodes N0 with coordinates (X0,Y0).
    -
    5734C
    -
    5735 DO 9 n0 = 1,n
    -
    5736 x0 = x(n0)
    -
    5737 y0 = y(n0)
    -
    5738 IF (x0 .LT. wx1 .OR. x0 .GT. wx2 .OR.
    -
    5739 . y0 .LT. wy1 .OR. y0 .GT. wy2) GO TO 9
    -
    5740C
    -
    5741C Move to (X0,Y0), and draw the label N0. The first char-
    -
    5742C acter will have its lower left corner about one
    -
    5743C character width to the right of the nodal position.
    -
    5744C
    -
    5745 WRITE (lun,180,err=13) x0, y0
    -
    5746 WRITE (lun,250,err=13) n0
    -
    5747 250 FORMAT ('(',i3,') show')
    -
    5748 9 CONTINUE
    -
    5749 ENDIF
    -
    5750C
    -
    5751C Convert FSIZT from points to world coordinates, and output
    -
    5752C the commands to select a font and scale it.
    -
    5753C
    -
    5754 t = fsizt*2.0/(sfx+sfy)
    -
    5755 WRITE (lun,240,err=13) t
    -
    5756C
    -
    5757C Display TITLE centered above the plot:
    -
    5758C
    -
    5759 y0 = wy2 + 3.0*t
    -
    5760 WRITE (lun,260,err=13) title, (wx1+wx2)/2.0, y0
    -
    5761 260 FORMAT (a80/' stringwidth pop 2 div neg ',f12.6,
    -
    5762 . ' add ',f12.6,' moveto')
    -
    5763 WRITE (lun,270,err=13) title
    -
    5764 270 FORMAT (a80/' show')
    -
    5765 IF (annot) THEN
    -
    5766C
    -
    5767C Display the window extrema below the plot.
    -
    5768C
    -
    5769 x0 = wx1
    -
    5770 y0 = wy1 - 100.0/(sfx+sfy)
    -
    5771 WRITE (lun,180,err=13) x0, y0
    -
    5772 WRITE (lun,280,err=13) wx1, wx2
    -
    5773 y0 = y0 - 2.0*t
    -
    5774 WRITE (lun,290,err=13) x0, y0, wy1, wy2
    -
    5775 280 FORMAT ('(Window: WX1 = ',e9.3,', WX2 = ',e9.3,
    -
    5776 . ') show')
    -
    5777 290 FORMAT ('(Window: ) stringwidth pop ',f12.6,' add',
    -
    5778 . f12.6,' moveto'/
    -
    5779 . '( WY1 = ',e9.3,', WY2 = ',e9.3,') show')
    -
    5780 ENDIF
    -
    5781C
    -
    5782C Paint the path and output the showpage command and
    -
    5783C end-of-file indicator.
    -
    5784C
    -
    5785 WRITE (lun,300,err=13)
    -
    5786 300 FORMAT ('stroke'/
    -
    5787 . 'showpage'/
    -
    5788 . '%%EOF')
    -
    5789C
    -
    5790C HP's interpreters require a one-byte End-of-PostScript-Job
    -
    5791C indicator (to eliminate a timeout error message):
    -
    5792C ASCII 4.
    -
    5793C
    -
    5794 WRITE (lun,310,err=13) char(4)
    -
    5795 310 FORMAT (a1)
    -
    5796C
    -
    5797C No error encountered.
    -
    5798C
    -
    5799 ier = 0
    -
    5800 RETURN
    -
    5801C
    -
    5802C Invalid input parameter.
    -
    5803C
    -
    5804 11 ier = 1
    -
    5805 RETURN
    -
    5806C
    -
    5807C DX or DY is not positive.
    -
    5808C
    -
    5809 12 ier = 2
    -
    5810 RETURN
    -
    5811C
    -
    5812C Error writing to unit LUN.
    -
    5813C
    -
    5814 13 ier = 3
    -
    5815 RETURN
    -
    5816 END
    -
    5817 SUBROUTINE trprnt (NCC,LCC,N,X,Y,LIST,LPTR,LEND,LOUT,
    -
    5818 . PRNTX)
    -
    5819 INTEGER NCC, LCC(*), N, LIST(*), LPTR(*), LEND(N),
    -
    5820 . LOUT
    -
    5821 LOGICAL PRNTX
    -
    5822 REAL X(N), Y(N)
    -
    5823C
    -
    5824C***********************************************************
    -
    5825C
    -
    5826C From TRIPACK
    -
    5827C Robert J. Renka
    -
    5828C Dept. of Computer Science
    -
    5829C Univ. of North Texas
    -
    5830C renka@cs.unt.edu
    -
    5831C 07/30/98
    -
    5832C
    -
    5833C Given a triangulation of a set of points in the plane,
    -
    5834C this subroutine prints the adjacency lists and, option-
    -
    5835C ally, the nodal coordinates on logical unit LOUT. The
    -
    5836C list of neighbors of a boundary node is followed by index
    -
    5837C 0. The numbers of boundary nodes, triangles, and arcs,
    -
    5838C and the constraint curve starting indexes, if any, are
    -
    5839C also printed.
    -
    5840C
    -
    5841C
    -
    5842C On input:
    -
    5843C
    -
    5844C NCC = Number of constraints.
    -
    5845C
    -
    5846C LCC = List of constraint curve starting indexes (or
    -
    5847C dummy array of length 1 if NCC = 0).
    -
    5848C
    -
    5849C N = Number of nodes in the triangulation.
    -
    5850C 3 .LE. N .LE. 9999.
    -
    5851C
    -
    5852C X,Y = Arrays of length N containing the coordinates
    -
    5853C of the nodes in the triangulation -- not used
    -
    5854C unless PRNTX = TRUE.
    -
    5855C
    -
    5856C LIST,LPTR,LEND = Data structure defining the trian-
    -
    5857C gulation. Refer to Subroutine
    -
    5858C TRMESH.
    -
    5859C
    -
    5860C LOUT = Logical unit number for output. 0 .LE. LOUT
    -
    5861C .LE. 99. Output is printed on unit 6 if LOUT
    -
    5862C is outside its valid range on input.
    -
    5863C
    -
    5864C PRNTX = Logical variable with value TRUE if and only
    -
    5865C if X and Y are to be printed (to 6 decimal
    -
    5866C places).
    -
    5867C
    -
    5868C None of the parameters are altered by this routine.
    -
    5869C
    -
    5870C Modules required by TRPRNT: None
    -
    5871C
    -
    5872C***********************************************************
    -
    5873C
    -
    5874 INTEGER I, INC, K, LP, LPL, LUN, NA, NABOR(100), NB,
    -
    5875 . ND, NL, NLMAX, NMAX, NODE, NN, NT
    -
    5876 DATA NMAX/9999/, NLMAX/60/
    -
    5877C
    -
    5878 NN = n
    -
    5879 lun = lout
    -
    5880 IF (lun .LT. 0 .OR. lun .GT. 99) lun = 6
    -
    5881C
    -
    5882C Print a heading and test the range of N.
    -
    5883C
    -
    5884 WRITE (lun,100) nn
    -
    5885 IF (nn .LT. 3 .OR. nn .GT. nmax) THEN
    -
    5886C
    -
    5887C N is outside its valid range.
    -
    5888C
    -
    5889 WRITE (lun,110)
    -
    5890 GO TO 5
    -
    5891 ENDIF
    -
    5892C
    -
    5893C Initialize NL (the number of lines printed on the current
    -
    5894C page) and NB (the number of boundary nodes encountered).
    -
    5895C
    -
    5896 nl = 6
    -
    5897 nb = 0
    -
    5898 IF (.NOT. prntx) THEN
    -
    5899C
    -
    5900C Print LIST only. K is the number of neighbors of NODE
    -
    5901C which are stored in NABOR.
    -
    5902C
    -
    5903 WRITE (lun,101)
    -
    5904 DO 2 node = 1,nn
    -
    5905 lpl = lend(node)
    -
    5906 lp = lpl
    -
    5907 k = 0
    -
    5908C
    -
    5909 1 k = k + 1
    -
    5910 lp = lptr(lp)
    -
    5911 nd = list(lp)
    -
    5912 nabor(k) = nd
    -
    5913 IF (lp .NE. lpl) GO TO 1
    -
    5914 IF (nd .LE. 0) THEN
    -
    5915C
    -
    5916C NODE is a boundary node. Correct the sign of the last
    -
    5917C neighbor, add 0 to the end of the list, and increment
    -
    5918C NB.
    -
    5919C
    -
    5920 nabor(k) = -nd
    -
    5921 k = k + 1
    -
    5922 nabor(k) = 0
    -
    5923 nb = nb + 1
    -
    5924 ENDIF
    -
    5925C
    -
    5926C Increment NL and print the list of neighbors.
    -
    5927C
    -
    5928 inc = (k-1)/14 + 2
    -
    5929 nl = nl + inc
    -
    5930 IF (nl .GT. nlmax) THEN
    -
    5931 WRITE (lun,106)
    -
    5932 nl = inc
    -
    5933 ENDIF
    -
    5934 WRITE (lun,103) node, (nabor(i), i = 1,k)
    -
    5935 IF (k .NE. 14) WRITE (lun,105)
    -
    5936 2 CONTINUE
    -
    5937 ELSE
    -
    5938C
    -
    5939C Print X, Y, and LIST.
    -
    5940C
    -
    5941 WRITE (lun,102)
    -
    5942 DO 4 node = 1,nn
    -
    5943 lpl = lend(node)
    -
    5944 lp = lpl
    -
    5945 k = 0
    -
    5946 3 k = k + 1
    -
    5947 lp = lptr(lp)
    -
    5948 nd = list(lp)
    -
    5949 nabor(k) = nd
    -
    5950 IF (lp .NE. lpl) GO TO 3
    -
    5951 IF (nd .LE. 0) THEN
    -
    5952C
    -
    5953C NODE is a boundary node.
    -
    5954C
    -
    5955 nabor(k) = -nd
    -
    5956 k = k + 1
    -
    5957 nabor(k) = 0
    -
    5958 nb = nb + 1
    -
    5959 ENDIF
    -
    5960C
    -
    5961C Increment NL and print X, Y, and NABOR.
    -
    5962C
    -
    5963 inc = (k-1)/8 + 2
    -
    5964 nl = nl + inc
    -
    5965 IF (nl .GT. nlmax) THEN
    -
    5966 WRITE (lun,106)
    -
    5967 nl = inc
    -
    5968 ENDIF
    -
    5969 WRITE (lun,104) node, x(node), y(node),
    -
    5970 . (nabor(i), i = 1,k)
    -
    5971 IF (k .NE. 8) WRITE (lun,105)
    -
    5972 4 CONTINUE
    -
    5973 ENDIF
    -
    5974C
    -
    5975C Print NB, NA, and NT (boundary nodes, arcs, and
    -
    5976C triangles).
    -
    5977C
    -
    5978 nt = 2*nn - nb - 2
    -
    5979 na = nt + nn - 1
    -
    5980 IF (nl .GT. nlmax-6) WRITE (lun,106)
    -
    5981 WRITE (lun,107) nb, na, nt
    -
    5982C
    -
    5983C Print NCC and LCC.
    -
    5984C
    -
    5985 5 WRITE (lun,108) ncc
    -
    5986 IF (ncc .GT. 0) WRITE (lun,109) (lcc(i), i = 1,ncc)
    -
    5987 RETURN
    -
    5988C
    -
    5989C Print formats:
    -
    5990C
    -
    5991 100 FORMAT (///,26x,'Adjacency Sets, N = ',i5//)
    -
    5992 101 FORMAT (1x,'Node',32x,'Neighbors of Node'//)
    -
    5993 102 FORMAT (1x,'Node',5x,'X(Node)',8x,'Y(Node)',
    -
    5994 . 20x,'Neighbors of Node'//)
    -
    5995 103 FORMAT (1x,i4,5x,14i5/(1x,9x,14i5))
    -
    5996 104 FORMAT (1x,i4,2e15.6,5x,8i5/(1x,39x,8i5))
    -
    5997 105 FORMAT (1x)
    -
    5998 106 FORMAT (///)
    -
    5999 107 FORMAT (/1x,'NB = ',i4,' Boundary Nodes',5x,
    -
    6000 . 'NA = ',i5,' Arcs',5x,'NT = ',i5,
    -
    6001 . ' Triangles')
    -
    6002 108 FORMAT (/1x,'NCC =',i3,' Constraint Curves')
    -
    6003 109 FORMAT (1x,9x,14i5)
    -
    6004 110 FORMAT (1x,10x,'*** N is outside its valid',
    -
    6005 . ' range ***')
    -
    6006 END
    -
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1color-members.html b/docs/html/typefplot__core_1_1color-members.html deleted file mode 100644 index a3850e5..0000000 --- a/docs/html/typefplot__core_1_1color-members.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::color Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::color, including all inherited members.

    - - - - - - -
    bluefplot_core::color
    copy_from=> clr_copy_fromfplot_core::color
    greenfplot_core::color
    redfplot_core::color
    to_hex_string=> clr_to_hex_stringfplot_core::color
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1colormap-members.html b/docs/html/typefplot__core_1_1colormap-members.html deleted file mode 100644 index 477b820..0000000 --- a/docs/html/typefplot__core_1_1colormap-members.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::colormap Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::colormap, including all inherited members.

    - - - -
    get_color_stringfplot_core::colormap
    get_command_string=> cm_get_cmdfplot_core::colormap
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1cool__colormap-members.html b/docs/html/typefplot__core_1_1cool__colormap-members.html deleted file mode 100644 index a06ce33..0000000 --- a/docs/html/typefplot__core_1_1cool__colormap-members.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::cool_colormap Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::cool_colormap, including all inherited members.

    - - - -
    get_color_string=> ccm_get_clrfplot_core::cool_colormap
    get_command_string=> cm_get_cmdfplot_core::colormap
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1hot__colormap-members.html b/docs/html/typefplot__core_1_1hot__colormap-members.html deleted file mode 100644 index bf75741..0000000 --- a/docs/html/typefplot__core_1_1hot__colormap-members.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::hot_colormap Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::hot_colormap, including all inherited members.

    - - - -
    get_color_string=> hcm_get_clrfplot_core::hot_colormap
    get_command_string=> cm_get_cmdfplot_core::colormap
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1latex__terminal-members.html b/docs/html/typefplot__core_1_1latex__terminal-members.html deleted file mode 100644 index 1d077a3..0000000 --- a/docs/html/typefplot__core_1_1latex__terminal-members.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::latex_terminal Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::latex_terminal, including all inherited members.

    - - - - - - - - - - - - - - - - - - - -
    get_command_string=> tex_get_command_stringfplot_core::latex_terminal
    get_filename=> tex_get_filenamefplot_core::latex_terminal
    get_font_name=> term_get_font_namefplot_core::terminal
    get_font_size=> term_get_font_sizefplot_core::terminal
    get_id_string=> tex_get_term_stringfplot_core::latex_terminal
    get_plot_window_number=> term_get_plot_window_numberfplot_core::terminal
    get_title=> term_get_titlefplot_core::terminal
    get_window_height=> term_get_window_heightfplot_core::terminal
    get_window_width=> term_get_window_widthfplot_core::terminal
    m_fnamefplot_core::latex_terminalprivate
    m_idfplot_core::latex_terminalprivate
    set_filename=> tex_set_filenamefplot_core::latex_terminal
    set_font_name=> term_set_font_namefplot_core::terminal
    set_font_size=> term_set_font_sizefplot_core::terminal
    set_plot_window_number=> term_set_plot_window_numberfplot_core::terminal
    set_title=> term_set_titlefplot_core::terminal
    set_window_height=> term_set_window_heightfplot_core::terminal
    set_window_width=> term_set_window_widthfplot_core::terminal
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1legend-members.html b/docs/html/typefplot__core_1_1legend-members.html deleted file mode 100644 index 0b14e8f..0000000 --- a/docs/html/typefplot__core_1_1legend-members.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::legend Member List
    -
    - -
    - - - - diff --git a/docs/html/typefplot__core_1_1plot-members.html b/docs/html/typefplot__core_1_1plot-members.html deleted file mode 100644 index 00101f9..0000000 --- a/docs/html/typefplot__core_1_1plot-members.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::plot Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_all=> plt_clear_allfplot_core::plot
    clear_all_labels=> plt_clear_labels (defined in fplot_core::plot)fplot_core::plot
    draw=> plt_drawfplot_core::plot
    free_resources=> plt_clean_upfplot_core::plot
    get=> plt_getfplot_core::plot
    get_command_stringfplot_core::plot_object
    get_count=> plt_get_countfplot_core::plot
    get_draw_border=> plt_get_draw_borderfplot_core::plot
    get_font_name=> plt_get_fontfplot_core::plot
    get_font_size=> plt_get_font_sizefplot_core::plot
    get_label=> plt_get_label (defined in fplot_core::plot)fplot_core::plot
    get_label_count=> plt_get_label_count (defined in fplot_core::plot)fplot_core::plot
    get_legend=> plt_get_legendfplot_core::plot
    get_show_gridlines=> plt_get_show_gridfplot_core::plot
    get_terminal=> plt_get_termfplot_core::plot
    get_tics_inward=> plt_get_tics_infplot_core::plot
    get_title=> plt_get_titlefplot_core::plot
    initialize=> plt_initfplot_core::plot
    is_title_defined=> plt_has_titlefplot_core::plot
    m_datafplot_core::plotprivate
    m_drawborderfplot_core::plotprivate
    m_hastitlefplot_core::plotprivate
    m_labelsfplot_core::plotprivate
    m_legendfplot_core::plotprivate
    m_showgridfplot_core::plotprivate
    m_terminalfplot_core::plotprivate
    m_ticsinfplot_core::plotprivate
    m_titlefplot_core::plotprivate
    pop=> plt_pop_datafplot_core::plot
    pop_label=> plt_pop_label (defined in fplot_core::plot)fplot_core::plot
    push=> plt_push_datafplot_core::plot
    push_label=> plt_push_label (defined in fplot_core::plot)fplot_core::plot
    save_file=> plt_savefplot_core::plot
    set=> plt_setfplot_core::plot
    set_draw_border=> plt_set_draw_borderfplot_core::plot
    set_font_name=> plt_set_fontfplot_core::plot
    set_font_size=> plt_set_font_sizefplot_core::plot
    set_label=> plt_set_label (defined in fplot_core::plot)fplot_core::plot
    set_show_gridlines=> plt_set_show_gridfplot_core::plot
    set_tics_inward=> plt_set_tics_infplot_core::plot
    set_title=> plt_set_titlefplot_core::plot
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1plot__2d-members.html b/docs/html/typefplot__core_1_1plot__2d-members.html deleted file mode 100644 index ec38993..0000000 --- a/docs/html/typefplot__core_1_1plot__2d-members.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::plot_2d Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_2d, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_all=> plt_clear_allfplot_core::plot
    clear_all_labels=> plt_clear_labels (defined in fplot_core::plot)fplot_core::plot
    draw=> plt_drawfplot_core::plot
    free_resources=> plt_clean_upfplot_core::plot
    get=> plt_getfplot_core::plot
    get_command_string=> p2d_get_cmdfplot_core::plot_2d
    get_count=> plt_get_countfplot_core::plot
    get_draw_border=> plt_get_draw_borderfplot_core::plot
    get_font_name=> plt_get_fontfplot_core::plot
    get_font_size=> plt_get_font_sizefplot_core::plot
    get_label=> plt_get_label (defined in fplot_core::plot)fplot_core::plot
    get_label_count=> plt_get_label_count (defined in fplot_core::plot)fplot_core::plot
    get_legend=> plt_get_legendfplot_core::plot
    get_show_gridlines=> plt_get_show_gridfplot_core::plot
    get_terminal=> plt_get_termfplot_core::plot
    get_tics_inward=> plt_get_tics_infplot_core::plot
    get_title=> plt_get_titlefplot_core::plot
    get_use_y2_axis=> p2d_get_use_y2fplot_core::plot_2d
    get_x_axis=> p2d_get_x_axisfplot_core::plot_2d
    get_y2_axis=> p2d_get_y2_axisfplot_core::plot_2d
    get_y_axis=> p2d_get_y_axisfplot_core::plot_2d
    initialize=> p2d_initfplot_core::plot_2d
    is_title_defined=> plt_has_titlefplot_core::plot
    m_usey2fplot_core::plot_2dprivate
    m_xaxisfplot_core::plot_2dprivate
    m_y2axisfplot_core::plot_2dprivate
    m_yaxisfplot_core::plot_2dprivate
    p2d_clean_upfplot_core::plot_2dprivate
    pop=> plt_pop_datafplot_core::plot
    pop_label=> plt_pop_label (defined in fplot_core::plot)fplot_core::plot
    push=> plt_push_datafplot_core::plot
    push_label=> plt_push_label (defined in fplot_core::plot)fplot_core::plot
    save_file=> plt_savefplot_core::plot
    set=> plt_setfplot_core::plot
    set_draw_border=> plt_set_draw_borderfplot_core::plot
    set_font_name=> plt_set_fontfplot_core::plot
    set_font_size=> plt_set_font_sizefplot_core::plot
    set_label=> plt_set_label (defined in fplot_core::plot)fplot_core::plot
    set_show_gridlines=> plt_set_show_gridfplot_core::plot
    set_tics_inward=> plt_set_tics_infplot_core::plot
    set_title=> plt_set_titlefplot_core::plot
    set_use_y2_axis=> p2d_set_use_y2fplot_core::plot_2d
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1plot__3d-members.html b/docs/html/typefplot__core_1_1plot__3d-members.html deleted file mode 100644 index ed02a5d..0000000 --- a/docs/html/typefplot__core_1_1plot__3d-members.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::plot_3d Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_3d, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_all=> plt_clear_allfplot_core::plot
    clear_all_labels=> plt_clear_labels (defined in fplot_core::plot)fplot_core::plot
    draw=> plt_drawfplot_core::plot
    free_resources=> plt_clean_upfplot_core::plot
    get=> plt_getfplot_core::plot
    get_azimuth=> p3d_get_azimuthfplot_core::plot_3d
    get_command_string=> p3d_get_cmdfplot_core::plot_3d
    get_count=> plt_get_countfplot_core::plot
    get_draw_border=> plt_get_draw_borderfplot_core::plot
    get_elevation=> p3d_get_elevationfplot_core::plot_3d
    get_font_name=> plt_get_fontfplot_core::plot
    get_font_size=> plt_get_font_sizefplot_core::plot
    get_label=> plt_get_label (defined in fplot_core::plot)fplot_core::plot
    get_label_count=> plt_get_label_count (defined in fplot_core::plot)fplot_core::plot
    get_legend=> plt_get_legendfplot_core::plot
    get_show_gridlines=> plt_get_show_gridfplot_core::plot
    get_terminal=> plt_get_termfplot_core::plot
    get_tics_inward=> plt_get_tics_infplot_core::plot
    get_title=> plt_get_titlefplot_core::plot
    get_x_axis=> p3d_get_x_axisfplot_core::plot_3d
    get_y_axis=> p3d_get_y_axisfplot_core::plot_3d
    get_z_axis=> p3d_get_z_axisfplot_core::plot_3d
    get_z_intersect_xy=> p3d_get_z_axis_intersectfplot_core::plot_3d
    initialize=> p3d_initfplot_core::plot_3d
    is_title_defined=> plt_has_titlefplot_core::plot
    m_azimuthfplot_core::plot_3dprivate
    m_elevationfplot_core::plot_3dprivate
    m_xaxisfplot_core::plot_3dprivate
    m_yaxisfplot_core::plot_3dprivate
    m_zaxisfplot_core::plot_3dprivate
    m_zintersectfplot_core::plot_3dprivate
    p3d_clean_upfplot_core::plot_3dprivate
    pop=> plt_pop_datafplot_core::plot
    pop_label=> plt_pop_label (defined in fplot_core::plot)fplot_core::plot
    push=> plt_push_datafplot_core::plot
    push_label=> plt_push_label (defined in fplot_core::plot)fplot_core::plot
    save_file=> plt_savefplot_core::plot
    set=> plt_setfplot_core::plot
    set_azimuth=> p3d_set_azimuthfplot_core::plot_3d
    set_draw_border=> plt_set_draw_borderfplot_core::plot
    set_elevation=> p3d_set_elevationfplot_core::plot_3d
    set_font_name=> plt_set_fontfplot_core::plot
    set_font_size=> plt_set_font_sizefplot_core::plot
    set_label=> plt_set_label (defined in fplot_core::plot)fplot_core::plot
    set_show_gridlines=> plt_set_show_gridfplot_core::plot
    set_tics_inward=> plt_set_tics_infplot_core::plot
    set_title=> plt_set_titlefplot_core::plot
    set_z_intersect_xy=> p3d_set_z_axis_intersectfplot_core::plot_3d
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1plot__axis-members.html b/docs/html/typefplot__core_1_1plot__axis-members.html deleted file mode 100644 index 63e7cd6..0000000 --- a/docs/html/typefplot__core_1_1plot__axis-members.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - - - - - - diff --git a/docs/html/typefplot__core_1_1plot__data-members.html b/docs/html/typefplot__core_1_1plot__data-members.html deleted file mode 100644 index 43a70f2..0000000 --- a/docs/html/typefplot__core_1_1plot__data-members.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::plot_data Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data, including all inherited members.

    - - - - - - -
    get_command_stringfplot_core::plot_object
    get_data_stringfplot_core::plot_data
    get_name=> pd_get_namefplot_core::plot_data
    m_namefplot_core::plot_dataprivate
    set_name=> pd_set_namefplot_core::plot_data
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1plot__data__2d-members.html b/docs/html/typefplot__core_1_1plot__data__2d-members.html deleted file mode 100644 index 0712735..0000000 --- a/docs/html/typefplot__core_1_1plot__data__2d-members.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::plot_data_2d Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data_2d, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    define_data=> pd2d_set_data_1, pd2d_set_data_2fplot_core::plot_data_2d
    get_axes_string=> pd2d_get_axes_cmdfplot_core::plot_data_2d
    get_command_string=> spd_get_cmdfplot_core::scatter_plot_data
    get_count=> pd2d_get_data_countfplot_core::plot_data_2d
    get_data_string=> pd2d_get_data_cmdfplot_core::plot_data_2d
    get_draw_against_y2=> pd2d_get_draw_against_y2fplot_core::plot_data_2d
    get_draw_line=> spd_get_draw_linefplot_core::scatter_plot_data
    get_draw_markers=> spd_get_draw_markersfplot_core::scatter_plot_data
    get_line_color=> spd_get_line_colorfplot_core::scatter_plot_data
    get_line_style=> spd_get_line_stylefplot_core::scatter_plot_data
    get_line_width=> spd_get_line_widthfplot_core::scatter_plot_data
    get_marker_frequency=> spd_get_marker_frequencyfplot_core::scatter_plot_data
    get_marker_scaling=> spd_get_marker_scalingfplot_core::scatter_plot_data
    get_marker_style=> spd_get_marker_stylefplot_core::scatter_plot_data
    get_name=> pd_get_namefplot_core::plot_data
    get_use_auto_color=> spd_get_use_auto_colorsfplot_core::scatter_plot_data
    get_x=> pd2d_get_x_datafplot_core::plot_data_2d
    get_y=> pd2d_get_y_datafplot_core::plot_data_2d
    m_datafplot_core::plot_data_2dprivate
    m_usey2fplot_core::plot_data_2dprivate
    pd2d_set_data_1 (defined in fplot_core::plot_data_2d)fplot_core::plot_data_2dprivate
    pd2d_set_data_2 (defined in fplot_core::plot_data_2d)fplot_core::plot_data_2dprivate
    set_draw_against_y2=> pd2d_set_draw_against_y2fplot_core::plot_data_2d
    set_draw_line=> spd_set_draw_linefplot_core::scatter_plot_data
    set_draw_markers=> spd_set_draw_markersfplot_core::scatter_plot_data
    set_line_color=> spd_set_line_colorfplot_core::scatter_plot_data
    set_line_style=> spd_set_line_stylefplot_core::scatter_plot_data
    set_line_width=> spd_set_line_widthfplot_core::scatter_plot_data
    set_marker_frequency=> spd_set_marker_frequencyfplot_core::scatter_plot_data
    set_marker_scaling=> spd_set_marker_scalingfplot_core::scatter_plot_data
    set_marker_style=> spd_set_marker_stylefplot_core::scatter_plot_data
    set_name=> pd_set_namefplot_core::plot_data
    set_use_auto_color=> spd_set_use_auto_colorsfplot_core::scatter_plot_data
    set_x=> pd2d_set_x_datafplot_core::plot_data_2d
    set_y=> pd2d_set_y_datafplot_core::plot_data_2d
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1plot__data__3d-members.html b/docs/html/typefplot__core_1_1plot__data__3d-members.html deleted file mode 100644 index 5bf8bab..0000000 --- a/docs/html/typefplot__core_1_1plot__data__3d-members.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::plot_data_3d Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_data_3d, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    define_data=> pd3d_set_data_1fplot_core::plot_data_3d
    get_axes_string=> pd3d_get_axes_cmdfplot_core::plot_data_3d
    get_command_string=> spd_get_cmdfplot_core::scatter_plot_data
    get_count=> pd3d_get_data_countfplot_core::plot_data_3d
    get_data_string=> pd3d_get_data_cmdfplot_core::plot_data_3d
    get_draw_line=> spd_get_draw_linefplot_core::scatter_plot_data
    get_draw_markers=> spd_get_draw_markersfplot_core::scatter_plot_data
    get_line_color=> spd_get_line_colorfplot_core::scatter_plot_data
    get_line_style=> spd_get_line_stylefplot_core::scatter_plot_data
    get_line_width=> spd_get_line_widthfplot_core::scatter_plot_data
    get_marker_frequency=> spd_get_marker_frequencyfplot_core::scatter_plot_data
    get_marker_scaling=> spd_get_marker_scalingfplot_core::scatter_plot_data
    get_marker_style=> spd_get_marker_stylefplot_core::scatter_plot_data
    get_name=> pd_get_namefplot_core::plot_data
    get_use_auto_color=> spd_get_use_auto_colorsfplot_core::scatter_plot_data
    get_x=> pd3d_get_x_datafplot_core::plot_data_3d
    get_y=> pd3d_get_y_datafplot_core::plot_data_3d
    get_z=> pd3d_get_z_datafplot_core::plot_data_3d
    m_datafplot_core::plot_data_3dprivate
    set_draw_line=> spd_set_draw_linefplot_core::scatter_plot_data
    set_draw_markers=> spd_set_draw_markersfplot_core::scatter_plot_data
    set_line_color=> spd_set_line_colorfplot_core::scatter_plot_data
    set_line_style=> spd_set_line_stylefplot_core::scatter_plot_data
    set_line_width=> spd_set_line_widthfplot_core::scatter_plot_data
    set_marker_frequency=> spd_set_marker_frequencyfplot_core::scatter_plot_data
    set_marker_scaling=> spd_set_marker_scalingfplot_core::scatter_plot_data
    set_marker_style=> spd_set_marker_stylefplot_core::scatter_plot_data
    set_name=> pd_set_namefplot_core::plot_data
    set_use_auto_color=> spd_set_use_auto_colorsfplot_core::scatter_plot_data
    set_x=> pd3d_set_x_datafplot_core::plot_data_3d
    set_y=> pd3d_set_y_datafplot_core::plot_data_3d
    set_z=> pd3d_set_z_datafplot_core::plot_data_3d
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1plot__label-members.html b/docs/html/typefplot__core_1_1plot__label-members.html deleted file mode 100644 index 24205a0..0000000 --- a/docs/html/typefplot__core_1_1plot__label-members.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::plot_label Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_label, including all inherited members.

    - - - - - - - - - - - - - - -
    get_angle=> lbl_get_angle (defined in fplot_core::plot_label)fplot_core::plot_label
    get_command_string=> lbl_get_cmd (defined in fplot_core::plot_label)fplot_core::plot_label
    get_is_visible=> lbl_get_is_visible (defined in fplot_core::plot_label)fplot_core::plot_label
    get_position=> lbl_get_position (defined in fplot_core::plot_label)fplot_core::plot_label
    get_text=> lbl_get_txt (defined in fplot_core::plot_label)fplot_core::plot_label
    m_anglefplot_core::plot_labelprivate
    m_positionfplot_core::plot_labelprivate
    m_textfplot_core::plot_labelprivate
    m_visiblefplot_core::plot_labelprivate
    set_angle=> lbl_set_angle (defined in fplot_core::plot_label)fplot_core::plot_label
    set_is_visible=> lbl_set_is_visible (defined in fplot_core::plot_label)fplot_core::plot_label
    set_position=> lbl_set_position (defined in fplot_core::plot_label)fplot_core::plot_label
    set_text=> lbl_set_txt (defined in fplot_core::plot_label)fplot_core::plot_label
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1plot__object-members.html b/docs/html/typefplot__core_1_1plot__object-members.html deleted file mode 100644 index 9102def..0000000 --- a/docs/html/typefplot__core_1_1plot__object-members.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::plot_object Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::plot_object, including all inherited members.

    - - -
    get_command_stringfplot_core::plot_object
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1png__terminal-members.html b/docs/html/typefplot__core_1_1png__terminal-members.html deleted file mode 100644 index 0bc8cd8..0000000 --- a/docs/html/typefplot__core_1_1png__terminal-members.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::png_terminal Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::png_terminal, including all inherited members.

    - - - - - - - - - - - - - - - - - - - -
    get_command_string=> png_get_command_stringfplot_core::png_terminal
    get_filename=> png_get_filenamefplot_core::png_terminal
    get_font_name=> term_get_font_namefplot_core::terminal
    get_font_size=> term_get_font_sizefplot_core::terminal
    get_id_string=> png_get_term_stringfplot_core::png_terminal
    get_plot_window_number=> term_get_plot_window_numberfplot_core::terminal
    get_title=> term_get_titlefplot_core::terminal
    get_window_height=> term_get_window_heightfplot_core::terminal
    get_window_width=> term_get_window_widthfplot_core::terminal
    m_fnamefplot_core::png_terminalprivate
    m_idfplot_core::png_terminalprivate
    set_filename=> png_set_filenamefplot_core::png_terminal
    set_font_name=> term_set_font_namefplot_core::terminal
    set_font_size=> term_set_font_sizefplot_core::terminal
    set_plot_window_number=> term_set_plot_window_numberfplot_core::terminal
    set_title=> term_set_titlefplot_core::terminal
    set_window_height=> term_set_window_heightfplot_core::terminal
    set_window_width=> term_set_window_widthfplot_core::terminal
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1qt__terminal-members.html b/docs/html/typefplot__core_1_1qt__terminal-members.html deleted file mode 100644 index 03b3ff9..0000000 --- a/docs/html/typefplot__core_1_1qt__terminal-members.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::qt_terminal Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::qt_terminal, including all inherited members.

    - - - - - - - - - - - - - - - - -
    get_command_string=> term_get_command_stringfplot_core::terminal
    get_font_name=> term_get_font_namefplot_core::terminal
    get_font_size=> term_get_font_sizefplot_core::terminal
    get_id_string=> qt_get_term_stringfplot_core::qt_terminal
    get_plot_window_number=> term_get_plot_window_numberfplot_core::terminal
    get_title=> term_get_titlefplot_core::terminal
    get_window_height=> term_get_window_heightfplot_core::terminal
    get_window_width=> term_get_window_widthfplot_core::terminal
    m_idfplot_core::qt_terminalprivate
    set_font_name=> term_set_font_namefplot_core::terminal
    set_font_size=> term_set_font_sizefplot_core::terminal
    set_plot_window_number=> term_set_plot_window_numberfplot_core::terminal
    set_title=> term_set_titlefplot_core::terminal
    set_window_height=> term_set_window_heightfplot_core::terminal
    set_window_width=> term_set_window_widthfplot_core::terminal
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1rainbow__colormap-members.html b/docs/html/typefplot__core_1_1rainbow__colormap-members.html deleted file mode 100644 index 3fe5d5c..0000000 --- a/docs/html/typefplot__core_1_1rainbow__colormap-members.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::rainbow_colormap Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::rainbow_colormap, including all inherited members.

    - - - -
    get_color_string=> rcm_get_clrfplot_core::rainbow_colormap
    get_command_string=> cm_get_cmdfplot_core::colormap
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1scatter__plot__data-members.html b/docs/html/typefplot__core_1_1scatter__plot__data-members.html deleted file mode 100644 index dc539bd..0000000 --- a/docs/html/typefplot__core_1_1scatter__plot__data-members.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::scatter_plot_data Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::scatter_plot_data, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    get_axes_stringfplot_core::scatter_plot_data
    get_command_string=> spd_get_cmdfplot_core::scatter_plot_data
    get_countfplot_core::scatter_plot_data
    get_data_stringfplot_core::plot_data
    get_draw_line=> spd_get_draw_linefplot_core::scatter_plot_data
    get_draw_markers=> spd_get_draw_markersfplot_core::scatter_plot_data
    get_line_color=> spd_get_line_colorfplot_core::scatter_plot_data
    get_line_style=> spd_get_line_stylefplot_core::scatter_plot_data
    get_line_width=> spd_get_line_widthfplot_core::scatter_plot_data
    get_marker_frequency=> spd_get_marker_frequencyfplot_core::scatter_plot_data
    get_marker_scaling=> spd_get_marker_scalingfplot_core::scatter_plot_data
    get_marker_style=> spd_get_marker_stylefplot_core::scatter_plot_data
    get_name=> pd_get_namefplot_core::plot_data
    get_use_auto_color=> spd_get_use_auto_colorsfplot_core::scatter_plot_data
    get_xfplot_core::scatter_plot_data
    get_yfplot_core::scatter_plot_data
    m_drawlinefplot_core::scatter_plot_dataprivate
    m_drawmarkersfplot_core::scatter_plot_dataprivate
    m_linecolorfplot_core::scatter_plot_dataprivate
    m_linestylefplot_core::scatter_plot_dataprivate
    m_linewidthfplot_core::scatter_plot_dataprivate
    m_markerfrequencyfplot_core::scatter_plot_dataprivate
    m_markersizefplot_core::scatter_plot_dataprivate
    m_markertypefplot_core::scatter_plot_dataprivate
    m_useautocolorfplot_core::scatter_plot_dataprivate
    set_draw_line=> spd_set_draw_linefplot_core::scatter_plot_data
    set_draw_markers=> spd_set_draw_markersfplot_core::scatter_plot_data
    set_line_color=> spd_set_line_colorfplot_core::scatter_plot_data
    set_line_style=> spd_set_line_stylefplot_core::scatter_plot_data
    set_line_width=> spd_set_line_widthfplot_core::scatter_plot_data
    set_marker_frequency=> spd_set_marker_frequencyfplot_core::scatter_plot_data
    set_marker_scaling=> spd_set_marker_scalingfplot_core::scatter_plot_data
    set_marker_style=> spd_set_marker_stylefplot_core::scatter_plot_data
    set_name=> pd_set_namefplot_core::plot_data
    set_use_auto_color=> spd_set_use_auto_colorsfplot_core::scatter_plot_data
    set_xfplot_core::scatter_plot_data
    set_yfplot_core::scatter_plot_data
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1surface__plot-members.html b/docs/html/typefplot__core_1_1surface__plot-members.html deleted file mode 100644 index a68b818..0000000 --- a/docs/html/typefplot__core_1_1surface__plot-members.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::surface_plot Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::surface_plot, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    clear_all=> plt_clear_allfplot_core::plot
    clear_all_labels=> plt_clear_labels (defined in fplot_core::plot)fplot_core::plot
    draw=> plt_drawfplot_core::plot
    free_resources=> plt_clean_upfplot_core::plot
    get=> plt_getfplot_core::plot
    get_allow_smoothing=> surf_get_smoothfplot_core::surface_plot
    get_azimuth=> p3d_get_azimuthfplot_core::plot_3d
    get_colormap=> surf_get_colormapfplot_core::surface_plot
    get_command_string=> surf_get_cmdfplot_core::surface_plot
    get_count=> plt_get_countfplot_core::plot
    get_draw_border=> plt_get_draw_borderfplot_core::plot
    get_elevation=> p3d_get_elevationfplot_core::plot_3d
    get_font_name=> plt_get_fontfplot_core::plot
    get_font_size=> plt_get_font_sizefplot_core::plot
    get_label=> plt_get_label (defined in fplot_core::plot)fplot_core::plot
    get_label_count=> plt_get_label_count (defined in fplot_core::plot)fplot_core::plot
    get_legend=> plt_get_legendfplot_core::plot
    get_light_intensity=> surf_get_light_intensityfplot_core::surface_plot
    get_show_colorbar=> surf_get_show_colorbarfplot_core::surface_plot
    get_show_contours=> surf_get_show_contoursfplot_core::surface_plot
    get_show_gridlines=> plt_get_show_gridfplot_core::plot
    get_show_hidden=> surf_get_show_hiddenfplot_core::surface_plot
    get_specular_intensity=> surf_get_specular_intensityfplot_core::surface_plot
    get_terminal=> plt_get_termfplot_core::plot
    get_tics_inward=> plt_get_tics_infplot_core::plot
    get_title=> plt_get_titlefplot_core::plot
    get_use_lighting=> surf_get_use_lightingfplot_core::surface_plot
    get_x_axis=> p3d_get_x_axisfplot_core::plot_3d
    get_y_axis=> p3d_get_y_axisfplot_core::plot_3d
    get_z_axis=> p3d_get_z_axisfplot_core::plot_3d
    get_z_intersect_xy=> p3d_get_z_axis_intersectfplot_core::plot_3d
    initialize=> surf_initfplot_core::surface_plot
    is_title_defined=> plt_has_titlefplot_core::plot
    m_colormapfplot_core::surface_plotprivate
    m_contourfplot_core::surface_plotprivate
    m_lightintensityfplot_core::surface_plotprivate
    m_showcolorbarfplot_core::surface_plotprivate
    m_showhiddenfplot_core::surface_plotprivate
    m_smoothfplot_core::surface_plotprivate
    m_specularfplot_core::surface_plotprivate
    m_uselightingfplot_core::surface_plotprivate
    pop=> plt_pop_datafplot_core::plot
    pop_label=> plt_pop_label (defined in fplot_core::plot)fplot_core::plot
    push=> plt_push_datafplot_core::plot
    push_label=> plt_push_label (defined in fplot_core::plot)fplot_core::plot
    save_file=> plt_savefplot_core::plot
    set=> plt_setfplot_core::plot
    set_allow_smoothing=> surf_set_smoothfplot_core::surface_plot
    set_azimuth=> p3d_set_azimuthfplot_core::plot_3d
    set_colormap=> surf_set_colormapfplot_core::surface_plot
    set_draw_border=> plt_set_draw_borderfplot_core::plot
    set_elevation=> p3d_set_elevationfplot_core::plot_3d
    set_font_name=> plt_set_fontfplot_core::plot
    set_font_size=> plt_set_font_sizefplot_core::plot
    set_label=> plt_set_label (defined in fplot_core::plot)fplot_core::plot
    set_light_intensity=> surf_set_light_intensityfplot_core::surface_plot
    set_show_colorbar=> surf_set_show_colorbarfplot_core::surface_plot
    set_show_contours=> surf_set_show_contoursfplot_core::surface_plot
    set_show_gridlines=> plt_set_show_gridfplot_core::plot
    set_show_hidden=> surf_set_show_hiddenfplot_core::surface_plot
    set_specular_intensity=> surf_set_specular_intensityfplot_core::surface_plot
    set_tics_inward=> plt_set_tics_infplot_core::plot
    set_title=> plt_set_titlefplot_core::plot
    set_use_lighting=> surf_set_use_lightingfplot_core::surface_plot
    set_z_intersect_xy=> p3d_set_z_axis_intersectfplot_core::plot_3d
    surf_clean_upfplot_core::surface_plotprivate
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1surface__plot__data-members.html b/docs/html/typefplot__core_1_1surface__plot__data-members.html deleted file mode 100644 index e6ebb6f..0000000 --- a/docs/html/typefplot__core_1_1surface__plot__data-members.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - - - - - - diff --git a/docs/html/typefplot__core_1_1terminal-members.html b/docs/html/typefplot__core_1_1terminal-members.html deleted file mode 100644 index 0de4471..0000000 --- a/docs/html/typefplot__core_1_1terminal-members.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::terminal Member List
    -
    - -
    - - - - diff --git a/docs/html/typefplot__core_1_1windows__terminal-members.html b/docs/html/typefplot__core_1_1windows__terminal-members.html deleted file mode 100644 index d46f91f..0000000 --- a/docs/html/typefplot__core_1_1windows__terminal-members.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::windows_terminal Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::windows_terminal, including all inherited members.

    - - - - - - - - - - - - - - - - -
    get_command_string=> term_get_command_stringfplot_core::terminal
    get_font_name=> term_get_font_namefplot_core::terminal
    get_font_size=> term_get_font_sizefplot_core::terminal
    get_id_string=> wt_get_term_stringfplot_core::windows_terminal
    get_plot_window_number=> term_get_plot_window_numberfplot_core::terminal
    get_title=> term_get_titlefplot_core::terminal
    get_window_height=> term_get_window_heightfplot_core::terminal
    get_window_width=> term_get_window_widthfplot_core::terminal
    m_idfplot_core::windows_terminalprivate
    set_font_name=> term_set_font_namefplot_core::terminal
    set_font_size=> term_set_font_sizefplot_core::terminal
    set_plot_window_number=> term_set_plot_window_numberfplot_core::terminal
    set_title=> term_set_titlefplot_core::terminal
    set_window_height=> term_set_window_heightfplot_core::terminal
    set_window_width=> term_set_window_widthfplot_core::terminal
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1wxt__terminal-members.html b/docs/html/typefplot__core_1_1wxt__terminal-members.html deleted file mode 100644 index 403f464..0000000 --- a/docs/html/typefplot__core_1_1wxt__terminal-members.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::wxt_terminal Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::wxt_terminal, including all inherited members.

    - - - - - - - - - - - - - - - - -
    get_command_string=> term_get_command_stringfplot_core::terminal
    get_font_name=> term_get_font_namefplot_core::terminal
    get_font_size=> term_get_font_sizefplot_core::terminal
    get_id_string=> wxt_get_term_stringfplot_core::wxt_terminal
    get_plot_window_number=> term_get_plot_window_numberfplot_core::terminal
    get_title=> term_get_titlefplot_core::terminal
    get_window_height=> term_get_window_heightfplot_core::terminal
    get_window_width=> term_get_window_widthfplot_core::terminal
    m_idfplot_core::wxt_terminalprivate
    set_font_name=> term_set_font_namefplot_core::terminal
    set_font_size=> term_set_font_sizefplot_core::terminal
    set_plot_window_number=> term_set_plot_window_numberfplot_core::terminal
    set_title=> term_set_titlefplot_core::terminal
    set_window_height=> term_set_window_heightfplot_core::terminal
    set_window_width=> term_set_window_widthfplot_core::terminal
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1x__axis-members.html b/docs/html/typefplot__core_1_1x__axis-members.html deleted file mode 100644 index 1650565..0000000 --- a/docs/html/typefplot__core_1_1x__axis-members.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::x_axis Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::x_axis, including all inherited members.

    - - - - - - - - - - - - - - - - - -
    get_autoscale=> pa_get_autoscalefplot_core::plot_axis
    get_command_string=> pa_get_cmd_stringfplot_core::plot_axis
    get_id_string=> xa_get_idfplot_core::x_axis
    get_is_log_scaled=> pa_get_log_scalefplot_core::plot_axis
    get_limits=> pa_get_axis_limitsfplot_core::plot_axis
    get_title=> pa_get_titlefplot_core::plot_axis
    get_zero_axis=> pa_get_zero_axisfplot_core::plot_axis
    get_zero_axis_line_width=> pa_get_zero_axis_widthfplot_core::plot_axis
    is_title_defined=> pa_has_titlefplot_core::plot_axis
    m_idfplot_core::x_axisprivate
    set_autoscale=> pa_set_autoscalefplot_core::plot_axis
    set_is_log_scaled=> pa_set_log_scalefplot_core::plot_axis
    set_limits=> pa_set_axis_limitsfplot_core::plot_axis
    set_title=> pa_set_titlefplot_core::plot_axis
    set_zero_axis=> pa_set_zero_axisfplot_core::plot_axis
    set_zero_axis_line_width=> pa_set_zero_axis_widthfplot_core::plot_axis
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1y2__axis-members.html b/docs/html/typefplot__core_1_1y2__axis-members.html deleted file mode 100644 index 8ba4920..0000000 --- a/docs/html/typefplot__core_1_1y2__axis-members.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::y2_axis Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::y2_axis, including all inherited members.

    - - - - - - - - - - - - - - - - - -
    get_autoscale=> pa_get_autoscalefplot_core::plot_axis
    get_command_string=> pa_get_cmd_stringfplot_core::plot_axis
    get_id_string=> y2a_get_idfplot_core::y2_axis
    get_is_log_scaled=> pa_get_log_scalefplot_core::plot_axis
    get_limits=> pa_get_axis_limitsfplot_core::plot_axis
    get_title=> pa_get_titlefplot_core::plot_axis
    get_zero_axis=> pa_get_zero_axisfplot_core::plot_axis
    get_zero_axis_line_width=> pa_get_zero_axis_widthfplot_core::plot_axis
    is_title_defined=> pa_has_titlefplot_core::plot_axis
    m_idfplot_core::y2_axisprivate
    set_autoscale=> pa_set_autoscalefplot_core::plot_axis
    set_is_log_scaled=> pa_set_log_scalefplot_core::plot_axis
    set_limits=> pa_set_axis_limitsfplot_core::plot_axis
    set_title=> pa_set_titlefplot_core::plot_axis
    set_zero_axis=> pa_set_zero_axisfplot_core::plot_axis
    set_zero_axis_line_width=> pa_set_zero_axis_widthfplot_core::plot_axis
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1y__axis-members.html b/docs/html/typefplot__core_1_1y__axis-members.html deleted file mode 100644 index a85581f..0000000 --- a/docs/html/typefplot__core_1_1y__axis-members.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::y_axis Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::y_axis, including all inherited members.

    - - - - - - - - - - - - - - - - - -
    get_autoscale=> pa_get_autoscalefplot_core::plot_axis
    get_command_string=> pa_get_cmd_stringfplot_core::plot_axis
    get_id_string=> ya_get_idfplot_core::y_axis
    get_is_log_scaled=> pa_get_log_scalefplot_core::plot_axis
    get_limits=> pa_get_axis_limitsfplot_core::plot_axis
    get_title=> pa_get_titlefplot_core::plot_axis
    get_zero_axis=> pa_get_zero_axisfplot_core::plot_axis
    get_zero_axis_line_width=> pa_get_zero_axis_widthfplot_core::plot_axis
    is_title_defined=> pa_has_titlefplot_core::plot_axis
    m_idfplot_core::y_axisprivate
    set_autoscale=> pa_set_autoscalefplot_core::plot_axis
    set_is_log_scaled=> pa_set_log_scalefplot_core::plot_axis
    set_limits=> pa_set_axis_limitsfplot_core::plot_axis
    set_title=> pa_set_titlefplot_core::plot_axis
    set_zero_axis=> pa_set_zero_axisfplot_core::plot_axis
    set_zero_axis_line_width=> pa_set_zero_axis_widthfplot_core::plot_axis
    -
    - - - - diff --git a/docs/html/typefplot__core_1_1z__axis-members.html b/docs/html/typefplot__core_1_1z__axis-members.html deleted file mode 100644 index 9f43dd9..0000000 --- a/docs/html/typefplot__core_1_1z__axis-members.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -fplot: Member List - - - - - - - - - - - - - - - -
    -
    - - - - - - -
    -
    fplot -  1.2.0 -
    -
    A Fortran library providing a convenient interface for plotting with Gnuplot.
    -
    -
    - - - - - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    fplot_core::z_axis Member List
    -
    -
    - -

    This is the complete list of members for fplot_core::z_axis, including all inherited members.

    - - - - - - - - - - - - - - - - - -
    get_autoscale=> pa_get_autoscalefplot_core::plot_axis
    get_command_string=> pa_get_cmd_stringfplot_core::plot_axis
    get_id_string=> za_get_idfplot_core::z_axis
    get_is_log_scaled=> pa_get_log_scalefplot_core::plot_axis
    get_limits=> pa_get_axis_limitsfplot_core::plot_axis
    get_title=> pa_get_titlefplot_core::plot_axis
    get_zero_axis=> pa_get_zero_axisfplot_core::plot_axis
    get_zero_axis_line_width=> pa_get_zero_axis_widthfplot_core::plot_axis
    is_title_defined=> pa_has_titlefplot_core::plot_axis
    m_idfplot_core::z_axisprivate
    set_autoscale=> pa_set_autoscalefplot_core::plot_axis
    set_is_log_scaled=> pa_set_log_scalefplot_core::plot_axis
    set_limits=> pa_set_axis_limitsfplot_core::plot_axis
    set_title=> pa_set_titlefplot_core::plot_axis
    set_zero_axis=> pa_set_zero_axisfplot_core::plot_axis
    set_zero_axis_line_width=> pa_set_zero_axis_widthfplot_core::plot_axis
    -
    - - - - diff --git a/docs/html/vector_plot_1.png b/docs/html/vector_plot_1.png deleted file mode 100644 index e8dc4ac..0000000 Binary files a/docs/html/vector_plot_1.png and /dev/null differ diff --git a/docs/html/vector_plot_2.png b/docs/html/vector_plot_2.png deleted file mode 100644 index 60fcd39..0000000 Binary files a/docs/html/vector_plot_2.png and /dev/null differ diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index c2c2227..fa76007 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,144 +1,140 @@ # Example 1 -add_executable(fplot_2d_1 fplot_2d_1.f90) -target_link_libraries(fplot_2d_1 fplot) +add_executable(generic_2d_plot generic_2d_plot.f90) +target_link_libraries(generic_2d_plot fplot) # Example 2 -add_executable(fplot_2d_2 fplot_2d_2.f90) -target_link_libraries(fplot_2d_2 fplot) +add_executable(zero_axis_example zero_axis_example.f90) +target_link_libraries(zero_axis_example fplot) # Example 3 -add_executable(fplot_png_1 fplot_png_1.f90) -target_link_libraries(fplot_png_1 fplot) +add_executable(generic_3d_plot generic_3d_plot.f90) +target_link_libraries(generic_3d_plot fplot) # Example 4 -add_executable(fplot_3d_1 fplot_3d_1.f90) -target_link_libraries(fplot_3d_1 fplot) +add_executable(wireframe_surface_example wireframe_surface_example.f90) +target_link_libraries(wireframe_surface_example fplot) # Example 5 -add_executable(fplot_surf_1 fplot_surf_1.f90) -target_link_libraries(fplot_surf_1 fplot) +add_executable(png_plot_example png_plot_example.f90) +target_link_libraries(png_plot_example fplot) # Example 6 -add_executable(fplot_2d_3 fplot_2d_3.f90) -target_link_libraries(fplot_2d_3 fplot) +add_executable(latex_plot_example latex_plot_example.f90) +target_link_libraries(latex_plot_example fplot) # Example 7 -add_executable(fplot_2d_4 fplot_2d_4.f90) -target_link_libraries(fplot_2d_4 fplot) +add_executable(png_plot_example_2 png_plot_example_2.f90) +target_link_libraries(png_plot_example_2 fplot) # Example 8 -add_executable(fplot_2d_5 fplot_2d_5.f90) -target_link_libraries(fplot_2d_5 fplot) +add_executable(save_to_file_example save_to_file_example.f90) +target_link_libraries(save_to_file_example fplot) # Example 9 -add_executable(fplot_2d_6 fplot_2d_6.f90) -target_link_libraries(fplot_2d_6 fplot) +add_executable(plot_label_example plot_label_example.f90) +target_link_libraries(plot_label_example fplot) # Example 10 -add_executable(fplot_2d_7 fplot_2d_7.f90) -target_link_libraries(fplot_2d_7 fplot) +add_executable(secondary_y_axis_example secondary_y_axis_example.f90) +target_link_libraries(secondary_y_axis_example fplot) # Example 11 -add_executable(fplot_2d_8 fplot_2d_8.f90) -target_link_libraries(fplot_2d_8 fplot) +add_executable(surface_plot_example surface_plot_example.f90) +target_link_libraries(surface_plot_example fplot) # Example 12 -add_executable(fplot_surf_2 fplot_surf_2.f90) -target_link_libraries(fplot_surf_2 fplot) +add_executable(surface_plot_example_2 surface_plot_example_2.f90) +target_link_libraries(surface_plot_example_2 fplot) # Example 13 -add_executable(fplot_surf_3 fplot_surf_3.f90) -target_link_libraries(fplot_surf_3 fplot) +add_executable(multiplot_example_1 multiplot_example_1.f90) +target_link_libraries(multiplot_example_1 fplot) # Example 14 -add_executable(fplot_multi_1 fplot_multi_1.f90) -target_link_libraries(fplot_multi_1 fplot) +add_executable(multiplot_example_2 multiplot_example_2.f90) +target_link_libraries(multiplot_example_2 fplot) # Example 15 -add_executable(fplot_multi_2 fplot_multi_2.f90) -target_link_libraries(fplot_multi_2 fplot) +add_executable(log_scaling_example log_scaling_example.f90) +target_link_libraries(log_scaling_example fplot) # Example 16 -add_executable(fplot_log_1 fplot_log_1.f90) -target_link_libraries(fplot_log_1 fplot) +add_executable(multiplot_save_to_file_example multiplot_save_to_file_example.f90) +target_link_libraries(multiplot_save_to_file_example fplot) # Example 17 -add_executable(fplot_multi_3 fplot_multi_3.f90) -target_link_libraries(fplot_multi_3 fplot) +add_executable(error_bar_example error_bar_example.f90) +target_link_libraries(error_bar_example fplot) # Example 18 -add_executable(fplot_err_1 fplot_err_1.f90) -target_link_libraries(fplot_err_1 fplot) +add_executable(clear_plot_example clear_plot_example.f90) +target_link_libraries(clear_plot_example fplot) # Example 19 -add_executable(fplot_clear_1 fplot_clear_1.f90) -target_link_libraries(fplot_clear_1 fplot) +add_executable(triangulation_2d_example triangulation_2d_example.f90) +target_link_libraries(triangulation_2d_example fplot) # Example 20 -add_executable(fplot_d2d_1 fplot_d2d_1.f90) -target_link_libraries(fplot_d2d_1 fplot) +add_executable(triangle_mesh_surface_example triangle_mesh_surface_example.f90) +target_link_libraries(triangle_mesh_surface_example fplot) # Example 21 -add_executable(fplot_tri_surf_1 fplot_tri_surf_1.f90) -target_link_libraries(fplot_tri_surf_1 fplot) +add_executable(triangulation_2d_location_example triangulation_2d_location_example.f90) +target_link_libraries(triangulation_2d_location_example fplot) # Example 22 -add_executable(fplot_d2d_2 fplot_d2d_2.f90) -target_link_libraries(fplot_d2d_2 fplot) +add_executable(data_dependent_colors_2d data_dependent_colors_2d.f90) +target_link_libraries(data_dependent_colors_2d fplot) # Example 23 -add_executable(fplot_2d_clr_1 fplot_2d_clr_1.f90) -target_link_libraries(fplot_2d_clr_1 fplot) +add_executable(data_dependent_colors_3d data_dependent_colors_3d.f90) +target_link_libraries(data_dependent_colors_3d fplot) # Example 24 -add_executable(fplot_3d_clr_1 fplot_3d_clr_1.f90) -target_link_libraries(fplot_3d_clr_1 fplot) +add_executable(vector_plot_example vector_plot_example.f90) +target_link_libraries(vector_plot_example fplot) # Example 25 -add_executable(fplot_vector_1 fplot_vector_1.f90) -target_link_libraries(fplot_vector_1 fplot) +add_executable(colored_vector_plot_example colored_vector_plot_example.f90) +target_link_libraries(colored_vector_plot_example fplot) # Example 26 -add_executable(fplot_vector_2 fplot_vector_2.f90) -target_link_libraries(fplot_vector_2 fplot) +add_executable(polar_plot_example polar_plot_example.f90) +target_link_libraries(polar_plot_example fplot) # Example 27 -add_executable(fplot_polar_1 fplot_polar_1.f90) -target_link_libraries(fplot_polar_1 fplot) +add_executable(square_axis_example square_axis_example.f90) +target_link_libraries(square_axis_example fplot) # Example 28 -add_executable(fplot_2d_9 fplot_2d_9.f90) -target_link_libraries(fplot_2d_9 fplot) +add_executable(filled_curve_example filled_curve_example.f90) +target_link_libraries(filled_curve_example fplot) # Example 29 -add_executable(fplot_fill_1 fplot_fill_1.f90) -target_link_libraries(fplot_fill_1 fplot) +add_executable(fill_between_curves_example fill_between_curves_example.f90) +target_link_libraries(fill_between_curves_example fplot) # Example 30 -add_executable(fplot_fill_2 fplot_fill_2.f90) -target_link_libraries(fplot_fill_2 fplot) +add_executable(histogram_example histogram_example.f90) +target_link_libraries(histogram_example fplot) # Example 31 -add_executable(fplot_histogram_1 fplot_histogram_1.f90) -target_link_libraries(fplot_histogram_1 fplot) +add_executable(legend_example legend_example.f90) +target_link_libraries(legend_example fplot) # Example 32 -add_executable(fplot_legend_1 fplot_legend_1.f90) -target_link_libraries(fplot_legend_1 fplot) +add_executable(arrow_example arrow_example.f90) +target_link_libraries(arrow_example fplot) -# Example 33 - Arrows (2D) -add_executable(fplot_2d_arrow fplot_2d_arrow.f90) -target_link_libraries(fplot_2d_arrow fplot) +# Example 33 +add_executable(custom_colormap_example custom_colormap_example.f90) +target_link_libraries(custom_colormap_example fplot) +target_link_libraries(custom_colormap_example forcolormap) -# Example 34 - Custom Colormap -add_executable(fplot_custom_colormap fplot_custom_colormap.f90) -target_link_libraries(fplot_custom_colormap fplot) -target_link_libraries(fplot_custom_colormap forcolormap) +# Example 34 +add_executable(variable_point_size_2d_example variable_point_size_2d_example.f90) +target_link_libraries(variable_point_size_2d_example fplot) -# Example 35 - Variable Point Size -add_executable(fplot_variable_point_size fplot_variable_point_size.f90) -target_link_libraries(fplot_variable_point_size fplot) - -# Example 36 - 3D Variable Point Size -add_executable(fplot_3d_variable_point_size fplot_3d_variable_point_size.f90) -target_link_libraries(fplot_3d_variable_point_size fplot) \ No newline at end of file +# Example 35 +add_executable(variable_point_size_3d_example variable_point_size_3d_example.f90) +target_link_libraries(variable_point_size_3d_example fplot) \ No newline at end of file diff --git a/examples/fplot_2d_arrow.f90 b/examples/arrow_example.f90 similarity index 100% rename from examples/fplot_2d_arrow.f90 rename to examples/arrow_example.f90 diff --git a/examples/clear_plot_example.f90 b/examples/clear_plot_example.f90 new file mode 100644 index 0000000..61266f8 --- /dev/null +++ b/examples/clear_plot_example.f90 @@ -0,0 +1,34 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Parameters + integer(int32), parameter :: n = 1000 + + ! Local Variables + real(real64) :: x(n), y1(n), y2(n) + type(plot_2d) :: plt + type(plot_data_2d) :: d1, d2 + + ! Initialization + x = linspace(0.0d0, 10.0d0, n) + y1 = sin(x) + y2 = abs(sin(x)) + + ! Plot the data + call plt%initialize() + call d1%set_name("sin(x)") + call d1%define_data(x, y1) + call plt%push(d1) + call plt%draw() + + ! Clear the first plot + call plt%clear_all() + + ! Build the second plot + call d2%set_name("|sin(x)|") + call d2%define_data(x, y2) + call plt%push(d2) + call plt%draw() +end program \ No newline at end of file diff --git a/examples/colored_vector_plot_example.f90 b/examples/colored_vector_plot_example.f90 new file mode 100644 index 0000000..ad8de45 --- /dev/null +++ b/examples/colored_vector_plot_example.f90 @@ -0,0 +1,72 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Local Variables + type(plot_2d) :: plt + type(vector_field_plot_data) :: ds1 + class(plot_axis), pointer :: xAxis, yAxis + type(rainbow_colormap) :: map + real(real64), allocatable, dimension(:,:,:) :: pts + real(real64), allocatable, dimension(:,:) :: dx, dy + real(real64) :: dxdt(2) + integer(int32) :: i, j + + ! Create a grid of points defining the vector locations + pts = meshgrid( & + linspace(-2.0d0, 2.0d0, 20), & + linspace(-5.0d0, 5.0d0, 20)) + + ! Compute the values of each derivative + allocate(dx(size(pts, 1), size(pts, 2))) + allocate(dy(size(pts, 1), size(pts, 2))) + do j = 1, size(pts, 2) + do i = 1, size(pts, 1) + call eqn([pts(i,j,1), pts(i,j,2)], dxdt) + dx(i,j) = dxdt(1) + dy(i,j) = dxdt(2) + end do + end do + + ! Define arrow properties + call ds1%set_arrow_size(0.1d0) ! 1.0 by default + call ds1%set_fill_arrow(.true.) ! .false. by default + + ! Create the plot + call plt%initialize() + call plt%set_font_size(14) + xAxis => plt%get_x_axis() + yAxis => plt%get_y_axis() + + ! Define axis labels + call xAxis%set_title("x(t)") + call yAxis%set_title("dx/dt") + + ! Set plot style information + call xAxis%set_zero_axis(.true.) + call yAxis%set_zero_axis(.true.) + call plt%set_draw_border(.false.) + call plt%set_show_gridlines(.false.) + + ! Define the colormap + call plt%set_colormap(map) + + ! Add the data to the plot - color by the magnitude of gradient + call ds1%define_data(pts(:,:,1), pts(:,:,2), dx, dy, sqrt(dx**2 + dy**2)) + call plt%push(ds1) + + call plt%draw() +contains + ! Van der Pol Equation + ! x" - mu * (1 - x^2) * x' + x = 0 + subroutine eqn(x, dxdt) + real(real64), intent(in) :: x(2) + real(real64), intent(out) :: dxdt(2) + + real(real64), parameter :: mu = 2.0d0 + + dxdt(1) = x(2) + dxdt(2) = mu * (1.0d0 - x(1)**2) * x(2) - x(1) + end subroutine +end program diff --git a/examples/custom_colormap_example.f90 b/examples/custom_colormap_example.f90 new file mode 100644 index 0000000..566c0d7 --- /dev/null +++ b/examples/custom_colormap_example.f90 @@ -0,0 +1,60 @@ +program example + use fplot_core + use iso_fortran_env + use forcolormap, only : colormaps_list + implicit none + + ! Parameters + integer(int32), parameter :: m = 50 + integer(int32), parameter :: n = 50 + + ! Local Variables + real(real64), dimension(m, n, 2), target :: xy + real(real64), pointer, dimension(:,:) :: x, y + real(real64), dimension(m, n) :: z + type(surface_plot) :: plt + type(surface_plot_data) :: d1 + class(plot_axis), pointer :: xAxis, yAxis, zAxis + type(custom_colormap) :: map + type(cmap) :: colors + + ! Set up the colormap + call colors%set("glasgow", -8.0d0, 8.0d0) + call map%set_colormap(colors) + + ! Define the data + xy = meshgrid(linspace(-5.0d0, 5.0d0, n), linspace(-5.0d0, 5.0d0, m)) + x => xy(:,:,1) + y => xy(:,:,2) + + ! Initialize the plot + call plt%initialize() + call plt%set_colormap(map) + + ! Establish lighting + call plt%set_use_lighting(.true.) + + ! Set the orientation of the plot + call plt%set_elevation(20.0d0) + call plt%set_azimuth(30.0d0) + + ! Define titles + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + zAxis => plt%get_z_axis() + call zAxis%set_title("Z Axis") + + ! Define the function to plot + z = sqrt(x**2 + y**2) * sin(x**2 + y**2) + call d1%define_data(x, y, z) + call plt%push(d1) + + ! Draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/examples/data_dependent_colors_2d.f90 b/examples/data_dependent_colors_2d.f90 new file mode 100644 index 0000000..baad8ba --- /dev/null +++ b/examples/data_dependent_colors_2d.f90 @@ -0,0 +1,27 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Parameters + integer(int32), parameter :: npts = 1000 + + ! Local Variables + real(real64) :: x(npts), y(npts) + type(plot_2d) :: plt + type(plot_data_2d) :: ds + type(cool_colormap) :: map + + ! Build the data set + x = linspace(0.0d0, 1.0d1, npts) + y = exp(-0.2 * x) * sin(10.0d0 * x) * cos(5.0d0 * x) + + ! Plot the data set + call plt%initialize() + call plt%set_colormap(map) + call plt%set_font_size(14) + call ds%define_data(x, y, y) + call ds%set_line_width(3.0) + call plt%push(ds) + call plt%draw() +end program diff --git a/examples/data_dependent_colors_3d.f90 b/examples/data_dependent_colors_3d.f90 new file mode 100644 index 0000000..74637a5 --- /dev/null +++ b/examples/data_dependent_colors_3d.f90 @@ -0,0 +1,49 @@ +! fplot_3d_clr_1.f90 + +program example + use, intrinsic :: iso_fortran_env + use fplot_core + implicit none + + ! Parameters + integer(int32), parameter :: n = 1000 + + ! Local Variables + real(real64), dimension(n) :: t, x, y, z + type(plot_3d) :: plt + type(plot_data_3d) :: d1 + class(plot_axis), pointer :: xAxis, yAxis, zAxis + + ! Initialize the plot object + call plt%initialize() + call plt%set_font_size(14) + + ! Define titles + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + zAxis => plt%get_z_axis() + call zAxis%set_title("Z Axis") + + ! Define the data + t = linspace(0.0d0, 10.0d0, n) + x = cos(5.0d0 * t) + y = sin(5.0d0 * t) + z = 2.0d0 * t + + call d1%define_data(x, y, z, x * y) + + ! Set up the data set + call d1%set_line_width(2.0) + + ! Add the data to the plot + call plt%push(d1) + + ! Let GNUPLOT draw the plot + call plt%draw() +end program diff --git a/examples/fplot_err_1.f90 b/examples/error_bar_example.f90 similarity index 100% rename from examples/fplot_err_1.f90 rename to examples/error_bar_example.f90 diff --git a/examples/fplot_fill_2.f90 b/examples/fill_between_curves_example.f90 similarity index 100% rename from examples/fplot_fill_2.f90 rename to examples/fill_between_curves_example.f90 diff --git a/examples/fplot_fill_1.f90 b/examples/filled_curve_example.f90 similarity index 100% rename from examples/fplot_fill_1.f90 rename to examples/filled_curve_example.f90 diff --git a/examples/fplot_2d_1.f90 b/examples/fplot_2d_1.f90 deleted file mode 100644 index f068d87..0000000 --- a/examples/fplot_2d_1.f90 +++ /dev/null @@ -1,64 +0,0 @@ -! fplot_2d_1.f90 - -program example - use, intrinsic :: iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: n = 1000 - - ! Local Variables - real(real64), dimension(n) :: x, y1, y2 - type(plot_2d) :: plt - type(plot_data_2d) :: d1, d2 - class(plot_axis), pointer :: xAxis, yAxis - type(legend), pointer :: leg - - ! Initialize the plot object - call plt%initialize() - - ! Define titles - call plt%set_title("Example Plot") - call plt%set_font_size(14) - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - ! Establish legend properties - leg => plt%get_legend() - call leg%set_is_visible(.true.) - call leg%set_draw_inside_axes(.false.) - call leg%set_horizontal_position(LEGEND_CENTER) - call leg%set_vertical_position(LEGEND_BOTTOM) - call leg%set_draw_border(.false.) - - ! Define the data, and then add it to the plot - x = linspace(0.0d0, 10.0d0, n) - y1 = sin(5.0d0 * x) - y2 = 2.0d0 * cos(2.0d0 * x) - - call d1%define_data(x, y1) - call d2%define_data(x, y2) - - ! Define properties for each data set - call d1%set_name("Data Set 1") - call d1%set_draw_markers(.true.) - call d1%set_marker_frequency(10) - call d1%set_marker_style(MARKER_EMPTY_CIRCLE) - call d1%set_marker_scaling(2.0) - - call d2%set_name("Data Set 2") - call d2%set_line_style(LINE_DASHED) - call d2%set_line_width(2.0) - - ! Add the data sets to the plot - call plt%push(d1) - call plt%push(d2) - - ! Let GNUPLOT draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_2d_2.f90 b/examples/fplot_2d_2.f90 deleted file mode 100644 index ac0bd88..0000000 --- a/examples/fplot_2d_2.f90 +++ /dev/null @@ -1,63 +0,0 @@ -! fplot_2d_2.f90 - -program example - use, intrinsic :: iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: n = 1000 - - ! Local Variables - real(real64), dimension(n) :: x, y1, y2 - type(plot_2d) :: plt - type(plot_data_2d) :: d1, d2 - class(plot_axis), pointer :: xAxis, yAxis - type(legend), pointer :: lgnd - - ! Initialize the plot object - call plt%initialize() - - ! Set plot properties - call plt%set_draw_border(.false.) - call plt%set_show_gridlines(.false.) - - ! Define the legend location - lgnd => plt%get_legend() - call lgnd%set_is_visible(.true.) - call lgnd%set_draw_inside_axes(.false.) - - ! Define titles - call plt%set_title("2D Example Plot 2") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - call xAxis%set_zero_axis(.true.) - call xAxis%set_zero_axis_line_width(1.0) - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - ! Define the data, and then add it to the plot - x = linspace(0.0d0, 10.d0, n) - y1 = sin(5.0d0 * x) - y2 = 2.0d0 * cos(2.0d0 * x) - - call d1%define_data(x, y1) - call d2%define_data(x, y2) - - ! Define properties for each data set - call d1%set_name("Data Set 1") - call d1%set_line_width(1.0) - - call d2%set_name("Data Set 2") - call d2%set_line_style(LINE_DASHED) - call d2%set_line_width(2.0) - - ! Add the data sets to the plot - call plt%push(d1) - call plt%push(d2) - - ! Let GNUPLOT draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_2d_3.f90 b/examples/fplot_2d_3.f90 deleted file mode 100644 index 2611354..0000000 --- a/examples/fplot_2d_3.f90 +++ /dev/null @@ -1,52 +0,0 @@ -! fplot_2d_3.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Local Variables & Parameters - integer(int32), parameter :: npts = 1000 - real(real64), dimension(npts) :: x, y1, y2 - type(plot_2d) :: plt - type(plot_data_2d) :: d1, d2 - class(plot_axis), pointer :: xAxis, yAxis - type(legend), pointer :: leg - - ! Build a data set to plot - x = linspace(0.0d0, 10.0d0, npts) - y1 = sin(x) * cos(x) - y2 = sqrt(x) * sin(x) - - call d1%define_data(x, y1) - call d2%define_data(x, y2) - - ! Set up the plot - call plt%initialize(GNUPLOT_TERMINAL_PNG, "example_plot.png") ! Save to file directly - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - ! Put the legend in the upper left corner of the plot - leg => plt%get_legend() - call leg%set_horizontal_position(LEGEND_LEFT) - call leg%set_vertical_position(LEGEND_TOP) - - ! Set up line color and style properties to better distinguish each data set - call d1%set_name("Data Set 1") - call d1%set_line_color(CLR_BLUE) - - call d2%set_name("Data Set 2") - call d2%set_line_color(CLR_GREEN) - - ! Add the data to the plot - call plt%push(d1) - call plt%push(d2) - - ! Draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_2d_4.f90 b/examples/fplot_2d_4.f90 deleted file mode 100644 index c92c7f3..0000000 --- a/examples/fplot_2d_4.f90 +++ /dev/null @@ -1,61 +0,0 @@ -! fplot_2d_4.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Local Variables & Parameters - integer(int32), parameter :: npts = 1000 - real(real64), dimension(npts) :: x, y1, y2 - type(plot_2d) :: plt - class(terminal), pointer :: term - type(plot_data_2d) :: d1, d2 - class(plot_axis), pointer :: xAxis, yAxis - type(legend), pointer :: leg - - ! Build a data set to plot - x = linspace(0.0d0, 10.0d0, npts) - y1 = sin(x) * cos(x) - y2 = sqrt(x) * sin(x) - - call d1%define_data(x, y1) - call d2%define_data(x, y2) - - ! Set up the plot - call plt%initialize(GNUPLOT_TERMINAL_LATEX) ! Save to file directly - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - ! Put the legend in the upper left corner of the plot - leg => plt%get_legend() - call leg%set_horizontal_position(LEGEND_LEFT) - call leg%set_vertical_position(LEGEND_TOP) - - ! Set up line color and style properties to better distinguish each data set - call d1%set_name("Data Set 1") - call d1%set_line_color(CLR_BLUE) - - call d2%set_name("Data Set 2") - call d2%set_line_color(CLR_GREEN) - - ! Add the data to the plot - call plt%push(d1) - call plt%push(d2) - - ! Define the file to which the plot should be saved - term => plt%get_terminal() - select type (term) - class is (latex_terminal) - print '(A)', "LATEX TERMINAL" - call term%set_filename("example_latex_plot.tex") - end select - - ! Draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_2d_5.f90 b/examples/fplot_2d_5.f90 deleted file mode 100644 index a2b7764..0000000 --- a/examples/fplot_2d_5.f90 +++ /dev/null @@ -1,60 +0,0 @@ -! fplot_2d_5.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Local Variables & Parameters - integer(int32), parameter :: npts = 1000 - real(real64), dimension(npts) :: x, y1, y2 - type(plot_2d) :: plt - class(terminal), pointer :: term - type(plot_data_2d) :: d1, d2 - class(plot_axis), pointer :: xAxis, yAxis - type(legend), pointer :: leg - - ! Build a data set to plot - x = linspace(0.0d0, 10.0d0, npts) - y1 = sin(x) * cos(x) - y2 = sqrt(x) * sin(x) - - call d1%define_data(x, y1) - call d2%define_data(x, y2) - - ! Set up the plot - call plt%initialize(GNUPLOT_TERMINAL_PNG) ! Save to file directly - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - ! Put the legend outside the axes, and remove it's border - leg => plt%get_legend() - call leg%set_draw_inside_axes(.false.) - call leg%set_draw_border(.false.) - - ! Set up line color and style properties to better distinguish each data set - call d1%set_name("Data Set 1") - call d1%set_line_color(CLR_BLUE) - - call d2%set_name("Data Set 2") - call d2%set_line_color(CLR_GREEN) - - ! Add the data to the plot - call plt%push(d1) - call plt%push(d2) - - ! Define the file to which the plot should be saved - term => plt%get_terminal() - select type (term) - class is (png_terminal) - call term%set_filename("example_plot_legend_out.png") - end select - - ! Draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_2d_6.f90 b/examples/fplot_2d_6.f90 deleted file mode 100644 index 386fa10..0000000 --- a/examples/fplot_2d_6.f90 +++ /dev/null @@ -1,41 +0,0 @@ -! fplot_2d_6.f90 - -program example - use fplot_core - use iso_fortran_env - implicit none - - ! Local Variables & Parameters - integer(int32), parameter :: npts = 1000 - real(real64), dimension(npts) :: x, y - type(plot_2d) :: plt - type(plot_data_2d) :: dataset - class(plot_axis), pointer :: xAxis, yAxis - type(legend), pointer :: leg - - ! Build a data set to plot - x = linspace(0.0d0, 10.0d0, npts) - y = exp(-0.5d0 * x) * sin(10.0d0 * x - 0.5d0) - - call dataset%define_data(x, y) - - ! Set up the plot - call plt%initialize() - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - ! Hide the legend - leg => plt%get_legend() - call leg%set_is_visible(.false.) - - ! Add the data to the plot - call plt%push(dataset) - - ! Save the plot to a file that can be opened by GNUPLOT at a later time - call plt%save_file("example_gnuplot_file.plt") -end program \ No newline at end of file diff --git a/examples/fplot_2d_7.f90 b/examples/fplot_2d_7.f90 deleted file mode 100644 index c3f61cd..0000000 --- a/examples/fplot_2d_7.f90 +++ /dev/null @@ -1,51 +0,0 @@ -! fplot_2d_7.f90 - -program example - use fplot_core - use iso_fortran_env - implicit none - - ! Local Variables - integer(int32), parameter :: npts = 1000 - real(real64), dimension(npts) :: x, y - type(plot_2d) :: plt - type(plot_data_2d) :: dataset - class(plot_axis), pointer :: xAxis, yAxis - type(legend), pointer :: leg - type(plot_label) :: lbl - - ! Build a data set - x = linspace(0.0d0, 10.0d0, npts) - y = sin(10.0d0 * x) * sin(0.5d0 * x) - - call dataset%define_data(y) - - ! Define the label - call lbl%set_text("Test Label 1") - call lbl%set_position([600.0, 0.6, 0.0]) - - ! Set up the plot - call plt%initialize() - call plt%set_title("Example Plot") - call plt%set_font_size(14) - call plt%set_show_gridlines(.false.) - - ! Add the label to the plot - call plt%push_label(lbl) - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - ! Hide the legend - leg => plt%get_legend() - call leg%set_is_visible(.false.) - - ! Add the data to the plot - call plt%push(dataset) - - ! Draw - call plt%draw() -end program diff --git a/examples/fplot_2d_8.f90 b/examples/fplot_2d_8.f90 deleted file mode 100644 index 99282c5..0000000 --- a/examples/fplot_2d_8.f90 +++ /dev/null @@ -1,55 +0,0 @@ -! fplot_2d_8.f90 - -program example - use fplot_core - use iso_fortran_env - implicit none - - ! Local Variables - integer(int32), parameter :: npts = 1000 - real(real64), dimension(npts) :: x, y1, y2 - type(plot_2d) :: plt - type(plot_data_2d) :: ds1, ds2 - class(plot_axis), pointer :: xAxis, yAxis, y2Axis - - ! Build a data set - x = linspace(0.0d0, 10.0d0, npts) - y1 = exp(-0.5d0 * x) * abs(sin(x)) - y2 = cos(0.5d0 * x) * sin(10.0d0 * x) - - call ds1%define_data(x, y1) - call ds1%set_name("f(x) = exp(-x / 2) * |sin(x)|") - - call ds2%define_data(x, y2) - call ds2%set_name("f(x) = cos(x / 2) * sin(10 x)") - - ! Make the ds2 line green and dashed - call ds2%set_line_color(CLR_GREEN) - call ds2%set_line_style(LINE_DASHED) - - ! Draw ds2 against the secondary y axis - call ds2%set_draw_against_y2(.true.) - - ! Ensure the plot knows it needs a secondary y axis - call plt%set_use_y2_axis(.true.) - - ! Set up the plot - call plt%initialize() - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - y2Axis => plt%get_y2_axis() - call y2Axis%set_title("Secondary Y Axis") - - ! Add the data to the plot - call plt%push(ds1) - call plt%push(ds2) - - ! Draw - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_2d_9.f90 b/examples/fplot_2d_9.f90 deleted file mode 100644 index c4a294e..0000000 --- a/examples/fplot_2d_9.f90 +++ /dev/null @@ -1,35 +0,0 @@ -! fplot_2d_9.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Local Variables - integer(int32), parameter :: npts = 1000 - real(real64), parameter :: pi = 2.0d0 * acos(0.0d0) - real(real64) :: t(npts), x(npts), y(npts) - type(plot_2d) :: plt - type(plot_data_2d) :: pd - - ! Generate the data - t = linspace(0.0d0, 2.0d0 * pi, npts) - x = cos(t) - y = sin(t) - - ! Set up the plot - call plt%initialize() - call plt%set_font_size(14) - call plt%set_title("Default Settings") - - call pd%define_data(x, y) - call plt%push(pd) - - call plt%draw() - - ! Now show the effects of square axes - call plt%set_axis_equal(.false.) - call plt%set_square_axes(.true.) - call plt%set_title("Square Axes") - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_2d_clr_1.f90 b/examples/fplot_2d_clr_1.f90 deleted file mode 100644 index fdcc910..0000000 --- a/examples/fplot_2d_clr_1.f90 +++ /dev/null @@ -1,29 +0,0 @@ -! fplot_2d_clr_1.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: npts = 1000 - - ! Local Variables - real(real64) :: x(npts), y(npts) - type(plot_2d) :: plt - type(plot_data_2d) :: ds - type(cool_colormap) :: map - - ! Build the data set - x = linspace(0.0d0, 1.0d1, npts) - y = exp(-0.2 * x) * sin(10.0d0 * x) * cos(5.0d0 * x) - - ! Plot the data set - call plt%initialize() - call plt%set_colormap(map) - call plt%set_font_size(14) - call ds%define_data(x, y, y) - call ds%set_line_width(3.0) - call plt%push(ds) - call plt%draw() -end program diff --git a/examples/fplot_3d_1.f90 b/examples/fplot_3d_1.f90 deleted file mode 100644 index 8855594..0000000 --- a/examples/fplot_3d_1.f90 +++ /dev/null @@ -1,49 +0,0 @@ -! fplot_3d_1.f90 - -program example - use, intrinsic :: iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: n = 1000 - - ! Local Variables - real(real64), dimension(n) :: t, x, y, z - type(plot_3d) :: plt - type(plot_data_3d) :: d1 - class(plot_axis), pointer :: xAxis, yAxis, zAxis - - ! Initialize the plot object - call plt%initialize() - - ! Define titles - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - zAxis => plt%get_z_axis() - call zAxis%set_title("Z Axis") - - ! Define the data - t = linspace(0.0d0, 10.0d0, n) - x = cos(5.0d0 * t) - y = sin(5.0d0 * t) - z = 2.0d0 * t - - call d1%define_data(x, y, z) - - ! Set up the data set - call d1%set_line_color(CLR_BLUE) - call d1%set_line_width(2.0) - - ! Add the data to the plot - call plt%push(d1) - - ! Let GNUPLOT draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_3d_clr_1.f90 b/examples/fplot_3d_clr_1.f90 deleted file mode 100644 index 7c8c9a3..0000000 --- a/examples/fplot_3d_clr_1.f90 +++ /dev/null @@ -1,50 +0,0 @@ -! fplot_3d_clr_1.f90 - -program example - use, intrinsic :: iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: n = 1000 - - ! Local Variables - real(real64), dimension(n) :: t, x, y, z - type(plot_3d) :: plt - type(plot_data_3d) :: d1 - class(plot_axis), pointer :: xAxis, yAxis, zAxis - - ! Initialize the plot object - call plt%initialize() - call plt%set_font_size(14) - - ! Define titles - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - zAxis => plt%get_z_axis() - call zAxis%set_title("Z Axis") - - ! Define the data - t = linspace(0.0d0, 10.0d0, n) - x = cos(5.0d0 * t) - y = sin(5.0d0 * t) - z = 2.0d0 * t - - call d1%define_data(x, y, z, x * y) - - ! Set up the data set - call d1%set_line_color(CLR_BLUE) - call d1%set_line_width(2.0) - - ! Add the data to the plot - call plt%push(d1) - - ! Let GNUPLOT draw the plot - call plt%draw() -end program diff --git a/examples/fplot_clear_1.f90 b/examples/fplot_clear_1.f90 deleted file mode 100644 index 53cdfd3..0000000 --- a/examples/fplot_clear_1.f90 +++ /dev/null @@ -1,37 +0,0 @@ -! fplot_clear_1.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: n = 1000 - - ! Local Variables - real(real64) :: x(n), y1(n), y2(n) - type(plot_2d) :: plt - type(plot_data_2d) :: d1, d2 - - ! Initialization - x = linspace(0.0d0, 10.0d0, n) - y1 = sin(x) - y2 = abs(sin(x)) - - ! Plot the data - call plt%initialize() - call d1%set_name("sin(x)") - call d1%define_data(x, y1) - call plt%push(d1) - call plt%draw() - - ! Clear the first plot - call plt%clear_all() - - ! Build the second plot - call d2%set_name("|sin(x)|") - call d2%define_data(x, y2) - call plt%push(d1) - call plt%push(d2) - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_custom_colormap.f90 b/examples/fplot_custom_colormap.f90 deleted file mode 100644 index 390fef1..0000000 --- a/examples/fplot_custom_colormap.f90 +++ /dev/null @@ -1,62 +0,0 @@ -! fplot_surf_2.f90 - -program example - use fplot_core - use iso_fortran_env - use forcolormap, only : colormaps_list - implicit none - - ! Parameters - integer(int32), parameter :: m = 50 - integer(int32), parameter :: n = 50 - - ! Local Variables - real(real64), dimension(m, n, 2), target :: xy - real(real64), pointer, dimension(:,:) :: x, y - real(real64), dimension(m, n) :: z - type(surface_plot) :: plt - type(surface_plot_data) :: d1 - class(plot_axis), pointer :: xAxis, yAxis, zAxis - type(custom_colormap) :: map - type(cmap) :: colors - - ! Set up the colormap - call colors%set("glasgow", -8.0d0, 8.0d0) - call map%set_colormap(colors) - - ! Define the data - xy = meshgrid(linspace(-5.0d0, 5.0d0, n), linspace(-5.0d0, 5.0d0, m)) - x => xy(:,:,1) - y => xy(:,:,2) - - ! Initialize the plot - call plt%initialize() - call plt%set_colormap(map) - - ! Establish lighting - call plt%set_use_lighting(.true.) - - ! Set the orientation of the plot - call plt%set_elevation(20.0d0) - call plt%set_azimuth(30.0d0) - - ! Define titles - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - zAxis => plt%get_z_axis() - call zAxis%set_title("Z Axis") - - ! Define the function to plot - z = sqrt(x**2 + y**2) * sin(x**2 + y**2) - call d1%define_data(x, y, z) - call plt%push(d1) - - ! Draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_d2d_1.f90 b/examples/fplot_d2d_1.f90 deleted file mode 100644 index 0b3736d..0000000 --- a/examples/fplot_d2d_1.f90 +++ /dev/null @@ -1,44 +0,0 @@ -! fplot_d2d_1.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: npts = 1000 - real(real64), parameter :: pi = 2.0d0 * acos(0.0d0) - - ! Local Variables - type(delaunay_tri_2d) :: tri - real(real64) :: x(npts), y(npts), theta(npts), radius(npts) - type(plot_2d) :: plt - type(plot_data_tri_2d) :: ds - - ! Initialization - call random_number(theta) - theta = 2.0d0 * pi * theta - - call random_number(radius) - radius = radius + 0.5d0 - - x = radius * cos(theta) - y = radius * sin(theta) - - ! Create a 2D triangulation from the data - call tri%create(x, y) - - ! Display the number of points and elements - print '(AI0AI0A)', "The triangulation consists of ", & - tri%get_point_count(), " points, and ", tri%get_triangle_count(), & - " triangles." - - ! Plot the triangulation - call plt%initialize() - call plt%set_font_size(14) - - call ds%define_data(tri) - call plt%push(ds) - - call plt%draw() -end program diff --git a/examples/fplot_d2d_2.f90 b/examples/fplot_d2d_2.f90 deleted file mode 100644 index 0515c96..0000000 --- a/examples/fplot_d2d_2.f90 +++ /dev/null @@ -1,75 +0,0 @@ -! fplot_d2d_2.f90 - -program example - use fplot_core - use iso_fortran_env - implicit none - - ! Parameters - integer(int32), parameter :: npts = 1000 - real(real64), parameter :: pi = 2.0d0 * acos(0.0d0) - real(real64), parameter :: xpt = 0.75d0 - real(real64), parameter :: ypt = 0.75d0 - - ! Local Variables - type(delaunay_tri_2d) :: tri - real(real64) :: x(npts), y(npts), theta(npts), radius(npts), & - xtri(3), ytri(3) - integer(int32) :: ind, n1, n2, n3 - integer(int32), allocatable, dimension(:,:) :: indices - type(plot_2d) :: plt - type(plot_data_tri_2d) :: ds - type(plot_data_2d) :: dtri, dpt - - ! Initialization - call random_number(theta) - theta = 2.0d0 * pi * theta - - call random_number(radius) - radius = radius + 0.5d0 - - x = radius * cos(theta) - y = radius * sin(theta) - - ! Create a 2D triangulation from the data - call tri%create(x, y) - - ! Find the index of the triangle containing (xpt, ypt) - ind = tri%find_triangle(xpt, ypt) - if (ind == -1) then - print '(A)', "No triangle was found that included the specified point." - end if - - ! Get the vertices of this triangle - indices = tri%get_indices() - n1 = indices(ind, 1) - n2 = indices(ind, 2) - n3 = indices(ind, 3) - xtri = [x(n1), x(n2), x(n3)] - ytri = [y(n1), y(n2), y(n3)] - - ! Plot the triangulation, the point of interest, and highlight the triangle - call plt%initialize() - call plt%set_font_size(14) - - call ds%define_data(tri) - call plt%push(ds) - - call dtri%define_data(xtri, ytri) - call dtri%set_draw_line(.false.) - call dtri%set_draw_markers(.true.) - call dtri%set_marker_style(MARKER_FILLED_CIRCLE) - call dtri%set_marker_scaling(1.2) - call dtri%set_line_color(CLR_LIME) - call plt%push(dtri) - - call dpt%define_data([xpt], [ypt]) - call dpt%set_draw_line(.false.) - call dpt%set_draw_markers(.true.) - call dpt%set_marker_style(MARKER_X) - call dpt%set_marker_scaling(3.0) - call dpt%set_line_width(2.0) - call plt%push(dpt) - - call plt%draw() -end program diff --git a/examples/fplot_histogram_1.f90 b/examples/fplot_histogram_1.f90 deleted file mode 100644 index 87d3ac9..0000000 --- a/examples/fplot_histogram_1.f90 +++ /dev/null @@ -1,28 +0,0 @@ -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Local Variables - integer(int32), parameter :: n = 5000 - integer(int32), parameter :: nbins = 12 - real(real64) :: x(n), u(n), v(n) - type(plot_2d) :: plt - type(plot_data_histogram) :: pd1 - - ! Initialization - call plt%initialize() - - ! Create some data - call random_number(u) - call random_number(v) - v = v - 1.0d0 - x = u * u - v * v - - ! Plot the data - call pd1%set_bin_count(nbins) ! optiona, but must be done prior to define_data is used - call pd1%define_data(x) - call pd1%set_transparency(0.2) ! optional - for illustration purposes - call plt%push(pd1) - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_legend_1.f90 b/examples/fplot_legend_1.f90 deleted file mode 100644 index 0a9c39c..0000000 --- a/examples/fplot_legend_1.f90 +++ /dev/null @@ -1,44 +0,0 @@ -program example - use fplot_core - use iso_fortran_env - implicit none - - ! Local Variables & Parameters - integer(int32), parameter :: npts = 1000 - real(real64), dimension(npts) :: x, y - type(plot_2d) :: plt - type(plot_data_2d) :: dataset - class(plot_axis), pointer :: xAxis, yAxis - type(legend), pointer :: leg - - ! Build a data set to plot - x = linspace(0.0d0, 10.0d0, npts) - y = exp(-0.5d0 * x) * sin(10.0d0 * x - 0.5d0) - - call dataset%define_data(x, y) - call dataset%set_name("Example") - - ! Set up the plot - call plt%initialize() - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - ! Show the legend - leg => plt%get_legend() - call leg%set_is_visible(.true.) - call leg%set_is_opaque(.false.) - call leg%set_draw_border(.false.) - call leg%set_horizontal_position(LEGEND_LEFT) - call leg%set_vertical_position(LEGEND_CENTER) - - ! Add the data to the plot - call plt%push(dataset) - - ! Draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_log_1.f90 b/examples/fplot_log_1.f90 deleted file mode 100644 index eb3ecb4..0000000 --- a/examples/fplot_log_1.f90 +++ /dev/null @@ -1,101 +0,0 @@ -! fplot_log_1.f90 - -! This example illustrates the frequency response of the following mechanical -! system. -! -! -> y |-> x1 |-> x2 -! | |/ -! |-/\/\/\-| m |-/\/\/\-| m |-/\/\/\-|/ -! | k, b k, b k, b |/ -! -! The equations of motion for this system are as follows. -! M x" + B x' + K x = F1 y' + F2 y -! -! Where: -! | m 0 | -! M = | | -! | 0 m | -! -! | 2b -b | -! B = | | -! | -b 2b | -! -! | 2k -k | -! K = | | -! | -k 2k | -! -! | b | -! F1 = | | -! | 0 | -! -! | k | -! F2 = | | -! | 0 | -! -! The solution may be computed by applying the Laplace transform such that: -! (M s**2 + B s + K) X = (F1 s + F2) Y -! -! And then solving for X / Y such that: -! Z = X / Y = inv(M s**2 + B s + K) * (F1 s + F2) -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Parameters - real(real64), parameter :: m = 2.0d0 - real(real64), parameter :: k = 450.0d3 - real(real64), parameter :: b = 3.0d0 - real(real64), parameter :: pi = 3.1415926535897932384626433832795d0 - integer(int32), parameter :: npts = 1000 - complex(real64), parameter :: j = (0.0d0, -1.0d0) - - ! Local Variables - complex(real64), dimension(npts) :: s, z1, z2 - real(real64), dimension(npts) :: freq, omega - type(plot_2d) :: plt - type(plot_data_2d) :: d1, d2 - class(plot_axis), pointer :: xAxis, yAxis - - ! Generate a frequency vector from 10 Hz to 1 kHz - freq = logspace(1.0d0, 3.0d0, npts) - omega = 2.0d0 * pi * freq - s = j * omega - - ! Compute the frequency response functions for each mass - z1 = (b * s + k) * (m * s**2 + 2.0d0 * b * s + 2.0d0 * k) / & - ((m * s**2 + 2.0d0 * b * s + 2.0d0 * k)**2 + (-b * s - k) * (b * s + k)) - z2 = (b * s + k)**2 / & - ((m * s**2 + 2.0d0 * b * s + 2.0d0 * k)**2 + (-b * s - k) * (b * s + k)) - - ! Create the plot - call plt%initialize() - call plt%set_font_size(14) - xAxis => plt%get_x_axis() - yAxis => plt%get_y_axis() - - call xAxis%set_title("Frequency [Hz]") - call yAxis%set_title("Amplitude (X / Y)") - - call xAxis%set_is_log_scaled(.true.) - call yAxis%set_is_log_scaled(.true.) - - call xAxis%set_use_default_tic_label_format(.false.) - call xAxis%set_tic_label_format("%0.0e") - - call yAxis%set_use_default_tic_label_format(.false.) - call yAxis%set_tic_label_format("%0.0e") - - call d1%set_name("X1") - call d1%set_line_width(2.0) - call d1%define_data(freq, abs(z1)) - - call d2%set_name("X2") - call d2%set_line_width(2.0) - call d2%set_line_style(LINE_DASHED) - call d2%define_data(freq, abs(z2)) - - call plt%push(d1) - call plt%push(d2) - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_multi_1.f90 b/examples/fplot_multi_1.f90 deleted file mode 100644 index 575f84b..0000000 --- a/examples/fplot_multi_1.f90 +++ /dev/null @@ -1,56 +0,0 @@ -! fplot_multi_1.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Variables - integer(int32), parameter :: n = 1000 - real(real64), allocatable, dimension(:) :: x1, y1, x2, y2 - type(multiplot) :: mplt - type(plot_2d) :: plt1, plt2 - type(plot_data_2d) :: d1, d2 - class(plot_axis), pointer :: x1Axis, x2Axis, y1Axis, y2Axis - - ! Build the data sets - x1 = linspace(0.0d0, 5.0d0, n) - x2 = linspace(0.0d0, 10.0d0, n) - y1 = exp(-0.1d0 * x1) * sin(20.0d0 * x1) - y2 = exp(-0.2d0 * x2) * sin(15.0d0 * x2) + 0.1d0 * sin(75.0d0 * x2) - - ! Define the plots - call mplt%initialize(2, 1) - call mplt%set_font_size(14) - call plt1%initialize() - call plt2%initialize() - - x1Axis => plt1%get_x_axis() - y1Axis => plt1%get_y_axis() - - x2Axis => plt2%get_x_axis() - y2Axis => plt2%get_y_axis() - - call x1Axis%set_title("X1") - call y1Axis%set_title("Y1") - - call x2Axis%set_title("X2") - call y2Axis%set_title("Y2") - - call d1%set_name("Data Set 1") - call d1%set_line_color(CLR_BLUE) - call d1%set_line_width(2.0) - call d1%define_data(x1, y1) - - call d2%set_name("Data Set 2") - call d2%set_line_color(CLR_GREEN) - call d2%set_line_width(2.0) - call d2%define_data(x2, y2) - - call plt1%push(d1) - call plt2%push(d2) - - call mplt%set(1, 1, plt1) - call mplt%set(2, 1, plt2) - call mplt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_multi_3.f90 b/examples/fplot_multi_3.f90 deleted file mode 100644 index 86866c7..0000000 --- a/examples/fplot_multi_3.f90 +++ /dev/null @@ -1,128 +0,0 @@ -! fplot_multi_3.f90 - -! This example illustrates the frequency response of the following mechanical -! system. -! -! -> y |-> x1 |-> x2 -! | |/ -! |-/\/\/\-| m |-/\/\/\-| m |-/\/\/\-|/ -! | k, b k, b k, b |/ -! -! The equations of motion for this system are as follows. -! M x" + B x' + K x = F1 y' + F2 y -! -! Where: -! | m 0 | -! M = | | -! | 0 m | -! -! | 2b -b | -! B = | | -! | -b 2b | -! -! | 2k -k | -! K = | | -! | -k 2k | -! -! | b | -! F1 = | | -! | 0 | -! -! | k | -! F2 = | | -! | 0 | -! -! The solution may be computed by applying the Laplace transform such that: -! (M s**2 + B s + K) X = (F1 s + F2) Y -! -! And then solving for X / Y such that: -! Z = X / Y = inv(M s**2 + B s + K) * (F1 s + F2) -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Parameters - real(real64), parameter :: m = 2.0d0 - real(real64), parameter :: k = 450.0d3 - real(real64), parameter :: b = 3.0d0 - real(real64), parameter :: pi = 3.1415926535897932384626433832795d0 - integer(int32), parameter :: npts = 1000 - complex(real64), parameter :: j = (0.0d0, -1.0d0) - - ! Local Variables - complex(real64), dimension(npts) :: s, z1, z2 - real(real64), dimension(npts) :: freq, omega - type(multiplot) :: mplt - type(plot_2d) :: plt, pplt - type(plot_data_2d) :: d1, d2, d3, d4 - class(plot_axis), pointer :: xAxis, yAxis - class(legend), pointer :: lgnd - - ! Generate a frequency vector from 10 Hz to 1 kHz - freq = logspace(1.0d0, 3.0d0, npts) - omega = 2.0d0 * pi * freq - s = j * omega - - ! Compute the frequency response functions for each mass - z1 = (b * s + k) * (m * s**2 + 2.0d0 * b * s + 2.0d0 * k) / & - ((m * s**2 + 2.0d0 * b * s + 2.0d0 * k)**2 + (-b * s - k) * (b * s + k)) - z2 = (b * s + k)**2 / & - ((m * s**2 + 2.0d0 * b * s + 2.0d0 * k)**2 + (-b * s - k) * (b * s + k)) - - ! Create the plots - call mplt%initialize(2, 1) - call mplt%set_font_size(14) - call plt%initialize() - xAxis => plt%get_x_axis() - yAxis => plt%get_y_axis() - - call xAxis%set_title("Frequency [Hz]") - call yAxis%set_title("Amplitude (X / Y)") - - call xAxis%set_is_log_scaled(.true.) - call yAxis%set_is_log_scaled(.true.) - - call d1%set_name("X1") - call d1%set_line_width(2.0) - call d1%define_data(freq, abs(z1)) - - call d2%set_name("X2") - call d2%set_line_width(2.0) - call d2%set_line_style(LINE_DASHED) - call d2%define_data(freq, abs(z2)) - - call plt%push(d1) - call plt%push(d2) - - ! Set up the phase plot - call pplt%initialize() - xAxis => pplt%get_x_axis() - yAxis => pplt%get_y_axis() - - call xAxis%set_title("Frequency [Hz]") - call yAxis%set_title("Phase [deg]") - - call xAxis%set_is_log_scaled(.true.) - - call d3%set_name("X1") - call d3%set_line_width(2.0) - call d3%define_data(freq, 180.0d0 * atan2(aimag(z1), real(z1)) / pi) - - call d4%set_name("X2") - call d4%set_line_width(2.0) - call d4%set_line_style(LINE_DASHED) - call d4%define_data(freq, 180.0d0 * atan2(aimag(z2), real(z2)) / pi) - - call pplt%push(d3) - call pplt%push(d4) - - ! Don't use a legend on the phase plot - lgnd => pplt%get_legend() - call lgnd%set_is_visible(.false.) - - ! Save the plot to file - call mplt%set(1, 1, plt) - call mplt%set(2, 1, pplt) - call mplt%save_file("example_multiplot_file.plt") -end program diff --git a/examples/fplot_png_1.f90 b/examples/fplot_png_1.f90 deleted file mode 100644 index 9f86358..0000000 --- a/examples/fplot_png_1.f90 +++ /dev/null @@ -1,69 +0,0 @@ -! fplot_png_1.f90 - -program example - use, intrinsic :: iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: n = 1000 - real(real64), parameter :: dx = 1.0d-2 - - ! Local Variables - integer(int32) :: i - real(real64), dimension(n) :: x, y1, y2 - type(plot_2d) :: plt - type(plot_data_2d) :: d1, d2 - class(plot_axis), pointer :: xAxis, yAxis - type(legend), pointer :: lgnd - - ! Initialize the plot object - call plt%initialize(GNUPLOT_TERMINAL_PNG) - - ! Set plot properties - call plt%set_draw_border(.false.) - call plt%set_show_gridlines(.false.) - - ! Define the legend location - lgnd => plt%get_legend() - call lgnd%set_draw_inside_axes(.false.) - - ! Define titles - call plt%set_title("2D Example Plot 2") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - call xAxis%set_zero_axis(.true.) - call xAxis%set_zero_axis_line_width(1.0) - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - ! Define the data, and then add it to the plot - x(1) = 0.0d0 - do i = 2, n - x(i) = x(i-1) + dx - end do - y1 = sin(5.0d0 * x) - y2 = 2.0d0 * cos(2.0d0 * x) - - call d1%define_data(x, y1) - call d2%define_data(x, y2) - - ! Define properties for each data set - call d1%set_name("Data Set 1") - call d1%set_line_color(CLR_BLUE) - call d1%set_line_width(1.0) - - call d2%set_name("Data Set 2") - call d2%set_line_color(CLR_GREEN) - call d2%set_line_style(LINE_DASHED) - call d2%set_line_width(2.0) - - ! Add the data sets to the plot - call plt%push(d1) - call plt%push(d2) - - ! Let GNUPLOT draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_polar_1.f90 b/examples/fplot_polar_1.f90 deleted file mode 100644 index 938542e..0000000 --- a/examples/fplot_polar_1.f90 +++ /dev/null @@ -1,29 +0,0 @@ -! fplot_polar_1.f90 - -program example - use iso_fortran_env - use fplot_core - - ! Local Variables - integer(int32), parameter :: npts = 1000 - real(real64), parameter :: pi = 2.0d0 * acos(0.0d0) - real(real64) :: t(npts), x(npts) - type(plot_polar) :: plt - type(plot_data_2d) :: pd - - ! Create a function to plot - t = linspace(-2.0d0 * pi, 2.0d0 * pi, npts) - x = t * sin(t) - - ! Plot the function - call plt%initialize() - call plt%set_font_size(14) - call plt%set_title("Polar Plot Example") - call plt%set_autoscale(.false.) - call plt%set_radial_limits([0.0d0, 6.0d0]) - - call pd%define_data(t, x) - call pd%set_line_width(2.0) - call plt%push(pd) - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_surf_1.f90 b/examples/fplot_surf_1.f90 deleted file mode 100644 index 73ce543..0000000 --- a/examples/fplot_surf_1.f90 +++ /dev/null @@ -1,67 +0,0 @@ -! fplot_surf_1.f90 - -program example - use, intrinsic :: iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: m = 50 - integer(int32), parameter :: n = 50 - real(real64), parameter :: xMax = 5.0d0 - real(real64), parameter :: xMin = -5.0d0 - real(real64), parameter :: yMax = 5.0d0 - real(real64), parameter :: yMin = -5.0d0 - - ! Local Variables - real(real64), dimension(n) :: xdata - real(real64), dimension(m) :: ydata - real(real64), dimension(:,:), pointer :: x, y - real(real64), dimension(m, n, 2), target :: xy - real(real64), dimension(m, n) :: z - type(surface_plot) :: plt - type(surface_plot_data) :: d1 - ! type(rainbow_colormap) :: map - class(plot_axis), pointer :: xAxis, yAxis, zAxis - - ! Define the data - xdata = linspace(xMin, xMax, n) - ydata = linspace(yMin, yMax, m) - xy = meshgrid(xdata, ydata) - x => xy(:,:,1) - y => xy(:,:,2) - - ! Define the function to plot - z = sin(sqrt(x**2 + y**2)) - - ! Create the plot - call plt%initialize() - call plt%set_show_hidden(.true.) - call d1%set_use_wireframe(.true.) - ! call plt%set_colormap(map) - - ! Set up lighting - call plt%set_use_lighting(.true.) - call plt%set_light_intensity(0.7) - call plt%set_specular_intensity(0.7) - - ! Define titles - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - zAxis => plt%get_z_axis() - call zAxis%set_title("Z Axis") - - ! Define the data set - call d1%define_data(x, y, z) - call d1%set_name("sin(sqrt(x**2 + y**2))") - call plt%push(d1) - - ! Let GNUPLOT draw the plot - call plt%draw() -end program diff --git a/examples/fplot_surf_2.f90 b/examples/fplot_surf_2.f90 deleted file mode 100644 index 8bf9dd6..0000000 --- a/examples/fplot_surf_2.f90 +++ /dev/null @@ -1,56 +0,0 @@ -! fplot_surf_2.f90 - -program example - use fplot_core - use iso_fortran_env - implicit none - - ! Parameters - integer(int32), parameter :: m = 50 - integer(int32), parameter :: n = 50 - - ! Local Variables - real(real64), dimension(m, n, 2), target :: xy - real(real64), pointer, dimension(:,:) :: x, y - real(real64), dimension(m, n) :: z - type(surface_plot) :: plt - type(surface_plot_data) :: d1 - class(plot_axis), pointer :: xAxis, yAxis, zAxis - type(rainbow_colormap) :: map - - ! Define the data - xy = meshgrid(linspace(-5.0d0, 5.0d0, n), linspace(-5.0d0, 5.0d0, m)) - x => xy(:,:,1) - y => xy(:,:,2) - - ! Initialize the plot - call plt%initialize() - call plt%set_colormap(map) - - ! Establish lighting - call plt%set_use_lighting(.true.) - - ! Set the orientation of the plot - call plt%set_elevation(20.0d0) - call plt%set_azimuth(30.0d0) - - ! Define titles - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - zAxis => plt%get_z_axis() - call zAxis%set_title("Z Axis") - - ! Define the function to plot - z = sqrt(x**2 + y**2) * sin(x**2 + y**2) - call d1%define_data(x, y, z) - call plt%push(d1) - - ! Draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_surf_3.f90 b/examples/fplot_surf_3.f90 deleted file mode 100644 index 6458f51..0000000 --- a/examples/fplot_surf_3.f90 +++ /dev/null @@ -1,62 +0,0 @@ -! fplot_surf_3.f90 - -program example - use, intrinsic :: iso_fortran_env - use fplot_core - implicit none - - ! Parameters - integer(int32), parameter :: m = 50 - integer(int32), parameter :: n = 50 - real(real64), parameter :: xMax = 5.0d0 - real(real64), parameter :: xMin = -5.0d0 - real(real64), parameter :: yMax = 5.0d0 - real(real64), parameter :: yMin = -5.0d0 - - ! Local Variables - real(real64), dimension(n) :: xdata - real(real64), dimension(m) :: ydata - real(real64), dimension(:,:), pointer :: x, y - real(real64), dimension(m, n, 2), target :: xy - real(real64), dimension(m, n) :: z - type(surface_plot) :: plt - type(surface_plot_data) :: d1 - type(rainbow_colormap) :: map - class(plot_axis), pointer :: xAxis, yAxis, zAxis - - ! Define the data - xdata = linspace(xMin, xMax, n) - ydata = linspace(yMin, yMax, m) - xy = meshgrid(xdata, ydata) - x => xy(:,:,1) - y => xy(:,:,2) - - ! Define the function to plot - z = sin(sqrt(x**2 + y**2)) - - ! Define colormap settings - call map%set_show_tics(.false.) - - ! Create the plot - call plt%initialize() - call plt%set_colormap(map) - - ! Define titles - call plt%set_title("Example Plot") - - xAxis => plt%get_x_axis() - call xAxis%set_title("X Axis") - - yAxis => plt%get_y_axis() - call yAxis%set_title("Y Axis") - - zAxis => plt%get_z_axis() - call zAxis%set_title("Z Axis") - - ! Define the data set - call d1%define_data(x, y, z) - call plt%push(d1) - - ! Let GNUPLOT draw the plot - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_tri_surf_1.f90 b/examples/fplot_tri_surf_1.f90 deleted file mode 100644 index 8586b9c..0000000 --- a/examples/fplot_tri_surf_1.f90 +++ /dev/null @@ -1,70 +0,0 @@ -! fplot_tri_surf_1.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Variables - integer(int32), parameter :: npts = 15 - real(real64), allocatable :: xc(:,:), yc(:,:), x(:), y(:), z(:), xy(:,:,:) - real(real64) :: xi, yi, zi - type(delaunay_tri_surface) :: tri - type(tri_surface_plot_data) :: ds - type(plot_data_3d) :: di - type(surface_plot) :: plt - class(plot_axis), pointer :: xAxis, yAxis, zAxis - integer(int32) :: i - - ! Initialization - xy = meshgrid(linspace(-5.0d0, 5.0d0, npts), linspace(-5.0d0, 5.0d0, npts)) - xc = xy(:,:,1) - yc = xy(:,:,2) - x = reshape(xc, [npts * npts]) - y = reshape(yc, [npts * npts]) - z = sin(x) + sin(y) - - ! Generate the triangulation - call tri%create(x, y) - call tri%define_function_values(z) - - ! Interpolate using the triangulation - xi = 2.0d0 - yi = 2.0d0 - zi = tri%evaluate(xi, yi) - - ! Print the interpolated values - print '(A)', "Interpolated Value:" - print '(AF0.3AF0.3AF0.3)', achar(9), xi, achar(9), yi, achar(9), zi - - print '(A)', "Actual Values:" - print '(AF0.3AF0.3AF0.3)', achar(9), xi, achar(9), yi, achar(9), & - sin(xi) + sin(yi) - - ! Generate the plot - call plt%initialize() - call plt%set_font_size(14) - - xAxis => plt%get_x_axis() - yAxis => plt%get_y_axis() - zAxis => plt%get_z_axis() - - call xAxis%set_title("x") - call yAxis%set_title("y") - call zAxis%set_title("f(x,y)") - - call ds%define_data(tri) - call ds%set_use_wireframe(.true.) - - call di%define_data([xi], [yi], [zi]) - call di%set_draw_line(.false.) - call di%set_line_width(2.0) - call di%set_draw_markers(.true.) - call di%set_marker_style(MARKER_FILLED_CIRCLE) - call di%set_marker_scaling(3.0) - call di%set_line_color(CLR_RED) - - call plt%push(ds) - call plt%push(di) - call plt%draw() -end program \ No newline at end of file diff --git a/examples/fplot_vector_1.f90 b/examples/fplot_vector_1.f90 deleted file mode 100644 index f55a340..0000000 --- a/examples/fplot_vector_1.f90 +++ /dev/null @@ -1,70 +0,0 @@ -! fplot_vector_1.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Local Variables - type(plot_2d) :: plt - type(vector_field_plot_data) :: ds1 - class(plot_axis), pointer :: xAxis, yAxis - real(real64), allocatable, dimension(:,:,:) :: pts - real(real64), allocatable, dimension(:,:) :: dx, dy - real(real64) :: dxdt(2) - integer(int32) :: i, j - - ! Create a grid of points defining the vector locations - pts = meshgrid( & - linspace(-2.0d0, 2.0d0, 20), & - linspace(-5.0d0, 5.0d0, 20)) - - ! Compute the values of each derivative - allocate(dx(size(pts, 1), size(pts, 2))) - allocate(dy(size(pts, 1), size(pts, 2))) - do j = 1, size(pts, 2) - do i = 1, size(pts, 1) - call eqn([pts(i,j,1), pts(i,j,2)], dxdt) - dx(i,j) = dxdt(1) - dy(i,j) = dxdt(2) - end do - end do - - ! Define arrow properties - call ds1%set_arrow_size(0.1d0) ! 1.0 by default - call ds1%set_fill_arrow(.true.) ! .false. by default - - ! Create the plot - call plt%initialize() - call plt%set_font_size(14) - xAxis => plt%get_x_axis() - yAxis => plt%get_y_axis() - - ! Define axis labels - call xAxis%set_title("x(t)") - call yAxis%set_title("dx/dt") - - ! Set plot style information - call xAxis%set_zero_axis(.true.) - call yAxis%set_zero_axis(.true.) - call plt%set_draw_border(.false.) - call plt%set_show_gridlines(.false.) - - ! Add the data to the plot - call ds1%define_data(pts(:,:,1), pts(:,:,2), dx, dy) - call plt%push(ds1) - - call plt%draw() -contains - ! Van der Pol Equation - ! x" - mu * (1 - x^2) * x' + x = 0 - subroutine eqn(x, dxdt) - real(real64), intent(in) :: x(2) - real(real64), intent(out) :: dxdt(2) - - real(real64), parameter :: mu = 2.0d0 - - dxdt(1) = x(2) - dxdt(2) = mu * (1.0d0 - x(1)**2) * x(2) - x(1) - end subroutine -end program \ No newline at end of file diff --git a/examples/fplot_vector_2.f90 b/examples/fplot_vector_2.f90 deleted file mode 100644 index 6a15f5d..0000000 --- a/examples/fplot_vector_2.f90 +++ /dev/null @@ -1,74 +0,0 @@ -! fplot_vector_2.f90 - -program example - use iso_fortran_env - use fplot_core - implicit none - - ! Local Variables - type(plot_2d) :: plt - type(vector_field_plot_data) :: ds1 - class(plot_axis), pointer :: xAxis, yAxis - type(rainbow_colormap) :: map - real(real64), allocatable, dimension(:,:,:) :: pts - real(real64), allocatable, dimension(:,:) :: dx, dy - real(real64) :: dxdt(2) - integer(int32) :: i, j - - ! Create a grid of points defining the vector locations - pts = meshgrid( & - linspace(-2.0d0, 2.0d0, 20), & - linspace(-5.0d0, 5.0d0, 20)) - - ! Compute the values of each derivative - allocate(dx(size(pts, 1), size(pts, 2))) - allocate(dy(size(pts, 1), size(pts, 2))) - do j = 1, size(pts, 2) - do i = 1, size(pts, 1) - call eqn([pts(i,j,1), pts(i,j,2)], dxdt) - dx(i,j) = dxdt(1) - dy(i,j) = dxdt(2) - end do - end do - - ! Define arrow properties - call ds1%set_arrow_size(0.1d0) ! 1.0 by default - call ds1%set_fill_arrow(.true.) ! .false. by default - - ! Create the plot - call plt%initialize() - call plt%set_font_size(14) - xAxis => plt%get_x_axis() - yAxis => plt%get_y_axis() - - ! Define axis labels - call xAxis%set_title("x(t)") - call yAxis%set_title("dx/dt") - - ! Set plot style information - call xAxis%set_zero_axis(.true.) - call yAxis%set_zero_axis(.true.) - call plt%set_draw_border(.false.) - call plt%set_show_gridlines(.false.) - - ! Define the colormap - call plt%set_colormap(map) - - ! Add the data to the plot - color by the magnitude of gradient - call ds1%define_data(pts(:,:,1), pts(:,:,2), dx, dy, sqrt(dx**2 + dy**2)) - call plt%push(ds1) - - call plt%draw() -contains - ! Van der Pol Equation - ! x" - mu * (1 - x^2) * x' + x = 0 - subroutine eqn(x, dxdt) - real(real64), intent(in) :: x(2) - real(real64), intent(out) :: dxdt(2) - - real(real64), parameter :: mu = 2.0d0 - - dxdt(1) = x(2) - dxdt(2) = mu * (1.0d0 - x(1)**2) * x(2) - x(1) - end subroutine -end program diff --git a/examples/generic_2d_plot.f90 b/examples/generic_2d_plot.f90 new file mode 100644 index 0000000..f41170b --- /dev/null +++ b/examples/generic_2d_plot.f90 @@ -0,0 +1,62 @@ +program example + use, intrinsic :: iso_fortran_env + use fplot_core + implicit none + + ! Parameters + integer(int32), parameter :: n = 1000 + + ! Local Variables + real(real64), dimension(n) :: x, y1, y2 + type(plot_2d) :: plt + type(plot_data_2d) :: d1, d2 + class(plot_axis), pointer :: xAxis, yAxis + type(legend), pointer :: leg + + ! Initialize the plot object + call plt%initialize() + + ! Define titles + call plt%set_title("Example Plot") + call plt%set_font_size(14) + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + ! Establish legend properties + leg => plt%get_legend() + call leg%set_is_visible(.true.) + call leg%set_draw_inside_axes(.false.) + call leg%set_horizontal_position(LEGEND_CENTER) + call leg%set_vertical_position(LEGEND_BOTTOM) + call leg%set_draw_border(.false.) + + ! Define the data, and then add it to the plot + x = linspace(0.0d0, 10.0d0, n) + y1 = sin(5.0d0 * x) + y2 = 2.0d0 * cos(2.0d0 * x) + + call d1%define_data(x, y1) + call d2%define_data(x, y2) + + ! Define properties for each data set + call d1%set_name("Data Set 1") + call d1%set_draw_markers(.true.) + call d1%set_marker_frequency(10) + call d1%set_marker_style(MARKER_EMPTY_CIRCLE) + call d1%set_marker_scaling(2.0) + + call d2%set_name("Data Set 2") + call d2%set_line_style(LINE_DASHED) + call d2%set_line_width(2.0) + + ! Add the data sets to the plot + call plt%push(d1) + call plt%push(d2) + + ! Let GNUPLOT draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/examples/generic_3d_plot.f90 b/examples/generic_3d_plot.f90 new file mode 100644 index 0000000..fba94a2 --- /dev/null +++ b/examples/generic_3d_plot.f90 @@ -0,0 +1,44 @@ +program example + use, intrinsic :: iso_fortran_env + use fplot_core + implicit none + + ! Parameters + integer(int32), parameter :: n = 1000 + + ! Local Variables + real(real64), dimension(n) :: t, x, y, z + type(plot_3d) :: plt + type(plot_data_3d) :: d1 + class(plot_axis), pointer :: xAxis, yAxis, zAxis + + ! Initialize the plot object + call plt%initialize() + + ! Define titles + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + zAxis => plt%get_z_axis() + call zAxis%set_title("Z Axis") + + ! Define the data + t = linspace(0.0d0, 10.0d0, n) + x = cos(5.0d0 * t) + y = sin(5.0d0 * t) + z = 2.0d0 * t + + call d1%define_data(x, y, z) + call d1%set_line_width(2.0) + + ! Add the data to the plot + call plt%push(d1) + + ! Let GNUPLOT draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/examples/histogram_example.f90 b/examples/histogram_example.f90 new file mode 100644 index 0000000..b190ebe --- /dev/null +++ b/examples/histogram_example.f90 @@ -0,0 +1,28 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Local Variables + integer(int32), parameter :: n = 5000 + integer(int32), parameter :: nbins = 12 + real(real64) :: x(n), u(n), v(n) + type(plot_bar) :: plt ! can also be plot_2d + type(plot_data_histogram) :: pd1 + + ! Initialization + call plt%initialize() + + ! Create some data + call random_number(u) + call random_number(v) + v = v - 1.0d0 + x = u * u - v * v + + ! Plot the data + call pd1%set_bin_count(nbins) ! optiona, but must be done prior to define_data is used + call pd1%define_data(x) + call pd1%set_transparency(0.5) ! optional - for illustration purposes + call plt%push(pd1) + call plt%draw() +end program \ No newline at end of file diff --git a/examples/latex_plot_example.f90 b/examples/latex_plot_example.f90 new file mode 100644 index 0000000..59f4e34 --- /dev/null +++ b/examples/latex_plot_example.f90 @@ -0,0 +1,60 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Local Variables & Parameters + integer(int32), parameter :: npts = 1000 + real(real64), dimension(npts) :: x, y1, y2 + type(plot_2d) :: plt + class(terminal), pointer :: term + type(plot_data_2d) :: d1, d2 + class(plot_axis), pointer :: xAxis, yAxis + type(legend), pointer :: leg + + ! Build a data set to plot + x = linspace(0.0d0, 10.0d0, npts) + y1 = sin(x) * cos(x) + y2 = sqrt(x) * sin(x) + + call d1%define_data(x, y1) + call d2%define_data(x, y2) + + ! Set up the plot + call plt%initialize(GNUPLOT_TERMINAL_LATEX) ! Save to file directly + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + ! Put the legend in the upper left corner of the plot + leg => plt%get_legend() + call leg%set_is_visible(.true.) + call leg%set_horizontal_position(LEGEND_LEFT) + call leg%set_vertical_position(LEGEND_TOP) + + ! Set up line color and style properties to better distinguish each data set + call d1%set_name("Data Set 1") + call d1%set_line_color(CLR_BLUE) + + call d2%set_name("Data Set 2") + call d2%set_line_color(CLR_GREEN) + + ! Add the data to the plot + call plt%push(d1) + call plt%push(d2) + + ! Define the file to which the plot should be saved + term => plt%get_terminal() + select type (term) + class is (latex_terminal) + print '(A)', "LATEX TERMINAL" + call term%set_filename("example_latex_plot.tex") + end select + + ! Draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/examples/legend_example.f90 b/examples/legend_example.f90 new file mode 100644 index 0000000..788845f --- /dev/null +++ b/examples/legend_example.f90 @@ -0,0 +1,44 @@ +program example + use fplot_core + use iso_fortran_env + implicit none + + ! Local Variables & Parameters + integer(int32), parameter :: npts = 1000 + real(real64), dimension(npts) :: x, y + type(plot_2d) :: plt + type(plot_data_2d) :: dataset + class(plot_axis), pointer :: xAxis, yAxis + type(legend), pointer :: leg + + ! Build a data set to plot + x = linspace(0.0d0, 10.0d0, npts) + y = exp(-0.5d0 * x) * sin(10.0d0 * x - 0.5d0) + + call dataset%define_data(x, y) + call dataset%set_name("Example") + + ! Set up the plot + call plt%initialize() + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + ! Show the legend + leg => plt%get_legend() + call leg%set_is_visible(.true.) + call leg%set_is_opaque(.false.) + call leg%set_draw_border(.false.) + call leg%set_horizontal_position(LEGEND_RIGHT) + call leg%set_vertical_position(LEGEND_BOTTOM) + + ! Add the data to the plot + call plt%push(dataset) + + ! Draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/examples/log_scaling_example.f90 b/examples/log_scaling_example.f90 new file mode 100644 index 0000000..8645029 --- /dev/null +++ b/examples/log_scaling_example.f90 @@ -0,0 +1,104 @@ +! This example illustrates the frequency response of the following mechanical +! system. +! +! -> y |-> x1 |-> x2 +! | |/ +! |-/\/\/\-| m |-/\/\/\-| m |-/\/\/\-|/ +! | k, b k, b k, b |/ +! +! The equations of motion for this system are as follows. +! M x" + B x' + K x = F1 y' + F2 y +! +! Where: +! | m 0 | +! M = | | +! | 0 m | +! +! | 2b -b | +! B = | | +! | -b 2b | +! +! | 2k -k | +! K = | | +! | -k 2k | +! +! | b | +! F1 = | | +! | 0 | +! +! | k | +! F2 = | | +! | 0 | +! +! The solution may be computed by applying the Laplace transform such that: +! (M s**2 + B s + K) X = (F1 s + F2) Y +! +! And then solving for X / Y such that: +! Z = X / Y = inv(M s**2 + B s + K) * (F1 s + F2) +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Parameters + real(real64), parameter :: m = 2.0d0 + real(real64), parameter :: k = 450.0d3 + real(real64), parameter :: b = 3.0d0 + real(real64), parameter :: pi = 3.1415926535897932384626433832795d0 + integer(int32), parameter :: npts = 1000 + complex(real64), parameter :: j = (0.0d0, -1.0d0) + + ! Local Variables + complex(real64), dimension(npts) :: s, z1, z2 + real(real64), dimension(npts) :: freq, omega + type(plot_2d) :: plt + type(plot_data_2d) :: d1, d2 + class(plot_axis), pointer :: xAxis, yAxis + class(legend), pointer :: lgnd + + ! Generate a frequency vector from 10 Hz to 1 kHz + freq = logspace(1.0d0, 3.0d0, npts) + omega = 2.0d0 * pi * freq + s = j * omega + + ! Compute the frequency response functions for each mass + z1 = (b * s + k) * (m * s**2 + 2.0d0 * b * s + 2.0d0 * k) / & + ((m * s**2 + 2.0d0 * b * s + 2.0d0 * k)**2 + (-b * s - k) * (b * s + k)) + z2 = (b * s + k)**2 / & + ((m * s**2 + 2.0d0 * b * s + 2.0d0 * k)**2 + (-b * s - k) * (b * s + k)) + + ! Create the plot + call plt%initialize() + call plt%set_font_size(14) + xAxis => plt%get_x_axis() + yAxis => plt%get_y_axis() + lgnd => plt%get_legend() + + call lgnd%set_is_visible(.true.) + call lgnd%set_draw_border(.false.) + + call xAxis%set_title("Frequency [Hz]") + call yAxis%set_title("Amplitude (X / Y)") + + call xAxis%set_is_log_scaled(.true.) + call yAxis%set_is_log_scaled(.true.) + + call xAxis%set_use_default_tic_label_format(.false.) + call xAxis%set_tic_label_format("%0.0e") + + call yAxis%set_use_default_tic_label_format(.false.) + call yAxis%set_tic_label_format("%0.0e") + + call d1%set_name("X1") + call d1%set_line_width(2.0) + call d1%define_data(freq, abs(z1)) + + call d2%set_name("X2") + call d2%set_line_width(2.0) + call d2%set_line_style(LINE_DASHED) + call d2%define_data(freq, abs(z2)) + + call plt%push(d1) + call plt%push(d2) + call plt%draw() +end program \ No newline at end of file diff --git a/examples/multiplot_example_1.f90 b/examples/multiplot_example_1.f90 new file mode 100644 index 0000000..7c1700f --- /dev/null +++ b/examples/multiplot_example_1.f90 @@ -0,0 +1,52 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Variables + integer(int32), parameter :: n = 1000 + real(real64), allocatable, dimension(:) :: x1, y1, x2, y2 + type(multiplot) :: mplt + type(plot_2d) :: plt1, plt2 + type(plot_data_2d) :: d1, d2 + class(plot_axis), pointer :: x1Axis, x2Axis, y1Axis, y2Axis + + ! Build the data sets + x1 = linspace(0.0d0, 5.0d0, n) + x2 = linspace(0.0d0, 10.0d0, n) + y1 = exp(-0.1d0 * x1) * sin(20.0d0 * x1) + y2 = exp(-0.2d0 * x2) * sin(15.0d0 * x2) + 0.1d0 * sin(75.0d0 * x2) + + ! Define the plots + call mplt%initialize(2, 1) + call mplt%set_font_size(14) + call plt1%initialize() + call plt2%initialize() + + x1Axis => plt1%get_x_axis() + y1Axis => plt1%get_y_axis() + + x2Axis => plt2%get_x_axis() + y2Axis => plt2%get_y_axis() + + call x1Axis%set_title("X1") + call y1Axis%set_title("Y1") + + call x2Axis%set_title("X2") + call y2Axis%set_title("Y2") + + call d1%set_name("Data Set 1") + call d1%set_line_width(2.0) + call d1%define_data(x1, y1) + + call d2%set_name("Data Set 2") + call d2%set_line_width(2.0) + call d2%define_data(x2, y2) + + call plt1%push(d1) + call plt2%push(d2) + + call mplt%set(1, 1, plt1) + call mplt%set(2, 1, plt2) + call mplt%draw() +end program \ No newline at end of file diff --git a/examples/fplot_multi_2.f90 b/examples/multiplot_example_2.f90 similarity index 100% rename from examples/fplot_multi_2.f90 rename to examples/multiplot_example_2.f90 diff --git a/examples/multiplot_save_to_file_example.f90 b/examples/multiplot_save_to_file_example.f90 new file mode 100644 index 0000000..d6568e6 --- /dev/null +++ b/examples/multiplot_save_to_file_example.f90 @@ -0,0 +1,125 @@ +! This example illustrates the frequency response of the following mechanical +! system. +! +! -> y |-> x1 |-> x2 +! | |/ +! |-/\/\/\-| m |-/\/\/\-| m |-/\/\/\-|/ +! | k, b k, b k, b |/ +! +! The equations of motion for this system are as follows. +! M x" + B x' + K x = F1 y' + F2 y +! +! Where: +! | m 0 | +! M = | | +! | 0 m | +! +! | 2b -b | +! B = | | +! | -b 2b | +! +! | 2k -k | +! K = | | +! | -k 2k | +! +! | b | +! F1 = | | +! | 0 | +! +! | k | +! F2 = | | +! | 0 | +! +! The solution may be computed by applying the Laplace transform such that: +! (M s**2 + B s + K) X = (F1 s + F2) Y +! +! And then solving for X / Y such that: +! Z = X / Y = inv(M s**2 + B s + K) * (F1 s + F2) +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Parameters + real(real64), parameter :: m = 2.0d0 + real(real64), parameter :: k = 450.0d3 + real(real64), parameter :: b = 3.0d0 + real(real64), parameter :: pi = 3.1415926535897932384626433832795d0 + integer(int32), parameter :: npts = 1000 + complex(real64), parameter :: j = (0.0d0, -1.0d0) + + ! Local Variables + complex(real64), dimension(npts) :: s, z1, z2 + real(real64), dimension(npts) :: freq, omega + type(multiplot) :: mplt + type(plot_2d) :: plt, pplt + type(plot_data_2d) :: d1, d2, d3, d4 + class(plot_axis), pointer :: xAxis, yAxis + class(legend), pointer :: lgnd + + ! Generate a frequency vector from 10 Hz to 1 kHz + freq = logspace(1.0d0, 3.0d0, npts) + omega = 2.0d0 * pi * freq + s = j * omega + + ! Compute the frequency response functions for each mass + z1 = (b * s + k) * (m * s**2 + 2.0d0 * b * s + 2.0d0 * k) / & + ((m * s**2 + 2.0d0 * b * s + 2.0d0 * k)**2 + (-b * s - k) * (b * s + k)) + z2 = (b * s + k)**2 / & + ((m * s**2 + 2.0d0 * b * s + 2.0d0 * k)**2 + (-b * s - k) * (b * s + k)) + + ! Create the plots + call mplt%initialize(2, 1) + call mplt%set_font_size(14) + call plt%initialize() + xAxis => plt%get_x_axis() + yAxis => plt%get_y_axis() + lgnd => plt%get_legend() + + call lgnd%set_is_visible(.true.) + + call xAxis%set_title("Frequency [Hz]") + call yAxis%set_title("Amplitude (X / Y)") + + call xAxis%set_is_log_scaled(.true.) + call yAxis%set_is_log_scaled(.true.) + + call d1%set_name("X1") + call d1%set_line_width(2.0) + call d1%define_data(freq, abs(z1)) + + call d2%set_name("X2") + call d2%set_line_width(2.0) + call d2%set_line_style(LINE_DASHED) + call d2%define_data(freq, abs(z2)) + + call plt%push(d1) + call plt%push(d2) + + ! Set up the phase plot + call pplt%initialize() + xAxis => pplt%get_x_axis() + yAxis => pplt%get_y_axis() + + call xAxis%set_title("Frequency [Hz]") + call yAxis%set_title("Phase [deg]") + + call xAxis%set_is_log_scaled(.true.) + + call d3%set_name("X1") + call d3%set_line_width(2.0) + call d3%define_data(freq, 180.0d0 * atan2(aimag(z1), real(z1)) / pi) + + call d4%set_name("X2") + call d4%set_line_width(2.0) + call d4%set_line_style(LINE_DASHED) + call d4%define_data(freq, 180.0d0 * atan2(aimag(z2), real(z2)) / pi) + + call pplt%push(d3) + call pplt%push(d4) + + ! Save the plot to file + call mplt%set(1, 1, plt) + call mplt%set(2, 1, pplt) + call mplt%save_file("example_multiplot_file.plt") +end program diff --git a/examples/plot_label_example.f90 b/examples/plot_label_example.f90 new file mode 100644 index 0000000..b326873 --- /dev/null +++ b/examples/plot_label_example.f90 @@ -0,0 +1,44 @@ +program example + use fplot_core + use iso_fortran_env + implicit none + + ! Local Variables + integer(int32), parameter :: npts = 1000 + real(real64), dimension(npts) :: x, y + type(plot_2d) :: plt + type(plot_data_2d) :: dataset + class(plot_axis), pointer :: xAxis, yAxis + type(plot_label) :: lbl + + ! Build a data set + x = linspace(0.0d0, 10.0d0, npts) + y = sin(10.0d0 * x) * sin(0.5d0 * x) + + call dataset%define_data(y) + + ! Define the label + call lbl%set_text("Test Label 1") + call lbl%set_position([600.0, 0.6, 0.0]) + + ! Set up the plot + call plt%initialize() + call plt%set_title("Example Plot") + call plt%set_font_size(14) + call plt%set_show_gridlines(.false.) + + ! Add the label to the plot + call plt%push_label(lbl) + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + ! Add the data to the plot + call plt%push(dataset) + + ! Draw + call plt%draw() +end program diff --git a/examples/png_plot_example.f90 b/examples/png_plot_example.f90 new file mode 100644 index 0000000..853f05c --- /dev/null +++ b/examples/png_plot_example.f90 @@ -0,0 +1,51 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Local Variables & Parameters + integer(int32), parameter :: npts = 1000 + real(real64), dimension(npts) :: x, y1, y2 + type(plot_2d) :: plt + type(plot_data_2d) :: d1, d2 + class(plot_axis), pointer :: xAxis, yAxis + type(legend), pointer :: leg + + ! Build a data set to plot + x = linspace(0.0d0, 10.0d0, npts) + y1 = sin(x) * cos(x) + y2 = sqrt(x) * sin(x) + + call d1%define_data(x, y1) + call d2%define_data(x, y2) + + ! Set up the plot + call plt%initialize(GNUPLOT_TERMINAL_PNG, "example_plot.png") ! Save to file directly + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + ! Put the legend in the upper left corner of the plot + leg => plt%get_legend() + call leg%set_is_visible(.true.) + call leg%set_horizontal_position(LEGEND_LEFT) + call leg%set_vertical_position(LEGEND_TOP) + + ! Set up line color and style properties to better distinguish each data set + call d1%set_name("Data Set 1") + call d1%set_line_color(CLR_BLUE) + + call d2%set_name("Data Set 2") + call d2%set_line_color(CLR_GREEN) + + ! Add the data to the plot + call plt%push(d1) + call plt%push(d2) + + ! Draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/examples/png_plot_example_2.f90 b/examples/png_plot_example_2.f90 new file mode 100644 index 0000000..884a990 --- /dev/null +++ b/examples/png_plot_example_2.f90 @@ -0,0 +1,59 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Local Variables & Parameters + integer(int32), parameter :: npts = 1000 + real(real64), dimension(npts) :: x, y1, y2 + type(plot_2d) :: plt + class(terminal), pointer :: term + type(plot_data_2d) :: d1, d2 + class(plot_axis), pointer :: xAxis, yAxis + type(legend), pointer :: leg + + ! Build a data set to plot + x = linspace(0.0d0, 10.0d0, npts) + y1 = sin(x) * cos(x) + y2 = sqrt(x) * sin(x) + + call d1%define_data(x, y1) + call d2%define_data(x, y2) + + ! Set up the plot + call plt%initialize(GNUPLOT_TERMINAL_PNG) ! Save to file directly + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + ! Put the legend outside the axes, and remove it's border + leg => plt%get_legend() + call leg%set_is_visible(.true.) + call leg%set_draw_inside_axes(.false.) + call leg%set_draw_border(.false.) + + ! Set up line color and style properties to better distinguish each data set + call d1%set_name("Data Set 1") + call d1%set_line_color(CLR_BLUE) + + call d2%set_name("Data Set 2") + call d2%set_line_color(CLR_GREEN) + + ! Add the data to the plot + call plt%push(d1) + call plt%push(d2) + + ! Define the file to which the plot should be saved + term => plt%get_terminal() + select type (term) + class is (png_terminal) + call term%set_filename("example_plot_legend_out.png") + end select + + ! Draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/examples/polar_plot_example.f90 b/examples/polar_plot_example.f90 new file mode 100644 index 0000000..5be0615 --- /dev/null +++ b/examples/polar_plot_example.f90 @@ -0,0 +1,27 @@ +program example + use iso_fortran_env + use fplot_core + + ! Local Variables + integer(int32), parameter :: npts = 1000 + real(real64), parameter :: pi = 2.0d0 * acos(0.0d0) + real(real64) :: t(npts), x(npts) + type(plot_polar) :: plt + type(plot_data_2d) :: pd + + ! Create a function to plot + t = linspace(-2.0d0 * pi, 2.0d0 * pi, npts) + x = t * sin(t) + + ! Plot the function + call plt%initialize() + call plt%set_font_size(14) + call plt%set_title("Polar Plot Example") + call plt%set_autoscale(.false.) + call plt%set_radial_limits([0.0d0, 6.0d0]) + + call pd%define_data(t, x) + call pd%set_line_width(2.0) + call plt%push(pd) + call plt%draw() +end program \ No newline at end of file diff --git a/examples/save_to_file_example.f90 b/examples/save_to_file_example.f90 new file mode 100644 index 0000000..28b3f79 --- /dev/null +++ b/examples/save_to_file_example.f90 @@ -0,0 +1,34 @@ +program example + use fplot_core + use iso_fortran_env + implicit none + + ! Local Variables & Parameters + integer(int32), parameter :: npts = 1000 + real(real64), dimension(npts) :: x, y + type(plot_2d) :: plt + type(plot_data_2d) :: dataset + class(plot_axis), pointer :: xAxis, yAxis + + ! Build a data set to plot + x = linspace(0.0d0, 10.0d0, npts) + y = exp(-0.5d0 * x) * sin(10.0d0 * x - 0.5d0) + + call dataset%define_data(x, y) + + ! Set up the plot + call plt%initialize() + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + ! Add the data to the plot + call plt%push(dataset) + + ! Save the plot to a file that can be opened by GNUPLOT at a later time + call plt%save_file("example_gnuplot_file.plt") +end program \ No newline at end of file diff --git a/examples/secondary_y_axis_example.f90 b/examples/secondary_y_axis_example.f90 new file mode 100644 index 0000000..540c54b --- /dev/null +++ b/examples/secondary_y_axis_example.f90 @@ -0,0 +1,53 @@ +program example + use fplot_core + use iso_fortran_env + implicit none + + ! Local Variables + integer(int32), parameter :: npts = 1000 + real(real64), dimension(npts) :: x, y1, y2 + type(plot_2d) :: plt + type(plot_data_2d) :: ds1, ds2 + class(plot_axis), pointer :: xAxis, yAxis, y2Axis + + ! Build a data set + x = linspace(0.0d0, 10.0d0, npts) + y1 = exp(-0.5d0 * x) * abs(sin(x)) + y2 = cos(0.5d0 * x) * sin(10.0d0 * x) + + call ds1%define_data(x, y1) + call ds1%set_name("f(x) = exp(-x / 2) * |sin(x)|") + + call ds2%define_data(x, y2) + call ds2%set_name("f(x) = cos(x / 2) * sin(10 x)") + + ! Make the ds2 line green and dashed + call ds2%set_line_color(CLR_GREEN) + call ds2%set_line_style(LINE_DASHED) + + ! Draw ds2 against the secondary y axis + call ds2%set_draw_against_y2(.true.) + + ! Ensure the plot knows it needs a secondary y axis + call plt%set_use_y2_axis(.true.) + + ! Set up the plot + call plt%initialize() + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + y2Axis => plt%get_y2_axis() + call y2Axis%set_title("Secondary Y Axis") + + ! Add the data to the plot + call plt%push(ds1) + call plt%push(ds2) + + ! Draw + call plt%draw() +end program \ No newline at end of file diff --git a/examples/square_axis_example.f90 b/examples/square_axis_example.f90 new file mode 100644 index 0000000..f4774e8 --- /dev/null +++ b/examples/square_axis_example.f90 @@ -0,0 +1,33 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Local Variables + integer(int32), parameter :: npts = 1000 + real(real64), parameter :: pi = 2.0d0 * acos(0.0d0) + real(real64) :: t(npts), x(npts), y(npts) + type(plot_2d) :: plt + type(plot_data_2d) :: pd + + ! Generate the data + t = linspace(0.0d0, 2.0d0 * pi, npts) + x = cos(t) + y = sin(t) + + ! Set up the plot + call plt%initialize() + call plt%set_font_size(14) + call plt%set_title("Default Settings") + + call pd%define_data(x, y) + call plt%push(pd) + + call plt%draw() + + ! Now show the effects of square axes + call plt%set_axis_equal(.false.) + call plt%set_square_axes(.true.) + call plt%set_title("Square Axes") + call plt%draw() +end program \ No newline at end of file diff --git a/examples/surface_plot_example.f90 b/examples/surface_plot_example.f90 new file mode 100644 index 0000000..f7f7191 --- /dev/null +++ b/examples/surface_plot_example.f90 @@ -0,0 +1,54 @@ +program example + use fplot_core + use iso_fortran_env + implicit none + + ! Parameters + integer(int32), parameter :: m = 50 + integer(int32), parameter :: n = 50 + + ! Local Variables + real(real64), dimension(m, n, 2), target :: xy + real(real64), pointer, dimension(:,:) :: x, y + real(real64), dimension(m, n) :: z + type(surface_plot) :: plt + type(surface_plot_data) :: d1 + class(plot_axis), pointer :: xAxis, yAxis, zAxis + type(rainbow_colormap) :: map + + ! Define the data + xy = meshgrid(linspace(-5.0d0, 5.0d0, n), linspace(-5.0d0, 5.0d0, m)) + x => xy(:,:,1) + y => xy(:,:,2) + + ! Initialize the plot + call plt%initialize() + call plt%set_colormap(map) + + ! Establish lighting + call plt%set_use_lighting(.true.) + + ! Set the orientation of the plot + call plt%set_elevation(20.0d0) + call plt%set_azimuth(30.0d0) + + ! Define titles + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + zAxis => plt%get_z_axis() + call zAxis%set_title("Z Axis") + + ! Define the function to plot + z = sqrt(x**2 + y**2) * sin(x**2 + y**2) + call d1%define_data(x, y, z) + call plt%push(d1) + + ! Draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/examples/surface_plot_example_2.f90 b/examples/surface_plot_example_2.f90 new file mode 100644 index 0000000..0fa2926 --- /dev/null +++ b/examples/surface_plot_example_2.f90 @@ -0,0 +1,60 @@ +program example + use, intrinsic :: iso_fortran_env + use fplot_core + implicit none + + ! Parameters + integer(int32), parameter :: m = 50 + integer(int32), parameter :: n = 50 + real(real64), parameter :: xMax = 5.0d0 + real(real64), parameter :: xMin = -5.0d0 + real(real64), parameter :: yMax = 5.0d0 + real(real64), parameter :: yMin = -5.0d0 + + ! Local Variables + real(real64), dimension(n) :: xdata + real(real64), dimension(m) :: ydata + real(real64), dimension(:,:), pointer :: x, y + real(real64), dimension(m, n, 2), target :: xy + real(real64), dimension(m, n) :: z + type(surface_plot) :: plt + type(surface_plot_data) :: d1 + type(rainbow_colormap) :: map + class(plot_axis), pointer :: xAxis, yAxis, zAxis + + ! Define the data + xdata = linspace(xMin, xMax, n) + ydata = linspace(yMin, yMax, m) + xy = meshgrid(xdata, ydata) + x => xy(:,:,1) + y => xy(:,:,2) + + ! Define the function to plot + z = sin(sqrt(x**2 + y**2)) + + ! Define colormap settings + call map%set_show_tics(.false.) + + ! Create the plot + call plt%initialize() + call plt%set_colormap(map) + + ! Define titles + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + zAxis => plt%get_z_axis() + call zAxis%set_title("Z Axis") + + ! Define the data set + call d1%define_data(x, y, z) + call plt%push(d1) + + ! Let GNUPLOT draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/examples/triangle_mesh_surface_example.f90 b/examples/triangle_mesh_surface_example.f90 new file mode 100644 index 0000000..deeb7bf --- /dev/null +++ b/examples/triangle_mesh_surface_example.f90 @@ -0,0 +1,68 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Variables + integer(int32), parameter :: npts = 15 + real(real64), allocatable :: xc(:,:), yc(:,:), x(:), y(:), z(:), xy(:,:,:) + real(real64) :: xi, yi, zi + type(delaunay_tri_surface) :: tri + type(tri_surface_plot_data) :: ds + type(plot_data_3d) :: di + type(surface_plot) :: plt + class(plot_axis), pointer :: xAxis, yAxis, zAxis + integer(int32) :: i + + ! Initialization + xy = meshgrid(linspace(-5.0d0, 5.0d0, npts), linspace(-5.0d0, 5.0d0, npts)) + xc = xy(:,:,1) + yc = xy(:,:,2) + x = reshape(xc, [npts * npts]) + y = reshape(yc, [npts * npts]) + z = sin(x) + sin(y) + + ! Generate the triangulation + call tri%create(x, y) + call tri%define_function_values(z) + + ! Interpolate using the triangulation + xi = 2.0d0 + yi = 2.0d0 + zi = tri%evaluate(xi, yi) + + ! Print the interpolated values + print '(A)', "Interpolated Value:" + print '(AF0.3AF0.3AF0.3)', achar(9), xi, achar(9), yi, achar(9), zi + + print '(A)', "Actual Values:" + print '(AF0.3AF0.3AF0.3)', achar(9), xi, achar(9), yi, achar(9), & + sin(xi) + sin(yi) + + ! Generate the plot + call plt%initialize() + call plt%set_font_size(14) + + xAxis => plt%get_x_axis() + yAxis => plt%get_y_axis() + zAxis => plt%get_z_axis() + + call xAxis%set_title("x") + call yAxis%set_title("y") + call zAxis%set_title("f(x,y)") + + call ds%define_data(tri) + call ds%set_use_wireframe(.true.) + + call di%define_data([xi], [yi], [zi]) + call di%set_draw_line(.false.) + call di%set_line_width(2.0) + call di%set_draw_markers(.true.) + call di%set_marker_style(MARKER_FILLED_CIRCLE) + call di%set_marker_scaling(3.0) + call di%set_line_color(CLR_RED) + + call plt%push(ds) + call plt%push(di) + call plt%draw() +end program \ No newline at end of file diff --git a/examples/triangulation_2d_example.f90 b/examples/triangulation_2d_example.f90 new file mode 100644 index 0000000..d0745d2 --- /dev/null +++ b/examples/triangulation_2d_example.f90 @@ -0,0 +1,42 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Parameters + integer(int32), parameter :: npts = 1000 + real(real64), parameter :: pi = 2.0d0 * acos(0.0d0) + + ! Local Variables + type(delaunay_tri_2d) :: tri + real(real64) :: x(npts), y(npts), theta(npts), radius(npts) + type(plot_2d) :: plt + type(plot_data_tri_2d) :: ds + + ! Initialization + call random_number(theta) + theta = 2.0d0 * pi * theta + + call random_number(radius) + radius = radius + 0.5d0 + + x = radius * cos(theta) + y = radius * sin(theta) + + ! Create a 2D triangulation from the data + call tri%create(x, y) + + ! Display the number of points and elements + print '(AI0AI0A)', "The triangulation consists of ", & + tri%get_point_count(), " points, and ", tri%get_triangle_count(), & + " triangles." + + ! Plot the triangulation + call plt%initialize() + call plt%set_font_size(14) + + call ds%define_data(tri) + call plt%push(ds) + + call plt%draw() +end program diff --git a/examples/triangulation_2d_location_example.f90 b/examples/triangulation_2d_location_example.f90 new file mode 100644 index 0000000..f3a292e --- /dev/null +++ b/examples/triangulation_2d_location_example.f90 @@ -0,0 +1,73 @@ +program example + use fplot_core + use iso_fortran_env + implicit none + + ! Parameters + integer(int32), parameter :: npts = 1000 + real(real64), parameter :: pi = 2.0d0 * acos(0.0d0) + real(real64), parameter :: xpt = 0.75d0 + real(real64), parameter :: ypt = 0.75d0 + + ! Local Variables + type(delaunay_tri_2d) :: tri + real(real64) :: x(npts), y(npts), theta(npts), radius(npts), & + xtri(3), ytri(3) + integer(int32) :: ind, n1, n2, n3 + integer(int32), allocatable, dimension(:,:) :: indices + type(plot_2d) :: plt + type(plot_data_tri_2d) :: ds + type(plot_data_2d) :: dtri, dpt + + ! Initialization + call random_number(theta) + theta = 2.0d0 * pi * theta + + call random_number(radius) + radius = radius + 0.5d0 + + x = radius * cos(theta) + y = radius * sin(theta) + + ! Create a 2D triangulation from the data + call tri%create(x, y) + + ! Find the index of the triangle containing (xpt, ypt) + ind = tri%find_triangle(xpt, ypt) + if (ind == -1) then + print '(A)', "No triangle was found that included the specified point." + end if + + ! Get the vertices of this triangle + indices = tri%get_indices() + n1 = indices(ind, 1) + n2 = indices(ind, 2) + n3 = indices(ind, 3) + xtri = [x(n1), x(n2), x(n3)] + ytri = [y(n1), y(n2), y(n3)] + + ! Plot the triangulation, the point of interest, and highlight the triangle + call plt%initialize() + call plt%set_font_size(14) + + call ds%define_data(tri) + call plt%push(ds) + + call dtri%define_data(xtri, ytri) + call dtri%set_draw_line(.false.) + call dtri%set_draw_markers(.true.) + call dtri%set_marker_style(MARKER_FILLED_CIRCLE) + call dtri%set_marker_scaling(1.2) + call dtri%set_line_color(CLR_LIME) + call plt%push(dtri) + + call dpt%define_data([xpt], [ypt]) + call dpt%set_draw_line(.false.) + call dpt%set_draw_markers(.true.) + call dpt%set_marker_style(MARKER_X) + call dpt%set_marker_scaling(3.0) + call dpt%set_line_width(2.0) + call plt%push(dpt) + + call plt%draw() +end program diff --git a/examples/fplot_variable_point_size.f90 b/examples/variable_point_size_2d_example.f90 similarity index 100% rename from examples/fplot_variable_point_size.f90 rename to examples/variable_point_size_2d_example.f90 diff --git a/examples/fplot_3d_variable_point_size.f90 b/examples/variable_point_size_3d_example.f90 similarity index 100% rename from examples/fplot_3d_variable_point_size.f90 rename to examples/variable_point_size_3d_example.f90 diff --git a/examples/vector_plot_example.f90 b/examples/vector_plot_example.f90 new file mode 100644 index 0000000..0609757 --- /dev/null +++ b/examples/vector_plot_example.f90 @@ -0,0 +1,68 @@ +program example + use iso_fortran_env + use fplot_core + implicit none + + ! Local Variables + type(plot_2d) :: plt + type(vector_field_plot_data) :: ds1 + class(plot_axis), pointer :: xAxis, yAxis + real(real64), allocatable, dimension(:,:,:) :: pts + real(real64), allocatable, dimension(:,:) :: dx, dy + real(real64) :: dxdt(2) + integer(int32) :: i, j + + ! Create a grid of points defining the vector locations + pts = meshgrid( & + linspace(-2.0d0, 2.0d0, 20), & + linspace(-5.0d0, 5.0d0, 20)) + + ! Compute the values of each derivative + allocate(dx(size(pts, 1), size(pts, 2))) + allocate(dy(size(pts, 1), size(pts, 2))) + do j = 1, size(pts, 2) + do i = 1, size(pts, 1) + call eqn([pts(i,j,1), pts(i,j,2)], dxdt) + dx(i,j) = dxdt(1) + dy(i,j) = dxdt(2) + end do + end do + + ! Define arrow properties + call ds1%set_arrow_size(0.1d0) ! 1.0 by default + call ds1%set_fill_arrow(.true.) ! .false. by default + + ! Create the plot + call plt%initialize() + call plt%set_font_size(14) + xAxis => plt%get_x_axis() + yAxis => plt%get_y_axis() + + ! Define axis labels + call xAxis%set_title("x(t)") + call yAxis%set_title("dx/dt") + + ! Set plot style information + call xAxis%set_zero_axis(.true.) + call yAxis%set_zero_axis(.true.) + call plt%set_draw_border(.false.) + call plt%set_show_gridlines(.false.) + + ! Add the data to the plot + call ds1%define_data(pts(:,:,1), pts(:,:,2), dx, dy) + call plt%push(ds1) + + call plt%draw() +contains + ! Van der Pol Equation + ! x" - mu * (1 - x^2) * x' + x = 0 + subroutine eqn(x, dxdt) + real(real64), intent(in) :: x(2) + real(real64), intent(out) :: dxdt(2) + + real(real64), parameter :: mu = 2.0d0 + + dxdt(1) = x(2) + dxdt(2) = mu * (1.0d0 - x(1)**2) * x(2) - x(1) + end subroutine +end program \ No newline at end of file diff --git a/examples/wireframe_surface_example.f90 b/examples/wireframe_surface_example.f90 new file mode 100644 index 0000000..a9169c0 --- /dev/null +++ b/examples/wireframe_surface_example.f90 @@ -0,0 +1,65 @@ +program example + use, intrinsic :: iso_fortran_env + use fplot_core + implicit none + + ! Parameters + integer(int32), parameter :: m = 50 + integer(int32), parameter :: n = 50 + real(real64), parameter :: xMax = 5.0d0 + real(real64), parameter :: xMin = -5.0d0 + real(real64), parameter :: yMax = 5.0d0 + real(real64), parameter :: yMin = -5.0d0 + + ! Local Variables + real(real64), dimension(n) :: xdata + real(real64), dimension(m) :: ydata + real(real64), dimension(:,:), pointer :: x, y + real(real64), dimension(m, n, 2), target :: xy + real(real64), dimension(m, n) :: z + type(surface_plot) :: plt + type(surface_plot_data) :: d1 + ! type(rainbow_colormap) :: map + class(plot_axis), pointer :: xAxis, yAxis, zAxis + + ! Define the data + xdata = linspace(xMin, xMax, n) + ydata = linspace(yMin, yMax, m) + xy = meshgrid(xdata, ydata) + x => xy(:,:,1) + y => xy(:,:,2) + + ! Define the function to plot + z = sin(sqrt(x**2 + y**2)) + + ! Create the plot + call plt%initialize() + call plt%set_show_hidden(.true.) + call d1%set_use_wireframe(.true.) + ! call plt%set_colormap(map) + + ! Set up lighting + call plt%set_use_lighting(.true.) + call plt%set_light_intensity(0.7) + call plt%set_specular_intensity(0.7) + + ! Define titles + call plt%set_title("Example Plot") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + zAxis => plt%get_z_axis() + call zAxis%set_title("Z Axis") + + ! Define the data set + call d1%define_data(x, y, z) + call d1%set_name("sin(sqrt(x**2 + y**2))") + call plt%push(d1) + + ! Let GNUPLOT draw the plot + call plt%draw() +end program diff --git a/examples/zero_axis_example.f90 b/examples/zero_axis_example.f90 new file mode 100644 index 0000000..6305999 --- /dev/null +++ b/examples/zero_axis_example.f90 @@ -0,0 +1,61 @@ +program example + use, intrinsic :: iso_fortran_env + use fplot_core + implicit none + + ! Parameters + integer(int32), parameter :: n = 1000 + + ! Local Variables + real(real64), dimension(n) :: x, y1, y2 + type(plot_2d) :: plt + type(plot_data_2d) :: d1, d2 + class(plot_axis), pointer :: xAxis, yAxis + type(legend), pointer :: lgnd + + ! Initialize the plot object + call plt%initialize() + + ! Set plot properties + call plt%set_draw_border(.false.) + call plt%set_show_gridlines(.false.) + + ! Define the legend location + lgnd => plt%get_legend() + call lgnd%set_is_visible(.true.) + call lgnd%set_draw_inside_axes(.false.) + + ! Define titles + call plt%set_title("2D Example Plot 2") + + xAxis => plt%get_x_axis() + call xAxis%set_title("X Axis") + call xAxis%set_zero_axis(.true.) + call xAxis%set_zero_axis_line_width(1.0) + + yAxis => plt%get_y_axis() + call yAxis%set_title("Y Axis") + + ! Define the data, and then add it to the plot + x = linspace(0.0d0, 10.d0, n) + y1 = sin(5.0d0 * x) + y2 = 2.0d0 * cos(2.0d0 * x) + + call d1%define_data(x, y1) + call d2%define_data(x, y2) + + ! Define properties for each data set + call d1%set_name("Data Set 1") + call d1%set_line_width(1.0) + + call d2%set_name("Data Set 2") + call d2%set_line_style(LINE_DASHED) + call d2%set_line_width(2.0) + + ! Add the data sets to the plot + call plt%push(d1) + call plt%push(d2) + + ! Let GNUPLOT draw the plot + call plt%draw() +end program \ No newline at end of file diff --git a/fpm.toml b/fpm.toml index 7d26439..41b7c4f 100644 --- a/fpm.toml +++ b/fpm.toml @@ -1,5 +1,5 @@ name = "fplot" -version = "1.7.1" +version = "1.7.2" license = "GPL-3.0" author = "Jason Christopherson" maintainer = "Jason Christopherson" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 36ed8c3..8d2b387 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -17,19 +17,13 @@ set(FPLOT_SOURCES ${dir}/fplot_legend.f90 ${dir}/fplot_plot.f90 ${dir}/fplot_colormap.f90 - ${dir}/fplot_scatter_plot_data.f90 ${dir}/fplot_simplify.f90 - ${dir}/fplot_plot_data_2d.f90 - ${dir}/fplot_plot_data_3d.f90 - ${dir}/fplot_surface_plot_data.f90 ${dir}/fplot_plot_2d.f90 ${dir}/fplot_plot_3d.f90 ${dir}/fplot_surface_plot.f90 - ${dir}/fplot_axis.f90 ${dir}/fplot_label.f90 ${dir}/fplot_multiplot.f90 ${dir}/fplot_plot_data_error_bars.f90 - ${dir}/fplot_plot_data_colored.f90 ${dir}/fplot_plot_data_bar.f90 ${dir}/fplot_plot_data_histogram.f90 ${dir}/fplot_plot_bar.f90 @@ -41,5 +35,11 @@ set(FPLOT_SOURCES ${dir}/fplot_filled_plot_data.f90 ${dir}/fplot_triangulations_delaunay_2d.f90 ${dir}/fplot_arrow.f90 + ${dir}/fplot_errors.f90 + ${dir}/fplot_constants.f90 + ${dir}/fplot_plot_object.f90 + ${dir}/fplot_plot_data_2d.f90 + ${dir}/fplot_plot_data_3d.f90 + ${dir}/fplot_surface_plot_data.f90 ) set(FPLOT_SOURCES ${FPLOT_SOURCES} PARENT_SCOPE) diff --git a/src/fplot_arrow.f90 b/src/fplot_arrow.f90 index 7fd239a..c07e691 100644 --- a/src/fplot_arrow.f90 +++ b/src/fplot_arrow.f90 @@ -1,101 +1,245 @@ -submodule (fplot_core) fplot_arrow +module fplot_arrow + use iso_fortran_env + use fplot_plot_object + use fplot_colors + use fplot_constants + use strings implicit none + private + public :: plot_arrow + + type, extends(plot_object) :: plot_arrow + !! Defines an arrow that can be drawn on a plot. + logical, private :: m_visible = .true. + !! Visible? + real(real32), private, dimension(3) :: m_tail = [0.0, 0.0, 0.0] + !! The x, y, z coordinates of the tail. + real(real32), private, dimension(3) :: m_head = [0.0, 0.0, 0.0] + !! The x, y, z coordinates of the head. + type(color), private :: m_color = CLR_BLACK + !! The arrow color. + integer(int32), private :: m_linestyle = LINE_SOLID + !! The line style. + real(real32), private :: m_linewidth = 1.0 + !! The line width. + integer(int32), private :: m_head_type = ARROW_HEAD + !! The head configuration. + integer(int32), private :: m_filling = ARROW_FILLED + !! Arrow filling. + logical, private :: m_front = .true. + !! Move to front? + real(real32), private :: m_size = 0.375 + !! Arrow head size. + real(real32), private :: m_angle = 10.0 + !! Arrow head angle. + real(real32), private :: m_backangle = 90.0 + !! Arrow head back angle. + logical, private :: m_use_default_size = .true. + !! Use default head size. + contains + procedure, public :: get_is_visible => par_get_is_visible + procedure, public :: set_is_visible => par_set_is_visible + procedure, public :: get_tail_location => par_get_tail + generic, public :: set_tail_location => par_set_tail_1, & + par_set_tail_2, par_set_tail_3 + procedure, private :: par_set_tail_1 + procedure, private :: par_set_tail_2 + procedure, private :: par_set_tail_3 + procedure, public :: get_head_location => par_get_head + generic, public :: set_head_location => par_set_head_1, & + par_set_head_2, par_set_head_3 + procedure, private :: par_set_head_1 + procedure, private :: par_set_head_2 + procedure, private :: par_set_head_3 + procedure, public :: get_color => par_get_color + procedure, public :: set_color => par_set_color + procedure, public :: get_line_style => par_get_line_style + procedure, public :: set_line_style => par_set_line_style + procedure, public :: get_line_width => par_get_line_width + procedure, public :: set_line_width => par_set_line_width + procedure, public :: get_head_type => par_get_head_type + procedure, public :: set_head_type => par_set_head_type + procedure, public :: get_head_fill => par_get_fill + procedure, public :: set_head_fill => par_set_fill + procedure, public :: get_move_to_front => par_get_move_to_front + procedure, public :: set_move_to_front => par_set_move_to_front + procedure, public :: get_head_size => par_get_head_size + procedure, public :: set_head_size => par_set_head_size + procedure, public :: get_head_angle => par_get_head_angle + procedure, public :: set_head_angle => par_set_head_angle + procedure, public :: get_head_back_angle => par_get_head_back_angle + procedure, public :: set_head_back_angle => par_set_head_back_angle + procedure, public :: get_use_default_size => par_get_use_default_size + procedure, public :: set_use_default_size => par_set_use_default_size + procedure, public :: get_command_string => par_get_cmd + end type + contains ! ------------------------------------------------------------------------------ -pure module function par_get_is_visible(this) result(rst) +pure function par_get_is_visible(this) result(rst) + !! Gets a value determining if the arrow is visible. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. logical :: rst + !! True if the arrow is visible; else, false. rst = this%m_visible end function ! -------------------- -module subroutine par_set_is_visible(this, x) +subroutine par_set_is_visible(this, x) + !! Sets a value determining if the arrow is visible. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. logical, intent(in) :: x + !! True if the arrow is visible; else, false. this%m_visible = x end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_tail(this) result(rst) +pure function par_get_tail(this) result(rst) + !! Gets the coordinates of the arrow's tail. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. real(real32), dimension(3) :: rst + !! A 3-element array containing the x, y, and z coordinates of the + !! arrow's tail. rst = this%m_tail end function ! -------------------- -module subroutine par_set_tail_1(this, x) +subroutine par_set_tail_1(this, x) + !! Sets the coordinates of the arrow's tail. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. real(real32), intent(in) :: x(3) + !! A 3-element array containing the x, y, and z coordinates of the + !! arrow's tail. this%m_tail = x end subroutine ! -------------------- -module subroutine par_set_tail_2(this, x, y) +subroutine par_set_tail_2(this, x, y) + !! Sets the coordinates of the arrow's tail. class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x, y + !! The plot_arrow object. + real(real32), intent(in) :: x + !! The x-coordinate of the arrow's tail. + real(real32), intent(in) :: y + !! !! The y-coordinate of the arrow's tail. this%m_tail = [x, y, 0.0] end subroutine ! -------------------- -module subroutine par_set_tail_3(this, x, y, z) +subroutine par_set_tail_3(this, x, y, z) + !! Sets the coordinates of the arrow's tail. class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x, y, z + !! The plot_arrow object. + real(real32), intent(in) :: x + !! The x-coordinate of the arrow's tail. + real(real32), intent(in) :: y + !! The y-coordinate of the arrow's tail. + real(real32), intent(in) :: z + !! The z-coordinate of the arrow's tail. this%m_tail = [x, y, z] end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_head(this) result(rst) +pure function par_get_head(this) result(rst) + !! Gets the coordinates of the arrow's head. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. real(real32), dimension(3) :: rst + !! A 3-element array containing the x, y, and z coordinates of the + !! arrow's head. rst = this%m_head end function ! -------------------- -module subroutine par_set_head_1(this, x) +subroutine par_set_head_1(this, x) + !! Sets the location of the arrow's head. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. real(real32), intent(in) :: x(3) + !! A 3-element array containing the x, y, and z coordinates of the + !! arrow's head. this%m_head = x end subroutine ! -------------------- -module subroutine par_set_head_2(this, x, y) +subroutine par_set_head_2(this, x, y) + !! Sets the location of the arrow's head. class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x, y + !! The plot_arrow object. + real(real32), intent(in) :: x + !! The x-coordinate of the arrow's head. + real(real32), intent(in) :: y + !! The y-coordinate of the arrow's head. this%m_head = [x, y, 0.0] end subroutine ! -------------------- -module subroutine par_set_head_3(this, x, y, z) +subroutine par_set_head_3(this, x, y, z) + !! Sets the location of the arrow's head. class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x, y, z + !! The plot_arrow object. + real(real32), intent(in) :: x + !! The x-coordinate of the arrow's head. + real(real32), intent(in) :: y + !! The y-coordinate of the arrow's head. + real(real32), intent(in) :: z + !! The z-coordinate of the arrow's head. this%m_head = [x, y, z] end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_color(this) result(rst) +pure function par_get_color(this) result(rst) + !! Gets the color of the arrow. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. type(color) :: rst + !! The color. rst = this%m_color end function ! -------------------- -module subroutine par_set_color(this, x) +subroutine par_set_color(this, x) + !! Sets the color of the arrow. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. type(color), intent(in) :: x + !! The color. this%m_color = x end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_line_style(this) result(rst) +pure function par_get_line_style(this) result(rst) + !! Gets the line style used to draw the arrow. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. integer(int32) :: rst + !! The line style. rst = this%m_linestyle end function ! -------------------- -module subroutine par_set_line_style(this, x) +subroutine par_set_line_style(this, x) + !! Sets the line style used to draw the arrow. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. integer(int32), intent(in) :: x + !! The line style. The value must be one of the following. + !! + !! - LINE_SOLID + !! + !! - LINE_DASHED + !! + !! - LINE_DASH_DOTTED + !! + !! - LINE_DASH_DOT_DOT + !! + !! - LINE_DOTTED + !! + !! If the value is not one of the above, the command is ignored. if (x == LINE_DASHED .or. & x == LINE_DASH_DOTTED .or. & x == LINE_DASH_DOT_DOT .or. & @@ -107,30 +251,52 @@ module subroutine par_set_line_style(this, x) end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_line_width(this) result(rst) +pure function par_get_line_width(this) result(rst) + !! Gets the width of the lines used to draw the arrow. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. real(real32) :: rst + !! The width of the line. rst = this%m_linewidth end function ! -------------------- -module subroutine par_set_line_width(this, x) +subroutine par_set_line_width(this, x) + !! Sets the width of the lines used to draw the arrow. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. real(real32), intent(in) :: x + !! The width of the line. this%m_linewidth = x end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_head_type(this) result(rst) +pure function par_get_head_type(this) result(rst) + !! Gets the type of arrow head. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. integer(int32) :: rst + !! The arrow head type. rst = this%m_head_type end function ! -------------------- -module subroutine par_set_head_type(this, x) +subroutine par_set_head_type(this, x) + !! Sets the type of arrow head. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. integer(int32), intent(in) :: x + !! The arrow head type. It must be one of the following constants. + !! + !! - ARROW_HEAD + !! + !! - ARROW_BACKHEAD + !! + !! - ARROW_HEADS + !! + !! - ARROW_NO_HEAD + !! + !! If the value is not one of the above, the command is ignored. if (x == ARROW_BACKHEAD .or. & x == ARROW_HEAD .or. & x == ARROW_HEADS .or. & @@ -141,16 +307,33 @@ module subroutine par_set_head_type(this, x) end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_fill(this) result(rst) +pure function par_get_fill(this) result(rst) + !! Gets a flag denoting the head fill type. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. integer(int32) :: rst + !! The flag denoting head fill. rst = this%m_filling end function ! -------------------- -module subroutine par_set_fill(this, x) +subroutine par_set_fill(this, x) + !! Sets a flag denoting the head fill type. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. integer(int32), intent(in) :: x + !! The flag denoting head fill. It must be one of the following + !! constants. + !! + !! - ARROW_FILLED + !! + !! - ARROW_EMPTY + !! + !! - ARROW_NO_BORDER + !! + !! - ARROW_NO_FILL + !! + !! If the value is not one of the above, the command is ignored. if (x == ARROW_FILLED .or. & x == ARROW_EMPTY .or. & x == ARROW_NO_BORDER .or. & @@ -161,80 +344,113 @@ module subroutine par_set_fill(this, x) end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_move_to_front(this) result(rst) +pure function par_get_move_to_front(this) result(rst) + !! Gets a value determining if the arrow should be moved to the front. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. logical :: rst + !! True if the arrow should be moved to the front; else, false. rst = this%m_front end function ! -------------------- -module subroutine par_set_move_to_front(this, x) +subroutine par_set_move_to_front(this, x) + !! Sets a value determining if the arrow should be moved to the front. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. logical, intent(in) :: x + !! True if the arrow should be moved to the front; else, false. this%m_front = x end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_head_size(this) result(rst) +pure function par_get_head_size(this) result(rst) + !! Gets the size of the arrow head. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. real(real32) :: rst + !! The head size. rst = this%m_size end function ! -------------------- -module subroutine par_set_head_size(this, x) +subroutine par_set_head_size(this, x) + !! Sets the size of the arrow head. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. real(real32), intent(in) :: x + !! The head size. this%m_size = x end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_head_angle(this) result(rst) +pure function par_get_head_angle(this) result(rst) + !! Gets the angle of the arrow head. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. real(real32) :: rst + !! The angle, in degrees. rst = this%m_angle end function ! -------------------- -module subroutine par_set_head_angle(this, x) +subroutine par_set_head_angle(this, x) + !! Sets the angle of the arrow head. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. real(real32), intent(in) :: x + !! The angle, in degrees. this%m_angle = x end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_head_back_angle(this) result(rst) +pure function par_get_head_back_angle(this) result(rst) + !! Gets the angle of the back of the arrow head. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. real(real32) :: rst + !! The angle, in degrees. rst = this%m_backangle end function ! -------------------- -module subroutine par_set_head_back_angle(this, x) +subroutine par_set_head_back_angle(this, x) + !! Sets the angle of the back of the arrow head. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. real(real32), intent(in) :: x + !! The angle, in degrees. this%m_backangle = x end subroutine ! ------------------------------------------------------------------------------ -pure module function par_get_use_default_size(this) result(rst) +pure function par_get_use_default_size(this) result(rst) + !! Gets a value determining if arrow head sizing defaults should be used. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. logical :: rst + !! True if the defaults should be used; else, false. rst = this%m_use_default_size end function ! -------------------- -module subroutine par_set_use_default_size(this, x) +subroutine par_set_use_default_size(this, x) + !! Sets a value determining if arrow head sizing defaults should be used. class(plot_arrow), intent(inout) :: this + !! The plot_arrow object. logical, intent(in) :: x + !! True if the defaults should be used; else, false. this%m_use_default_size = x end subroutine ! ------------------------------------------------------------------------------ -module function par_get_cmd(this) result(rst) - ! Arguments +function par_get_cmd(this) result(rst) + !! Returns the appropriate GNUPLOT command string to establish appropriate + !! parameters. class(plot_arrow), intent(in) :: this + !! The plot_arrow object. character(len = :), allocatable :: rst + !! The GNUPLOT command string. ! Local Variables type(string_builder) :: str @@ -333,23 +549,23 @@ module function par_get_cmd(this) result(rst) end function ! ------------------------------------------------------------------------------ -pure module subroutine par_assign(x, y) - type(plot_arrow), intent(out) :: x - class(plot_arrow), intent(in) :: y - x%m_visible = y%m_visible - x%m_tail = y%m_tail - x%m_head = y%m_head - x%m_color = y%m_color - x%m_linestyle = y%m_linestyle - x%m_linewidth = y%m_linewidth - x%m_head_type = y%m_head_type - x%m_filling = y%m_filling - x%m_front = y%m_front - x%m_size = y%m_size - x%m_angle = y%m_angle - x%m_backangle = y%m_backangle - x%m_use_default_size = y%m_use_default_size -end subroutine +! pure subroutine par_assign(x, y) +! type(plot_arrow), intent(out) :: x +! class(plot_arrow), intent(in) :: y +! x%m_visible = y%m_visible +! x%m_tail = y%m_tail +! x%m_head = y%m_head +! x%m_color = y%m_color +! x%m_linestyle = y%m_linestyle +! x%m_linewidth = y%m_linewidth +! x%m_head_type = y%m_head_type +! x%m_filling = y%m_filling +! x%m_front = y%m_front +! x%m_size = y%m_size +! x%m_angle = y%m_angle +! x%m_backangle = y%m_backangle +! x%m_use_default_size = y%m_use_default_size +! end subroutine ! ------------------------------------------------------------------------------ -end submodule \ No newline at end of file +end module \ No newline at end of file diff --git a/src/fplot_axis.f90 b/src/fplot_axis.f90 deleted file mode 100644 index a45695c..0000000 --- a/src/fplot_axis.f90 +++ /dev/null @@ -1,41 +0,0 @@ -! fplot_axis.f90 - -submodule (fplot_core) fplot_axis -contains -! ****************************************************************************** -! X_AXIS MEMBERS -! ------------------------------------------------------------------------------ - module function xa_get_id(this) result(x) - class(x_axis), intent(in) :: this - character(len = :), allocatable :: x - x = this%m_id - end function - -! ****************************************************************************** -! Y_AXIS MEMBERS -! ------------------------------------------------------------------------------ - module function ya_get_id(this) result(x) - class(y_axis), intent(in) :: this - character(len = :), allocatable :: x - x = this%m_id - end function - -! ****************************************************************************** -! Y2_AXIS MEMBERS -! ------------------------------------------------------------------------------ - module function y2a_get_id(this) result(x) - class(y2_axis), intent(in) :: this - character(len = :), allocatable :: x - x = this%m_id - end function - -! ****************************************************************************** -! Z_AXIS MEMBERS -! ------------------------------------------------------------------------------ - module function za_get_id(this) result(x) - class(z_axis), intent(in) :: this - character(len = :), allocatable :: x - x = this%m_id - end function - -end submodule \ No newline at end of file diff --git a/src/fplot_colormap.f90 b/src/fplot_colormap.f90 index a58dc5d..92dea51 100644 --- a/src/fplot_colormap.f90 +++ b/src/fplot_colormap.f90 @@ -1,14 +1,125 @@ ! fplot_colormap.f90 -submodule (fplot_core) fplot_colormap +module fplot_colormap + use iso_fortran_env + use fplot_plot_object + use strings + use ferror + use fplot_errors + use fplot_colors + use forcolormap, cmap => Colormap ! avoid conflict with the internally defined colormap type + implicit none + private + public :: cmap + public :: colormap + public :: cm_get_string_result + public :: rainbow_colormap + public :: hot_colormap + public :: cool_colormap + public :: parula_colormap + public :: grey_colormap + public :: earth_colormap + public :: custom_colormap + + type, abstract, extends(plot_object) :: colormap + !! A colormap object for a surface plot. + character(len = :), private, allocatable :: m_label + !! The label to associate with the colormap. + logical, private :: m_horizontal = .false. + !! The colormap should be drawn horizontally. + logical, private :: m_drawBorder = .true. + !! Draw the colormap border. + logical, private :: m_showTics = .true. + !! Show the tic marks. + contains + procedure, public :: get_command_string => cm_get_cmd + procedure(cm_get_string_result), deferred, public :: get_color_string + procedure, public :: get_label => cm_get_label + procedure, public :: set_label => cm_set_label + procedure, public :: get_horizontal => cm_get_horizontal + procedure, public :: set_horizontal => cm_set_horizontal + procedure, public :: get_draw_border => cm_get_draw_border + procedure, public :: set_draw_border => cm_set_draw_border + procedure, public :: get_show_tics => cm_get_show_tics + procedure, public :: set_show_tics => cm_set_show_tics + end type + + interface + function cm_get_string_result(this) result(x) + !! Retrieves a string result from a colormap object. + import colormap + class(colormap), intent(in) :: this + !! The colormap object. + character(len = :), allocatable :: x + !! The string. + end function + end interface +! ------------------------------------------------------------------------------ + type, extends(colormap) :: rainbow_colormap + !! Defines a rainbow colormap. + contains + procedure, public :: get_color_string => rcm_get_clr + end type + +! ------------------------------------------------------------------------------ + type, extends(colormap) :: hot_colormap + !! Defines a colormap consisting of "hot" colors. + contains + procedure, public :: get_color_string => hcm_get_clr + end type + +! ------------------------------------------------------------------------------ + type, extends(colormap) :: cool_colormap + !! Defines a colormap consisting of "cool" colors. + contains + procedure, public :: get_color_string => ccm_get_clr + end type + +! ------------------------------------------------------------------------------ + type, extends(colormap) :: parula_colormap + !! Defines a colormap equivalent to the MATLAB parula colormap. + contains + procedure, public :: get_color_string => pcm_get_clr + end type + +! ------------------------------------------------------------------------------ + type, extends(colormap) :: grey_colormap + !! Defines a grey-scaled colormap. + contains + procedure, public :: get_color_string => gcm_get_clr + end type + +! ------------------------------------------------------------------------------ + type, extends(colormap) :: earth_colormap + !! Defines an earthy-colored colormap. + contains + procedure, public :: get_color_string => ecm_get_clr + end type + +! ------------------------------------------------------------------------------ + type, extends(colormap) :: custom_colormap + !! Defines a custom colormap that utilizes the FORCOLORMAP library + !! to provide the map. + class(cmap), private, pointer :: m_map => null() + !! The FORCOLORMAP object. + contains + final :: custom_final + procedure, public :: get_color_string => custom_get_clr + procedure, public :: set_colormap => custom_set + procedure, public :: get_colormap => custom_get + end type + +! ------------------------------------------------------------------------------ contains ! ****************************************************************************** ! COLORMAP MEMBERS ! ------------------------------------------------------------------------------ - module function cm_get_cmd(this) result(x) - ! Arguments + function cm_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this colormap object. class(colormap), intent(in) :: this + !! The colormap object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -65,9 +176,12 @@ module function cm_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - pure module function cm_get_label(this) result(rst) + pure function cm_get_label(this) result(rst) + !! Gets the label to associate with the colorbar. class(colormap), intent(in) :: this + !! The colormap object. character(len = :), allocatable :: rst + !! The label. if (allocated(this%m_label)) then rst = this%m_label else @@ -76,51 +190,76 @@ pure module function cm_get_label(this) result(rst) end function ! -------------------- - module subroutine cm_set_label(this, x) + subroutine cm_set_label(this, x) + !! Sets the label to associate with the colorbar. class(colormap), intent(inout) :: this + !! The colormap object. character(len = *), intent(in) :: x + !! The label. this%m_label = x end subroutine ! ------------------------------------------------------------------------------ - pure module function cm_get_horizontal(this) result(rst) + pure function cm_get_horizontal(this) result(rst) + !! Gets a logical value determining if the colormap should be + !! drawn horizontally and below the plot. class(colormap), intent(in) :: this + !! The colormap object. logical :: rst + !! Returns true if the colormap should be drawn horizontally; + !! else, false. rst = this%m_horizontal end function ! -------------------- - module subroutine cm_set_horizontal(this, x) + subroutine cm_set_horizontal(this, x) + !! Sets a logical value determining if the colormap should be + !! drawn horizontally and below the plot. class(colormap), intent(inout) :: this + !! The colormap object. logical, intent(in) :: x + !! Set to true if the colormap should be drawn horizontally; + !! else, false. this%m_horizontal = x end subroutine ! ------------------------------------------------------------------------------ - pure module function cm_get_draw_border(this) result(rst) + pure function cm_get_draw_border(this) result(rst) + !! Gets a logical value determining if the border should be drawn. class(colormap), intent(in) :: this + !! The colormap object. logical :: rst + !! Returns true if the border should be drawn; else, false. rst = this%m_drawBorder end function ! -------------------- - module subroutine cm_set_draw_border(this, x) + subroutine cm_set_draw_border(this, x) + !! Sets a logical value determining if the border should be drawn. class(colormap), intent(inout) :: this + !! The colormap object. logical, intent(in) :: x + !! Set to true if the border should be drawn; else, false. this%m_drawBorder = x end subroutine ! ------------------------------------------------------------------------------ - pure module function cm_get_show_tics(this) result(rst) + pure function cm_get_show_tics(this) result(rst) + !! Gets a logical value determining if the tic marks should be drawn. class(colormap), intent(in) :: this + !! The colormap object. logical :: rst + !! Returns true if the tic marks should be drawn; else, false. rst = this%m_showTics end function ! -------------------- - module subroutine cm_set_show_tics(this, x) + subroutine cm_set_show_tics(this, x) + !! Sets a logical value determining if the tic marks should be drawn. class(colormap), intent(inout) :: this + !! The colormap object. logical, intent(in) :: x + !! Set to true if the tic marks should be drawn; else, false. this%m_showTics = x end subroutine @@ -131,9 +270,12 @@ module subroutine cm_set_show_tics(this, x) ! ****************************************************************************** ! RAINBOW_COLORMAP MEMBERS ! ------------------------------------------------------------------------------ - module function rcm_get_clr(this) result(x) + function rcm_get_clr(this) result(x) + !! Gets the GNUPLOT string defining the color distribution. class(rainbow_colormap), intent(in) :: this + !! The rainbow_colormap object. character(len = :), allocatable :: x + !! The command string. x = '0 "dark-blue", 1 "blue", 2 "cyan", 3 "green", 4 "yellow", ' // & '5 "orange", 6 "red", 7 "dark-red"' end function @@ -141,18 +283,24 @@ module function rcm_get_clr(this) result(x) ! ****************************************************************************** ! HOT_COLORMAP MEMBERS ! ------------------------------------------------------------------------------ - module function hcm_get_clr(this) result(x) + function hcm_get_clr(this) result(x) + !! Gets the GNUPLOT string defining the color distribution. class(hot_colormap), intent(in) :: this + !! The hot_colormap object. character(len = :), allocatable :: x + !! The command string. x = '0 "black", 1 "red", 2 "orange", 3 "yellow", 4 "white"' end function ! ****************************************************************************** ! COOL_COLORMAP MEMBERS ! ------------------------------------------------------------------------------ - module function ccm_get_clr(this) result(x) + function ccm_get_clr(this) result(x) + !! Gets the GNUPLOT string defining the color distribution. class(cool_colormap), intent(in) :: this + !! The cool_colormap object. character(len = :), allocatable :: x + !! The command string. type(string_builder) :: str @@ -172,9 +320,12 @@ module function ccm_get_clr(this) result(x) ! ****************************************************************************** ! PARULA_COLORMAP MEMBERS ! ------------------------------------------------------------------------------ - module function pcm_get_clr(this) result(x) + function pcm_get_clr(this) result(x) + !! Gets the GNUPLOT string defining the color distribution. class(parula_colormap), intent(in) :: this + !! The parula_colormap object. character(len = :), allocatable :: x + !! The command string. type(string_builder) :: str @@ -194,9 +345,12 @@ module function pcm_get_clr(this) result(x) ! ****************************************************************************** ! GREY_COLORMAP MEMBERS ! ------------------------------------------------------------------------------ - module function gcm_get_clr(this) result(x) + function gcm_get_clr(this) result(x) + !! Gets the GNUPLOT string defining the color distribution. class(grey_colormap), intent(in) :: this + !! The grey_colormap object. character(len = :), allocatable :: x + !! The command string. type(string_builder) :: str @@ -215,9 +369,12 @@ module function gcm_get_clr(this) result(x) ! ****************************************************************************** ! EARTH_COLORMAP ! ------------------------------------------------------------------------------ - module function ecm_get_clr(this) result(x) + function ecm_get_clr(this) result(x) + !! Gets the GNUPLOT string defining the color distribution. class(earth_colormap), intent(in) :: this + !! The earth_colormap object. character(len = :), allocatable :: x + !! The command string. type(string_builder) :: str @@ -239,10 +396,14 @@ module function ecm_get_clr(this) result(x) ! ****************************************************************************** ! ADDED: Jan. 08, 2024 - JAC +! CUSTOM_COLORMAP ! ------------------------------------------------------------------------------ - module function custom_get_clr(this) result(x) + function custom_get_clr(this) result(x) + !! Gets the GNUPLOT string defining the color distribution. class(custom_colormap), intent(in) :: this + !! The custom_colormap object. character(len = :), allocatable :: x + !! The command string. type(string_builder) :: str integer(int32) :: i, n, r, g, b @@ -272,11 +433,17 @@ module function custom_get_clr(this) result(x) end function ! ------------------------------------------------------------------------------ - module subroutine custom_set(this, map, err) - ! Arguments + subroutine custom_set(this, map, err) + !! Sets the FORCOLORMAP colormap object. class(custom_colormap), intent(inout) :: this + !! The custom_colormap object. class(cmap), intent(in) :: map + !! The FORCOLORMAP colormap object. The custom_colormap object + !! stores a copy of this object; therefore, any changes made to + !! x after calls to this routine will not impact the behavior of + !! the custom_colormap object. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: flag @@ -294,23 +461,25 @@ module subroutine custom_set(this, map, err) if (associated(this%m_map)) deallocate(this%m_map) allocate(this%m_map, source = map, stat = flag) if (flag /= 0) then - call errmgr%report_error("custom_init", & - "Memory allocation error code " // char(to_string(flag)) // ".", & - PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "custom_set", flag) return end if end subroutine ! ------------------------------------------------------------------------------ - module function custom_get(this) result(rst) + function custom_get(this) result(rst) + !! Gets a pointer to the FORCOLORMAP colormap object. class(custom_colormap), intent(in) :: this + !! The custom_colormap object. class(cmap), pointer :: rst + !! A pointer to the FORCOLORMAP colormap object. rst => this%m_map end function ! ------------------------------------------------------------------------------ - module subroutine custom_final(this) + subroutine custom_final(this) type(custom_colormap), intent(inout) :: this + !! The custom_colormap object. if (associated(this%m_map)) then deallocate(this%m_map) nullify(this%m_map) @@ -318,4 +487,4 @@ module subroutine custom_final(this) end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_colors.f90 b/src/fplot_colors.f90 index e14a93c..8a8c486 100644 --- a/src/fplot_colors.f90 +++ b/src/fplot_colors.f90 @@ -1,12 +1,105 @@ ! fplot_colors.f90 -submodule (fplot_core) fplot_colors +module fplot_colors + use iso_fortran_env + implicit none + private + public :: color + public :: operator(==) + public :: operator(/=) + public :: CLR_BLACK + public :: CLR_WHITE + public :: CLR_RED + public :: CLR_LIME + public :: CLR_BLUE + public :: CLR_YELLOW + public :: CLR_CYAN + public :: CLR_MAGENTA + public :: CLR_SILVER + public :: CLR_GRAY + public :: CLR_MAROON + public :: CLR_OLIVE + public :: CLR_GREEN + public :: CLR_PURPLE + public :: CLR_TEAL + public :: CLR_NAVY + public :: CLR_ORANGE + public :: color_list + + type color + !! Describes an RGB color. + integer(int32), public :: red = 0 + !! The red component of the color (must be between 0 and 255). + integer(int32), public :: green = 0 + !! The green component of the color (must be between 0 and 255). + integer(int32), public :: blue = 255 + !! The blue component of the color (must be between 0 and 255). + contains + procedure, public, pass :: to_hex_string => clr_to_hex_string + procedure, public, pass :: copy_from => clr_copy_from + end type + + interface operator(==) + module procedure :: clr_equals + end interface + + interface operator(/=) + module procedure :: clr_not_equals + end interface + + type(color), parameter :: CLR_BLACK = color(0, 0, 0) + !! Black. + type(color), parameter :: CLR_WHITE = color(255, 255, 255) + !! White. + type(color), parameter :: CLR_RED = color(255, 0, 0) + !! Red. + type(color), parameter :: CLR_LIME = color(0, 255, 0) + !! Lime. + type(color), parameter :: CLR_BLUE = color(0, 0, 255) + !! Blue. + type(color), parameter :: CLR_YELLOW = color(255, 255, 0) + !! Yellow. + type(color), parameter :: CLR_CYAN = color(0, 255, 255) + !! Cyan. + type(color), parameter :: CLR_MAGENTA = color(255, 0, 255) + !! Magenta. + type(color), parameter :: CLR_SILVER = color(192, 192, 192) + !! Silver. + type(color), parameter :: CLR_GRAY = color(128, 128, 128) + !! Gray. + type(color), parameter :: CLR_MAROON = color(128, 0, 0) + !! Maroon. + type(color), parameter :: CLR_OLIVE = color(128, 128, 0) + !! Olive. + type(color), parameter :: CLR_GREEN = color(0, 128, 0) + !! Green. + type(color), parameter :: CLR_PURPLE = color(128, 0, 128) + !! Purple. + type(color), parameter :: CLR_TEAL = color(0, 128, 128) + !! Teal. + type(color), parameter :: CLR_NAVY = color(0, 0, 128) + !! Navy. + type(color), parameter :: CLR_ORANGE = color(255, 165, 0) + !! Orange. + + ! A list of colors that can be cycled through by plotting code + type(color), parameter, dimension(7) :: color_list = [ & + color(0, int(0.447 * 255), int(0.741 * 255)), & + color(int(0.85 * 255), int(0.325 * 255), int(0.098 * 255)), & + color(int(0.929 * 255), int(0.694 * 255), int(0.125 * 255)), & + color(int(0.494 * 255), int(0.184 * 255), int(0.556 * 255)), & + color(int(0.466 * 255), int(0.674 * 255), int(0.188 * 255)), & + color(int(0.301 * 255), int(0.745 * 255), int(0.933 * 255)), & + color(int(0.635 * 255), int(0.078 * 255), int(0.184 * 255))] + contains ! ------------------------------------------------------------------------------ - pure module function clr_to_hex_string(this) result(txt) - ! Arguments + pure function clr_to_hex_string(this) result(txt) + !! Returns the color in hexadecimal format. class(color), intent(in) :: this + !! The color object. character(6) :: txt + !! A string containing the hexadecimal equivalent. ! Local Variables integer(int32) :: r, g, b, clr @@ -44,9 +137,13 @@ pure module function clr_to_hex_string(this) result(txt) end function ! ------------------------------------------------------------------------------ - pure module subroutine clr_copy_from(this, clr) + subroutine clr_copy_from(this, clr) + !! Copies another color to this color. class(color), intent(inout) :: this + !! The color object. class(color), intent(in) :: clr + !! The color to copy. + this%red = clr%red this%green = clr%green this%blue = clr%blue @@ -55,14 +152,14 @@ pure module subroutine clr_copy_from(this, clr) ! ****************************************************************************** ! ADDED: JAN. 09, 2024 - JAC ! ------------------------------------------------------------------------------ - pure module subroutine clr_assign(x, y) - type(color), intent(out) :: x - class(color), intent(in) :: y - call x%copy_from(y) - end subroutine + ! pure subroutine clr_assign(x, y) + ! type(color), intent(out) :: x + ! class(color), intent(in) :: y + ! call x%copy_from(y) + ! end subroutine ! ------------------------------------------------------------------------------ - pure module function clr_equals(x, y) result(rst) + pure function clr_equals(x, y) result(rst) type(color), intent(in) :: x, y logical :: rst rst = .true. @@ -75,11 +172,11 @@ pure module function clr_equals(x, y) result(rst) end function ! ------------------------------------------------------------------------------ - pure module function clr_not_equals(x, y) result(rst) + pure function clr_not_equals(x, y) result(rst) type(color), intent(in) :: x, y logical :: rst rst = .not.clr_equals(x, y) end function ! ------------------------------------------------------------------------------ -end submodule \ No newline at end of file +end module \ No newline at end of file diff --git a/src/fplot_constants.f90 b/src/fplot_constants.f90 new file mode 100644 index 0000000..1edd0cc --- /dev/null +++ b/src/fplot_constants.f90 @@ -0,0 +1,152 @@ +module fplot_constants + use iso_fortran_env + implicit none + + +! ****************************************************************************** +! GNUPLOT TERMINAL CONSTANTS +! ------------------------------------------------------------------------------ + integer(int32), parameter :: GNUPLOT_TERMINAL_WIN32 = 1 + !! Defines a Win32 terminal. + integer(int32), parameter :: GNUPLOT_TERMINAL_WXT = 2 + !! Defines a WXT terminal. + integer(int32), parameter :: GNUPLOT_TERMINAL_QT = 3 + !! Defines a QT terminal. + integer(int32), parameter :: GNUPLOT_TERMINAL_PNG = 4 + !! Defines a PNG terminal. + integer(int32), parameter :: GNUPLOT_TERMINAL_LATEX = 5 + !! Defines a LATEX terminal. + +! ****************************************************************************** +! MARKER CONSTANTS +! ------------------------------------------------------------------------------ + integer(int32), parameter :: MARKER_PLUS = 1 + !! Defines a + data point marker. + integer(int32), parameter :: MARKER_X = 2 + !! Defines an x data point marker. + integer(int32), parameter :: MARKER_ASTERISK = 3 + !! Defines an * data point marker. + integer(int32), parameter :: MARKER_EMPTY_SQUARE = 4 + !! Defines an empty square-shaped data point marker. + integer(int32), parameter :: MARKER_FILLED_SQUARE = 5 + !! Defines an filled square-shaped data point marker. + integer(int32), parameter :: MARKER_EMPTY_CIRCLE = 6 + !! Defines an empty circle-shaped data point marker. + integer(int32), parameter :: MARKER_FILLED_CIRCLE = 7 + !! Defines an filled circle-shaped data point marker. + integer(int32), parameter :: MARKER_EMPTY_TRIANGLE = 8 + !! Defines an empty triangle-shaped data point marker. + integer(int32), parameter :: MARKER_FILLED_TRIANGLE = 9 + !! Defines an filled triangle-shaped data point marker. + integer(int32), parameter :: MARKER_EMPTY_NABLA = 10 + !! Defines an empty nabla-shaped data point marker. + integer(int32), parameter :: MARKER_FILLED_NABLA = 11 + !! Defines an filled nabla-shaped data point marker. + integer(int32), parameter :: MARKER_EMPTY_RHOMBUS = 12 + !! Defines an empty rhombus-shaped data point marker. + integer(int32), parameter :: MARKER_FILLED_RHOMBUS = 13 + !! Defines an filled rhombus-shaped data point marker. + +! ****************************************************************************** +! LINE CONSTANTS +! ------------------------------------------------------------------------------ + integer(int32), parameter :: LINE_SOLID = 1 + !! Defines a solid line. + integer(int32), parameter :: LINE_DASHED = 2 + !! Defines a dashed line. + integer(int32), parameter :: LINE_DOTTED = 3 + !! Defines a dotted line. + integer(int32), parameter :: LINE_DASH_DOTTED = 4 + !! Defines a dash-dotted line. + integer(int32), parameter :: LINE_DASH_DOT_DOT = 5 + !! Defines a dash-dot-dotted line. + +! ****************************************************************************** +! LEGEND CONSTANTS +! ------------------------------------------------------------------------------ + character(len = *), parameter :: LEGEND_TOP = "top" + !! Defines the legend should be placed at the top of the plot. + character(len = *), parameter :: LEGEND_CENTER = "center" + !! Defines the legend should be centered on the plot. + character(len = *), parameter :: LEGEND_LEFT = "left" + !! Defines the legend should be placed at the left of the plot. + character(len = *), parameter :: LEGEND_RIGHT = "right" + !! Defines the legend should be placed at the right of the plot. + character(len = *), parameter :: LEGEND_BOTTOM = "bottom" + !! Defines the legend should be placed at the bottom of the plot. + character(len = *), parameter :: LEGEND_ARRANGE_VERTICALLY = "vertical" + !! Defines the legend should be arranged such that the column count + !! is minimized. + character(len = *), parameter :: LEGEND_ARRANGE_HORIZONTALLY = "horizontal" + !! Defines the legend should be arranged such that the row count + !! is minimized. + +! ****************************************************************************** +! POLAR PLOT CONSTANTS +! ------------------------------------------------------------------------------ + character(len = *), parameter :: POLAR_THETA_TOP = "top" + !! States that theta should start at the top of the plot. + character(len = *), parameter :: POLAR_THETA_RIGHT = "right" + !! States that theta should start at the right of the plot. + character(len = *), parameter :: POLAR_THETA_BOTTOM = "bottom" + !! States that theta should start at the bottom of the plot. + character(len = *), parameter :: POLAR_THETA_LEFT = "left" + !! States that theta should start at the left of the plot. + character(len = *), parameter :: POLAR_THETA_CCW = "ccw" + !! States that theta should proceed in a counter-clockwise direction. + character(len = *), parameter :: POLAR_THETA_CW = "cw" + !! States that theta should proceed in a clockwise direction. + +! ****************************************************************************** +! COORDINATE SYSTEM CONSTANTS +! ------------------------------------------------------------------------------ + integer(int32), parameter :: COORDINATES_CARTESIAN = 100 + !! Defines a Cartesian coordinate system. + integer(int32), parameter :: COORDINATES_SPHERICAL = 101 + !! Defines a spherical coordinate system. + integer(int32), parameter :: COORDINATES_CYLINDRICAL = 102 + !! Defines a cylindrical coordinate system. + +! ****************************************************************************** +! ARROW CONSTANTS +! ------------------------------------------------------------------------------ + integer(int32), parameter :: ARROW_NO_HEAD = 0 + !! Defines an arrow with no head. + integer(int32), parameter :: ARROW_HEAD = 1 + !! Defines an arrow with a traditional head. + integer(int32), parameter :: ARROW_BACKHEAD = 2 + !! Defines an arrow with it's head at it's back end (tail). + integer(int32), parameter :: ARROW_HEADS = 3 + !! Defines an arrow with a head on both ends. + integer(int32), parameter :: ARROW_FILLED = 100 + !! Defines a filled arrow head. + integer(int32), parameter :: ARROW_EMPTY = 101 + !! Defines an empty arrow head. + integer(int32), parameter :: ARROW_NO_FILL = 102 + !! Defines an arrow head without fill. + integer(int32), parameter :: ARROW_NO_BORDER = 103 + !! Defines an arrow head with no border. + +! ****************************************************************************** +! PLOT DATA CONSTANTS +! ------------------------------------------------------------------------------ + integer(int32), parameter :: PLOTDATA_MAX_NAME_LENGTH = 128 + !! Defines the maximum number of characters allowed in a graph label. + +! ****************************************************************************** +! PRIVATE/DEFAULT CONSTANTS +! ------------------------------------------------------------------------------ + integer(int32), parameter :: GNUPLOT_DEFAULT_WINDOW_WIDTH = 640 + !! The default GNUPLOT window width, in pixels. + integer(int32), parameter :: GNUPLOT_DEFAULT_WINDOW_HEIGHT = 420 + !! The default GNUPLOT window height, in pixels. + integer(int32), parameter :: GNUPLOT_MAX_LABEL_LENGTH = 128 + !! Defines the maximum number of characters allowed in a graph label. + character(len = *), parameter :: GNUPLOT_DEFAULT_FONTNAME = "Calibri" + !! Defines the default font used by text on the graph. + integer(int32), parameter :: GNUPLOT_DEFAULT_FONT_SIZE = 14 + !! Defines the default font size used by text on the graph. + integer(int32), parameter :: GNUPLOT_MAX_PATH_LENGTH = 256 + !! Defines the maximum number of characters allowed in a file path. + +end module \ No newline at end of file diff --git a/src/fplot_core.f90 b/src/fplot_core.f90 index bdd9f1b..12d590a 100644 --- a/src/fplot_core.f90 +++ b/src/fplot_core.f90 @@ -1,52 +1,54 @@ -! fplot_core.f90 - -!> @brief \b fplot_core -!! -!! @par Purpose -!! FPLOT is a Fortran library providing a means of interacting with -!! [Gnuplot](http://www.gnuplot.info/) from a Fortran program. The library is -!! designed in an object-oriented manner, and as such utilizes language features -!! that require a compiler that supports the 2003 and 2008 standards. Additionally, -!! it is expected that Gnuplot is installed on the system path. For full -!! functionallity, a minimum of Gnuplot v5.2 is expected. -!! -!! @image html example_surface_plot_lighting_2.png module fplot_core - use iso_fortran_env, only : real64, real32, int32 - use iso_c_binding - use collections - use strings - use ferror - use forcolormap, cmap => Colormap ! avoid conflict with the internally defined colormap type + !! FPLOT is a Fortran library providing a means of interacting with + !! [GNUPLOT](http://www.gnuplot.info/) from a Fortran program. The library + !! is designed in an object-oriented manner, and as such utilizes language + !! features that require a compiler that supports the 2003 standard. + !! Additionally, it is expected that Gnuplot is installed on the system + !! path. For full functionallity, a minimum of GNUPLOT v5.2 is expected. + use fplot_constants + use fplot_core_routines + use fplot_colors + use fplot_plot_object + use fplot_plot_data + use fplot_plot_axis + use fplot_terminal + use fplot_windows_terminal + use fplot_qt_terminal + use fplot_wxt_terminal + use fplot_png_terminal + use fplot_latex_terminal + use fplot_label + use fplot_arrow + use fplot_legend + use fplot_plot_data_2d + use fplot_plot_data_3d + use fplot_surface_plot_data + use fplot_plot_data_error_bars + use fplot_plot_data_bar + use fplot_plot_data_histogram + use fplot_colormap + use fplot_filled_plot_data + use fplot_triangulations_delaunay_2d + use fplot_plot_data_tri_2d + use fplot_delaunay_tri_surface + use fplot_tri_surface_plot_data + use fplot_vector_field_plot_data + use fplot_plot + use fplot_plot_2d + use fplot_plot_3d + use fplot_surface_plot + use fplot_multiplot + use fplot_plot_bar + use fplot_plot_polar implicit none private - public :: PLOT_OUT_OF_MEMORY_ERROR - public :: PLOT_INVALID_INPUT_ERROR - public :: PLOT_INVALID_OPERATION_ERROR - public :: PLOT_ARRAY_SIZE_MISMATCH_ERROR - public :: PLOT_GNUPLOT_FILE_ERROR + + ! FPLOT_CONSTANTS.F90 public :: GNUPLOT_TERMINAL_WIN32 public :: GNUPLOT_TERMINAL_WXT public :: GNUPLOT_TERMINAL_QT public :: GNUPLOT_TERMINAL_PNG public :: GNUPLOT_TERMINAL_LATEX - public :: CLR_BLACK - public :: CLR_WHITE - public :: CLR_RED - public :: CLR_LIME - public :: CLR_BLUE - public :: CLR_YELLOW - public :: CLR_CYAN - public :: CLR_MAGENTA - public :: CLR_SILVER - public :: CLR_GRAY - public :: CLR_MAROON - public :: CLR_OLIVE - public :: CLR_GREEN - public :: CLR_PURPLE - public :: CLR_TEAL - public :: CLR_NAVY - public :: CLR_ORANGE public :: MARKER_PLUS public :: MARKER_X public :: MARKER_ASTERISK @@ -90,7727 +92,152 @@ module fplot_core public :: ARROW_EMPTY public :: ARROW_NO_FILL public :: ARROW_NO_BORDER + + ! FPLOT_CORE_ROUTINES.F90 public :: linspace public :: logspace public :: meshgrid + + ! FPLOT_COLORS.F90 public :: color + public :: operator(==) + public :: operator(/=) + public :: CLR_BLACK + public :: CLR_WHITE + public :: CLR_RED + public :: CLR_LIME + public :: CLR_BLUE + public :: CLR_YELLOW + public :: CLR_CYAN + public :: CLR_MAGENTA + public :: CLR_SILVER + public :: CLR_GRAY + public :: CLR_MAROON + public :: CLR_OLIVE + public :: CLR_GREEN + public :: CLR_PURPLE + public :: CLR_TEAL + public :: CLR_NAVY + public :: CLR_ORANGE + public :: color_list + + ! FPLOT_PLOT_OBJECT.F90 + public :: plot_object + public :: get_string_result + + ! FPLOT_PLOT_DATA.F90 public :: plot_data + public :: pd_get_string_result + public :: plot_data_colored + public :: scatter_plot_data + public :: spd_get_int_value + public :: spd_get_string_result + public :: spd_get_value + public :: spd_set_value + + ! FPLOT_PLOT_AXIS.F90 public :: plot_axis + public :: pa_get_string_result + public :: x_axis + public :: y_axis + public :: y2_axis + public :: z_axis + + ! FPLOT_TERMINAL.F90 public :: terminal + public :: term_get_string_result + + ! FPLOT_WINDOWS_TERMINAL.F90 public :: windows_terminal + + ! FPLOT_QT_TERMINAL.F90 public :: qt_terminal + + ! FPLOT_WXT_TERMINAL.F90 public :: wxt_terminal + + ! FPLOT_PNG_TERMINAL.F90 public :: png_terminal + + ! FPLOT_LATEX_TERMINAL.F90 public :: latex_terminal + + ! FPLOT_LABEL.F90 + public :: plot_label + + ! FPLOT_ARROW.F90 + public :: plot_arrow + + ! FPLOT_LEGEND.F90 public :: legend - public :: plot - public :: scatter_plot_data + + ! FPLOT_PLOT_DATA_2D.F90 public :: plot_data_2d - public :: plot_2d + + ! FPLOT_PLOT_DATA_3D.F90 public :: plot_data_3d - public :: plot_3d + + ! FPLOT_SURFACE_PLOT_DATA.F90 public :: surface_plot_data - public :: surface_plot + + ! FPLOT_PLOT_DATA_ERROR_BARS.F90 + public :: plot_data_error_bars + + ! FPLOT_PLOT_DATA_BAR.F90 + public :: plot_data_bar + + ! FPLOT_PLOT_DATA_HISTOGRAM.F90 + public :: plot_data_histogram + + ! FPLOT_COLORMAP.F90 + public :: cmap public :: colormap + public :: cm_get_string_result public :: rainbow_colormap public :: hot_colormap public :: cool_colormap - public :: plot_label - public :: multiplot - public :: plot_data_error_bars - public :: plot_data_colored - public :: plot_data_bar - public :: plot_data_histogram - public :: plot_bar - public :: plot_data_tri_2d - public :: delaunay_tri_surface - public :: delaunay_tri_2d - public :: tri_surface_plot_data - public :: vector_field_plot_data - public :: plot_polar - public :: filled_plot_data public :: parula_colormap public :: grey_colormap public :: earth_colormap - public :: simplify_polyline - public :: plot_arrow public :: custom_colormap - public :: cmap - public :: assignment(=) - public :: operator(==) - public :: operator(/=) - -! ****************************************************************************** -! ERROR CODES -! ------------------------------------------------------------------------------ - !> @brief Occurs if there is insufficient memory available for the - !! requested operation. - integer(int32), parameter :: PLOT_OUT_OF_MEMORY_ERROR = 1000 - !> @brief Occurs if an invalid input is provided. - integer(int32), parameter :: PLOT_INVALID_INPUT_ERROR = 1001 - !> @brief Occurs if an attempt is made to perform an invalid operation. - integer(int32), parameter :: PLOT_INVALID_OPERATION_ERROR = 1002 - !> @brief Occurs if there is an array size mismatch error. - integer(int32), parameter :: PLOT_ARRAY_SIZE_MISMATCH_ERROR = 1003 - !> @brief Occurs if there is a GNUPLOT file error. - integer(int32), parameter :: PLOT_GNUPLOT_FILE_ERROR = 1004 - -! ****************************************************************************** -! GNUPLOT TERMINAL CONSTANTS -! ------------------------------------------------------------------------------ - !> @brief Defines a Win32 terminal. - integer(int32), parameter :: GNUPLOT_TERMINAL_WIN32 = 1 - !> @brief Defines a WXT terminal. - integer(int32), parameter :: GNUPLOT_TERMINAL_WXT = 2 - !> @brief Defines a QT terminal. - integer(int32), parameter :: GNUPLOT_TERMINAL_QT = 3 - !> @brief Defines a PNG terminal. - integer(int32), parameter :: GNUPLOT_TERMINAL_PNG = 4 - !> @brief Defines a LATEX terminal. - integer(int32), parameter :: GNUPLOT_TERMINAL_LATEX = 5 - -! ****************************************************************************** -! MARKER CONSTANTS -! ------------------------------------------------------------------------------ - !> @brief Defines a + data point marker. - integer(int32), parameter :: MARKER_PLUS = 1 - !> @brief Defines an x data point marker. - integer(int32), parameter :: MARKER_X = 2 - !> @brief Defines an * data point marker. - integer(int32), parameter :: MARKER_ASTERISK = 3 - !> @brief Defines an empty square-shaped data point marker. - integer(int32), parameter :: MARKER_EMPTY_SQUARE = 4 - !> @brief Defines an filled square-shaped data point marker. - integer(int32), parameter :: MARKER_FILLED_SQUARE = 5 - !> @brief Defines an empty circle-shaped data point marker. - integer(int32), parameter :: MARKER_EMPTY_CIRCLE = 6 - !> @brief Defines an filled circle-shaped data point marker. - integer(int32), parameter :: MARKER_FILLED_CIRCLE = 7 - !> @brief Defines an empty triangle-shaped data point marker. - integer(int32), parameter :: MARKER_EMPTY_TRIANGLE = 8 - !> @brief Defines an filled triangle-shaped data point marker. - integer(int32), parameter :: MARKER_FILLED_TRIANGLE = 9 - !> @brief Defines an empty nabla-shaped data point marker. - integer(int32), parameter :: MARKER_EMPTY_NABLA = 10 - !> @brief Defines an filled nabla-shaped data point marker. - integer(int32), parameter :: MARKER_FILLED_NABLA = 11 - !> @brief Defines an empty rhombus-shaped data point marker. - integer(int32), parameter :: MARKER_EMPTY_RHOMBUS = 12 - !> @brief Defines an filled rhombus-shaped data point marker. - integer(int32), parameter :: MARKER_FILLED_RHOMBUS = 13 - -! ****************************************************************************** -! LINE CONSTANTS -! ------------------------------------------------------------------------------ - !> @brief Defines a solid line. - integer(int32), parameter :: LINE_SOLID = 1 - !> @brief Defines a dashed line. - integer(int32), parameter :: LINE_DASHED = 2 - !> @brief Defines a dotted line. - integer(int32), parameter :: LINE_DOTTED = 3 - !> @brief Defines a dash-dotted line. - integer(int32), parameter :: LINE_DASH_DOTTED = 4 - !> @brief Defines a dash-dot-dotted line. - integer(int32), parameter :: LINE_DASH_DOT_DOT = 5 - -! ****************************************************************************** -! LEGEND CONSTANTS -! ------------------------------------------------------------------------------ - !> @brief Defines the legend should be placed at the top of the plot. - character(len = *), parameter :: LEGEND_TOP = "top" - !> @brief Defines the legend should be centered on the plot. - character(len = *), parameter :: LEGEND_CENTER = "center" - !> @brief Defines the legend should be placed at the left of the plot. - character(len = *), parameter :: LEGEND_LEFT = "left" - !> @brief Defines the legend should be placed at the right of the plot. - character(len = *), parameter :: LEGEND_RIGHT = "right" - !> @brief Defines the legend should be placed at the bottom of the plot. - character(len = *), parameter :: LEGEND_BOTTOM = "bottom" - !> @brief Defines the legend should be arranged such that the column count - !! is minimized. - character(len = *), parameter :: LEGEND_ARRANGE_VERTICALLY = "vertical" - !> @brief Defines the legend should be arranged such that the row count - !! is minimized. - character(len = *), parameter :: LEGEND_ARRANGE_HORIZONTALLY = "horizontal" - -! ****************************************************************************** -! POLAR PLOT CONSTANTS -! ------------------------------------------------------------------------------ - !> @brief States that theta should start at the top of the plot. - character(len = *), parameter :: POLAR_THETA_TOP = "top" - !> @brief States that theta should start at the right of the plot. - character(len = *), parameter :: POLAR_THETA_RIGHT = "right" - !> @brief States that theta should start at the bottom of the plot. - character(len = *), parameter :: POLAR_THETA_BOTTOM = "bottom" - !> @brief States that theta should start at the left of the plot. - character(len = *), parameter :: POLAR_THETA_LEFT = "left" - !> @brief States that theta should proceed in a counter-clockwise direction. - character(len = *), parameter :: POLAR_THETA_CCW = "ccw" - !> @brief States that theta should proceed in a clockwise direction. - character(len = *), parameter :: POLAR_THETA_CW = "cw" - -! ****************************************************************************** -! COORDINATE SYSTEM CONSTANTS -! ------------------------------------------------------------------------------ - !> @brief Defines a Cartesian coordinate system. - integer(int32), parameter :: COORDINATES_CARTESIAN = 100 - !> @brief Defines a spherical coordinate system. - integer(int32), parameter :: COORDINATES_SPHERICAL = 101 - !> @brief Defines a cylindrical coordinate system. - integer(int32), parameter :: COORDINATES_CYLINDRICAL = 102 - -! ****************************************************************************** -! PLOT DATA CONSTANTS -! ------------------------------------------------------------------------------ - !> @brief Defines the maximum number of characters allowed in a graph label. - integer(int32), parameter :: PLOTDATA_MAX_NAME_LENGTH = 128 - -! ****************************************************************************** -! PRIVATE/DEFAULT CONSTANTS -! ------------------------------------------------------------------------------ - !> @brief The default GNUPLOT window width, in pixels. - integer(int32), parameter :: GNUPLOT_DEFAULT_WINDOW_WIDTH = 640 - !> @brief The default GNUPLOT window height, in pixels. - integer(int32), parameter :: GNUPLOT_DEFAULT_WINDOW_HEIGHT = 420 - !> @brief Defines the maximum number of characters allowed in a graph label. - integer(int32), parameter :: GNUPLOT_MAX_LABEL_LENGTH = 128 - !> @brief Defines the default font used by text on the graph. - character(len = *), parameter :: GNUPLOT_DEFAULT_FONTNAME = "Calibri" - !> @brief Defines the default font size used by text on the graph. - integer(int32), parameter :: GNUPLOT_DEFAULT_FONT_SIZE = 14 - !> @brief Defines the maximum number of characters allowed in a file path. - integer(int32), parameter :: GNUPLOT_MAX_PATH_LENGTH = 256 - -! ****************************************************************************** -! OPERATORS -! ------------------------------------------------------------------------------ - interface assignment(=) - module procedure :: clr_assign - module procedure :: lbl_assign - module procedure :: par_assign - end interface - - interface operator(==) - module procedure :: clr_equals - end interface - - interface operator(/=) - module procedure :: clr_not_equals - end interface - -! ****************************************************************************** -! BASE TYPES -! ------------------------------------------------------------------------------ - !> @brief The base type for a GNUPLOT object. - type, abstract :: plot_object - contains - !> @brief Returns the appropriate GNUPLOT command string to define the - !! plot object properties. - procedure(get_string_result), deferred, public :: get_command_string - end type - -! ****************************************************************************** -! FPLOT_CORE_ROUTINES.F90 -! ------------------------------------------------------------------------------ - interface - !> @brief Constructs a linearly spaced array. - !! - !! @param[in] start The first value in the array. - !! @param[in] finish The last value in the array. - !! @param[in] npts The number of values in the array. - !! - !! @return The resulting array. - pure module function linspace(start, finish, npts) result(x) - real(real64), intent(in) :: start, finish - integer(int32), intent(in) :: npts - real(real64), allocatable, dimension(:) :: x - end function - - !> @brief Construcst a logarithmically spaced array. - !! - !! @param[in] start The exponent of the first value in the array. - !! @param[in] finish The exponent of the final value in the array. - !! @param[in] npts The number of values in the array. - !! - !! @return The resulting array. - pure module function logspace(start, finish, npts) result(x) - real(real64), intent(in) :: start, finish - integer(int32), intent(in) :: npts - real(real64), allocatable, dimension(:) :: x - end function - - !> @brief Constructs two matrices (X and Y) from x and y data arrays. - !! - !! @param[in] x An M-element array of x data points. - !! @param[in] y An N-element array of y data points. - !! @return An N-by-M-by-2 array containing the x data matrix on the - !! first page of the array, and the y data matrix on the second page. - pure module function meshgrid(x, y) result(xy) - real(real64), intent(in), dimension(:) :: x, y - real(real64), allocatable, dimension(:,:,:) :: xy - end function - end interface - -! ****************************************************************************** -! FPLOT_COLORS.F90 -! ------------------------------------------------------------------------------ - !> @brief Describes an RGB color. - type color - !> @brief The red component of the color (must be between 0 and 255). - integer(int32), public :: red = 0 - !> @brief The green component of the color (must be between 0 and 255). - integer(int32), public :: green = 0 - !> @brief The blue component of the color (must be between 0 and 255). - integer(int32), public :: blue = 255 - contains - !> @brief Returns the color in hexadecimal format. - !! - !! @par Syntax - !! @code{.f90} - !! pure character(6) function clr_to_hex_string(class(color) this) - !! @endcode - !! - !! @param[in] this The color object. - !! @return A string containing the hexadecimal equivalent. - procedure, public, pass :: to_hex_string => clr_to_hex_string - !> @brief Copies another color to this color. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine copy_from(class(color) this, class(color) clr) - !! @endcode - !! - !! @param[in,out] this The color object. - !! @param[in] clr The color to copy. - procedure, public, pass :: copy_from => clr_copy_from - end type - -! ------------------------------------------------------------------------------ - interface - pure module function clr_to_hex_string(this) result(txt) - class(color), intent(in) :: this - character(6) :: txt - end function - - pure module subroutine clr_copy_from(this, clr) - class(color), intent(inout) :: this - class(color), intent(in) :: clr - end subroutine - - pure module subroutine clr_assign(x, y) - type(color), intent(out) :: x - class(color), intent(in) :: y - end subroutine - - pure module function clr_equals(x, y) result(rst) - type(color), intent(in) :: x, y - logical :: rst - end function - - pure module function clr_not_equals(x, y) result(rst) - type(color), intent(in) :: x, y - logical :: rst - end function - end interface - -! ------------------------------------------------------------------------------ - !> @brief Defines a black color. - type(color), parameter :: CLR_BLACK = color(0, 0, 0) - !> @brief Defines a white color. - type(color), parameter :: CLR_WHITE = color(255, 255, 255) - !> @brief Defines a red color. - type(color), parameter :: CLR_RED = color(255, 0, 0) - !> @brief Defines a lime color. - type(color), parameter :: CLR_LIME = color(0, 255, 0) - !> @brief Defines a blue color. - type(color), parameter :: CLR_BLUE = color(0, 0, 255) - !> @brief Defines a yellow color. - type(color), parameter :: CLR_YELLOW = color(255, 255, 0) - !> @brief Defines a cyan color. - type(color), parameter :: CLR_CYAN = color(0, 255, 255) - !> @brief Defines a magenta color. - type(color), parameter :: CLR_MAGENTA = color(255, 0, 255) - !> @brief Defines a silver color. - type(color), parameter :: CLR_SILVER = color(192, 192, 192) - !> @brief Defines a gray color. - type(color), parameter :: CLR_GRAY = color(128, 128, 128) - !> @brief Defines a maroon color. - type(color), parameter :: CLR_MAROON = color(128, 0, 0) - !> @brief Defines a olive color. - type(color), parameter :: CLR_OLIVE = color(128, 128, 0) - !> @brief Defines a green color. - type(color), parameter :: CLR_GREEN = color(0, 128, 0) - !> @brief Defines a purple color. - type(color), parameter :: CLR_PURPLE = color(128, 0, 128) - !> @brief Defines a teal color. - type(color), parameter :: CLR_TEAL = color(0, 128, 128) - !> @brief Defines a navy color. - type(color), parameter :: CLR_NAVY = color(0, 0, 128) - !> @brief Defines an orange color. - type(color), parameter :: CLR_ORANGE = color(255, 165, 0) - - ! A list of colors that can be cycled through by plotting code - type(color), parameter, dimension(7) :: color_list = [ & - color(0, int(0.447 * 255), int(0.741 * 255)), & - color(int(0.85 * 255), int(0.325 * 255), int(0.098 * 255)), & - color(int(0.929 * 255), int(0.694 * 255), int(0.125 * 255)), & - color(int(0.494 * 255), int(0.184 * 255), int(0.556 * 255)), & - color(int(0.466 * 255), int(0.674 * 255), int(0.188 * 255)), & - color(int(0.301 * 255), int(0.745 * 255), int(0.933 * 255)), & - color(int(0.635 * 255), int(0.078 * 255), int(0.184 * 255))] - ! type(color), parameter, dimension(8) :: color_list = [ & - ! CLR_BLUE, CLR_GREEN, CLR_RED, CLR_CYAN, CLR_LIME, CLR_PURPLE, & - ! CLR_ORANGE, CLR_BLACK] - -! ****************************************************************************** -! FPLOT_LABEL.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a label object for a plot. - type, extends(plot_object) :: plot_label - private - !> Determines if the label is visible - logical :: m_visible = .true. - !> The x, y, and z coordinates of the label - real(real32), dimension(3) :: m_position - !> The rotation angle of the label - real(real32) :: m_angle = 0.0 - !> The label text - character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_text - contains - !> @brief Gets the GNUPLOT command string for the label. - !! - !! @par Syntax - !! @code{.f90} - !! character(:) function allocatable get_command_string(class(plot_label) this) - !! @endcode - !! - !! @param[in] this The plot_label object. - !! @return The command string. - procedure, public :: get_command_string => lbl_get_cmd - !> @brief Gets a value determining if the label is to be drawn. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_is_visible(class(plot_label) this) - !! @endcode - !! - !! @param[in] this The plot_label object. - !! @return Returns true if the label is to be drawn; else, false. - procedure, public :: get_is_visible => lbl_get_is_visible - !> @brief Sets a value determining if the label is to be drawn. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_is_visible(class(plot_label) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_label object. - !! @param[in] x Set to true to draw the label; else, false. - procedure, public :: set_is_visible => lbl_set_is_visible - !> @brief Gets the position of the label in terms of plot coordinates. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) dimension(3) function get_position(class(plot_label) this) - !! @endcode - !! - !! @param[in] this The plot_label object. - !! @return A 3-element array containing the X, Y, and Z position of the label. - procedure, public :: get_position => lbl_get_position - !> @brief Sets the position of the label in terms of plot coordinates. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_position(class(plot_label) this, real(real32) x(3)) - !! @endcode - !! - !! @param[in,out] this The plot_label object. - !! @param[in] x A 3-element array containing the X, Y, and Z position of the - !! label. - procedure, public :: set_position => lbl_set_position - !> @brief Gets the angle of the label text, in degrees. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_angle(class(plot_label) this) - !! @endcode - !! - !! @param[in] this The plot_label object. - !! @return The angle, in degrees. - procedure, public :: get_angle => lbl_get_angle - !> @brief Sets the angle of the label text, in degrees. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_angle(class(plot_label) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The plot_label object. - !! @param[in] x The angle, in degrees. - procedure, public :: set_angle => lbl_set_angle - !> @brief Gets the text displayed by the label. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function allocatable get_text(class(plot_label) this) - !! @endcode - !! - !! @param[in] this The plot_label object. - !! @return The string of text to display. - procedure, public :: get_text => lbl_get_txt - !> @brief Sets the text displayed by the label. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_text(class(plot_label) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The plot_label object. - !! @param[in] x The text string to display. - procedure, public :: set_text => lbl_set_txt - end type - -! ------------------------------------------------------------------------------ - interface - module function lbl_get_cmd(this) result(x) - class(plot_label), intent(in) :: this - character(len = :), allocatable :: x - end function - - pure module function lbl_get_is_visible(this) result(x) - class(plot_label), intent(in) :: this - logical :: x - end function - - module subroutine lbl_set_is_visible(this, x) - class(plot_label), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function lbl_get_position(this) result(x) - class(plot_label), intent(in) :: this - real(real32), dimension(3) :: x - end function - - module subroutine lbl_set_position(this, x) - class(plot_label), intent(inout) :: this - real(real32), intent(in), dimension(3) :: x - end subroutine - - pure module function lbl_get_angle(this) result(x) - class(plot_label), intent(in) :: this - real(real32) :: x - end function - - module subroutine lbl_set_angle(this, x) - class(plot_label), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - module function lbl_get_txt(this) result(x) - class(plot_label), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine lbl_set_txt(this, x) - class(plot_label), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - - pure module subroutine lbl_assign(x, y) - type(plot_label), intent(out) :: x - class(plot_label), intent(in) :: y - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_ARROW.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines an arrow with no head. - integer(int32), parameter :: ARROW_NO_HEAD = 0 - !> @brief Defines an arrow with a traditional head. - integer(int32), parameter :: ARROW_HEAD = 1 - !> @brief Defines an arrow with it's head at it's back end (tail). - integer(int32), parameter :: ARROW_BACKHEAD = 2 - !> @brief Defines an arrow with a head on both ends. - integer(int32), parameter :: ARROW_HEADS = 3 - !> @brief Defines a filled arrow head. - integer(int32), parameter :: ARROW_FILLED = 100 - !> @brief Defines an empty arrow head. - integer(int32), parameter :: ARROW_EMPTY = 101 - !> @brief Defines an arrow head without fill. - integer(int32), parameter :: ARROW_NO_FILL = 102 - !> @brief Defines an arrow head with no border. - integer(int32), parameter :: ARROW_NO_BORDER = 103 - -! ------------------------------------------------------------------------------ - !> @brief Defines an arrow to be used on by a @ref plot object. - type, extends(plot_object) :: plot_arrow - ! Determines if the arrow is visible. - logical, private :: m_visible = .true. - ! The x, y, z coordinates of the tail - real(real32), dimension(3) :: m_tail = [0.0, 0.0, 0.0] - ! The x, y, z coordinates of the head - real(real32), dimension(3) :: m_head = [0.0, 0.0, 0.0] - ! The arrow color. - type(color) :: m_color = CLR_BLACK - ! The line style - integer(int32) :: m_linestyle = LINE_SOLID - ! The line width - real(real32) :: m_linewidth = 1.0 - ! The head configuration - integer(int32) :: m_head_type = ARROW_HEAD - ! Arrow filling - integer(int32) :: m_filling = ARROW_FILLED - ! Move to front? - logical :: m_front = .true. - ! Arrow head size - real(real32) :: m_size = 0.375 - ! Arrow head angle - real(real32) :: m_angle = 10.0 - ! Arrow head back angle - real(real32) :: m_backangle = 90.0 - ! Use default head size - logical :: m_use_default_size = .true. - contains - !> @brief Gets a value determining if the arrow is visible. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_is_visible(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return True if the arrow is visible; else, false. - procedure, public :: get_is_visible => par_get_is_visible - !> @brief Sets a value determining if the arrow is visible. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_is_visible(class(plot_arrow) this, logical x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x True if the arrow is visible; else, false. - procedure, public :: set_is_visible => par_set_is_visible - !> @brief Gets the coordinates of the arrow's tail. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32)(3) function get_tail_location(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return A 3-element array containing the x, y, and z coordinates of - !! the arrow's tail. - procedure, public :: get_tail_location => par_get_tail - !> @brief Sets the location of the arrow's tail. - !! - !! @par Syntax 1 - !! @code{.f90} - !! subroutine set_tail_location(class(plot_arrow) this, real(real32) x(3)) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x A 3-element array containing the x, y, and z coordiantes - !! of the arrow's tail. - !! - !! @par Syntax 2 - !! @code{.f90} - !! subroutine set_tail_location(class(plot_arrow) this, real(real32) x, real(real32) y) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The x-coordinate of the arrow's tail. - !! @param[in] y The y-coordinate of the arrow's tail. - !! - !! @par Syntax 3 - !! @code{.f90} - !! subroutine set_tail_location(class(plot_arrow) this, real(real32) x, real(real32) y, real(real32) z) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The x-coordinate of the arrow's tail. - !! @param[in] y The y-coordinate of the arrow's tail. - !! @param[in] z The z-coordinate of the arrow's tail. - generic, public :: set_tail_location => par_set_tail_1, & - par_set_tail_2, par_set_tail_3 - procedure, private :: par_set_tail_1 - procedure, private :: par_set_tail_2 - procedure, private :: par_set_tail_3 - !> @brief Gets the coordinates of the arrow's head. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32)(3) function get_head_location(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return A 3-element array containing the x, y, and z coordinates of - !! the arrow's head. - procedure, public :: get_head_location => par_get_head - !> @brief Sets the location of the arrow's head. - !! - !! @par Syntax 1 - !! @code{.f90} - !! subroutine set_head_location(class(plot_arrow) this, real(real32) x(3)) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x A 3-element array containing the x, y, and z coordiantes - !! of the arrow's head. - !! - !! @par Syntax 2 - !! @code{.f90} - !! subroutine set_head_location(class(plot_arrow) this, real(real32) x, real(real32) y) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The x-coordinate of the arrow's head. - !! @param[in] y The y-coordinate of the arrow's head. - !! - !! @par Syntax 3 - !! @code{.f90} - !! subroutine set_head_location(class(plot_arrow) this, real(real32) x, real(real32) y, real(real32) z) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The x-coordinate of the arrow's head. - !! @param[in] y The y-coordinate of the arrow's head. - !! @param[in] z The z-coordinate of the arrow's head. - generic, public :: set_head_location => par_set_head_1, & - par_set_head_2, par_set_head_3 - procedure, private :: par_set_head_1 - procedure, private :: par_set_head_2 - procedure, private :: par_set_head_3 - !> @brief Gets the color of the arrow. - !! - !! @par Syntax - !! @code{.f90} - !! pure type(color) function get_color(class(arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return The color. - procedure, public :: get_color => par_get_color - !> @brief Sets the color of the arrow. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_color(class(arrow) this, type(color) x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The color. - procedure, public :: set_color => par_set_color - !> @brief Gets the line style used to draw the arrow. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_line_style(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return The line style. - procedure, public :: get_line_style => par_get_line_style - !> @brief Sets the line style used to draw the arrow. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_line_style(class(plot_arrow) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param The line style. The value must be one of the following. - !! - LINE_SOLID - !! - LINE_DASHED - !! - LINE_DASH_DOTTED - !! - LINE_DASH_DOT_DOT - !! - LINE_DOTTED - !! If the value is not one of the above, the command is ignored. - procedure, public :: set_line_style => par_set_line_style - !> @brief Gets the width of the lines used to draw the arrow. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_line_width(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return The width of the line. - procedure, public :: get_line_width => par_get_line_width - !> @brief Sets the width of the lines used to draw the arrow. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_line_width(class(plot_arrow) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The width of the line. - procedure, public :: set_line_width => par_set_line_width - !> @brief Gets the type of arrow head. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_head_type(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return The arrow head type. It is one of the following constants. - !! - ARROW_HEAD - !! - ARROW_BACKHEAD - !! - ARROW_HEADS - !! - ARROW_NO_HEAD - procedure, public :: get_head_type => par_get_head_type - !> @brief Sets the type of arrow head. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_head_type(class(plot_arrow) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The arrow head type. It must be one of the following - !! constants. - !! - ARROW_HEAD - !! - ARROW_BACKHEAD - !! - ARROW_HEADS - !! - ARROW_NO_HEAD - procedure, public :: set_head_type => par_set_head_type - !> @brief Gets a flag denoting the head fill type. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_head_fill(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return The flag denoting head fill. It will be one of the - !! following constants. - !! - ARROW_FILLED - !! - ARROW_EMPTY - !! - ARROW_NO_BORDER - !! - ARROW_NO_FILL - procedure, public :: get_head_fill => par_get_fill - !> @brief Sets a flag denoting the head fill type. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_head_fill(class(plot_arrow) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The flag denoting head fill. It must be one of the - !! following constants. - !! - ARROW_FILLED - !! - ARROW_EMPTY - !! - ARROW_NO_BORDER - !! - ARROW_NO_FILL - procedure, public :: set_head_fill => par_set_fill - !> @brief Gets a value determining if the arrow should be moved to the - !! front. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_move_to_front(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return True if the arrow should be moved to the front; else, false. - procedure, public :: get_move_to_front => par_get_move_to_front - !> @brief Sets a value determining if the arrow should be moved to the - !! front. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_move_to_front(class(plot_arrow) this, logical x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x True if the arrow should be moved to the front; else, - !! false. - procedure, public :: set_move_to_front => par_set_move_to_front - !> @brief Gets the size of the arrow head. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_head_size(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return The head size. - procedure, public :: get_head_size => par_get_head_size - !> @brief Sets the size of the arrow head. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_head_size(class(plot_arrow) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The head size. - procedure, public :: set_head_size => par_set_head_size - !> @brief Gets the angle of the arrow head. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_head_angle(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return The angle, in degrees. - procedure, public :: get_head_angle => par_get_head_angle - !> @brief Sets the angle of the arrow head. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_head_angle(class(plot_arrow) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The angle, in degrees. - procedure, public :: set_head_angle => par_set_head_angle - !> @brief Gets the angle of the back of the arrow head. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_head_back_angle(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return The angle, in degrees. - procedure, public :: get_head_back_angle => par_get_head_back_angle - !> @brief Sets the angle of the back of the arrow head. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_head_back_angle(class(plot_arrow) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x The angle, in degrees. - procedure, public :: set_head_back_angle => par_set_head_back_angle - !> @brief Gets a value determining if arrow head sizing defaults - !! should be used. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_use_default_size(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot_arrow object. - !! @return True if the defaults should be used; else, false. - procedure, public :: get_use_default_size => par_get_use_default_size - !> @brief Sets a value determining if arrow head sizing defaults - !! should be used. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_use_default_size(class(plot_arrow) this, logical x) - !! @endcode - !! - !! @param[in,out] this The @ref plot_arrow object. - !! @param[in] x True if the defaults should be used; else, false. - procedure, public :: set_use_default_size => par_set_use_default_size - !> @brief Returns the appropriate GNUPLOT command string to establish - !! appropriate parameters. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The plot_arrow object. - !! @return The GNUPLOT command string. - procedure, public :: get_command_string => par_get_cmd - end type - -! ------------------------------------------------------------------------------ - ! fplot_arrow.f90 - interface - pure module function par_get_is_visible(this) result(rst) - class(plot_arrow), intent(in) :: this - logical :: rst - end function - - module subroutine par_set_is_visible(this, x) - class(plot_arrow), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function par_get_tail(this) result(rst) - class(plot_arrow), intent(in) :: this - real(real32), dimension(3) :: rst - end function - - module subroutine par_set_tail_1(this, x) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x(3) - end subroutine - - module subroutine par_set_tail_2(this, x, y) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x, y - end subroutine - - module subroutine par_set_tail_3(this, x, y, z) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x, y, z - end subroutine - pure module function par_get_head(this) result(rst) - class(plot_arrow), intent(in) :: this - real(real32), dimension(3) :: rst - end function - - module subroutine par_set_head_1(this, x) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x(3) - end subroutine - - module subroutine par_set_head_2(this, x, y) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x, y - end subroutine - - module subroutine par_set_head_3(this, x, y, z) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x, y, z - end subroutine - - pure module function par_get_color(this) result(rst) - class(plot_arrow), intent(in) :: this - type(color) :: rst - end function - - module subroutine par_set_color(this, x) - class(plot_arrow), intent(inout) :: this - type(color), intent(in) :: x - end subroutine - - pure module function par_get_line_style(this) result(rst) - class(plot_arrow), intent(in) :: this - integer(int32) :: rst - end function - - module subroutine par_set_line_style(this, x) - class(plot_arrow), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - - pure module function par_get_line_width(this) result(rst) - class(plot_arrow), intent(in) :: this - real(real32) :: rst - end function - - module subroutine par_set_line_width(this, x) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module function par_get_head_type(this) result(rst) - class(plot_arrow), intent(in) :: this - integer(int32) :: rst - end function - - module subroutine par_set_head_type(this, x) - class(plot_arrow), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - - module function par_get_cmd(this) result(rst) - class(plot_arrow), intent(in) :: this - character(len = :), allocatable :: rst - end function - - pure module function par_get_fill(this) result(rst) - class(plot_arrow), intent(in) :: this - integer(int32) :: rst - end function - - module subroutine par_set_fill(this, x) - class(plot_arrow), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - - pure module function par_get_move_to_front(this) result(rst) - class(plot_arrow), intent(in) :: this - logical :: rst - end function - - module subroutine par_set_move_to_front(this, x) - class(plot_arrow), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function par_get_head_size(this) result(rst) - class(plot_arrow), intent(in) :: this - real(real32) :: rst - end function - - module subroutine par_set_head_size(this, x) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module function par_get_head_angle(this) result(rst) - class(plot_arrow), intent(in) :: this - real(real32) :: rst - end function - - module subroutine par_set_head_angle(this, x) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module function par_get_head_back_angle(this) result(rst) - class(plot_arrow), intent(in) :: this - real(real32) :: rst - end function - - pure module function par_get_use_default_size(this) result(rst) - class(plot_arrow), intent(in) :: this - logical :: rst - end function - - module subroutine par_set_use_default_size(this, x) - class(plot_arrow), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module subroutine par_set_head_back_angle(this, x) - class(plot_arrow), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module subroutine par_assign(x, y) - type(plot_arrow), intent(out) :: x - class(plot_arrow), intent(in) :: y - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_TERMINAL.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a GNUPLOT terminal object. - type, abstract, extends(plot_object) :: terminal - private - !> The window height, in pixels - integer(int32) :: m_windowHeight = GNUPLOT_DEFAULT_WINDOW_HEIGHT - !> The window width, in pixels - integer(int32) :: m_windowWidth = GNUPLOT_DEFAULT_WINDOW_WIDTH - !> The plot window number. - integer(int32) :: m_termID = 0 - !> The plot window title. - character(len = GNUPLOT_MAX_LABEL_LENGTH) :: m_title = "" - !> Determines if a plot title is defined - logical :: m_hasTitle = .false. - !> The font used by the graph. - character(len = GNUPLOT_MAX_LABEL_LENGTH) :: m_fontName = & - GNUPLOT_DEFAULT_FONTNAME - !> The size of the font used by the graph. - integer(int32) :: m_fontSize = GNUPLOT_DEFAULT_FONT_SIZE - contains - !> @brief Gets the width of the plot window. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_window_width(class(terminal) this) - !! @endcode - !! - !! @param[in] this The terminal object. - !! @return The width of the plot window. - procedure, public :: get_window_width => term_get_window_width - !> @brief Sets the width of the plot window. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_window_width(class(terminal) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The terminal object. - !! @param[in] x The width of the plot window. If a value of zero is - !! provided, the window width is reset to its default value; or, if a - !! negative value is provided, the absolute value of the supplied value - !! is utilized. - procedure, public :: set_window_width => term_set_window_width - !> @brief Gets the height of the plot window. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_window_height(class(terminal) this) - !! @endcode - !! - !! @param[in] this The terminal object. - !! @return The height of the plot window. - procedure, public :: get_window_height => term_get_window_height - !> @brief Sets the height of the plot window. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_window_height(class(terminal) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The terminal object. - !! @param[in] x The height of the plot window. If a value of zero is - !! provided, the window height is reset to its default value; or, if a - !! negative value is provided, the absolute value of the supplied value is - !! utilized. - procedure, public :: set_window_height => term_set_window_height - !> @brief Returns the appropriate GNUPLOT command string to establish - !! appropriate parameters. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(terminal) this) - !! @endcode - !! - !! @param[in] this The terminal object. - !! @return The GNUPLOT command string. - procedure, public :: get_command_string => term_get_command_string - !> @brief Gets the targeted plot window number. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_plot_window_number(class(terminal) this) - !! @endcode - !! - !! @param[in] this The terminal object. - !! @return The plot window number. - procedure, public :: get_plot_window_number => & - term_get_plot_window_number - !> @brief Sets the targeted plot window number. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_plot_window_number(class(terminal) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The terminal object. - !! @param[in] x The plot window number. - procedure, public :: set_plot_window_number => & - term_set_plot_window_number - !> @brief Gets the plot window's title. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_title(class(terminal) this) - !! @endcode - !! - !! @param[in] this The terminal object. - !! @return The title. - procedure, public :: get_title => term_get_title - !> @brief Sets the plot window's title. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_title(class(terminal) this, character(len = *) txt) - !! @endcode - !! - !! @param[in,out] this The terminal object. - !! @param[in] txt The title. - procedure, public :: set_title => term_set_title - !> @brief Gets the name of the font used for text displayed by the - !! graph. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_font_name(class(terminal) this) - !! @endcode - !! - !! @param[in] this The terminal object. - !! @return The font name. - procedure, public :: get_font_name => term_get_font_name - !> @brief Sets the name of the font used for text displayed by the - !! graph. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_font_name(class(terminal) this, character(len = *) name) - !! @endcode - !! - !! @param[in,out] this The terminal object. - !! @param[in] name The name of the font. If no name is supplied, the - !! name is reset back to its default setting. - procedure, public :: set_font_name => term_set_font_name - !> @brief Gets the size of the font used by the graph. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_font_size(class(terminal) this) - !! @endcode - !! - !! @param[in] this The terminal object. - !! @return The font size, in points. - procedure, public :: get_font_size => term_get_font_size - !> @brief Sets the size of the font used by the graph. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_font_size(class(terminal) this, integer(int32) sz) - !! @endcode - !! - !! @param[in,out] this The terminal object. - !! @param[in] sz The font size, in points. If a value of zero is provided, - !! the font size is reset to its default value; or, if a negative value - !! is provided, the absolute value of the supplied value is utilized. - procedure, public :: set_font_size => term_set_font_size - !> @brief Gets the GNUPLOT terminal identification string. - procedure(term_get_string_result), deferred, public :: get_id_string - end type - -! ------------------------------------------------------------------------------ - interface - pure module function term_get_window_width(this) result(x) - class(terminal), intent(in) :: this - integer :: x - end function - - module subroutine term_set_window_width(this, x) - class(terminal), intent(inout) :: this - integer, intent(in) :: x - end subroutine - - pure module function term_get_window_height(this) result(x) - class(terminal), intent(in) :: this - integer :: x - end function - - module subroutine term_set_window_height(this, x) - class(terminal), intent(inout) :: this - integer, intent(in) :: x - end subroutine - - pure module function term_get_plot_window_number(this) result(x) - class(terminal), intent(in) :: this - integer(int32) :: x - end function - - module subroutine term_set_plot_window_number(this, x) - class(terminal), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - - module function term_get_title(this) result(str) - class(terminal), intent(in) :: this - character(len = :), allocatable :: str - end function - - module subroutine term_set_title(this, txt) - class(terminal), intent(inout) :: this - character(len = *), intent(in) :: txt - end subroutine - - module function term_get_font_name(this) result(name) - class(terminal), intent(in) :: this - character(len = :), allocatable :: name - end function - - module subroutine term_set_font_name(this, name) - class(terminal), intent(inout) :: this - character(len = *), intent(in) :: name - end subroutine - - pure module function term_get_font_size(this) result(sz) - class(terminal), intent(in) :: this - integer(int32) :: sz - end function - - module subroutine term_set_font_size(this, sz) - class(terminal), intent(inout) :: this - integer(int32), intent(in) :: sz - end subroutine - - module function term_get_command_string(this) result(x) - class(terminal), intent(in) :: this - character(len = :), allocatable :: x - end function - end interface - -! ****************************************************************************** -! FPLOT_WINDOWS_TERMINAL.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a GNUPLOT Win32 terminal object. - type, extends(terminal) :: windows_terminal - private - !> The terminal ID string - character(len = 3) :: m_id = "win" - contains - !> @brief Retrieves a GNUPLOT terminal identifier string. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_id_string(class(windows_terminal) this) - !! @endcode - !! - !! @param[in] this The windows_terminal object. - !! @return The string. - procedure, public :: get_id_string => wt_get_term_string - end type - -! ------------------------------------------------------------------------------ - interface - module function wt_get_term_string(this) result(x) - class(windows_terminal), intent(in) :: this - character(len = :), allocatable :: x - end function - end interface - -! ****************************************************************************** -! FPLOT_QT_TERMINAL.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a GNUPLOT QT terminal object. - type, extends(terminal) :: qt_terminal - private - !> The terminal ID string - character(len = 2) :: m_id = "qt" - contains - !> @brief Retrieves a GNUPLOT terminal identifier string. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_id_string(class(qt_terminal) this) - !! @endcode - !! - !! @param[in] this The qt_terminal object. - !! @return The string. - procedure, public :: get_id_string => qt_get_term_string - end type - -! ------------------------------------------------------------------------------ - interface - module function qt_get_term_string(this) result(x) - class(qt_terminal), intent(in) :: this - character(len = :), allocatable :: x - end function - end interface - -! ****************************************************************************** -! FPLOT_WXT_TERMINAL.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a GNUPLOT WXT terminal object. - type, extends(terminal) :: wxt_terminal - private - !> The terminal ID string - character(len = 3) :: m_id = "wxt" - contains - !> @brief Retrieves a GNUPLOT terminal identifier string. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_id_string(class(wxt_terminal) this) - !! @endcode - !! - !! @param[in] this The wxt_terminal object. - !! @return The string. - procedure, public :: get_id_string => wxt_get_term_string - end type - -! ------------------------------------------------------------------------------ - interface - module function wxt_get_term_string(this) result(x) - class(wxt_terminal), intent(in) :: this - character(len = :), allocatable :: x - end function - end interface - -! ****************************************************************************** -! FPLOT_PNG_TERMINAL.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a GNUPLOT PNG terminal object. - type, extends(terminal) :: png_terminal - private - !> The terminal ID string - character(len = 3) :: m_id = "png" - !> The filename of the PNG file to write. - character(len = GNUPLOT_MAX_PATH_LENGTH) :: m_fname = "default.png" - contains - !> @brief Gets the filename for the output PNG file. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_filename(class(png_terminal) this) - !! @endcode - !! - !! @param[in] this The png_terminal object. - !! @return The filename, including the file extension (.png). - procedure, public :: get_filename => png_get_filename - !> @brief Sets the filename for the output PNG file. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_filename(class(png_terminal) this, character(len = *) txt) - !! @endcode - !! - !! @param[in,out] this The png_terminal object. - !! @param[in] txt The filename, including the file extension (.png). - procedure, public :: set_filename => png_set_filename - !> @brief Retrieves a GNUPLOT terminal identifier string. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_id_string(class(png_terminal) this) - !! @endcode - !! - !! @param[in] this The png_terminal object. - !! @return The string. - procedure, public :: get_id_string => png_get_term_string - !> @brief Returns the appropriate GNUPLOT command string to establish - !! appropriate parameters. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(png_terminal) this) - !! @endcode - !! - !! @param[in] this The terminal object. - !! @return The GNUPLOT command string. - procedure, public :: get_command_string => png_get_command_string - end type - -! ------------------------------------------------------------------------------ - interface - module function png_get_term_string(this) result(x) - class(png_terminal), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function png_get_filename(this) result(txt) - class(png_terminal), intent(in) :: this - character(len = :), allocatable :: txt - end function - - module subroutine png_set_filename(this, txt) - class(png_terminal), intent(inout) :: this - character(len = *), intent(in) :: txt - end subroutine - - module function png_get_command_string(this) result(x) - class(png_terminal), intent(in) :: this - character(len = :), allocatable :: x - end function - end interface - -! ****************************************************************************** -! FPLOT_LATEX.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a GNUPLOT LATEX terminal object. - type, extends(terminal) :: latex_terminal - private - !> The terminal ID string - character(len = 14) :: m_id = "epslatex color" - !> The filename of the PNG file to write. - character(len = GNUPLOT_MAX_PATH_LENGTH) :: m_fname = "default.tex" - contains - !> @brief Gets the filename for the output LATEX file. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_filename(class(latex_terminal) this) - !! @endcode - !! - !! @param[in] this The latex_terminal object. - !! @return The filename, including the file extension (.tex). - procedure, public :: get_filename => tex_get_filename - !> @brief Sets the filename for the output LATEX file. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_filename(class(latex_terminal) this, character(len = *) txt) - !! @endcode - !! - !! @param[in,out] this The latex_terminal object. - !! @param[in] txt The filename, including the file extension (.tex). - procedure, public :: set_filename => tex_set_filename - !> @brief Retrieves a GNUPLOT terminal identifier string. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_id_string(class(latex_terminal) this) - !! @endcode - !! - !! @param[in] this The latex_terminal object. - !! @return The string. - procedure, public :: get_id_string => tex_get_term_string - !> @brief Returns the appropriate GNUPLOT command string to establish - !! appropriate parameters. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(latex_terminal) this) - !! @endcode - !! - !! @param[in] this The terminal object. - !! @return The GNUPLOT command string. - procedure, public :: get_command_string => tex_get_command_string - end type - -! ------------------------------------------------------------------------------ - interface - module function tex_get_term_string(this) result(x) - class(latex_terminal), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function tex_get_filename(this) result(txt) - class(latex_terminal), intent(in) :: this - character(len = :), allocatable :: txt - end function - - module subroutine tex_set_filename(this, txt) - class(latex_terminal), intent(inout) :: this - character(len = *), intent(in) :: txt - end subroutine - - module function tex_get_command_string(this) result(x) - class(latex_terminal), intent(in) :: this - character(len = :), allocatable :: x - end function - end interface - -! ****************************************************************************** -! FPLOT_PLOT_DATA.F90 -! ------------------------------------------------------------------------------ - !> @brief Provides a container for plot data. - type, abstract, extends(plot_object) :: plot_data - private - !> The name of the data set. - character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_name = "" - contains - !> @brief Gets the name to associate with this data set. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_name(class(plot_data) this) - !! @endcode - !! - !! @param[in] this The plot_data object. - !! @return The name. - procedure, public :: get_name => pd_get_name - !> @brief Sets the name to associate with this data set. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_name(class(plot_data) this, character(len = *) txt) - !! @endcode - !! - !! @param[in,out] this The plot_data object. - !! @param[in] txt The name. - procedure, public :: set_name => pd_set_name - !> @brief Gets the GNUPLOT command string containing the actual data - !! to plot. - procedure(pd_get_string_result), deferred, public :: get_data_string - end type - -! ------------------------------------------------------------------------------ - interface - pure module function pd_get_name(this) result(txt) - class(plot_data), intent(in) :: this - character(len = :), allocatable :: txt - end function - - module subroutine pd_set_name(this, txt) - class(plot_data), intent(inout) :: this - character(len = *), intent(in) :: txt - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_PLOT_DATA_COLORED.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a plot_data based object best represented by a color. - type, abstract, extends(plot_data) :: plot_data_colored - private - !> The line color. - type(color) :: m_color = CLR_BLUE - !> Let the object choose colors automatically - logical :: m_useAutoColor = .true. - !> The color index to use, assuming we're using auto color - integer(int32) :: m_colorIndex = 1 - contains - !> @brief Gets the line color. - !! - !! @par Syntax - !! @code{.f90} - !! pure type(color) function get_line_color(class(plot_data_colored) this) - !! @endcode - !! - !! @param[in] this The plot_data_colored instance. - !! @return The color. - procedure, public :: get_line_color => pdc_get_line_color - !> @brief Sets the line color. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_line_color(class(plot_data_colored) this, type(color) x) - !! @endcode - !! - !! @param[in,out] this The plot_data_colored instance. - !! @param[in] x The color. - procedure, public :: set_line_color => pdc_set_line_color - procedure, private :: get_color_index => pdc_get_color_index - procedure, private :: set_color_index => pdc_set_color_index - end type - -! ------------------------------------------------------------------------------ - interface - pure module function pdc_get_line_color(this) result(x) - class(plot_data_colored), intent(in) :: this - type(color) :: x - end function - - module subroutine pdc_set_line_color(this, x) - class(plot_data_colored), intent(inout) :: this - type(color), intent(in) :: x - end subroutine - - pure module function pdc_get_color_index(this) result(x) - class(plot_data_colored), intent(in) :: this - integer(int32) :: x - end function - - module subroutine pdc_set_color_index(this, x) - class(plot_data_colored), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_PLOT_AXIS.F90 -! ------------------------------------------------------------------------------ - !> @brief Describes a single plot axis. - type, abstract, extends(plot_object) :: plot_axis - private - !> @brief Has a title. - logical :: m_hasTitle = .false. - !> @brief The axis title. - character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_title = "" - !> @brief Autoscale? - logical :: m_autoscale = .true. - !> @brief Display limits. - real(real64), dimension(2) :: m_limits = [0.0d0, 1.0d0] - !> @brief Log scaled? - logical :: m_logScale = .false. - !> @brief Zero axis? - logical :: m_zeroAxis = .false. - !> @brief The width, in pixels, of the zero axis line. - real(real32) :: m_axisWidth = 1.0 - ! ADDED March 29, 2023 - JAC - !> @brief Use default tic label format? - logical :: m_defaultTicLabels = .true. - !> @brief The tic label format. - character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_ticLabelFmt = "%g" - contains - !> @brief Gets the axis' title. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_title(class(plot_axis) this) - !! @endcode - !! - !! @param[in] this The plot_axis object. - !! @return The title. - procedure, public :: get_title => pa_get_title - !> @brief Sets the axis' title. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_title(class(plot_axis) this, character(len = *) txt) - !! @endcode - !! - !! @param[in,out] this The plot_axis object. - !! @param[in] txt The axis title. The number of characters must be less - !! than or equal to PLOTDATA_MAX_NAME_LENGTH; else, the text string is - !! truncated. - procedure, public :: set_title => pa_set_title - !> @brief Gets a value determining if a title has been defined for the - !! plot_axis object. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function is_title_defined(class(plot_axis) this) - !! @endcode - !! - !! @param[in] this The plot_axis object. - !! @return Returns true if a title has been defined for this axis; else, - !! returns false. - procedure, public :: is_title_defined => pa_has_title - !> @brief Gets a logical value determining if the axis should be - !! automatically scaled to fit the data. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_autoscale(class(plot_axis) this) - !! @endcode - !! - !! @param[in] this The plot_axis object. - !! @return Returns true if the axis should be automatically scaled; else, - !! false. - procedure, public :: get_autoscale => pa_get_autoscale - !> @brief Sets a logical value determining if the axis should be - !! automatically scaled to fit the data. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_autoscale(class(plot_axis) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_axis object. - !! @param[in] x Set to true if the axis should be automatically scaled; else, - !! false. - procedure, public :: set_autoscale => pa_set_autoscale - !> @brief Gets the axis display limits, assuming autoscaling is not - !! active for this axis. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) function, dimension(2) get_limits(class(plot_axis) this) - !! @endcode - !! - !! @param[in] this The plot_axis object. - !! @return A two-element array containing the limits as follows: - !! [lower, upper]. - procedure, public :: get_limits => pa_get_axis_limits - !> @brief Sets the axis display limits, assuming autoscaling is not - !! active for this axis. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_limits(class(plot_axis) this, real(real64) lower, real(real64) upper) - !! @endcode - !! - !! @param[in,out] this The plot_axis object. - !! @param[in] lower The lower display limit. - !! @param[in] upper The upper display limit. - procedure, public :: set_limits => pa_set_axis_limits - !> @brief Gets a logical value defining if the axis should be log - !! scaled. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_is_log_scaled(class(plot_axis) this) - !! @endcode - !! - !! @param[in,out] this The plot_axis object. - !! @return Returns true if log scaling is applied to the axis; else, false. - procedure, public :: get_is_log_scaled => pa_get_log_scale - !> @brief Sets a logical value defining if the axis should be log - !! scaled. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_is_log_scaled(class(plot_axis) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_axis object. - !! @param[in] x Set to true if log scaling is applied to the axis; else, - !! false. - procedure, public :: set_is_log_scaled => pa_set_log_scale - !> @brief Returns the appropriate GNUPLOT command string to define the - !! plot_axis properties. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(plot_axis) this) - !! @endcode - !! - !! @param[in] this The plot_axis object. - !! @return The GNUPLOT command string. - procedure, public :: get_command_string => pa_get_cmd_string - !> @brief Gets a value determining if the axis should be drawn through - !! zero of opposing axes. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_zero_axis(class(plot_axis) this) - !! @endcode - !! - !! @param[in] this The plot_axis object. - !! @return Returns true to draw as a zero axis; else, set to false. - procedure, public :: get_zero_axis => pa_get_zero_axis - !> @brief Sets a value determining if the axis should be drawn through - !! zero of opposing axes. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_zero_axis(class(plot_axis) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_axis object. - !! @param[in] x Set to true to draw as a zero axis; else, set to false. - procedure, public :: set_zero_axis => pa_set_zero_axis - !> @brief Gets the width of the line used to represent the zero axis - !! line, if active. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_zero_axis_line_width(class(plot_axis) this) - !! @endcode - !! - !! @param[in] this The plot_axis object. - !! @return The width of the line, in pixels. - procedure, public :: get_zero_axis_line_width => pa_get_zero_axis_width - !> @brief Sets the width of the line used to represent the zero axis - !! line, if active. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_zero_axis_line_width(class(plot_axis) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The plot_axis object. - !! @param[in] x The width of the line, in pixels. - procedure, public :: set_zero_axis_line_width => pa_set_zero_axis_width - !> @brief Gets a string identifying the axis as: x, y, z, y2, etc. - procedure(pa_get_string_result), deferred, public :: get_id_string - - !> @brief Gets a value determining if the default tic label format will - !! be used. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_use_default_tic_label_format(class(plot_axis) this) - !! @endcode - !! - !! @param[in] this The plot_axis object. - !! @return Returns true if the default tic label format will be used; - !! else, false. - procedure, public :: get_use_default_tic_label_format => & - pa_get_use_dft_tic_lbl_fmt - !> @brief Sets a value determining if the default tic label format will - !! be used. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_use_default_tic_label_format(class(plot_axis) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_axis object. - !! @param[in] x Set to true if the default tic label format will be - !! used; else, false. - procedure, public :: set_use_default_tic_label_format => & - pa_set_use_dft_tic_lbl_fmt - !> @brief Gets the tic label format. The format string can be any - !! format string accepted by the C command 'printf.' - !! - !! @par Syntax - !! @code{.f90} - !! allocatable character(len = :) function get_tic_label_format(class(plot_axis) this) - !! @endcode - !! - !! @param[in] this The plot_axis object. - !! @return The tic label format string. - procedure, public :: get_tic_label_format => pa_get_tic_label_fmt - !> @brief Sets the tic label format. The format string can be any - !! format string accepted by the C command 'printf.' - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_tic_label_format(class(plot_axis) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The plot_axis object. - !! @param[in] x The tic label format string. - procedure, public :: set_tic_label_format => pa_set_tic_label_fmt - end type - -! ------------------------------------------------------------------------------ - interface - module function pa_get_title(this) result(txt) - class(plot_axis), intent(in) :: this - character(len = :), allocatable :: txt - end function - - module subroutine pa_set_title(this, txt) - class(plot_axis), intent(inout) :: this - character(len = *), intent(in) :: txt - end subroutine - - pure module function pa_has_title(this) result(x) - class(plot_axis), intent(in) :: this - logical :: x - end function - - pure module function pa_get_autoscale(this) result(x) - class(plot_axis), intent(in) :: this - logical :: x - end function - - module subroutine pa_set_autoscale(this, x) - class(plot_axis), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function pa_get_axis_limits(this) result(x) - class(plot_axis), intent(in) :: this - real(real64), dimension(2) :: x - end function - - module subroutine pa_set_axis_limits(this, lower, upper) - class(plot_axis), intent(inout) :: this - real(real64), intent(in) :: lower, upper - end subroutine - - pure module function pa_get_log_scale(this) result(x) - class(plot_axis), intent(in) :: this - logical :: x - end function - - module subroutine pa_set_log_scale(this, x) - class(plot_axis), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module function pa_get_cmd_string(this) result(txt) - class(plot_axis), intent(in) :: this - character(len = :), allocatable :: txt - end function - - pure module function pa_get_zero_axis(this) result(x) - class(plot_axis), intent(in) :: this - logical :: x - end function - - module subroutine pa_set_zero_axis(this, x) - class(plot_axis), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function pa_get_zero_axis_width(this) result(x) - class(plot_axis), intent(in) :: this - real(real32) :: x - end function - - module subroutine pa_set_zero_axis_width(this, x) - class(plot_axis), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module function pa_get_use_dft_tic_lbl_fmt(this) result(rst) - class(plot_axis), intent(in) :: this - logical :: rst - end function - - module subroutine pa_set_use_dft_tic_lbl_fmt(this, x) - class(plot_axis), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function pa_get_tic_label_fmt(this) result(rst) - class(plot_axis), intent(in) :: this - character(len = :), allocatable :: rst - end function - - module subroutine pa_set_tic_label_fmt(this, x) - class(plot_axis), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_LEGEND.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a legend object. - type, extends(plot_object) :: legend - private - !> Legend on inside or outside of axes - logical :: m_inside = .true. - !> Draw a box around the legend - logical :: m_box = .true. - !> Defines the horizontal position - character(len = 20) :: m_horzPosition = LEGEND_RIGHT - !> Defines the vertical position - character(len = 20) :: m_vertPosition = LEGEND_TOP - !> Determines if the legend is visible. - logical :: m_show = .false. - !> Determines the legend layout. - character(len = 20) :: m_layout = LEGEND_ARRANGE_VERTICALLY - !> Opaque background? - logical :: m_opaque = .true. - contains - !> @brief Gets a value determining if the legend should be drawn inside - !! the axes border (true), or outside the axes border (false). - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_draw_inside_axes(class(legend) this) - !! @endcode - !! - !! @param[in] this The legend object. - !! @return The logical value. - procedure, public :: get_draw_inside_axes => leg_get_inside - !> @brief Sets a value determining if the legend should be drawn inside - !! the axes border (true), or outside the axes border (false). - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_draw_inside_axes(class(legend) this, logical x) - !! @endcode - !! - !! @param[in,out] this The legend object. - !! @param[in] x The logical value. - procedure, public :: set_draw_inside_axes => leg_set_inside - !> @brief Gets a value determining if the legend should have a border. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_draw_border(class(legend) this) - !! @endcode - !! - !! @param[in] this The legend object. - !! @return The logical value. - procedure, public :: get_draw_border => leg_get_box - !> @brief Sets a value determining if the legend should have a border. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_draw_border(class(legend) this, logical x) - !! @endcode - !! - !! @param[in,out] this The legend object. - !! @param[in] x The logical value. - procedure, public :: set_draw_border => leg_set_box - !> @brief Gets the horizontal position of the legend. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_horizontal_position(class(legend) this) - !! @endcode - !! - !! @param[in] this The legend object. - !! @return The horizontal position of the legend (LEGEND_LEFT, - !! LEGEND_CENTER, or LEGEND_RIGHT). - procedure, public :: get_horizontal_position => leg_get_horz_pos - !> @brief Sets the horizontal position of the legend. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_horizontal_position(class(legend) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The legend object. - !! @param x The horizontal position of the legend. The parameter must be - !! set to one of the following: LEGEND_LEFT, LEGEND_CENTER, or - !! LEGEND_RIGHT. If not, the default LEGEND_RIGHT will be used. - procedure, public :: set_horizontal_position => leg_set_horz_pos - !> @brief Gets the vertical position of the legend. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_vertical_position(class(legend) this) - !! @endcode - !! - !! @param[in] this The legend object. - !! @return The vertical position of the legend (LEGEND_TOP, - !! LEGEND_CENTER, or LEGEND_BOTTOM). - procedure, public :: get_vertical_position => leg_get_vert_pos - !> @brief Gets the vertical position of the legend. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_vertical_position(class(legend) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The legend object. - !! @param x The vertical position of the legend. The parameter must be - !! set to one of the following: LEGEND_TOP, LEGEND_CENTER, or - !! LEGEND_BOTTOM. If not, the default LEGEND_TOP will be used. - procedure, public :: set_vertical_position => leg_set_vert_pos - !> @brief Gets a value determining if the legend is visible. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_is_visible(class(legend) this) - !! @endcode - !! - !! @param[in] this The legend object. - !! @return The logical value. - procedure, public :: get_is_visible => leg_get_visible - !> @brief Sets a value determining if the legend is visible. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_is_visible(class(legend) this, logical x) - !! @endcode - !! - !! @param[in,out] this The legend object. - !! @param[in] x The logical value. - procedure, public :: set_is_visible => leg_set_visible - !> @brief Gets the command string defining the legend properties. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(legend) this) - !! @endcode - !! - !! @param[in] this The legend object. - !! @return The GNUPLOT command string. - procedure, public :: get_command_string => leg_get_command_txt - !> @brief Gets the layout of the legend. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) pure function get_layout(class(legend) this) - !! @endcode - !! - !! @param[in] this The legend object. - !! @return The layout type, either @ref LEGEND_ARRANGE_VERTICALLY - !! or @ref LEGEND_ARRANGE_HORIZONTALLY. - procedure, public :: get_layout => leg_get_layout - !> @brief Sets the layout of the legend. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_layout(class(legend) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The legend object. - !! @param[in] x The layout type, either @ref LEGEND_ARRANGE_VERTICALLY - !! or @ref LEGEND_ARRANGE_HORIZONTALLY. - procedure, public :: set_layout => leg_set_layout - !> @brief Gets a value determining if the legend is to be opaque. - !! - !! @par Syntax - !! @code{.f90} - !! logical pure function get_is_opaque(class(legend) this) - !! @endcode - !! - !! @param[in] this The legend object. - !! @return True if the legend is to be opaque; else, false. - procedure, public :: get_is_opaque => leg_get_opaque - !> @brief Sets a value determining if the legend is to be opaque. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_is_opaque(class(legend) this) - !! @endcode - !! - !! @param[in,out] this The legend object. - !! @param[in] x True if the legend is to be opaque; else, false. - procedure, public :: set_is_opaque => leg_set_opaque - end type - -! ------------------------------------------------------------------------------ - interface - pure module function leg_get_inside(this) result(x) - class(legend), intent(in) :: this - logical :: x - end function - - module subroutine leg_set_inside(this, x) - class(legend), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function leg_get_box(this) result(x) - class(legend), intent(in) :: this - logical :: x - end function - - module subroutine leg_set_box(this, x) - class(legend), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module function leg_get_horz_pos(this) result(x) - class(legend), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine leg_set_horz_pos(this, x) - class(legend), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - - module function leg_get_vert_pos(this) result(x) - class(legend), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine leg_set_vert_pos(this, x) - class(legend), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - - pure module function leg_get_visible(this) result(x) - class(legend), intent(in) :: this - logical :: x - end function - - module subroutine leg_set_visible(this, x) - class(legend), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module function leg_get_command_txt(this) result(txt) - class(legend), intent(in) :: this - character(len = :), allocatable :: txt - end function - - pure module function leg_get_layout(this) result(rst) - class(legend), intent(in) :: this - character(len = :), allocatable :: rst - end function - - module subroutine leg_set_layout(this, x) - class(legend), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - - pure module function leg_get_opaque(this) result(rst) - class(legend), intent(in) :: this - logical :: rst - end function - - module subroutine leg_set_opaque(this, x) - class(legend), intent(inout) :: this - logical :: x - end subroutine - end interface - - -! ****************************************************************************** -! FPLOT_COLORMAP.F90 -! ------------------------------------------------------------------------------ - !> @brief A colormap object for a surface plot. - type, abstract, extends(plot_object) :: colormap - private - !> The label to associate with the colormap - character(len = :), allocatable :: m_label - !> The colormap should be drawn horizontally - logical :: m_horizontal = .false. - !> Draw the colormap border - logical :: m_drawBorder = .true. - !> Show the tic marks - logical :: m_showTics = .true. - contains - !> @brief Gets the GNUPLOT command string to represent this colormap - !! object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable :: get_command_string(class(colormap) this) - !! @endcode - !! - !! @param[in] this The colormap object. - !! @return The command string. - procedure, public :: get_command_string => cm_get_cmd - !> @brief Gets the GNUPLOT string defining the color distribution. For - !! instance, this routine could return the string: '0 "dark-blue", - !! 1 "blue", 2 "cyan", 3 "green", 4 "yellow", 5 "orange", 6 "red", - !! 7 "dark-red"'. This string would result in a rainbow type map. - procedure(cm_get_string_result), deferred, public :: get_color_string - !> @brief Gets the label to associate with the colorbar. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) get_label(class(colormap) this) - !! @endcode - !! - !! @param[in] this The colormap object. - !! @return The label. - procedure, public :: get_label => cm_get_label - !> @brief Sets the label to associate with the colorbar. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_label(class(colormap) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The colormap object. - !! @param[in] x The label. - procedure, public :: set_label => cm_set_label - !> @brief Gets a logical value determining if the colormap should be - !! drawn horizontally and below the plot. - !! - !! @par Syntax - !! @code{.f90} - !! logical get_horizontal(class(colormap) this) - !! @endcode - !! - !! @param[in] this The colormap object. - !! @return Returns true if the colormap should be drawn horizontally; - !! else, false. - procedure, public :: get_horizontal => cm_get_horizontal - !> @brief Sets a logical value determining if the colormap should be - !! drawn horizontally and below the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_horizontal(class(colormap) this, logical x) - !! @endcode - !! - !! @param[in,out] this The colormap object. - !! @param[in] x Set to true if the colormap should be drawn - !! horizontally; else, false. - procedure, public :: set_horizontal => cm_set_horizontal - !> @brief Gets a logical value determining if the border should be - !! drawn. - !! - !! @par Syntax - !! @code{.f90} - !! logical get_draw_border(class(colormap) this) - !! @endcode - !! - !! @param[in] this The colormap object. - !! @return Returns true if the border should be drawn; else, false. - procedure, public :: get_draw_border => cm_get_draw_border - !> @brief Sets a logical value determining if the border should be - !! drawn. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_draw_border(class(colormap) this, logical x) - !! @endcode - !! - !! @param[in,out] this The colormap object. - !! @param[in] x Set to true if the border should be drawn; else, false. - procedure, public :: set_draw_border => cm_set_draw_border - !> @brief Gets a logical value determining if the tic marks should be - !! drawn. - !! - !! @par Syntax - !! @code{.f90} - !! logical get_show_tics(class(colormap) this) - !! @endcode - !! - !! @param[in] this The colormap object. - !! @return Returns true if the tic marks should be drawn; else, false. - procedure, public :: get_show_tics => cm_get_show_tics - !> @brief Sets a logical value determining if the tic marks should be - !! drawn. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_show_tics(class(colormap) this, logical x) - !! @endcode - !! - !! @param[in,out] this The colormap object. - !! @param[in] x Set to true if the tic marks should be drawn; else, - !! false. - !> @brief Sets a logical value determining if the border should be - !! drawn. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_draw_border(class(colormap) this, logical x) - !! @endcode - !! - !! @param[in,out] this The colormap object. - !! @param[in] x Set to true if the border should be drawn; else, false. - procedure, public :: set_show_tics => cm_set_show_tics - end type - -! ------------------------------------------------------------------------------ - !> @brief Defines a rainbow colormap. - type, extends(colormap) :: rainbow_colormap - contains - !> @brief Gets the GNUPLOT string defining the color distribution. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_color_string(class(rainbow_colormap) this) - !! @endcode - !! - !! @param[in] this The rainbow_colormap object. - !! @return The command string. - procedure, public :: get_color_string => rcm_get_clr - end type - -! ------------------------------------------------------------------------------ - !> @brief Defines a colormap consisting of "hot" colors. - type, extends(colormap) :: hot_colormap - contains - !> @brief Gets the GNUPLOT string defining the color distribution. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_color_string(class(hot_colormap) this) - !! @endcode - !! - !! @param[in] this The hot_colormap object. - !! @return The command string. - procedure, public :: get_color_string => hcm_get_clr - end type - -! ------------------------------------------------------------------------------ - !> @brief Defines a colormap consisting of "cool" colors. - type, extends(colormap) :: cool_colormap - contains - !> @brief Gets the GNUPLOT string defining the color distribution. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_color_string(class(cool_colormap) this) - !! @endcode - !! - !! @param[in] this The cool_colormap object. - !! @return The command string. - procedure, public :: get_color_string => ccm_get_clr - end type - -! ------------------------------------------------------------------------------ - !> @brief Defines a colormap equivalent to the MATLAB parula colormap. - type, extends(colormap) :: parula_colormap - contains - !> @brief Gets the GNUPLOT string defining the color distribution. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_color_string(class(parula_colormap) this) - !! @endcode - !! - !! @param[in] this The parula_colormap object. - !! @return The command string. - procedure, public :: get_color_string => pcm_get_clr - end type - -! ------------------------------------------------------------------------------ - !> @brief Defines a grey-scaled colormap. - type, extends(colormap) :: grey_colormap - contains - !> @brief Gets the GNUPLOT string defining the color distribution. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_color_string(class(grey_colormap) this) - !! @endcode - !! - !! @param[in] this The grey_colormap object. - !! @return The command string. - procedure, public :: get_color_string => gcm_get_clr - end type - -! ------------------------------------------------------------------------------ - !> @brief Defines an earthy-colored colormap. - type, extends(colormap) :: earth_colormap - contains - !> @brief Gets the GNUPLOT string defining the color distribution. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_color_string(class(earth_colormap) this) - !! @endcode - !! - !! @param[in] this The earth_colormap object. - !! @return The command string. - procedure, public :: get_color_string => ecm_get_clr - end type + ! FPLOT_FILLED_PLOT_DATA.F90 + public :: filled_plot_data -! ------------------------------------------------------------------------------ - !> @brief Defines a custom colormap that utilizes the FORCOLORMAP library - !! to provide the map. - type, extends(colormap) :: custom_colormap - class(cmap), private, pointer :: m_map => null() - contains - final :: custom_final - !> @brief Gets the GNUPLOT string defining the color distribution. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_color_string(class(custom_colormap) this) - !! @endcode - !! - !! @param[in] this The @ref custom_colormap object. - !! @return The command string. - procedure, public :: get_color_string => custom_get_clr - !> @brief Sets the FORCOLORMAP colormap object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_colormap(class(custom_colormap) this, class(cmap) x, optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The @ref custom_colormap object. - !! @param[in] x The FORCOLORMAP colormap object. The @ref - !! custom_colormap object stores a copy of this object; - !! therefore, any changes made to @p x after calls to - !! this routine will not impact the behavior of the - !! @ref custom_colormap object. - !! @param[in,out] err An optional errors-based object that if provided - !! can be used to retrieve information relating to any errors - !! encountered during execution. If not provided, a default - !! implementation of the errors class is used internally to provide - !! error handling. Possible errors and warning messages that may be - !! encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if a memory allocation error - !! occurs. - procedure, public :: set_colormap => custom_set - !> @brief Gets a pointer to the FORCOLORMAP colormap object. - !! - !! @par Syntax - !! @code{.f90} - !! class(cmap), pointer function get_colormap(class(custom_colormap) this) - !! @endcode - !! - !! @param[in] this The @ref custom_colormap object. - !! @return A pointer to the FORCOLORMAP colormap object. - procedure, public :: get_colormap => custom_get - end type + ! FPLOT_TRIANGULATIONS_DELAUNAY_2D.F90 + public :: delaunay_tri_2d -! ------------------------------------------------------------------------------ - interface - module function cm_get_cmd(this) result(x) - class(colormap), intent(in) :: this - character(len = :), allocatable :: x - end function + ! FPLOT_PLOT_DATA_TRI_2D.F90 + public :: plot_data_tri_2d - pure module function cm_get_label(this) result(rst) - class(colormap), intent(in) :: this - character(len = :), allocatable :: rst - end function + ! FPLOT_DELAUNAY_TRI_SURFACE.F90 + public :: delaunay_tri_surface + + ! FPLOT_TRI_SURFACE_PLOT_DATA.F90 + public :: tri_surface_plot_data - module subroutine cm_set_label(this, x) - class(colormap), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine + ! FPLOT_VECTOR_FIELD_PLOT_DATA.F90 + public :: vector_field_plot_data - pure module function cm_get_horizontal(this) result(rst) - class(colormap), intent(in) :: this - logical :: rst - end function + ! FPLOT_PLOT.F90 + public :: plot - module subroutine cm_set_horizontal(this, x) - class(colormap), intent(inout) :: this - logical, intent(in) :: x - end subroutine + ! FPLOT_PLOT_2D.F90 + public :: plot_2d - pure module function cm_get_draw_border(this) result(rst) - class(colormap), intent(in) :: this - logical :: rst - end function + ! FPLOT_PLOT_3D.F90 + public :: plot_3d - module subroutine cm_set_draw_border(this, x) - class(colormap), intent(inout) :: this - logical, intent(in) :: x - end subroutine + ! FPLOT_SURFACE_PLOT.F90 + public :: surface_plot - pure module function cm_get_show_tics(this) result(rst) - class(colormap), intent(in) :: this - logical :: rst - end function - - module subroutine cm_set_show_tics(this, x) - class(colormap), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - ! -------------------- - - module function rcm_get_clr(this) result(x) - class(rainbow_colormap), intent(in) :: this - character(len = :), allocatable :: x - end function - - ! -------------------- - - module function hcm_get_clr(this) result(x) - class(hot_colormap), intent(in) :: this - character(len = :), allocatable :: x - end function - - ! -------------------- - - module function ccm_get_clr(this) result(x) - class(cool_colormap), intent(in) :: this - character(len = :), allocatable :: x - end function - - ! -------------------- - - module function pcm_get_clr(this) result(x) - class(parula_colormap), intent(in) :: this - character(len = :), allocatable :: x - end function - - ! -------------------- - - module function gcm_get_clr(this) result(x) - class(grey_colormap), intent(in) :: this - character(len = :), allocatable :: x - end function - - ! -------------------- - - module function ecm_get_clr(this) result(x) - class(earth_colormap), intent(in) :: this - character(len = :), allocatable :: x - end function - - ! -------------------- - module function custom_get_clr(this) result(x) - class(custom_colormap), intent(in) :: this - character(len = :), allocatable :: x - end function - - ! -------------------- - module subroutine custom_set(this, map, err) - class(custom_colormap), intent(inout) :: this - class(cmap), intent(in) :: map - class(errors), intent(inout), optional, target :: err - end subroutine - - ! -------------------- - module function custom_get(this) result(rst) - class(custom_colormap), intent(in) :: this - class(cmap), pointer :: rst - end function - - ! -------------------- - module subroutine custom_final(this) - type(custom_colormap), intent(inout) :: this - end subroutine - - ! -------------------- - end interface - -! ****************************************************************************** -! FPLOT_PLOT.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines the basic GNUPLOT plot. - type, extends(plot_object) :: plot - private - !> The plot title - character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_title = "" - !> Has a title? - logical :: m_hasTitle = .false. - !> The GNUPLOT terminal object to target. - class(terminal), pointer :: m_terminal => null() - !> A collection of plot_data items to plot. - type(list) :: m_data - !> The legend. - type(legend), pointer :: m_legend => null() - !> Show grid lines? - logical :: m_showGrid = .true. - !> Point tic marks in? - logical :: m_ticsIn = .true. - !> Draw the border? - logical :: m_drawBorder = .true. - !> A collection of plot_label items to draw. - type(list) :: m_labels ! Added 6/22/2018, JAC - !> The color index to use for automatic line coloring for scatter plots. - integer(int32) :: m_colorIndex = 1 - !> Determines if the axes should be scaled proportionally. - logical :: m_axisEqual = .false. - !> The colormap. - class(colormap), pointer :: m_colormap - !> Show the colorbar? - logical :: m_showColorbar = .true. - !> A collection of plot_arrow items to draw. - type(list) :: m_arrows ! Added 1/3/2024, JAC - contains - !> @brief Cleans up resources held by the plot object. Inheriting - !! classes are expected to call this routine to free internally held - !! resources. - !! - !! @par Syntax - !! @code{.f90} - !! module free_resources(class(plot) this) - !! @endcode - !! - !! @param[in,out] this The plot object. - procedure, public :: free_resources => plt_clean_up - !> @brief Initializes the plot object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine initialize(class(plot) this, optional class(terminal) term, optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] term An optional input that is used to define the terminal. - !! The default terminal is a WXT terminal. The acceptable inputs are: - !! - GNUPLOT_TERMINAL_PNG - !! - GNUPLOT_TERMINAL_QT - !! - GNUPLOT_TERMINAL_WIN32 - !! - GNUPLOT_TERMINAL_WXT - !! - GNUPLOT_TERMINAL_LATEX - !! @param[in] fname A filename to pass to the terminal in the event the - !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - procedure, public :: initialize => plt_init - !> @brief Gets the plot's title. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_title(class(plot)) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return The plot's title. - procedure, public :: get_title => plt_get_title - !> @brief Sets the plot's title. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_title(class(plot) this, character(len = *) txt) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] txt The plot's title. The number of characters must be less - !! than or equal to PLOTDATA_MAX_NAME_LENGTH; else, the text string is - !! truncated. - procedure, public :: set_title => plt_set_title - !> @brief Gets a value determining if a title has been defined for the - !! plot object. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function is_title_defined(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return Returns true if a title has been defined for this plot; else, - !! returns false. - procedure, public :: is_title_defined => plt_has_title - !> @brief Gets the plot's legend object. - !! - !! @par Syntax - !! @code{.f90} - !! class(legend) function, pointer get_legend(class(this) plot) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return A pointer to the legend object. - procedure, public :: get_legend => plt_get_legend - !> @brief Gets the number of stored plot_data objects. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_count(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return The number of plot_data objects. - procedure, public :: get_count => plt_get_count - !> @brief Pushes a plot_data object onto the stack. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine push(class(plot) this, class(plot_data) x, optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] x The plot_data object. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - procedure, public :: push => plt_push_data - !> @brief Pops the last plot_data object from the stack. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine pop(class(plot) this) - !! @endcode - !! - !! @param[in,out] this The plot object. - procedure, public :: pop => plt_pop_data - !> @brief Removes all plot_data objects from the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine clear(class(plot) this) - !! @endcode - !! - !! @param[in,out] this The plot object. - procedure, public :: clear_all => plt_clear_all - !> @brief Gets a pointer to the requested plot_data object. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot_data) function, pointer get(class(plot), integer(int32) i) - !! @endcode - !! - !! @param[in] this The plot object. - !! @param[in] i The index of the plot_data object. - !! @return A pointer to the requested plot_data object. - procedure, public :: get => plt_get - !> @brief Sets the requested plot_data object into the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set(class(plot) this, integer(int32) i, class(plot_data) x) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] i The index of the plot_data object. - !! @param[in] x The plot_data object. - procedure, public :: set => plt_set - !> @brief Gets the GNUPLOT terminal object. - !! - !! @par Syntax - !! @code{.f90} - !! class(terminal) function, pointer get_terminal(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return A pointer to the GNUPLOT terminal object. - procedure, public :: get_terminal => plt_get_term - !> @brief Gets a flag determining if the grid lines should be shown. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_show_gridlines(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return Returns true if the grid lines should be shown; else, false. - procedure, public :: get_show_gridlines => plt_get_show_grid - !> @brief Sets a flag determining if the grid lines should be shown. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_show_gridlines(class(plot) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] x Set to true if the grid lines should be shown; else, false. - procedure, public :: set_show_gridlines => plt_set_show_grid - !> @brief Launches GNUPLOT and draws the plot per the current state of - !! the command list. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine draw(class(plot) this, optional logical persist, optional class(errors) err) - !! @endcode - !! - !! @param[in] this The plot object. - !! @param[in] persist An optional parameter that can be used to keep GNUPLOT - !! open. Set to true to force GNUPLOT to remain open; else, set to false - !! to allow GNUPLOT to close after drawing. The default is true. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_GNUPLOT_FILE_ERROR: Occurs if the command file cannot be written. - procedure, public :: draw => plt_draw - !> @brief Saves a GNUPLOT command file. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine save_file(class(plot) this, character(len = *) fname, optional class(errors) err) - !! @endcode - !! - !! @param[in] this The plot object. - !! @param[in] fname The filename. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_GNUPLOT_FILE_ERROR: Occurs if the command file cannot be written. - procedure, public :: save_file => plt_save - !> @brief Gets the name of the font used for plot text. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_font_name(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return The font name. - procedure, public :: get_font_name => plt_get_font - !> @brief Sets the name of the font used for plot text. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_font_name(class(plot) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] x The font name. - procedure, public :: set_font_name => plt_set_font - !> @brief Gets the size of the font used by the plot. - !! - !! @par Syntax - !! @code{.f90} - !! integer(int32) function get_font_size(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return The size of the font, in points. - procedure, public :: get_font_size => plt_get_font_size - !> @brief Sets the size of the font used by the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_font_size(class(plot) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] x The font size, in points. If a value of zero is provided, - !! the font size is reset to its default value; or, if a negative value - !! is provided, the absolute value of the supplied value is utilized. - procedure, public :: set_font_size => plt_set_font_size - !> @brief Gets a value determining if the axis tic marks should point - !! inwards. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_tics_inward(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return Returns true if the tic marks should point inwards; else, false - !! if the tic marks should point outwards. - procedure, public :: get_tics_inward => plt_get_tics_in - !> @brief Sets a value determining if the axis tic marks should point - !! inwards. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_tics_inward(class(plot) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] x Set to true if the tic marks should point inwards; else, - !! false if the tic marks should point outwards. - procedure, public :: set_tics_inward => plt_set_tics_in - !> @brief Gets a value determining if the border should be drawn. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_draw_border(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return Returns true if the border should be drawn; else, false. - procedure, public :: get_draw_border => plt_get_draw_border - !> @brief Sets a value determining if the border should be drawn. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_draw_border(class(plot) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] x Set to true if the border should be drawn; else, false. - procedure, public :: set_draw_border => plt_set_draw_border - !> @brief Adds a label to the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine push_label(class(plot) this, class(plot_labels) lbl, optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] lbl The plot label. - !! @param[in,out] err An optional errors-based object for managing - !! errors. The default implementation of the errors type is used if - !! nothing is supplied. - procedure, public :: push_label => plt_push_label - !> @brief Removes the last label from the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine pop_label(class(plot) this) - !! @endcode - !! - !! @param[in,out] this The plot object. - procedure, public :: pop_label => plt_pop_label - !> @brief Gets the requested plot_label from the plot. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot_label) pointer function get_label(class(plot) this, integer(int32) i) - !! @endcode - !! - !! @param[in] this The plot object. - !! @param[in] i The index of the plot_label object to retrieve. - !! @return A pointer to the requested plot_label object. - procedure, public :: get_label => plt_get_label - !> @brief Sets the specified plot_label object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_label(class(plot) this, integer(int32) i, class(plot_label) x) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] i The index of the plot_label to replace. - !! @param[in] x The new plot_label object. - procedure, public :: set_label => plt_set_label - !> @brief Gets the number of plot_label objects belonging to the plot. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_label_count(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return The number of plot_label objects. - procedure, public :: get_label_count => plt_get_label_count - !> @brief Clears all plot_label objects from the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine clear_all_labels(class(plot) this) - !! @endcode - !! - !! @param[in,out] this The plot object. - procedure, public :: clear_all_labels => plt_clear_labels - !> @brief Gets a flag determining if the axes should be equally scaled. - !! - !! @par Syntax - !! @code{.f90} - !! logical function get_axis_equal(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return Returns true if the axes should be scaled equally; else, - !! false. - procedure, public :: get_axis_equal => plt_get_axis_equal - !> @brief Sets a flag determining if the axes should be equally scaled. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_axis_equal(class(plot) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] x Set to true if the axes should be scaled equally; else, - !! false. - procedure, public :: set_axis_equal => plt_set_axis_equal - !> @brief Gets a pointer to the colormap object. - !! - !! @par Syntax - !! @code{.f90} - !! class(colormap) function, pointer get_colormap(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return A pointer to the colormap object. If no colormap is defined, a - !! null pointer is returned. - procedure, public :: get_colormap => plt_get_colormap - !> @brief Sets the colormap object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_colormap(class(plot) this, class(colormap) x, optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] x The colormap object. Notice, a copy of this object is - !! stored, and the plot object then manages the lifetime of the - !! copy. - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - procedure, public :: set_colormap => plt_set_colormap - !> @brief Gets a value determining if the colorbar should be shown. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_show_colorbar(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return Returns true if the colorbar should be drawn; else, false. - procedure, public :: get_show_colorbar => plt_get_show_colorbar - !> @brief Sets a value determining if the colorbar should be shown. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_show_colorbar(class(plot) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot object. - !! @param[in] x Set to true if the colorbar should be drawn; else, false. - procedure, public :: set_show_colorbar => plt_set_show_colorbar - !> @brief Gets the GNUPLOT command string to represent this plot - !! object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(plot) this) - !! @endcode - !! - !! @param[in] this The plot object. - !! @return The command string. - procedure, public :: get_command_string => plt_get_cmd - !> @brief Pushes a new @ref plot_arrow object onto the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine push_arrow(class(plot) this, class(plot_arrow) x, optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The @ref plot object. - !! @param[in] x The @ref plot_arrow object. This instance is copied, - !! and the copy is stored and managed by the @ref plot object. - !! @param[in,out] err An optional errors-based object for managing - !! errors. The default implementation of the errors type is used if - !! nothing is supplied. - procedure, public :: push_arrow => plt_push_arrow - !> @brief Pops a @ref plot_arrow object from the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine pop_arrow(class(plot) this) - !! @endcode - !! - !! @param[in,out] this The @ref plot object. - procedure, public :: pop_arrow => plt_pop_arrow - !> @brief Gets a pointer to the requested @ref plot_arrow object. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot_arrow), pointer function get_arrow(class(plot) this, integer(int32) i) - !! @endcode - !! - !! @param[in] this The @ref plot object. - !! @param[in] i The index of the @ref plot_arrow to retrieve. - procedure, public :: get_arrow => plt_get_arrow - !> @brief Sets a @ref plot_arrow into the @ref plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_arrow(class(plot) this, integer(int32) i, class(plot_arrow) x) - !! @endcode - !! - !! @param[in,out] this The @ref plot object. - !! @param[in] i The index of the @ref plot_arrow to retrieve. - !! @param[in] x The @ref plot_arrow to set. This instance is copied, - !! and the copy is stored and managed by the @ref plot object. - procedure, public :: set_arrow => plt_set_arrow - !> @brief Gets the number of @ref plot_arrow objects held by the - !! @ref plot object. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_arrow_count(class(plot_arrow) this) - !! @endcode - !! - !! @param[in] this The @ref plot object. - !! @return The number of @ref plot_arrow objects held by the @ref plot - !! object. - procedure, public :: get_arrow_count => plt_get_arrow_count - !> @brief Clears all @ref plot_arrow objects from the @ref plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine clear_arrows(class(plot) this) - !! @endcode - !! - !! @param[in,out] this The @ref plot object. - procedure, public :: clear_arrows => plt_clear_arrows - end type - -! ------------------------------------------------------------------------------ - interface - module subroutine plt_clean_up(this) - class(plot), intent(inout) :: this - end subroutine - - module subroutine plt_init(this, term, fname, err) - class(plot), intent(inout) :: this - integer(int32), intent(in), optional :: term - character(len = *), intent(in), optional :: fname - class(errors), intent(inout), optional, target :: err - end subroutine - - module function plt_get_title(this) result(txt) - class(plot), intent(in) :: this - character(len = :), allocatable :: txt - end function - - module subroutine plt_set_title(this, txt) - class(plot), intent(inout) :: this - character(len = *), intent(in) :: txt - end subroutine - - pure module function plt_has_title(this) result(x) - class(plot), intent(in) :: this - logical :: x - end function - - module function plt_get_legend(this) result(x) - class(plot), intent(in) :: this - type(legend), pointer :: x - end function - - pure module function plt_get_count(this) result(x) - class(plot), intent(in) :: this - integer(int32) :: x - end function - - module subroutine plt_push_data(this, x, err) - class(plot), intent(inout) :: this - class(plot_data), intent(inout) :: x - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine plt_pop_data(this) - class(plot), intent(inout) :: this - end subroutine - - module subroutine plt_clear_all(this) - class(plot), intent(inout) :: this - end subroutine - - module function plt_get(this, i) result(x) - class(plot), intent(in) :: this - integer(int32), intent(in) :: i - class(plot_data), pointer :: x - end function - - module subroutine plt_set(this, i, x) - class(plot), intent(inout) :: this - integer(int32), intent(in) :: i - class(plot_data), intent(in) :: x - end subroutine - - module function plt_get_term(this) result(x) - class(plot), intent(in) :: this - class(terminal), pointer :: x - end function - - pure module function plt_get_show_grid(this) result(x) - class(plot), intent(in) :: this - logical :: x - end function - - module subroutine plt_set_show_grid(this, x) - class(plot), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module subroutine plt_draw(this, persist, err) - class(plot), intent(in) :: this - logical, intent(in), optional :: persist - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine plt_save(this, fname, err) - class(plot), intent(in) :: this - character(len = *), intent(in) :: fname - class(errors), intent(inout), optional, target :: err - end subroutine - - module function plt_get_font(this) result(x) - class(plot), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine plt_set_font(this, x) - class(plot), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - - module function plt_get_font_size(this) result(x) - class(plot), intent(in) :: this - integer(int32) :: x - end function - - module subroutine plt_set_font_size(this, x) - class(plot), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - - pure module function plt_get_tics_in(this) result(x) - class(plot), intent(in) :: this - logical :: x - end function - - module subroutine plt_set_tics_in(this, x) - class(plot), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function plt_get_draw_border(this) result(x) - class(plot), intent(in) :: this - logical :: x - end function - - module subroutine plt_set_draw_border(this, x) - class(plot), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module subroutine plt_push_label(this, lbl, err) - class(plot), intent(inout) :: this - class(plot_label), intent(in) :: lbl - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine plt_pop_label(this) - class(plot), intent(inout) :: this - end subroutine - - module function plt_get_label(this, i) result(x) - class(plot), intent(in) :: this - integer(int32), intent(in) :: i - class(plot_label), pointer :: x - end function - - module subroutine plt_set_label(this, i, x) - class(plot), intent(inout) :: this - integer(int32), intent(in) :: i - class(plot_label), intent(in) :: x - end subroutine - - pure module function plt_get_label_count(this) result(x) - class(plot), intent(in) :: this - integer(int32) :: x - end function - - module subroutine plt_clear_labels(this) - class(plot), intent(inout) :: this - end subroutine - - pure module function plt_get_axis_equal(this) result(rst) - class(plot), intent(in) :: this - logical :: rst - end function - - module subroutine plt_set_axis_equal(this, x) - class(plot), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module function plt_get_colormap(this) result(x) - class(plot), intent(in) :: this - class(colormap), pointer :: x - end function - - module subroutine plt_set_colormap(this, x, err) - class(plot), intent(inout) :: this - class(colormap), intent(in) :: x - class(errors), intent(inout), optional, target :: err - end subroutine - - pure module function plt_get_show_colorbar(this) result(x) - class(plot), intent(in) :: this - logical :: x - end function - - module subroutine plt_set_show_colorbar(this, x) - class(plot), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module function plt_get_cmd(this) result(x) - class(plot), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine plt_push_arrow(this, x, err) - class(plot), intent(inout) :: this - class(plot_arrow), intent(in) :: x - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine plt_pop_arrow(this) - class(plot), intent(inout) :: this - end subroutine - - module function plt_get_arrow(this, i) result(rst) - class(plot), intent(in) :: this - integer(int32), intent(in) :: i - class(plot_arrow), pointer :: rst - end function - - module subroutine plt_set_arrow(this, i, x) - class(plot), intent(inout) :: this - integer(int32), intent(in) :: i - class(plot_arrow), intent(in) :: x - end subroutine - - pure module function plt_get_arrow_count(this) result(rst) - class(plot), intent(in) :: this - integer(int32) :: rst - end function - - module subroutine plt_clear_arrows(this) - class(plot), intent(inout) :: this - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_SCATTER_PLOT_DATA.F90 -! ------------------------------------------------------------------------------ - !> @brief A plot_data object for describing scatter plot data sets. - type, abstract, extends(plot_data_colored) :: scatter_plot_data - private - !> Draw the line? - logical :: m_drawLine = .true. - !> Draw the markers? - logical :: m_drawMarkers = .false. - !> Marker frequency. - integer(int32) :: m_markerFrequency = 1 - !> Line width. - real(real32) :: m_lineWidth = 1.0 - !> Line style. - integer(int32) :: m_lineStyle = LINE_SOLID - !> Marker type. - integer(int32) :: m_markerType = MARKER_X - !> Marker size multiplier. - real(real32) :: m_markerSize = 1.0 - !> True if large data sets should be simplified before sending to - !! GNUPLOT. - logical :: m_simplifyData = .true. - !> A scaling factor used to establish the simplification tolerance. - !! The simplification tolerance is established by multiplying this - !! factor by the range in the dependent variable data. - real(real64) :: m_simplifyFactor = 1.0d-3 - !> Determines if the data should utilize data-dependent colors. - logical :: m_dataDependentColors = .false. - !> Fill the curve? - logical :: m_filledCurve = .false. - !> Use variable size data points? - logical :: m_useVariableSizePoints = .false. - contains - !> @brief Gets the GNUPLOT command string to represent this - !! scatter_plot_data object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return The command string. - procedure, public :: get_command_string => spd_get_cmd - !> @brief Gets the width of the line, in pixels. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_line_width(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return The line width. - procedure, public :: get_line_width => spd_get_line_width - !> @brief Sets the width of the line, in pixels. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_line_width(class(scatter_plot_data) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x The line width. - procedure, public :: set_line_width => spd_set_line_width - !> @brief Gets the line style. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_line_style(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return The line style. The line style must be one of the following: - !! - LINE_DASHED - !! - LINE_DASH_DOTTED - !! - LINE_DASH_DOT_DOT - !! - LINE_DOTTED - !! - LINE_SOLID - procedure, public :: get_line_style => spd_get_line_style - !> @brief Sets the line style. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_line_style(class(scatter_plot_data) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x The line style. The line style must be one of the - !! following: - !! - LINE_DASHED - !! - LINE_DASH_DOTTED - !! - LINE_DASH_DOT_DOT - !! - LINE_DOTTED - !! - LINE_SOLID - procedure, public :: set_line_style => spd_set_line_style - !> @brief Gets a value determining if a line should be drawn. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_draw_line(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return Returns true if the line should be drawn; else, false. - procedure, public :: get_draw_line => spd_get_draw_line - !> @brief Sets a value determining if a line should be drawn. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_draw_line(class(scatter_plot_data) this, logical x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x Set to true if the line should be drawn; else, false. - procedure, public :: set_draw_line => spd_set_draw_line - !> @brief Gets a value determining if data point markers should be - !! drawn. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_draw_markers(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return Returns true if the markers should be drawn; else, false. - procedure, public :: get_draw_markers => spd_get_draw_markers - !> @brief Sets a value determining if data point markers should be - !! drawn. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_draw_markers(class(scatter_plot_data) this, logical x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x Set to true if the markers should be drawn; else, false. - procedure, public :: set_draw_markers => spd_set_draw_markers - !> @brief Gets the marker style. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_marker_style(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return The marker type. The marker type must be one of the following: - !! - MARKER_ASTERISK - !! - MARKER_EMPTY_CIRCLE - !! - MARKER_EMPTY_NABLA - !! - MARKER_EMPTY_RHOMBUS - !! - MARKER_EMPTY_SQUARE - !! - MARKER_EMPTY_TRIANGLE - !! - MARKER_FILLED_CIRCLE - !! - MARKER_FILLED_NABLA - !! - MARKER_FILLED_RHOMBUS - !! - MARKER_FILLED_SQUARE - !! - MARKER_FILLED_TRIANGLE - !! - MARKER_PLUS - !! - MARKER_X - procedure, public :: get_marker_style => spd_get_marker_style - !> @brief Sets the marker style. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_marker_style(class(scatter_plot_data) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x The marker type. The marker type must be one of the - !! following: - !! - MARKER_ASTERISK - !! - MARKER_EMPTY_CIRCLE - !! - MARKER_EMPTY_NABLA - !! - MARKER_EMPTY_RHOMBUS - !! - MARKER_EMPTY_SQUARE - !! - MARKER_EMPTY_TRIANGLE - !! - MARKER_FILLED_CIRCLE - !! - MARKER_FILLED_NABLA - !! - MARKER_FILLED_RHOMBUS - !! - MARKER_FILLED_SQUARE - !! - MARKER_FILLED_TRIANGLE - !! - MARKER_PLUS - !! - MARKER_X - procedure, public :: set_marker_style => spd_set_marker_style - !> @brief Gets the marker scaling. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_marker_scaling(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return The scaling factor. - procedure, public :: get_marker_scaling => spd_get_marker_scaling - !> @brief Sets the marker scaling. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_marker_scaling(class(scatter_plot_data) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x The scaling factor. - procedure, public :: set_marker_scaling => spd_set_marker_scaling - !> @brief Gets the marker frequency. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_marker_frequency(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return The marker frequency. - procedure, public :: get_marker_frequency => spd_get_marker_frequency - !> @brief Sets the marker frequency. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_marker_frequency(class(scatter_plot_data) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x The marker frequency. - procedure, public :: set_marker_frequency => spd_set_marker_frequency - !> @brief Gets the number of data points. - procedure(spd_get_int_value), deferred, public :: get_count - !> @brief Gets the requested X data point. - procedure(spd_get_value), deferred, public :: get_x - !> @brief Sets the requested X data point. - procedure(spd_set_value), deferred, public :: set_x - !> @brief Gets the requested Y data point. - procedure(spd_get_value), deferred, public :: get_y - !> @brief Sets the requested X data point. - procedure(spd_set_value), deferred, public :: set_y - !> @brief Gets the GNUPLOT command string defining which axes the data - !! is to be plotted against. - procedure(spd_get_string_result), deferred, public :: get_axes_string - !> @brief Gets a value determining if the stored data should be - !! simplified (reduced) before passing to GNUPLOT. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_simplify_data(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return Returns true if the data should be simplified prior to sending - !! to GNUPLOT; else, false to leave the data alone. - procedure, public :: get_simplify_data => spd_get_simplify_data - !> @brief Sets a value determining if the stored data should be - !! simplified (reduced) before passing to GNUPLOT. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_simplify_data(class(scatter_plot_data) this, logical x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x True if the data should be simplified prior to sending - !! to GNUPLOT; else, false to leave the data alone. - procedure, public :: set_simplify_data => spd_set_simplify_data - !> @brief Gets a factor used to establish the simplification tolerance. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) function get_simplification_factor(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return Returns the scaling factor. - procedure, public :: get_simplification_factor => spd_get_simplify_factor - !> @brief Sets a factor used to establish the simplification tolerance. The - !! tolerance is established by multplying this factor by the range of the - !! dependent variable data. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_simplification_factor(class(scatter_plot_data) this, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x The scaling factor. - procedure, public :: set_simplification_factor => spd_set_simplify_factor - !> @brief Gets a value determing if data-dependent colors should be - !! used. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_use_data_dependent_colors(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return Returns true if data-dependent colors should be used; else, - !! false. - procedure, public :: get_use_data_dependent_colors => & - spd_get_data_dependent_colors - !> @brief Sets a value determing if data dependent colors should be - !! used. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_use_data_dependent_colors(class(scatter_plot_data) this, logical x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] x True if data-dependent colors should be used; else, - !! false. - procedure, public :: set_use_data_dependent_colors => & - spd_set_data_dependent_colors - !> @brief Gets a logical value determining if a filled curve should be - !! drawn. - !! - !! @par Syntax - !! @code{.f90} - !! logical function get_fill_curve(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return Returns true if the curve should be filled; else, false. - procedure, public :: get_fill_curve => spd_get_filled - !> @brief Sets a logical value determining if a filled curve should be - !! drawn. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_fill_curve(class(scatter_plot_data) this, logical x) - !! @endcode - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] Set to true if the curve should be filled; else, false. - procedure, public :: set_fill_curve => spd_set_filled - !> @brief Gets a logical value determining if variable sized data points - !! should be used. The default is false, such that points will be of - !! a constant size. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_use_variable_size_points(class(scatter_plot_data) this) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @return True if variable size points should be used; else, false. - procedure, public :: get_use_variable_size_points => spd_get_use_var_point_size - !> @brief Sets a logical value determining if variable sized data points - !! should be used. The default is false, such that points will be of - !! a constant size. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_use_variable_size_points(class(scatter_plot_data) this, logical x) - !! @endcode - !! - !! @param[in] this The scatter_plot_data object. - !! @param[in] x True if variable size points should be used; - !! else, false. - procedure, public :: set_use_variable_size_points => spd_set_use_var_point_size - end type - -! ------------------------------------------------------------------------------ - interface - module function spd_get_cmd(this) result(x) - class(scatter_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - pure module function spd_get_line_width(this) result(x) - class(scatter_plot_data), intent(in) :: this - real(real32) :: x - end function - - module subroutine spd_set_line_width(this, x) - class(scatter_plot_data), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module function spd_get_line_style(this) result(x) - class(scatter_plot_data), intent(in) :: this - integer(int32) :: x - end function - - module subroutine spd_set_line_style(this, x) - class(scatter_plot_data), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - - pure module function spd_get_draw_line(this) result(x) - class(scatter_plot_data), intent(in) :: this - logical :: x - end function - - module subroutine spd_set_draw_line(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function spd_get_draw_markers(this) result(x) - class(scatter_plot_data), intent(in) :: this - logical :: x - end function - - module subroutine spd_set_draw_markers(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function spd_get_marker_style(this) result(x) - class(scatter_plot_data), intent(in) :: this - integer(int32) :: x - end function - - module subroutine spd_set_marker_style(this, x) - class(scatter_plot_data), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - - pure module function spd_get_marker_scaling(this) result(x) - class(scatter_plot_data), intent(in) :: this - real(real32) :: x - end function - - module subroutine spd_set_marker_scaling(this, x) - class(scatter_plot_data), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module function spd_get_marker_frequency(this) result(x) - class(scatter_plot_data), intent(in) :: this - integer(int32) :: x - end function - - module subroutine spd_set_marker_frequency(this, x) - class(scatter_plot_data), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - - pure module function spd_get_simplify_data(this) result(x) - class(scatter_plot_data), intent(in) :: this - logical :: x - end function - - module subroutine spd_set_simplify_data(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function spd_get_simplify_factor(this) result(x) - class(scatter_plot_data), intent(in) :: this - real(real64) :: x - end function - - module subroutine spd_set_simplify_factor(this, x) - class(scatter_plot_data), intent(inout) :: this - real(real64), intent(in) :: x - end subroutine - - pure module function spd_get_data_dependent_colors(this) result(rst) - class(scatter_plot_data), intent(in) :: this - logical :: rst - end function - - module subroutine spd_set_data_dependent_colors(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function spd_get_filled(this) result(rst) - class(scatter_plot_data), intent(in) :: this - logical :: rst - end function - - module subroutine spd_set_filled(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function spd_get_use_var_point_size(this) result(rst) - class(scatter_plot_data), intent(in) :: this - logical :: rst - end function - - module subroutine spd_set_use_var_point_size(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_PLOT_DATA_2D.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a two-dimensional plot data set. - type, extends(scatter_plot_data) :: plot_data_2d - private - !> An N-by-2 matrix containing the x and y data points. - real(real64), allocatable, dimension(:,:) :: m_data - !> Draw against the secondary y axis? - logical :: m_useY2 = .false. - contains - !> @brief Gets the GNUPLOT command string defining which axes the data - !! is to be plotted against. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_axis_string(class(plot_data_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @return The command string. - procedure, public :: get_axes_string => pd2d_get_axes_cmd - !> @brief Gets the GNUPLOT command string containing the actual data - !! to plot. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_data_string(class(plot_data_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @return The command string. - procedure, public :: get_data_string => pd2d_get_data_cmd - !> @brief Gets the number of data points. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) get_count(class(plot_data_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @return The number of data points. - procedure, public :: get_count => pd2d_get_data_count - !> @brief Gets the requested X data point. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) get_x(class(plot_data_2d) this, integer(int32) index) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @param[in] index The index of the data point to retrieve. - !! @return The requested data point. - procedure, public :: get_x => pd2d_get_x_data - !> @brief Sets the requested X data point. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_x(class(plot_data_2d) this, integer(int32) index, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The plot_data_2d object. - !! @param[in] index The index of the data point to replace. - !! @param[in] x The data point. - procedure, public :: set_x => pd2d_set_x_data - !> @brief Gets the requested Y data point. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) get_y(class(plot_data_2d) this, integer(int32) index) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @param[in] index The index of the data point to retrieve. - !! @return The requested data point. - procedure, public :: get_y => pd2d_get_y_data - !> @brief Sets the requested Y data point. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_y(class(plot_data_2d) this, integer(int32) index, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The plot_data_2d object. - !! @param[in] index The index of the data point to replace. - !! @param[in] x The data point. - procedure, public :: set_y => pd2d_set_y_data - !> @brief Gets a value determining if the data should be plotted against - !! the secondary y-axis. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_draw_against_y2(class(plot_data_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @return Returns true if the data should be plotted against the secondary - !! y-axis; else, false to plot against the primary y-axis. - procedure, public :: get_draw_against_y2 => pd2d_get_draw_against_y2 - !> @brief Sets a value determining if the data should be plotted against - !! the secondary y-axis. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_draw_against_y2(class(plot_data_2d) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_data_2d object. - !! @param[in] x Set to true if the data should be plotted against the - !! secondary y-axis; else, false to plot against the primary y-axis. - procedure, public :: set_draw_against_y2 => pd2d_set_draw_against_y2 - !> @brief Defines the data set. - !! - !! @par Overload 1 - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_data(class(plot_data_2d) this, real(real64) x(:), real(real64) y(:), optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot_data_2d object. - !! @param[in] x An N-element array containing the x coordinate data. - !! @param[in] y An N-element array containing the y coordinate data. - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if @p x and @p y are not the - !! same size. - !! - !! @par Overload 2 - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_data(class(plot_data_2d) this, real(real64) y(:), optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot_data_2d object. - !! @param[in] y An N-element array containing the y-coordinate data. This - !! data will be plotted against its own index. - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - !! @par Overload 3 - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_data(class(plot_data_2d) this, real(real64) x(:), real(real64) y(:), optional real(real64) c(:), optional real(real64) ps(:), optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot_data_2d object. - !! @param[in] x An N-element array containing the x coordinate data. - !! @param[in] y An N-element array containing the y coordinate data. - !! @param[in] c An N-element array defining how color should vary with - !! the current colormap for each value. - !! @param[in] ps An N-element array defining the size of each data point. - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if @p x and @p y are not the - !! same size. - generic, public :: define_data => pd2d_set_data_1, pd2d_set_data_2 - procedure :: pd2d_set_data_1 - procedure :: pd2d_set_data_2 - - !> @brief Gets the stored X data array. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_x_data(class(plot_data_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @return A copy of the stored data array. - procedure, public :: get_x_data => pd2d_get_x_array - !> @brief Gets the stored Y data array. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_y_data(class(plot_data_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @return A copy of the stored data array. - procedure, public :: get_y_data => pd2d_get_y_array - !> @brief Gets the stored color scaling data array. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_color_data(class(plot_data_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @return A copy of the stored data array. - procedure, public :: get_color_data => pd2d_get_c_array - !> @brief Gets the stored point size data array. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_point_size_data(class(plot_data_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_2d object. - !! @return A copy of the stored data array. - procedure, public :: get_point_size_data => pd2d_get_ps_array - end type - -! ------------------------------------------------------------------------------ - interface - module function pd2d_get_axes_cmd(this) result(x) - class(plot_data_2d), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function pd2d_get_data_cmd(this) result(x) - class(plot_data_2d), intent(in) :: this - character(len = :), allocatable :: x - end function - - pure module function pd2d_get_data_count(this) result(x) - class(plot_data_2d), intent(in) :: this - integer(int32) :: x - end function - - pure module function pd2d_get_x_data(this, index) result(x) - class(plot_data_2d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - end function - - module subroutine pd2d_set_x_data(this, index, x) - class(plot_data_2d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - end subroutine - - pure module function pd2d_get_y_data(this, index) result(x) - class(plot_data_2d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - end function - - module subroutine pd2d_set_y_data(this, index, x) - class(plot_data_2d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - end subroutine - - module subroutine pd2d_set_data_1(this, x, y, c, ps, err) - class(plot_data_2d), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y - real(real64), intent(in), dimension(:), optional :: c, ps - class(errors), intent(inout), optional, target :: err - end subroutine - - pure module function pd2d_get_draw_against_y2(this) result(x) - class(plot_data_2d), intent(in) :: this - logical :: x - end function - - module subroutine pd2d_set_draw_against_y2(this, x) - class(plot_data_2d), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module subroutine pd2d_set_data_2(this, y, err) - class(plot_data_2d), intent(inout) :: this - real(real64), intent(in), dimension(:) :: y - class(errors), intent(inout), optional, target :: err - end subroutine - - module function pd2d_get_x_array(this) result(x) - class(plot_data_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - end function - - module function pd2d_get_y_array(this) result(x) - class(plot_data_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - end function - - module function pd2d_get_c_array(this) result(x) - class(plot_data_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - end function - - module function pd2d_get_ps_array(this) result(x) - class(plot_data_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - end function - end interface - -! ****************************************************************************** -! FPLOT_PLOT_DATA_3D.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a three-dimensional plot data set. - type, extends(scatter_plot_data) :: plot_data_3d - private - !> An N-by-3 matrix containing the x, y, and z data points. - real(real64), allocatable, dimension(:,:) :: m_data - contains - !> @brief Gets the number of data points. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_count(class(plot_data_3d) this) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @return The number of data points. - procedure, public :: get_count => pd3d_get_data_count - !> @brief Gets the requested X data point. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) function get_x(class(plot_data_3d), this, integer(int32) index) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @param[in] index The index of the data point to retrieve. - !! @return The requested data point. - procedure, public :: get_x => pd3d_get_x_data - !> @brief Sets the requested X data point. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_x(class(plot_data_3d) this, integer(int32) index, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The plot_data_3d object. - !! @param[in] index The index of the data point to replace. - !! @param[in] x The data point. - procedure, public :: set_x => pd3d_set_x_data - !> @brief Gets the requested Y data point. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) function get_y(class(plot_data_3d) this, this, integer(int32) index) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @param[in] index The index of the data point to retrieve. - !! @return The requested data point. - procedure, public :: get_y => pd3d_get_y_data - !> @brief Sets the requested Y data point. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_y(class(plot_data_3d) this, integer(int32) index, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The plot_data_3d object. - !! @param[in] index The index of the data point to replace. - !! @param[in] x The data point. - procedure, public :: set_y => pd3d_set_y_data - !> @brief Gets the requested Z data point. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) function get_z(class(plot_data_3d) this, this, integer(int32) index) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @param[in] index The index of the data point to retrieve. - !! @return The requested data point. - procedure, public :: get_z => pd3d_get_z_data - !> @brief Sets the requested Z data point. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_z(class(plot_data_3d) this, integer(int32) index, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The plot_data_3d object. - !! @param[in] index The index of the data point to replace. - !! @param[in] x The data point. - procedure, public :: set_z => pd3d_set_z_data - !> @brief Gets the GNUPLOT command string defining which axes the data - !! is to be plotted against. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable :: get_axes_string(class(plot_data_3d) this) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @return The command string. - procedure, public :: get_axes_string => pd3d_get_axes_cmd - !> @brief Gets the GNUPLOT command string containing the actual data - !! to plot. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable :: get_data_string(class(plot_data_3d) this) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @return The command string. - procedure, public :: get_data_string => pd3d_get_data_cmd - !> @brief Defines the data set. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_data(class(plot_data_3d) this, real(real64) x(:), real(real64) y(:), real(real64) z(:), optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot_data_2d object. - !! @param[in] x An N-element array containing the x coordinate data. - !! @param[in] y An N-element array containing the y coordinate data. - !! @param[in] z An N-element array containing the z coordinate data. - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if @p x, @p y, and @p z are - !! not the same size. - procedure, public :: define_data => pd3d_set_data_1 - !> @brief Gets the stored X data array. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_x_data(class(plot_data_3d) this) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @return A copy of the stored data array. - procedure, public :: get_x_data => pd3d_get_x_array - !> @brief Gets the stored Y data array. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_y_data(class(plot_data_3d) this) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @return A copy of the stored data array. - procedure, public :: get_y_data => pd3d_get_y_array - !> @brief Gets the stored Z data array. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_z_data(class(plot_data_3d) this) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @return A copy of the stored data array. - procedure, public :: get_z_data => pd3d_get_z_array - !> @brief Gets the stored color scaling data array. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_color_data(class(plot_data_3d) this) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @return A copy of the stored data array. - procedure, public :: get_color_data => pd3d_get_c_array - !> @brief Gets the stored point scaling data array. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_point_size_data(class(plot_data_3d) this) - !! @endcode - !! - !! @param[in] this The plot_data_3d object. - !! @return A copy of the stored data array. - procedure, public :: get_point_size_data => pd3d_get_c_array - end type - -! ------------------------------------------------------------------------------ - interface - pure module function pd3d_get_data_count(this) result(x) - class(plot_data_3d), intent(in) :: this - integer(int32) :: x - end function - - pure module function pd3d_get_x_data(this, index) result(x) - class(plot_data_3d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - end function - - module subroutine pd3d_set_x_data(this, index, x) - class(plot_data_3d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - end subroutine - - pure module function pd3d_get_y_data(this, index) result(x) - class(plot_data_3d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - end function - - module subroutine pd3d_set_y_data(this, index, x) - class(plot_data_3d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - end subroutine - - pure module function pd3d_get_z_data(this, index) result(x) - class(plot_data_3d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - end function - - module subroutine pd3d_set_z_data(this, index, x) - class(plot_data_3d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - end subroutine - - module function pd3d_get_axes_cmd(this) result(x) - class(plot_data_3d), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function pd3d_get_data_cmd(this) result(x) - class(plot_data_3d), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine pd3d_set_data_1(this, x, y, z, c, ps, err) - class(plot_data_3d), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, z - real(real64), intent(in), dimension(:), optional :: c, ps - class(errors), intent(inout), optional, target :: err - end subroutine - - module function pd3d_get_x_array(this) result(x) - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - end function - - module function pd3d_get_y_array(this) result(x) - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - end function - - module function pd3d_get_z_array(this) result(x) - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - end function - - module function pd3d_get_c_array(this) result(x) - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - end function - - module function pd3d_get_ps_array(this) result(x) - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - end function - end interface - -! ****************************************************************************** -! FPLOT_SURFACE_PLOT_DATA.F90 -! ------------------------------------------------------------------------------ - !> @brief Provides a three-dimensional surface plot data set. - type, extends(plot_data) :: surface_plot_data - private - !> Stores the x-coordinate data - real(real64), allocatable, dimension(:,:) :: m_x - !> Stores the y-coordinate data - real(real64), allocatable, dimension(:,:) :: m_y - !> Stores the z-coordinate data - real(real64), allocatable, dimension(:,:) :: m_z - !> Set to true to display a wireframe of the surface; else, just a - !! smooth surface will be drawn - logical :: m_wireframe = .false. - contains - !> @brief Gets the size of the stored data set. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_size(class(surface_plot_data) this, integer(int32) dim) - !! @endcode - !! - !! @param[in] this The suface_plot_data object. - !! @param[in] dim The dimension of interest. Notice, data is stored as a - !! 2D matrix (i.e. only 1 and 2 are valid inputs). - !! @return The size of the requested dimension. - procedure, public :: get_size => surfd_get_size - !> @brief Gets the requested X data point. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) function get_x(class(surface_plot_data) this, integer(int32) i, integer(int32) j) - !! @endcode - !! - !! @param[in] this The surface_plot_data object. - !! @param[in] i The row index. - !! @param[in] j The column index. - !! @return The value. - procedure, public :: get_x => surfd_get_x - !> @brief Sets the requested X data point. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_x(class(surface_plot_data) this, integer(int32) i, integer(int32) j, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The surface_plot_data object. - !! @param[in] i The row index. - !! @param[in] j The column index. - !! @param[in] x The value. - procedure, public :: set_x => surfd_set_x - !> @brief Gets the requested Y data point. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) function get_y(class(surface_plot_data) this, integer(int32) i, integer(int32) j) - !! @endcode - !! - !! @param[in] this The surface_plot_data object. - !! @param[in] i The row index. - !! @param[in] j The column index. - !! @return The value. - procedure, public :: get_y => surfd_get_y - !> @brief Sets the requested Y data point. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_y(class(surface_plot_data) this, integer(int32) i, integer(int32) j, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The surface_plot_data object. - !! @param[in] i The row index. - !! @param[in] j The column index. - !! @param[in] x The value. - procedure, public :: set_y => surfd_set_y - !> @brief Gets the requested Z data point. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real64) function get_z(class(surface_plot_data) this, integer(int32) i, integer(int32) j) - !! @endcode - !! - !! @param[in] this The surface_plot_data object. - !! @param[in] i The row index. - !! @param[in] j The column index. - !! @return The value. - procedure, public :: get_z => surfd_get_z - !> @brief Sets the requested Z data point. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_z(class(surface_plot_data) this, integer(int32) i, integer(int32) j, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The surface_plot_data object. - !! @param[in] i The row index. - !! @param[in] j The column index. - !! @param[in] x The value. - procedure, public :: set_z => surfd_set_z - !> @brief Gets a value determining if a wireframe mesh should be - !! displayed. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_wireframe(class(surface_plot_data) this) - !! @endcode - !! - !! @param[in] this The surface_plot_data object. - !! @return Returns true if a wireframe mesh should be displayed; else, false - !! to display a solid surface. - procedure, public :: get_use_wireframe => surfd_get_wireframe - !> @brief Sets a value determining if a wireframe mesh should be - !! displayed. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_wireframe(class(surface_plot_data) this, logical x) - !! @endcode - !! - !! @param[in,out] this The surface_plot_data object. - !! @param[in] x Set to true if a wireframe mesh should be displayed; else, - !! false to display a solid surface. - procedure, public :: set_use_wireframe => surfd_set_wireframe - !> @brief Gets the GNUPLOT command string to represent this - !! surface_plot_data object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(surface_plot_data) this) - !! @endcode - !! - !! @param[in] this The surface_plot_data object. - !! @return The command string. - procedure, public :: get_command_string => surfd_get_cmd - !> @brief Gets the GNUPLOT command string containing the actual data - !! to plot. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_data_string(class(surface_plot_data) this) - !! @endcode - !! - !! @param[in] this The surface_plot_data object. - !! @return The GNUPLOT command string. - procedure, public :: get_data_string => surfd_get_data_cmd - !> @brief Defines the data set. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_data(class(surface_plot_data) this, real(real64) x(:,:), real(real64) y(:,:), real(real64) z(:,:)) - !! @endcode - !! - !! @param[in,out] this The surface_plot_data object. - !! @param[in] x An M-by-N matrix containing the x-coordinate data. - !! @param[in] y An M-by-N matrix containing the y-coordinate data. - !! @param[in] z An M-by-N matrix containing the z-coordinate data. - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if @p x, @p y, and @p z are - !! not the same size. - procedure, public :: define_data => surfd_set_data_1 - end type - -! ------------------------------------------------------------------------------ - interface - pure module function surfd_get_size(this, dim) result(x) - class(surface_plot_data), intent(in) :: this - integer(int32), intent(in) :: dim - integer(int32) :: x - end function - - pure module function surfd_get_x(this, i, j) result(x) - class(surface_plot_data), intent(in) :: this - integer(int32), intent(in) :: i, j - real(real64) :: x - end function - - module subroutine surfd_set_x(this, i, j, x) - class(surface_plot_data), intent(inout) :: this - integer(int32), intent(in) :: i, j - real(real64), intent(in) :: x - end subroutine - - pure module function surfd_get_y(this, i, j) result(x) - class(surface_plot_data), intent(in) :: this - integer(int32), intent(in) :: i, j - real(real64) :: x - end function - - module subroutine surfd_set_y(this, i, j, x) - class(surface_plot_data), intent(inout) :: this - integer(int32), intent(in) :: i, j - real(real64), intent(in) :: x - end subroutine - - pure module function surfd_get_z(this, i, j) result(x) - class(surface_plot_data), intent(in) :: this - integer(int32), intent(in) :: i, j - real(real64) :: x - end function - - module subroutine surfd_set_z(this, i, j, x) - class(surface_plot_data), intent(inout) :: this - integer(int32), intent(in) :: i, j - real(real64), intent(in) :: x - end subroutine - - pure module function surfd_get_wireframe(this) result(x) - class(surface_plot_data), intent(in) :: this - logical :: x - end function - - module subroutine surfd_set_wireframe(this, x) - class(surface_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module function surfd_get_cmd(this) result(x) - class(surface_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function surfd_get_data_cmd(this) result(x) - class(surface_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine surfd_set_data_1(this, x, y, z, err) - class(surface_plot_data), intent(inout) :: this - real(real64), intent(in), dimension(:,:) :: x, y, z - class(errors), intent(inout), optional, target :: err - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_PLOT_2D.F90 -! ------------------------------------------------------------------------------ - !> @brief A plot object defining a 2D plot. - type, extends(plot) :: plot_2d - private - !> The x-axis. - type(x_axis), pointer :: m_xAxis => null() - !> The y-axis. - type(y_axis), pointer :: m_yAxis => null() - !> The secondary y-axis. - type(y2_axis), pointer :: m_y2Axis => null() - !> Display the secondary y axis? - logical :: m_useY2 = .false. - !> Set to square scaling - logical :: m_set2square = .false. - contains - !> @brief Cleans up resources held by the plot_2d object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine p2d_clean_up(type(plot_2d) this) - !! @endcode - !! - !! @param[in,out] this The plot_2d object. - final :: p2d_clean_up - !> @brief Initializes the plot_2d object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine initialize(class(plot_2d) this, optional integer(int32) term, optional class(errors) err) - !! @endcode - !! - !! @param[in] this The plot_2d object. - !! @param[in] term An optional input that is used to define the terminal. - !! The default terminal is a WXT terminal. The acceptable inputs are: - !! - GNUPLOT_TERMINAL_PNG - !! - GNUPLOT_TERMINAL_QT - !! - GNUPLOT_TERMINAL_WIN32 - !! - GNUPLOT_TERMINAL_WXT - !! - GNUPLOT_TERMINAL_LATEX - !! @param[in] fname A filename to pass to the terminal in the event the - !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - procedure, public :: initialize => p2d_init - !> @brief Gets the GNUPLOT command string to represent this plot_2d - !! object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(plot_2d) this) - !! @endcode - !! - !! @param[in] this The plot_2d object. - !! @return The command string. - procedure, public :: get_command_string => p2d_get_cmd - !> @brief Gets the x-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot_axis) function, pointer get_x_axis(class(plot_2d) this) - !! @endcode - !! - !! @param[in] this The plot_2d object. - !! @return A pointer to the x-axis object. - !! - procedure, public :: get_x_axis => p2d_get_x_axis - !> @brief Gets the y-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot_axis) function, pointer get_y_axis(class(plot_2d) this) - !! @endcode - !! - !! @param[in] this The plot_2d object. - !! @return A pointer to the y-axis object. - procedure, public :: get_y_axis => p2d_get_y_axis - !> @brief Gets the secondary y-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot_axis) function, pointer get_y2_axis(class(plot_2d) this) - !! @endcode - !! - !! @param[in] this The plot_2d object. - !! @return A pointer to the secondary y-axis object. - procedure, public :: get_y2_axis => p2d_get_y2_axis - !> @brief Gets a flag determining if the secondary y-axis should be - !! displayed. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_use_y2_axis(class(plot_2d) this) - !! @endcode - !! - !! @param[in] this The plot_2d object. - !! @return Returns true if the axis should be displayed; else, false. - procedure, public :: get_use_y2_axis => p2d_get_use_y2 - !> @brief Sets a flag determining if the secondary y-axis should be - !! displayed. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_use_y2_axis(class(plot_2d) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_2d object. - !! @param[in] x Set to true if the axis should be displayed; else, false. - procedure, public :: set_use_y2_axis => p2d_set_use_y2 - !> @brief Gets a logical flag determining if the axes size should be - !! squared off. - !! - !! @par Syntax - !! @code{.f90} - !! logical get_square_axes(class(plot_2d) this) - !! @endcode - !! - !! @param[in] this The plot_2d object. - !! @return Returns true if the axes are to be sized to a square; else, - !! false. - procedure, public :: get_square_axes => p2d_get_square_axes - !> @brief Sets a logical flag determining if the axes size should be - !! squared off. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_square_axes(class(plot_2d) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_2d object. - !! @param[in] Set to true if the axes are to be sized to a square; else, - !! false. - procedure, public :: set_square_axes => p2d_set_square_axes - end type - -! ------------------------------------------------------------------------------ - interface - module subroutine p2d_clean_up(this) - type(plot_2d), intent(inout) :: this - end subroutine - - module subroutine p2d_init(this, term, fname, err) - class(plot_2d), intent(inout) :: this - integer(int32), intent(in), optional :: term - character(len = *), intent(in), optional :: fname - class(errors), intent(inout), optional, target :: err - end subroutine - - module function p2d_get_cmd(this) result(x) - class(plot_2d), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function p2d_get_x_axis(this) result(ptr) - class(plot_2d), intent(in) :: this - class(plot_axis), pointer :: ptr - end function - - module function p2d_get_y_axis(this) result(ptr) - class(plot_2d), intent(in) :: this - class(plot_axis), pointer :: ptr - end function - - module function p2d_get_y2_axis(this) result(ptr) - class(plot_2d), intent(in) :: this - class(plot_axis), pointer :: ptr - end function - - pure module function p2d_get_use_y2(this) result(x) - class(plot_2d), intent(in) :: this - logical :: x - end function - - module subroutine p2d_set_use_y2(this, x) - class(plot_2d), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function p2d_get_square_axes(this) result(rst) - class(plot_2d), intent(in) :: this - logical :: rst - end function - - module subroutine p2d_set_square_axes(this, x) - class(plot_2d), intent(inout) :: this - logical, intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_PLOT_3D.F90 -! ------------------------------------------------------------------------------ - !> @brief A plot object defining a 3D plot. - type, extends(plot) :: plot_3d - private - !> The x-axis. - type(x_axis), pointer :: m_xAxis => null() - !> The y-axis. - type(y_axis), pointer :: m_yAxis => null() - !> The z-axis. - type(z_axis), pointer :: m_zAxis => null() - !> The elevation angle. - real(real64) :: m_elevation = 60.0d0 - !> The azimuth. - real(real64) :: m_azimuth = 30.0d0 - !> Z-axis intersect X-Y plane? - logical :: m_zIntersect = .true. - !> Set map projection - logical :: m_setMap = .false. - !> Plot coordinate system. - integer(int32) :: m_csys = COORDINATES_CARTESIAN - contains - !> @brief Cleans up resources held by the plot_3d object. - !! - !! @param[in,out] this The plot_3d object. - final :: p3d_clean_up - !> @brief Initializes the plot_3d object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine initialize(class(plot_3d) this, optional integer(int32) term, optional class(errors) err) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @param[in] term An optional input that is used to define the terminal. - !! The default terminal is a WXT terminal. The acceptable inputs are: - !! - GNUPLOT_TERMINAL_PNG - !! - GNUPLOT_TERMINAL_QT - !! - GNUPLOT_TERMINAL_WIN32 - !! - GNUPLOT_TERMINAL_WXT - !! - GNUPLOT_TERMINAL_LATEX - !! @param[in] fname A filename to pass to the terminal in the event the - !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - procedure, public :: initialize => p3d_init - !> @brief Gets the GNUPLOT command string to represent this plot_3d - !! object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(plot_3d) this) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @return The command string. - procedure, public :: get_command_string => p3d_get_cmd - !> @brief Gets the x-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot_axis) function, pointer get_x_axis(class(plot_3d) this) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @return A pointer to the x-axis object. - procedure, public :: get_x_axis => p3d_get_x_axis - !> @brief Gets the y-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot_axis) function, pointer get_y_axis(class(plot_3d) this) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @return A pointer to the y-axis object. - procedure, public :: get_y_axis => p3d_get_y_axis - !> @brief Gets the z-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot_axis) function, pointer get_z_axis(class(plot_3d) this) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @return A pointer to the z-axis object. - procedure, public :: get_z_axis => p3d_get_z_axis - !> @brief Gets the plot elevation angle. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64) function get_elevation(class(plot_3d) this) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @return The elevation angle, in degrees. - procedure, public :: get_elevation => p3d_get_elevation - !> @brief Sets the plot elevation angle. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_elevation(class(plot_3d) this, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The plot_3d object. - !! @param[in] x The elevation angle, in degrees. - procedure, public :: set_elevation => p3d_set_elevation - !> @brief Gets the plot azimuth angle. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64) function get_azimuth(class(plot_3d) this) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @return The azimuth angle, in degrees. - procedure, public :: get_azimuth => p3d_get_azimuth - !> @brief Sets the plot azimuth angle. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_azimuth(class(plot_3d) this, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The plot_3d object. - !! @param[in] x The azimuth angle, in degrees. - procedure, public :: set_azimuth => p3d_set_azimuth - !> @brief Gets a value determining if the z-axis should intersect the - !! x-y plane. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_z_intersect_xy(class(plot_3d) this) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @return Returns true if the z-axis should intersect the x-y plane; else, - !! false to allow the z-axis to float. - procedure, public :: get_z_intersect_xy => p3d_get_z_axis_intersect - !> @brief Sets a value determining if the z-axis should intersect the - !! x-y plane. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_z_intersect_xy(class(plot_3d) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_3d object. - !! @param[in] x Set to true if the z-axis should intersect the x-y plane; - !! else, false to allow the z-axis to float. - procedure, public :: set_z_intersect_xy => p3d_set_z_axis_intersect - !> @brief Gets a value determining if the view should be set to a 2D - !! map view. If true, the azimuth and elevation terms are ignored. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_use_map_view(class(plot_3d) this) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @return Returns true if the map view will be used; else, false. - procedure, public :: get_use_map_view => p3d_get_use_map_view - !> @brief Sets a value determining if the view should be set to a 2D - !! map view. If true, the azimuth and elevation terms are ignored. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_use_map_view(class(plot_3d) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_3d object. - !! @param[in] x Returns true if the map view will be used; else, false. - procedure, public :: set_use_map_view => p3d_set_use_map_view - !> @brief Gets a value determining the coordinate system. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_coordinate_system(class(plot_3d) this) - !! @endcode - !! - !! @param[in] this The plot_3d object. - !! @return The coordinate system ID, which must be one of the following. - !! - COORDINATES_CARTESIAN - !! - COORDINATES_CYLINDRICAL - !! - COORDINATES_SPHERICAL - procedure, public :: get_coordinate_system => p3d_get_csys - !> @brief Sets a value determining the coordinate system. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_coordinate_system(class(plot_3d) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The plot_3d object. - !! @param[in] x The coordinate system ID, which must be one of the - !! following. - !! - COORDINATES_CARTESIAN - !! - COORDINATES_CYLINDRICAL - !! - COORDINATES_SPHERICAL - procedure, public :: set_coordinate_system => p3d_set_csys - end type - -! ------------------------------------------------------------------------------ - interface - module subroutine p3d_clean_up(this) - type(plot_3d), intent(inout) :: this - end subroutine - - module subroutine p3d_init(this, term, fname, err) - class(plot_3d), intent(inout) :: this - integer(int32), intent(in), optional :: term - character(len = *), intent(in), optional :: fname - class(errors), intent(inout), optional, target :: err - end subroutine - - module function p3d_get_cmd(this) result(x) - class(plot_3d), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function p3d_get_x_axis(this) result(ptr) - class(plot_3d), intent(in) :: this - class(plot_axis), pointer :: ptr - end function - - module function p3d_get_y_axis(this) result(ptr) - class(plot_3d), intent(in) :: this - class(plot_axis), pointer :: ptr - end function - - module function p3d_get_z_axis(this) result(ptr) - class(plot_3d), intent(in) :: this - class(plot_axis), pointer :: ptr - end function - - pure module function p3d_get_elevation(this) result(x) - class(plot_3d), intent(in) :: this - real(real64) :: x - end function - - module subroutine p3d_set_elevation(this, x) - class(plot_3d), intent(inout) :: this - real(real64), intent(in) :: x - end subroutine - - pure module function p3d_get_azimuth(this) result(x) - class(plot_3d), intent(in) :: this - real(real64) :: x - end function - - module subroutine p3d_set_azimuth(this, x) - class(plot_3d), intent(inout) :: this - real(real64), intent(in) :: x - end subroutine - - pure module function p3d_get_z_axis_intersect(this) result(x) - class(plot_3d), intent(in) :: this - logical :: x - end function - - module subroutine p3d_set_z_axis_intersect(this, x) - class(plot_3d), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function p3d_get_use_map_view(this) result(rst) - class(plot_3d), intent(in) :: this - logical :: rst - end function - - module subroutine p3d_set_use_map_view(this, x) - class(plot_3d), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function p3d_get_csys(this) result(rst) - class(plot_3d), intent(in) :: this - integer(int32) :: rst - end function - - module subroutine p3d_set_csys(this, x) - class(plot_3d), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_SURFACE_PLOT.F90 -! ------------------------------------------------------------------------------ - !> @brief A plot object defining a 3D surface plot. - type, extends(plot_3d) :: surface_plot - private - !> Show hidden lines - logical :: m_showHidden = .false. - !> The colormap - ! class(colormap), pointer :: m_colormap - !> Smooth the surface? - logical :: m_smooth = .true. - !> Show a contour plot as well as the surface plot? - logical :: m_contour = .false. - ! !> Show the colorbar? - ! logical :: m_showColorbar = .true. - !> Use lighting? - logical :: m_useLighting = .false. - !> Lighting intensity (0 - 1) - default is 0.5 - real(real32) :: m_lightIntensity = 0.5 - !> Specular highlight intensity (0 - 1) - real(real32) :: m_specular = 0.5 - !> Defines the translucency value. Must exist on (0, 1]. - real(real32) :: m_transparency = 1.0 - contains - !> @brief Cleans up resources held by the surface_plot object. - !! - !! @param[in,out] this The surface_plot object. - ! final :: surf_clean_up - !> @brief Initializes the surface_plot object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine initialize(class(surface_plot) this, optional integer(int32) term, optional class(errors) err) - !! @endcode - !! - !! @param[in] this The surface_plot object. - !! @param[in] term An optional input that is used to define the terminal. - !! The default terminal is a WXT terminal. The acceptable inputs are: - !! - GNUPLOT_TERMINAL_PNG - !! - GNUPLOT_TERMINAL_QT - !! - GNUPLOT_TERMINAL_WIN32 - !! - GNUPLOT_TERMINAL_WXT - !! - GNUPLOT_TERMINAL_LATEX - !! @param[in] fname A filename to pass to the terminal in the event the - !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - procedure, public :: initialize => surf_init - !> @brief Gets a value indicating if hidden lines should be shown. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_show_hidden(class(surface_plot) this) - !! @endcode - !! - !! @param[in] this The surface_plot object. - !! @return Returns true if hidden lines should be shown; else, false. - procedure, public :: get_show_hidden => surf_get_show_hidden - !> @brief Sets a value indicating if hidden lines should be shown. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_show_hidden(class(surface_plot) this, logical x) - !! @endcode - !! - !! @param[in,out] this The surface_plot object. - !! @param[in] x Set to true if hidden lines should be shown; else, false. - procedure, public :: set_show_hidden => surf_set_show_hidden - !> @brief Gets the GNUPLOT command string to represent this plot_3d - !! object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(surface_plot) this) - !! @endcode - !! - !! @param[in] this The surface_plot object. - !! @return The command string. - procedure, public :: get_command_string => surf_get_cmd - !> @brief Gets a value determining if the plotted surfaces should be - !! smoothed. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_allow_smoothing(class(surface_plot) this) - !! @endcode - !! - !! @param[in] this The surface_plot object. - !! @return Returns true if the surface should be smoothed; else, false. - procedure, public :: get_allow_smoothing => surf_get_smooth - !> @brief Sets a value determining if the plotted surfaces should be - !! smoothed. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_allow_smoothing(class(surface_plot) this, logical x) - !! @endcode - !! - !! @param[in,out] this The surface_plot object. - !! @param[in] x Set to true if the surface should be smoothed; else, false. - procedure, public :: set_allow_smoothing => surf_set_smooth - !> @brief Gets a value determining if a contour plot should be drawn in - !! conjunction with the surface plot. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_show_contours(class(surface_plot) this) - !! @endcode - !! - !! @param[in] this The surface_plot object. - !! @return Returns true if the contour plot should be drawn; else, false to - !! only draw the surface. - procedure, public :: get_show_contours => surf_get_show_contours - !> @brief Sets a value determining if a contour plot should be drawn in - !! conjunction with the surface plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_show_contours(class(surface_plot) this, logical x) - !! @endcode - !! - !! @param[in,out] this The surface_plot object. - !! @param[in] x Set to true if the contour plot should be drawn; else, false - !! to only draw the surface. - procedure, public :: set_show_contours => surf_set_show_contours - !> @brief Gets a value indicating if lighting, beyond the ambient - !! light source, is to be used. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_use_lighting(class(surface_plot) this) - !! @endcode - !! - !! @param[in] this The surface_plot object. - !! @return True if lighting should be used; else, false. - procedure, public :: get_use_lighting => surf_get_use_lighting - !> @brief Sets a value indicating if lighting, beyond the ambient - !! light source, is to be used. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_use_lighting(class(surface_plot) this, logical x) - !! @endcode - !! - !! @param[in,out] this The surface_plot object. - !! @param[in] x True if lighting should be used; else, false. - procedure, public :: set_use_lighting => surf_set_use_lighting - !> @brief Gets the ratio of the strength of the light source relative - !! to the ambient light. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_light_intensity(class(surface_plot) this) - !! @endcode - !! - !! @param[in] this The surface_plot object. - !! @return The light intensity ratio. - procedure, public :: get_light_intensity => surf_get_light_intensity - !> @brief Sets the ratio of the strength of the light source relative - !! to the ambient light. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_light_intensity(class(surface_plot) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The surface_plot object. - !! @param[in] x The light intensity ratio. The value must exist in the - !! set [0, 1]; else, it will be clipped to lie within the range. - procedure, public :: set_light_intensity => surf_set_light_intensity - !> @brief Gets the ratio of the strength of the specular light source - !! relative to the ambient light. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_specular_intensity(class(surface_plot) this) - !! @endcode - !! - !! @param[in] this The surface_plot object. - !! @return The specular light intensity ratio. - procedure, public :: get_specular_intensity => surf_get_specular_intensity - !> @brief Sets the ratio of the strength of the specular light source - !! relative to the ambient light. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_specular_intensity(class(surface_plot) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The surface_plot object. - !! @param[in] x The specular light intensity ratio. The value must - !! exist in the set [0, 1]; else, it will be clipped to lie within the - !! range. - procedure, public :: set_specular_intensity => surf_set_specular_intensity - !> @brief Gets a factor defining the transparency of plotted surfaces. - !! - !! @par Syntax - !! @code{.f90} - !! pure real(real32) function get_transparency(class(surface_plot) this) - !! @endcode - !! - !! @param[in] this The surface_plot object. - !! @return A value existing on the set (0 1] defining the level of - !! transparency. A value of 1 indicates a fully opaque surface. - procedure, public :: get_transparency => surf_get_transparency - !> @brief Sets a factor defining the transparency of plotted surfaces. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_transparency(class(surface_plot) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The surface_plot object. - !! @param[in] x A value existing on the set (0 1] defining the level of - !! transparency. A value of 1 indicates a fully opaque surface. - !! Any values supplied outside of the set are clipped to fit within - !! (0 1]. - procedure, public :: set_transparency => surf_set_transparency - end type - -! ------------------------------------------------------------------------------ - interface - ! module subroutine surf_clean_up(this) - ! type(surface_plot), intent(inout) :: this - ! end subroutine - - module subroutine surf_init(this, term, fname, err) - class(surface_plot), intent(inout) :: this - integer(int32), intent(in), optional :: term - character(len = *), intent(in), optional :: fname - class(errors), intent(inout), optional, target :: err - end subroutine - - pure module function surf_get_show_hidden(this) result(x) - class(surface_plot), intent(in) :: this - logical :: x - end function - - module subroutine surf_set_show_hidden(this, x) - class(surface_plot), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module function surf_get_cmd(this) result(x) - class(surface_plot), intent(in) :: this - character(len = :), allocatable :: x - end function - - ! module function surf_get_colormap(this) result(x) - ! class(surface_plot), intent(in) :: this - ! class(colormap), pointer :: x - ! end function - - ! module subroutine surf_set_colormap(this, x, err) - ! class(surface_plot), intent(inout) :: this - ! class(colormap), intent(in) :: x - ! class(errors), intent(inout), optional, target :: err - ! end subroutine - - pure module function surf_get_smooth(this) result(x) - class(surface_plot), intent(in) :: this - logical :: x - end function - - module subroutine surf_set_smooth(this, x) - class(surface_plot), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function surf_get_show_contours(this) result(x) - class(surface_plot), intent(in) :: this - logical :: x - end function - - module subroutine surf_set_show_contours(this, x) - class(surface_plot), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - ! pure module function surf_get_show_colorbar(this) result(x) - ! class(surface_plot), intent(in) :: this - ! logical :: x - ! end function - - ! module subroutine surf_set_show_colorbar(this, x) - ! class(surface_plot), intent(inout) :: this - ! logical, intent(in) :: x - ! end subroutine - - pure module function surf_get_use_lighting(this) result(x) - class(surface_plot), intent(in) :: this - logical :: x - end function - - module subroutine surf_set_use_lighting(this, x) - class(surface_plot), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function surf_get_light_intensity(this) result(x) - class(surface_plot), intent(in) :: this - real(real32) :: x - end function - - module subroutine surf_set_light_intensity(this, x) - class(surface_plot), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module function surf_get_specular_intensity(this) result(x) - class(surface_plot), intent(in) :: this - real(real32) :: x - end function - - module subroutine surf_set_specular_intensity(this, x) - class(surface_plot), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module function surf_get_transparency(this) result(x) - class(surface_plot), intent(in) :: this - real(real32) :: x - end function - - module subroutine surf_set_transparency(this, x) - class(surface_plot), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_AXIS.F90 -! ------------------------------------------------------------------------------ - !> @brief An x-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_id_string(class(x_axis) this) - !! @endcode - !! - !! @param[in] this The x_axis object. - !! @return The string. - type, extends(plot_axis) :: x_axis - !> The ID character - character :: m_id = "x" - contains - !> @brief Gets the axis identification string. - procedure, public :: get_id_string => xa_get_id - end type - -! ------------------------------------------------------------------------------ - !> @brief A y-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_id_string(class(y_axis) this) - !! @endcode - !! - !! @param[in] this The y_axis object. - !! @return The string. - type, extends(plot_axis) :: y_axis - !> The ID character - character :: m_id = "y" - contains - !> @brief Gets the axis identification string. - procedure, public :: get_id_string => ya_get_id - end type - -! ------------------------------------------------------------------------------ - !> @brief A secondary y-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_id_string(class(y2_axis) this) - !! @endcode - !! - !! @param[in] this The y2_axis object. - !! @return The string. - type, extends(plot_axis) :: y2_axis - !> The ID character - character(len = 2) :: m_id = "y2" - contains - !> @brief Gets the axis identification string. - procedure, public :: get_id_string => y2a_get_id - end type - -! ------------------------------------------------------------------------------ - !> @brief A z-axis object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_id_string(class(z_axis) this) - !! @endcode - !! - !! @param[in] this The z_axis object. - !! @return The string. - type, extends(plot_axis) :: z_axis - !> The ID character - character :: m_id = "z" - contains - !> @brief Gets the axis identification string. - procedure, public :: get_id_string => za_get_id - end type - -! ------------------------------------------------------------------------------ - interface - module function xa_get_id(this) result(x) - class(x_axis), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function ya_get_id(this) result(x) - class(y_axis), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function y2a_get_id(this) result(x) - class(y2_axis), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function za_get_id(this) result(x) - class(z_axis), intent(in) :: this - character(len = :), allocatable :: x - end function - end interface - -! ****************************************************************************** -! ABSTRACT METHOD INTERFACES -! ------------------------------------------------------------------------------ - interface - !> @brief Retrieves a string from a plot_object. - !! - !! @param[in] this The plot_object object. - !! @return The string. - function get_string_result(this) result(x) - import plot_object - class(plot_object), intent(in) :: this - character(len = :), allocatable :: x - end function - - !> @brief Retrieves a string from a terminal. - !! - !! @param[in] this The terminal object. - !! @return The string. - function term_get_string_result(this) result(x) - import terminal - class(terminal), intent(in) :: this - character(len = :), allocatable :: x - end function - - !> @brief Retrieves a string from a plot_data object. - !! - !! @param[in] this The plot_data object. - !! @return The string. - function pd_get_string_result(this) result(x) - import plot_data - class(plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - !> @brief Retrieves a string from a plot_axis. - !! - !! @param[in] this The plot_axis object. - !! @return The string. - function pa_get_string_result(this) result(x) - import plot_axis - class(plot_axis), intent(in) :: this - character(len = :), allocatable :: x - end function - - !> @brief Retrieves a numeric value from a scatter_plot_data object. - !! - !! @param[in] this The scatter_plot_data object. - !! @param[in] index The index of the value to retrieve. - !! @return The requested value. - pure function spd_get_value(this, index) result(x) - use, intrinsic :: iso_fortran_env, only : int32, real64 - import scatter_plot_data - class(scatter_plot_data), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - end function - - !> @brief Sets a numeric value into a scatter_plot_data object. - !! - !! @param[in,out] this The scatter_plot_data object. - !! @param[in] index The index of the value to retrieve. - !! @param[in] x The value. - subroutine spd_set_value(this, index, x) - use, intrinsic :: iso_fortran_env, only : int32, real64 - import scatter_plot_data - class(scatter_plot_data), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - end subroutine - - !> @brief Retrieves an integer value from a scatter_plot_data object. - !! - !! @param[in] this The scatter_plot_data object. - !! @return The requested value. - pure function spd_get_int_value(this) result(x) - use, intrinsic :: iso_fortran_env, only : int32 - import scatter_plot_data - class(scatter_plot_data), intent(in) :: this - integer(int32) :: x - end function - - !> @brief Retrieves a string from a scatter_plot_data object. - !! - !! @param[in] this The scatter_plot_data object. - !! @return The string. - function spd_get_string_result(this) result(x) - import scatter_plot_data - class(scatter_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - !> @brief Retrieves a string from a colormap. - !! - !! @param[in] this The colormap object. - !! @return The string. - function cm_get_string_result(this) result(x) - import colormap - class(colormap), intent(in) :: this - character(len = :), allocatable :: x - end function - end interface - -! ****************************************************************************** -! FPLOT_MULTIPLOT.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a multi-plot layout. - type, extends(plot_object) :: multiplot - !> The collection of plot objects. - type(list) :: m_plots - !> The number of rows of plots. - integer(int32) :: m_rows = 0 - !> The number of columns of plots. - integer(int32) :: m_cols = 0 - !> The page title. - character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_title - !> Has a title? - logical :: m_hasTitle = .false. - !> The BNUPLOT terminal object to target. - class(terminal), pointer :: m_terminal => null() - contains - final :: mp_clean - procedure, public :: get_command_string => mp_get_command - !> @brief Initializes the multiplot object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine initialize(class(multiplot) this, optional class(terminal) term, optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The multiplot object. - !! @param[in] term An optional input that is used to define the terminal. - !! The default terminal is a WXT terminal. The acceptable inputs are: - !! - GNUPLOT_TERMINAL_PNG - !! - GNUPLOT_TERMINAL_QT - !! - GNUPLOT_TERMINAL_WIN32 - !! - GNUPLOT_TERMINAL_WXT - !! - GNUPLOT_TERMINAL_LATEX - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - procedure, public :: initialize => mp_init - !> @brief Gets the number of rows of plots. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_row_count(class(multiplot) this) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @return The number of rows. - procedure, public :: get_row_count => mp_get_rows - !> @brief Gets the number of columns of plots. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_column_count(class(multiplot) this) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @return The number of columns. - procedure, public :: get_column_count => mp_get_cols - !> @brief Gets the number of plots. - !! - !! @par Syntax - !! @code{.f90} - !! pure integer(int32) function get_plot_count(class(multiplot) this) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @return The number of plots. - procedure, public :: get_plot_count => mp_get_count - !> @brief Gets the multiplot's title. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_title(class(multiplot)) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @return The multiplot's title. - procedure, public :: get_title => mp_get_title - !> @brief Sets the multiplot's title. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_title(class(multiplot) this, character(len = *) txt) - !! @endcode - !! - !! @param[in,out] this The multiplot object. - !! @param[in] txt The multiplot's title. The number of characters must be less - !! than or equal to PLOTDATA_MAX_NAME_LENGTH; else, the text string is - !! truncated. - procedure, public :: set_title => mp_set_title - !> @brief Launches GNUPLOT and draws the multiplot per the current state of - !! the command list. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine draw(class(multiplot) this, optional logical persist, optional class(errors) err) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @param[in] persist An optional parameter that can be used to keep GNUPLOT - !! open. Set to true to force GNUPLOT to remain open; else, set to false - !! to allow GNUPLOT to close after drawing. The default is true. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_GNUPLOT_FILE_ERROR: Occurs if the command file cannot be written. - procedure, public :: draw => mp_draw - !> @brief Gets the requested plot object. - !! - !! @par Syntax - !! @code{.f90} - !! class(plot) pointer function get(class(multiplot) this, integer(int32) i, integer(int32) j) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @param[in] i The row index of the plot to retrieve. - !! @param[in] j The column index of the plot to retrieve. - !! @return A pointer to the requested plot object. - procedure, public :: get => mp_get - !> @brief Sets the requested plot object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set(class(multiplot) this, integer(int32) i, integer(int32) j, class(plot) pointer x) - !! @endcode - !! - !! @param[in,out] this The multiplot object. - !! @param[in] i The row index of the plot to retrieve. - !! @param[in] j The column index of the plot to retrieve. - !! @param[in] x A pointer to the requested plot object. - procedure, public :: set => mp_set - !> @brief Gets a value determining if a title has been defined for the - !! multiplot object. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function is_title_defined(class(multiplot) this) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @return Returns true if a title has been defined for this multiplot; else, - !! returns false. - procedure, public :: is_title_defined => mp_has_title - !> @brief Gets the GNUPLOT terminal object. - !! - !! @par Syntax - !! @code{.f90} - !! class(terminal) function, pointer get_terminal(class(multiplot) this) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @return A pointer to the GNUPLOT terminal object. - procedure, public :: get_terminal => mp_get_term - !> @brief Saves a GNUPLOT command file. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine save_file(class(multiplot) this, character(len = *) fname, optional class(errors) err) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @param[in] fname The filename. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_GNUPLOT_FILE_ERROR: Occurs if the command file cannot be written. - procedure, public :: save_file => mp_save - !> @brief Gets the name of the font used for plot text. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_font_name(class(multiplot) this) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @return The font name. - procedure, public :: get_font_name => mp_get_font - !> @brief Sets the name of the font used for plot text. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_font_name(class(multiplot) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The multiplot object. - !! @param[in] x The font name. - procedure, public :: set_font_name => mp_set_font - !> @brief Gets the size of the font used by the plot. - !! - !! @par Syntax - !! @code{.f90} - !! integer(int32) function get_font_size(class(multiplot) this) - !! @endcode - !! - !! @param[in] this The multiplot object. - !! @return The size of the font, in points. - procedure, public :: get_font_size => mp_get_font_size - !> @brief Sets the size of the font used by the plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_font_size(class(multiplot) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The multiplot object. - !! @param[in] x The font size, in points. If a value of zero is provided, - !! the font size is reset to its default value; or, if a negative value - !! is provided, the absolute value of the supplied value is utilized. - procedure, public :: set_font_size => mp_set_font_size - end type - -! ------------------------------------------------------------------------------ - interface - module function mp_get_command(this) result(x) - class(multiplot), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine mp_init(this, m, n, term, err) - class(multiplot), intent(inout) :: this - integer(int32), intent(in) :: m, n - integer(int32), intent(in), optional :: term - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine mp_clean(this) - type(multiplot), intent(inout) :: this - end subroutine - - pure module function mp_get_rows(this) result(x) - class(multiplot), intent(in) :: this - integer(int32) :: x - end function - - pure module function mp_get_cols(this) result(x) - class(multiplot), intent(in) :: this - integer(int32) :: x - end function - - pure module function mp_get_count(this) result(x) - class(multiplot), intent(in) :: this - integer(int32) :: x - end function - - module function mp_get_title(this) result(x) - class(multiplot), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine mp_set_title(this, x) - class(multiplot), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - - module subroutine mp_draw(this, persist, err) - class(multiplot), intent(in) :: this - logical, intent(in), optional :: persist - class(errors), intent(inout), optional, target :: err - end subroutine - - module function mp_get(this, i, j) result(x) - class(multiplot), intent(in) :: this - integer(int32), intent(in) :: i, j - class(plot), pointer :: x - end function - - module subroutine mp_set(this, i, j, x) - class(multiplot), intent(inout) :: this - integer(int32), intent(in) :: i, j - class(plot), intent(in) :: x - end subroutine - - pure module function mp_has_title(this) result(x) - class(multiplot), intent(in) :: this - logical :: x - end function - - module function mp_get_term(this) result(x) - class(multiplot), intent(in) :: this - class(terminal), pointer :: x - end function - - module subroutine mp_save(this, fname, err) - class(multiplot), intent(in) :: this - character(len = *), intent(in) :: fname - class(errors), intent(inout), optional, target :: err - end subroutine - - module function mp_get_font(this) result(x) - class(multiplot), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine mp_set_font(this, x) - class(multiplot), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - - module function mp_get_font_size(this) result(x) - class(multiplot), intent(in) :: this - integer(int32) :: x - end function - - module subroutine mp_set_font_size(this, x) - class(multiplot), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_PLOT_DATA_ERRORS.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a 2D error bar based data set. - type, extends(plot_data_colored) :: plot_data_error_bars - !> Display x error bars? - logical :: m_xBars = .false. - !> Display y error bars? - logical :: m_yBars = .false. - !> A matrix containing the raw and error data. Column 1 is for the - !! x coordinate, column 2 for the y coordinate, and the remaining - !! columns are for the error data (x, then y if applicable) - real(real64), allocatable, dimension(:,:) :: m_data - !> Display an error box for the case where x and y errors are defined. - logical :: m_box = .false. - !> Plot error bars using a defined range vs. a +/- value. - logical :: m_range = .false. - contains - procedure, public :: get_command_string => pde_get_cmd - procedure, public :: get_data_string => pde_get_data_cmd - !> @brief Defines the x error data. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_x_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xerr(:), optional class(errors) err) - !! @endcode - !! @par Alternative Syntax - !! @code{.f90} - !! subroutine define_x_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xmin(:), real(real64) xmax(:), optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot_data_error_bars object. - !! @param[in] x An N-element array containing the x coordinates of the - !! data. - !! @param[in] y An N-element array containing the y coordinates of the - !! data. - !! @param[in] xerr An N-element array containing the x errors at each - !! data point. - !! @param[in] xmin = An N-element array containing the minimum x values - !! at each data point. - !! @param[in] xmax = An N-element array containing the maximum x values - !! at each data point. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not - !! the same size. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory - !! available. - generic, public :: define_x_error_data => pde_define_x_err, & - pde_define_x_err_lim - !> @brief Defines the y error data. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_y_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) yerr(:), optional class(errors) err) - !! @endcode - !! @par Alternative Syntax - !! @code{.f90} - !! subroutine define_y_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) ymin(:), real(real64) ymax(:), optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot_data_error_bars object. - !! @param[in] x An N-element array containing the x coordinates of the - !! data. - !! @param[in] y An N-element array containing the y coordinates of the - !! data. - !! @param[in] yerr An N-element array containing the y errors at each - !! data point. - !! @param[in] ymin = An N-element array containing the minimum y values - !! at each data point. - !! @param[in] ymax = An N-element array containing the maximum y values - !! at each data point. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not - !! the same size. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory - !! available. - generic, public :: define_y_error_data => pde_define_y_err, & - pde_define_y_err_lim - !> @brief Defines the x and y error data. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_xy_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xerr(:), real(real64) yerr(:), optional class(errors) err) - !! @endcode - !! @par Alternative Syntax - !! @code{.f90} - !! subroutine define_xy_error_data(class(plot_data_error_bars) this, real(real64) x(:), real(real64) y(:), real(real64) xmin(:), real(real64) xmax(:), real(real64) ymin(:), real(real64) ymax(:), optional class(errors) err) - !! @endcode - !! - !! @param[in,out] this The plot_data_error_bars object. - !! @param[in] x An N-element array containing the x coordinates of the - !! data. - !! @param[in] y An N-element array containing the y coordinates of the - !! data. - !! @param[in] xerr An N-element array containing the x errors at each - !! data point. - !! @param[in] yerr An N-element array containing the y errors at each - !! data point. - !! @param[in] xmin = An N-element array containing the minimum x values - !! at each data point. - !! @param[in] xmax = An N-element array containing the maximum x values - !! at each data point. - !! @param[in] ymin = An N-element array containing the minimum y values - !! at each data point. - !! @param[in] ymax = An N-element array containing the maximum y values - !! at each data point. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not - !! the same size. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory - !! available. - generic, public :: define_xy_error_data => pde_define_xy_err, & - pde_define_xy_err_lim - !> @brief Tests to see if the x error bar data has been defined, and as - !! a result, if the x error data is to be plotted. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_plot_x_error_bars(class(plot_data_error_bars) this) - !! @endcode - !! - !! @param[in] this The plot_data_error_bars object. - !! @return Returns true if the x error bars are to be plotted; else, - !! false. - procedure, public :: get_plot_x_error_bars => pde_get_plot_x_err - !> @brief Tests to see if the y error bar data has been defined, and as - !! a result, if the y error data is to be plotted. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_plot_y_error_bars(class(plot_data_error_bars) this) - !! @endcode - !! - !! @param[in] this The plot_data_error_bars object. - !! @return Returns true if the y error bars are to be plotted; else, - !! false. - procedure, public :: get_plot_y_error_bars => pde_get_plot_y_err - !> @brief Gets the number of stored data points. - !! - !! @param[in] this The plot_data_error_bars object. - !! @return The number of data points. - procedure, public :: get_count => pde_get_count - !> @brief Tests to see if the x and y error boxes should be utilized. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_use_error_box(class(plot_data_error_bars) this) - !! @endcode - !! - !! @param[in] this The plot_data_error_bars object. - !! @return Returns true if the error boxes are to be plotted; else, - !! false. - !! - !! @par Remarks - !! Notice, the error boxes are only utilized if there is both x and y - !! error data defined, regardless of the value of this property. - procedure, public :: get_use_error_box => pde_get_box - !> @brief Deterimines if the x and y error boxes should be utilized. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_use_error_box(class(plot_data_error_bars) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_data_error_bars object. - !! @param[in] x Set to true if the error boxes are to be plotted; else, - !! false. - !! - !! @par Remarks - !! Notice, the error boxes are only utilized if there is both x and y - !! error data defined, regardless of the value of this property. - procedure, public :: set_use_error_box => pde_set_box - !> @brief Gets a value determining if a defined range is being used - !! to define the error bar extremes. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_use_range(class(plot_data_error_bars) this) - !! @endcode - !! - !! @param[in] this The plot_data_error_bars object. - !! @return True if a defined range is being used; else, false. - procedure, public :: get_use_range => pde_get_use_range - - procedure :: pde_define_x_err - procedure :: pde_define_y_err - procedure :: pde_define_xy_err - procedure :: pde_define_x_err_lim - procedure :: pde_define_y_err_lim - procedure :: pde_define_xy_err_lim - end type - -! ------------------------------------------------------------------------------ - interface - module function pde_get_cmd(this) result(cmd) - class(plot_data_error_bars), intent(in) :: this - character(len = :), allocatable :: cmd - end function - - module function pde_get_data_cmd(this) result(cmd) - class(plot_data_error_bars), intent(in) :: this - character(len = :), allocatable :: cmd - end function - - module subroutine pde_define_x_err(this, x, y, xerr, err) - class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, xerr - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pde_define_y_err(this, x, y, yerr, err) - class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, yerr - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pde_define_xy_err(this, x, y, xerr, yerr, err) - class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, xerr, yerr - class(errors), intent(inout), optional, target :: err - end subroutine - - pure module function pde_get_plot_x_err(this) result(x) - class(plot_data_error_bars), intent(in) :: this - logical :: x - end function - - pure module function pde_get_plot_y_err(this) result(x) - class(plot_data_error_bars), intent(in) :: this - logical :: x - end function - - pure module function pde_get_count(this) result(x) - class(plot_data_error_bars), intent(in) :: this - integer(int32) :: x - end function - - pure module function pde_get_box(this) result(x) - class(plot_data_error_bars), intent(in) :: this - logical :: x - end function - - module subroutine pde_set_box(this, x) - class(plot_data_error_bars), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function pde_get_use_range(this) result(x) - class(plot_data_error_bars), intent(in) :: this - logical :: x - end function - - module subroutine pde_define_x_err_lim(this, x, y, xmin, xmax, err) - class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, xmin, xmax - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pde_define_y_err_lim(this, x, y, ymin, ymax, err) - class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, ymin, ymax - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pde_define_xy_err_lim(this, x, y, xmin, xmax, ymin, & - ymax, err) - class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, xmin, xmax, & - ymin, ymax - class(errors), intent(inout), optional, target :: err - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_PLOT_DATA_BAR.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a data set tailored to bar charts. - type, extends(plot_data_colored) :: plot_data_bar - private - !> @brief An array containing axis labels to associate with each bar. - type(string), allocatable, dimension(:) :: m_axisLabels - !> @brief An array of data defining each bar - the matrix contains - !! multiple columns to allow multiple bars per label. - real(real64), allocatable, dimension(:,:) :: m_barData - !> @brief Determines if the axis labels should be used - only applicable - !! if there is existing data stored in m_axisLabels & m_axisLabels - !! is the same size as m_barData. - logical :: m_useAxisLabels = .true. - !> Draw against the secondary y axis? - logical :: m_useY2 = .false. - !> @brief Determines if each bar is filled. - logical :: m_filled = .true. - !> @brief The alpha value (transparency) for each bar - real(real32) :: m_alpha = 1.0 - contains - procedure, public :: get_count => pdb_get_count - procedure, public :: get => pdb_get_data - procedure, public :: set => pdb_set_data - procedure, public :: get_data => pdb_get_data_set - procedure, public :: get_label => pdb_get_label - procedure, public :: set_label => pdb_set_label - procedure, public :: get_use_labels => pdb_get_use_labels - procedure, public :: set_use_labels => pdb_set_use_labels - procedure, public :: get_command_string => pdb_get_cmd - procedure, public :: get_data_string => pdb_get_data_cmd - procedure, public :: get_axes_string => pdb_get_axes_cmd - procedure, public :: get_bar_per_label_count => pdb_get_col_count - procedure, public :: get_draw_against_y2 => pdb_get_use_y2 - procedure, public :: set_draw_against_y2 => pdb_set_use_y2 - procedure, public :: get_is_filled => pdb_get_is_filled - procedure, public :: set_is_filled => pdb_set_is_filled - procedure, public :: get_transparency => pdb_get_alpha - procedure, public :: set_transparency => pdb_set_alpha - generic, public :: define_data => pdb_set_data_1, pdb_set_data_2, & - pdb_set_data_3 - procedure :: pdb_set_data_1 - procedure :: pdb_set_data_2 - procedure :: pdb_set_data_3 - procedure :: set_data_1 => pdb_set_data_1_core - procedure :: set_data_2 => pdb_set_data_2_core - procedure :: set_data_3 => pdb_set_data_3_core - end type - -! ------------------------------------------------------------------------------ - interface - pure module function pdb_get_count(this) result(x) - class(plot_data_bar), intent(in) :: this - integer(int32) :: x - end function - - pure module function pdb_get_data(this, index, col) result(x) - class(plot_data_bar), intent(in) :: this - integer(int32), intent(in) :: index, col - real(real64) :: x - end function - - module subroutine pdb_set_data(this, index, col, x) - class(plot_data_bar), intent(inout) :: this - integer(int32), intent(in) :: index, col - real(real64), intent(in) :: x - end subroutine - - pure module function pdb_get_data_set(this, col) result(x) - class(plot_data_bar), intent(in) :: this - integer(int32), intent(in) :: col - real(real64), allocatable, dimension(:) :: x - end function - - pure module function pdb_get_label(this, index) result(x) - class(plot_data_bar), intent(in) :: this - integer(int32), intent(in) :: index - character(len = :), allocatable :: x - end function - - module subroutine pdb_set_label(this, index, txt) - class(plot_data_bar), intent(inout) :: this - integer(int32) :: index - character(len = *), intent(in) :: txt - end subroutine - - pure module function pdb_get_use_labels(this) result(x) - class(plot_data_bar), intent(in) :: this - logical :: x - end function - - module subroutine pdb_set_use_labels(this, x) - class(plot_data_bar), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module function pdb_get_cmd(this) result(x) - class(plot_data_bar), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function pdb_get_data_cmd(this) result(x) - class(plot_data_bar), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function pdb_get_axes_cmd(this) result(x) - class(plot_data_bar), intent(in) :: this - character(len = :), allocatable :: x - end function - - pure module function pdb_get_col_count(this) result(x) - class(plot_data_bar), intent(in) :: this - integer(int32) :: x - end function - - pure module function pdb_get_use_y2(this) result(x) - class(plot_data_bar), intent(in) :: this - logical :: x - end function - - module subroutine pdb_set_use_y2(this, x) - class(plot_data_bar), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function pdb_get_is_filled(this) result(x) - class(plot_data_bar), intent(in) :: this - logical :: x - end function - - module subroutine pdb_set_is_filled(this, x) - class(plot_data_bar), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module subroutine pdb_set_data_1(this, x, err) - class(plot_data_bar), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pdb_set_data_2(this, labels, x, err) - class(plot_data_bar), intent(inout) :: this - class(string), intent(in), dimension(:) :: labels - real(real64), intent(in), dimension(:) :: x - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pdb_set_data_3(this, labels, x, fmt, err) - class(plot_data_bar), intent(inout) :: this - real(real64), intent(in), dimension(:) :: labels - real(real64), intent(in), dimension(:) :: x - character(len = *), intent(in), optional :: fmt - class(errors), intent(inout), optional, target :: err - end subroutine - - pure module function pdb_get_alpha(this) result(x) - class(plot_data_bar), intent(in) :: this - real(real32) :: x - end function - - module subroutine pdb_set_alpha(this, x) - class(plot_data_bar), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - module subroutine pdb_set_data_1_core(this, x, err) - class(plot_data_bar), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pdb_set_data_2_core(this, labels, x, err) - class(plot_data_bar), intent(inout) :: this - class(string), intent(in), dimension(:) :: labels - real(real64), intent(in), dimension(:) :: x - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pdb_set_data_3_core(this, labels, x, fmt, err) - class(plot_data_bar), intent(inout) :: this - real(real64), intent(in), dimension(:) :: labels - real(real64), intent(in), dimension(:) :: x - character(len = *), intent(in), optional :: fmt - class(errors), intent(inout), optional, target :: err - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_PLOT_DATA_HISTOGRAM.F90 -! ------------------------------------------------------------------------------ - !> @brief A container for plotting data in the form of a histogram. - type, extends(plot_data_bar) :: plot_data_histogram - private - !> @brief The number of bins. - integer(int32) :: m_binCount = 10 - !> @brief The numerical label format string. - character(len = :), allocatable :: m_numberFmt - contains - procedure, public :: get_bin_count => pdh_get_bin_count - procedure, public :: set_bin_count => pdh_set_bin_count - procedure, public :: bin_data => pdh_bin_data - procedure, public :: get_extreme_values => pdh_get_extremes - procedure, public :: get_number_format => pdh_get_num_fmt - procedure, public :: set_number_format => pdh_set_num_fmt - procedure :: set_data_1 => pdh_set_data_1 - procedure :: set_data_2 => pdh_set_data_2 - procedure :: set_data_3 => pdh_set_data_3 - end type - -! ------------------------------------------------------------------------------ - interface - pure module function pdh_get_bin_count(this) result(x) - class(plot_data_histogram), intent(in) :: this - integer(int32) :: x - end function - - module subroutine pdh_set_bin_count(this, x) - class(plot_data_histogram), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - - module function pdh_bin_data(this, x, err) result(bx) - class(plot_data_histogram), intent(in) :: this - real(real64), intent(in), dimension(:) :: x - class(errors), intent(inout), optional, target :: err - real(real64), allocatable, dimension(:,:) :: bx - end function - - pure module function pdh_get_extremes(this) result(x) - class(plot_data_histogram), intent(in) :: this - real(real64), dimension(2) :: x - end function - - module subroutine pdh_set_data_1(this, x, err) - class(plot_data_histogram), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pdh_set_data_2(this, labels, x, err) - class(plot_data_histogram), intent(inout) :: this - class(string), intent(in), dimension(:) :: labels - real(real64), intent(in), dimension(:) :: x - class(errors), intent(inout), optional, target :: err - end subroutine - - module subroutine pdh_set_data_3(this, labels, x, fmt, err) - class(plot_data_histogram), intent(inout) :: this - real(real64), intent(in), dimension(:) :: labels - real(real64), intent(in), dimension(:) :: x - character(len = *), intent(in), optional :: fmt - class(errors), intent(inout), optional, target :: err - end subroutine - - pure module function pdh_get_num_fmt(this) result(x) - class(plot_data_histogram), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine pdh_set_num_fmt(this, x) - class(plot_data_histogram), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_PLOT_BAR.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a 2D plot tailored towards bar plotting. - type, extends(plot_2d) :: plot_bar - private - !> @brief A relative scaling of the width of a single bar. The value - !! must be between 0 and 1 with 1 being full width. - real(real32) :: m_barWidth = 0.75d0 - contains - procedure, public :: get_bar_width => pb_get_bar_width - procedure, public :: set_bar_width => pb_set_bar_width - procedure, public :: get_command_string => pb_get_cmd - end type - -! ------------------------------------------------------------------------------ - interface - pure module function pb_get_bar_width(this) result(x) - class(plot_bar), intent(in) :: this - real(real32) :: x - end function - - module subroutine pb_set_bar_width(this, x) - class(plot_bar), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - module function pb_get_cmd(this) result(x) - class(plot_bar), intent(in) :: this - character(len = :), allocatable :: x - end function - end interface - - -! ****************************************************************************** -! FPLOT_TRIANGULATIONS_DELAUNAY_2D.F90 -! ------------------------------------------------------------------------------ - !> @brief Provides a container for a 2D Delaunay triangulation. - !! - !! @par Remarks - !! This type utilizes the GEOMPACK triangulation code available at - !! https://people.sc.fsu.edu/~jburkardt/f77_src/geompack/geompack.html. - type delaunay_tri_2d - private - !> @brief An array of the x-coordinates of each point. - real(real64), allocatable, dimension(:) :: m_x - !> @brief An array of the y-coordinates of each point. - real(real64), allocatable, dimension(:) :: m_y - !> @brief A 3-column matrix containing the indices of each triangle's - !! vertex. - integer(int32), allocatable, dimension(:,:) :: m_indices - contains - !> @brief Creates an unconstrained 2D Delaunay triangulation given a - !! set of x-y points. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine create(class(delaunay_tri_2d) this, real(real64) x(:), real(real64) y(:), class(errors) err) - !! @endcode - !! - !! @param[in,out] this The delaunay_tri_2d object. - !! @param[in] x An N-element array containing the x-coordinates of each - !! data point. - !! @param[in] y An N-element array containing the y-coordinates of each - !! data point. - !! @param[in,out] err An optional errors-based object that if provided - !! can be used to retrieve information relating to any errors - !! encountered during execution. If not provided, a default - !! implementation of the errors class is used internally to provide - !! error handling. Possible errors and warning messages that may be - !! encountered are as follows. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input arrays are not - !! the same size. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory - !! available. - procedure, public :: create => d2d_init - !> @brief Gets the number of points in the triangulation. - !! - !! @par Syntax - !! @code{.f90} - !! integer(int32) function get_point_count(class(delaunay_tri_2d) this) - !! @endcode - !! - !! @param[in] this The delaunay_tri_2d object. - !! @return The number of points in the triangulation. - procedure, public :: get_point_count => d2d_get_pt_count - !> @brief Gets the number of triangles in the triangulation. - !! - !! @par Syntax - !! @code{.f90} - !! integer(int32) function get_triangle_count(class(delaunay_tri_2d) this) - !! @endcode - !! - !! @param[in] this The delaunay_tri_2d object. - !! @return The number of triangles in the triangulation. - procedure, public :: get_triangle_count => d2d_get_tri_count - !> @brief Gets the x-coordinates of each point. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_points_x(class(delaunay_tri_2d) this) - !! @endcode - !! - !! @param[in] this The delaunay_tri_2d object. - !! @return An array of the x-coordinates of each point. - procedure, public :: get_points_x => d2d_get_x_pts - !> @brief Gets the y-coordinates of each point. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_points_y(class(delaunay_tri_2d) this) - !! @endcode - !! - !! @param[in] this The delaunay_tri_2d object. - !! @return An array of the y-coordinates of each point. - procedure, public :: get_points_y => d2d_get_y_pts - !> @brief Gets a list of the indices of each triangle vertex. - !! - !! @par Syntax - !! @code{.f90} - !! integer(int32)(:,:) function get_indices(class(delaunay_tri_2d) this) - !! @endcode - !! - !! @param[in] this The delaunay_tri_2d object. - !! @return An N-by-3 matrix with each column containing the index of the - !! vertex of each triangle where N is the number of triangles. - procedure, public :: get_indices => d2d_get_tris - !> @brief Finds the triangle that contains the specified point. - !! - !! @par Syntax - !! @code{.f90} - !! integer(int32) function find_triangle(class(delaunay_tri_2d) this, real(real64) x, real(real64) y) - !! @endcode - !! - !! @param[in] this The delaunay_tri_2d object. - !! @param[in] x The x-coordinate of the point. - !! @param[in] y The y-coordinate of the point. - !! - !! @return Returns the index of the triangle containing the specified - !! point. If no triangle contains the specified point, a value of - !! -1 is returned. - procedure, public :: find_triangle => d2d_get_tri_with_pt - end type - -! ---------- - interface - module subroutine d2d_init(this, x, y, err) - class(delaunay_tri_2d), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y - class(errors), intent(inout), target, optional :: err - end subroutine - - pure module function d2d_get_pt_count(this) result(rst) - class(delaunay_tri_2d), intent(in) :: this - integer(int32) :: rst - end function - - pure module function d2d_get_tri_count(this) result(rst) - class(delaunay_tri_2d), intent(in) :: this - integer(int32) :: rst - end function - - pure module function d2d_get_x_pts(this) result(rst) - class(delaunay_tri_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: rst - end function - - pure module function d2d_get_y_pts(this) result(rst) - class(delaunay_tri_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: rst - end function - - pure module function d2d_get_tris(this) result(rst) - class(delaunay_tri_2d), intent(in) :: this - integer(int32), allocatable, dimension(:,:) :: rst - end function - - pure module function d2d_get_tri_with_pt(this, x, y) result(rst) - class(delaunay_tri_2d), intent(in) :: this - real(real64), intent(in) :: x, y - integer(int32) :: rst - end function - end interface - -! ****************************************************************************** -! FPLOT_PLOT_DATA_TRI_2D.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a 2D triangulated data set. - type, extends(plot_data_colored) :: plot_data_tri_2d - private - !> @brief An array of the x-coordinates of each point. - real(real64), allocatable, dimension(:) :: m_x - !> @brief An array of the y-coordinates of each point. - real(real64), allocatable, dimension(:) :: m_y - !> @brief A 3-column matrix containing the indices of each triangle's - !! vertex. - integer(int32), allocatable, dimension(:,:) :: m_indices - !> @brief The line width. - real(real32) :: m_lineWidth = 1.0 - !> @brief The line style - integer(int32) :: m_lineStyle = LINE_SOLID - contains - procedure, public :: get_data_string => pdt2d_get_data_cmd - procedure, public :: get_command_string => pdt2d_get_cmd - !> @brief Defines the data to plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine(class(plot_data_tri_2d) this, class(delaunay_tri_2d) tri) - !! @endcode - !! - !! @param[in,out] this The plot_data_tri_2d object. - !! @param[in] tri The triangulation data to plot. - procedure, public :: define_data => pdt2d_define_data - !> @brief Gets the width of the lines used to draw the triangulation. - !! - !! @par Syntax - !! @code{.f90} - !! real(real32) function get_line_width(class(plot_data_tri_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_tri_2d object. - !! @return The line width. - procedure, public :: get_line_width => pdt2d_get_line_width - !> @brief Sets the width of the lines used to draw the triangulation. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_line_width(class(plot_data_tri_2d) this, real(real32) x) - !! @endcode - !! - !! @param[in,out] this The plot_data_tri_2d object. - !! @param[in] x The line width. - procedure, public :: set_line_width => pdt2d_set_line_width - !> @brief - !! - !! @par Syntax - !! @code{.f90} - !! integer(int32) function get_line_style(class(plot_data_tri_2d) this) - !! @endcode - !! - !! @param[in] this The plot_data_tri_2d object. - !! @return The line sytle flag. - procedure, public :: get_line_style => pdt2d_get_line_style - !> @brief - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_line_style(class(plot_data_tri_2d) this, integer(int32) x) - !! @endcode - !! - !! @param[in,out] this The plot_data_tri_2d object. - !! @param[in] x The line style. The line style must be one of the - !! following: - !! - LINE_DASHED - !! - LINE_DASH_DOTTED - !! - LINE_DASH_DOT_DOT - !! - LINE_DOTTED - !! - LINE_SOLID - procedure, public :: set_line_style => pdt2d_set_line_style - end type - -! -------------------- - interface - module function pdt2d_get_data_cmd(this) result(x) - class(plot_data_tri_2d), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function pdt2d_get_cmd(this) result(x) - class(plot_data_tri_2d), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine pdt2d_define_data(this, tri) - class(plot_data_tri_2d), intent(inout) :: this - class(delaunay_tri_2d), intent(in) :: tri - end subroutine - - module function pdt2d_get_axes_cmd(this) result(x) - class(plot_data_tri_2d), intent(in) :: this - character(len = :), allocatable :: x - end function - - pure module function pdt2d_get_line_width(this) result(rst) - class(plot_data_tri_2d), intent(in) :: this - real(real32) :: rst - end function - - module subroutine pdt2d_set_line_width(this, x) - class(plot_data_tri_2d), intent(inout) :: this - real(real32), intent(in) :: x - end subroutine - - pure module function pdt2d_get_line_style(this) result(rst) - class(plot_data_tri_2d), intent(in) :: this - integer(int32) :: rst - end function - - module subroutine pdt2d_set_line_style(this, x) - class(plot_data_tri_2d), intent(inout) :: this - integer(int32), intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_DELAUNAY_TRI_SURFACE.F90 -! ------------------------------------------------------------------------------ - !> @brief Provides a type describing a triangulated surface. - type, extends(delaunay_tri_2d) :: delaunay_tri_surface - private - !> @brief An array of the z-coordinates of each point. - real(real64), allocatable, dimension(:) :: m_z - contains - !> @brief Defines the function values that correspond to the x and y - !! data points. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_function_values(class(delaunay_tri_surface) this, real(real64) z(:), class(errors) err) - !! @endcode - !! - !! @param[in,out] this The delaunay_tri_surface object. - !! @param[in] z An N-element array containing the function values for - !! each x and y coordinate. Notice, the x and y coordinates must - !! already be defined prior to calling this routine. - !! @param[in,out] err An optional errors-based object that if provided - !! can be used to retrieve information relating to any errors - !! encountered during execution. If not provided, a default - !! implementation of the errors class is used internally to provide - !! error handling. Possible errors and warning messages that may be - !! encountered are as follows. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if @p z is not the same - !! size as the number of x-y data points. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if there is insufficient memory - !! available. - !! - PLOT_INVALID_OPERATION_ERROR: Occurs if the x-y point data has - !! not been defined. - procedure, public :: define_function_values => dts_define_fcn - !> @brief Gets the z-coordinates of each point. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(:) function get_points_x(class(delaunay_tri_surface) this) - !! @endcode - !! - !! @param[in] this The delaunay_tri_2d object. - !! @return An array of the z-coordinates of each point. - procedure, public :: get_points_z => dts_get_z - !> @brief Evaluates the function at the requested point by means of - !! linear interpolation. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64) function evaluate(class(delaunay_tri_surface) this, real(real64) x, real(real64) y) - !! @endcode - !! - !! @param[in] this The delaunay_tri_surface object. - !! @param[in] x The x-coordinate at which to evaluate the function. - !! @param[in] y The y-coordinate at which to evaluate the function. - !! - !! @return The function value. If the point (@p x, @p y) does not lie - !! within the range of defined values, then a value of NaN is returned. - generic, public :: evaluate => dts_interp_1, dts_interp_2 - - procedure :: dts_interp_1 - procedure :: dts_interp_2 - end type - -! -------------------- - interface - module subroutine dts_define_fcn(this, z, err) - class(delaunay_tri_surface), intent(inout) :: this - real(real64), intent(in), dimension(:) :: z - class(errors), intent(inout), optional, target :: err - end subroutine - - pure module function dts_get_z(this) result(rst) - class(delaunay_tri_surface), intent(in) :: this - real(real64), allocatable, dimension(:) :: rst - end function - - pure module function dts_interp_1(this, x, y) result(z) - class(delaunay_tri_surface), intent(in) :: this - real(real64), intent(in) :: x, y - real(real64) :: z - end function - - pure module function dts_interp_2(this, x, y) result(z) - class(delaunay_tri_surface), intent(in) :: this - real(real64), intent(in), dimension(:) :: x, y - real(real64), allocatable, dimension(:) :: z - end function - end interface - -! ****************************************************************************** -! FPLOT_TRI_SURFACE_PLOT_DATA.F90 -! ------------------------------------------------------------------------------ - !> @brief Provides a three-dimensional surface plot data set constructed of - !! triangulated points. - type, extends(plot_data) :: tri_surface_plot_data - private - !> @brief An array of the x-coordinates of each point. - real(real64), allocatable, dimension(:) :: m_x - !> @brief An array of the y-coordinates of each point. - real(real64), allocatable, dimension(:) :: m_y - !> @brief An array of the z-coordinates of each point. - real(real64), allocatable, dimension(:) :: m_z - !> @brief A 3-column matrix containing the indices of each triangle's - !! vertex. - integer(int32), allocatable, dimension(:,:) :: m_indices - !> @brief Determines if the surface should be drawn as a wireframe. - logical :: m_wireframe = .true. - contains - procedure, public :: get_data_string => tspd_get_data_cmd - procedure, public :: get_command_string => tspd_get_cmd - !> @brief Gets a value determining if a wireframe mesh should be - !! displayed. - !! - !! @par Syntax - !! @code{.f90} - !! logical function get_use_wireframe(class(tri_surface_plot_data) this) - !! @endcode - !! - !! @param[in] this The tri_surface_plot_data object. - !! @return Returns true if the plot is to be drawn as a wireframe; else, - !! false to draw as a surface. - procedure, public :: get_use_wireframe => tspd_get_wireframe - !> @brief Sets a value determining if a wireframe mesh should be - !! displayed. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_use_wireframe(class(tri_surface_plot_data) this, logical x) - !! @endcode - !! - !! @param[in,out] this The tri_surface_plot_data object. - !! @param[in] x Set to true if the plot is to be drawn as a wireframe; - !! else, set to false to draw as a surface. - procedure, public :: set_use_wireframe => tspd_set_wireframe - !> @brief Defines the data to plot. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_data(class(tri_surface_plot_data) this, class(delaunay_tri_surface) tri) - !! @endcode - !! - !! @param[in,out] this The tri_surface_plot_data object. - !! @param[in] tri The triangulation to plot. - procedure, public :: define_data => tspd_define_data - end type - -! -------------------- - interface - module function tspd_get_data_cmd(this) result(x) - class(tri_surface_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function tspd_get_cmd(this) result(x) - class(tri_surface_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - pure module function tspd_get_wireframe(this) result(rst) - class(tri_surface_plot_data), intent(in) :: this - logical :: rst - end function - - module subroutine tspd_set_wireframe(this, x) - class(tri_surface_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module subroutine tspd_define_data(this, tri) - class(tri_surface_plot_data), intent(inout) :: this - class(delaunay_tri_surface), intent(in) :: tri - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_VECTOR_FIELD_PLOT_DATA.F90 -! ------------------------------------------------------------------------------ - ! REF: - ! http://www.gnuplotting.org/vector-field-from-data-file/ - ! http://gnuplot.sourceforge.net/demo_5.4/vector.html - ! http://www.gnuplot.info/docs_5.4/Gnuplot_5_4.pdf (pg 79) - - !> @brief Defines a two-dimensional vector-field plot data set. - type, extends(plot_data_colored) :: vector_field_plot_data - private - !> @brief An M-by-N-by-4 array containing the x, y, dx, and dy plot - !! data points. Optionally, a 5th page can be added to define the - !! color for each arrow. - real(real64), allocatable, dimension(:,:,:) :: m_data - !> @brief The vector size (scaling factor). - real(real64) :: m_arrowSize = 1.0d0 - !> @brief Fill the arrow heads? - logical :: m_filledHeads = .false. - contains - !> @brief Gets the GNUPLOT command string containing the actual data - !! to plot. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_data_string(class(vector_field_plot_data) this) - !! @endcode - !! - !! @param[in] this The vector_field_plot_data object. - !! @return The command string. - procedure, public :: get_data_string => vfpd_get_data_cmd - !> @brief Gets the GNUPLOT command string to represent this - !! vector_field_plot_data object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(vector_field_plot_data) this) - !! @endcode - !! - !! @param[in] this The vector_field_plot_data object. - !! @return The command string. - procedure, public :: get_command_string => vfpd_get_cmd - !> @brief Defines the data set. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_data(class(vector_field_plot_data) this, real(real64) x(:,:), real(real64) y(:,:), real(real64) dx(:,:), real(real64) dy(:,:), real(real64) c(:,:), class(errors) err) - !! @endcode - !! - !! @param[in,out] this The vector_field_plot_data object. - !! @param[in] x An M-by-N matrix containing the x-locations of each arrow's origin. - !! @param[in] y An M-by-N matrix containing the y-locations of each arrow's origin. - !! @param[in] dx An M-by-N matrix containing the x-direction of each arrow. - !! @param[in] dy An M-by-N matrix containing the y-direction of each arrow. - !! @param[in] c An optional M-by-N matrix containing information on how to color the - !! arrows. The colors are determined by the active colormap. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input matrices are - !! not the same size. - procedure, public :: define_data => vfpd_define_data - !> @brief Gets the scaling factor used to determine the arrow size. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64) get_arrow_size(class(vector_field_plot_data) this) - !! @endcode - !! - !! @param[in] this The vector_field_plot_data object. - !! @return The scaling factor. - procedure, public :: get_arrow_size => vfpd_get_arrow_size - !> @brief Sets the scaling factor used to determine the arrow size. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_arrow_size(class(vector_field_plot_data) this, real(real64) x) - !! @endcode - !! - !! @param[in,out] this The vector_field_plot_data object. - !! @param[in] x The scaling factor. - procedure, public :: set_arrow_size => vfpd_set_arrow_size - !> @brief Gets a value determining if the arrow heads should be filled. - !! - !! @par Syntax - !! @code{.f90} - !! logical get_fill_arrow(class(vector_field_plot_data) this) - !! @endcode - !! - !! @param[in] this The vector_field_plot_data object. - !! @return True if the arrow heads should be filled; else, false. - procedure, public :: get_fill_arrow => vfpd_get_fill_arrow - !> @brief Sets a value determining if the arrow heads should be filled. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_fill_arrow(class(vector_field_plot_data) this, logical x) - !! @endcode - !! - !! @param[in,out] this The vector_field_plot_data object. - !! @param[in] x True if the arrow heads should be filled; else, false. - procedure, public :: set_fill_arrow => vfpd_set_fill_arrow - !> @brief Gets a value indicating if data-dependent coloring should be - !! used. This is defined by supplying information on how to scale the - !! coloring when calling define_data. - !! - !! @par Syntax - !! @code{.f90} - !! logical get_use_data_dependent_colors(class(vector_field_plot_data) this) - !! @endcode - !! - !! @param[in] this The vector_field_plot_data object. - !! return Returns true if data-dependent coloring is being used; else, - !! false. - procedure, public :: get_use_data_dependent_colors => & - vfpd_get_use_data_dependent_colors - end type - -! -------------------- - interface - module function vfpd_get_data_cmd(this) result(x) - class(vector_field_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function vfpd_get_cmd(this) result(x) - class(vector_field_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine vfpd_define_data(this, x, y, dx, dy, c, err) - class(vector_field_plot_data), intent(inout) :: this - real(real64), intent(in), dimension(:,:) :: x, y, dx, dy - real(real64), intent(in), dimension(:,:), optional :: c - class(errors), intent(inout), optional, target :: err - end subroutine - - pure module function vfpd_get_arrow_size(this) result(rst) - class(vector_field_plot_data), intent(in) :: this - real(real64) :: rst - end function - - module subroutine vfpd_set_arrow_size(this, x) - class(vector_field_plot_data), intent(inout) :: this - real(real64), intent(in) :: x - end subroutine - - pure module function vfpd_get_fill_arrow(this) result(rst) - class(vector_field_plot_data), intent(in) :: this - logical :: rst - end function - - module subroutine vfpd_set_fill_arrow(this, x) - class(vector_field_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function vfpd_get_use_data_dependent_colors(this) result(rst) - class(vector_field_plot_data), intent(in) :: this - logical :: rst - end function - end interface - -! ****************************************************************************** -! FPLOT_PLOT_POLAR.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a 2D polar plot. - type, extends(plot) :: plot_polar - private - !> @brief Allow the plot to autoscale? - logical :: m_autoscale = .true. - !> @brief The minimum radius value - only applicable if m_autoscale is - !! false. - real(real64) :: m_minrad = 0.0d0 - !> @brief The maximum radius value - only applicable if m_autoscale is - !! false. - real(real64) :: m_maxrad = 1.0d0 - !> @brief The location for theta = 0 - character(len = :), allocatable :: m_thetaStart - !> @brief The direction for theta - character(len = :), allocatable :: m_thetaDirection - contains - final :: plr_clean_up - !> @brief Initializes the plot_polar object. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine initialize(class(plot_polar) this, optional integer(int32) term, optional class(errors) err) - !! @endcode - !! - !! @param[in] this The plot_polar object. - !! @param[in] term An optional input that is used to define the terminal. - !! The default terminal is a WXT terminal. The acceptable inputs are: - !! - GNUPLOT_TERMINAL_PNG - !! - GNUPLOT_TERMINAL_QT - !! - GNUPLOT_TERMINAL_WIN32 - !! - GNUPLOT_TERMINAL_WXT - !! - GNUPLOT_TERMINAL_LATEX - !! @param[in] fname A filename to pass to the terminal in the event the - !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - procedure, public :: initialize => plr_init - !> @brief Gets the GNUPLOT command string to represent this plot_polar - !! object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(plot_polar) this) - !! @endcode - !! - !! @param[in] this The plot_polar object. - !! @return The command string. - procedure, public :: get_command_string => plr_get_cmd - !> @brief Gets a logical value determining if the axis should be - !! automatically scaled to fit the data. - !! - !! @par Syntax - !! @code{.f90} - !! logical get_autoscale(class(plot_polar) this) - !! @endcode - !! - !! @param[in] this The plot_polar object. - !! @return Returns true if the plot will autoscale; else, false. - procedure, public :: get_autoscale => plr_get_autoscale - !> @brief Sets a logical value determining if the axis should be - !! automatically scaled to fit the data. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_autoscale(class(plot_polar) this, logical x) - !! @endcode - !! - !! @param[in,out] this The plot_polar object. - !! @param[in] x Set to true if the plot will autoscale; else, false. - procedure, public :: set_autoscale => plr_set_autoscale - !> @brief Gets the radial axis limits if autoscaling is inactive. - !! - !! @par Syntax - !! @code{.f90} - !! real(real64)(2) get_radial_limits(class(plot_polar) this) - !! @endcode - !! - !! @param[in] this The plot_polar object. - !! @returns A 2-element array containing the minimum and maximum limit - !! values in that order. - procedure, public :: get_radial_limits => plr_get_limits - !> @brief Sets the radial axis limits if autoscaling is inactive. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_radial_limits(class(plot_polar) this, real(real64) x(2)) - !! @endcode - !! - !! @param[in,out] this The plot_polar object. - !! @param[in] A 2-element array containing the minimum and maximum limit - !! values. - procedure, public :: set_radial_limits => plr_set_limits - !> @brief Gets the position for theta = 0. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) get_theta_start_position(class(plot_polar) this) - !! @endcode - !! - !! @param[in] this The plot_polar object. - !! @return The starting position. It is one of the following flags. - !! - POLAR_THETA_BOTTOM - !! - POLAR_THETA_TOP - !! - POLAR_THETA_RIGHT - !! - POLAR_THETA_LEFT - procedure, public :: get_theta_start_position => plr_get_theta_start - !> @brief Sets the position for theta = 0. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_theta_start_position(class(plot_polar) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The plot_polar object. - !! @param[in] x The starting position. It must be one of the following - !! flags. - !! - POLAR_THETA_BOTTOM - !! - POLAR_THETA_TOP - !! - POLAR_THETA_RIGHT - !! - POLAR_THETA_LEFT - procedure, public :: set_theta_start_position => plr_set_theta_start - !> @brief Gets the theta direction. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) get_theta_direction(class(plot_polar) this) - !! @endcode - !! - !! @param[in] this The plot_polar object. - !! @return The direction. It is one of the following flags. - !! - POLAR_THETA_CCW - !! - POLAR_THETA_CW - procedure, public :: get_theta_direction => plr_get_theta_direction - !> @brief Sets the theta direction. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_theta_direction(class(plot_polar) this, character(len = *) x) - !! @endcode - !! - !! @param[in,out] this The plot_polar object. - !! @param[in] x The direction. It must be one of the following flags. - !! - POLAR_THETA_CCW - !! - POLAR_THETA_CW - procedure, public :: set_theta_direction => plr_set_theta_direction - end type - -! -------------------- - interface - module subroutine plr_clean_up(this) - type(plot_polar), intent(inout) :: this - end subroutine - - module subroutine plr_init(this, term, fname, err) - class(plot_polar), intent(inout) :: this - integer(int32), intent(in), optional :: term - character(len = *), intent(in), optional :: fname - class(errors), intent(inout), optional, target :: err - end subroutine - - module function plr_get_cmd(this) result(x) - class(plot_polar), intent(in) :: this - character(len = :), allocatable :: x - end function - - pure module function plr_get_autoscale(this) result(rst) - class(plot_polar), intent(in) :: this - logical :: rst - end function - - module subroutine plr_set_autoscale(this, x) - class(plot_polar), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - pure module function plr_get_limits(this) result(rst) - class(plot_polar), intent(in) :: this - real(real64) :: rst(2) - end function - - module subroutine plr_set_limits(this, x) - class(plot_polar), intent(inout) :: this - real(real64), intent(in) :: x(2) - end subroutine - - pure module function plr_get_theta_start(this) result(rst) - class(plot_polar), intent(in) :: this - character(len = :), allocatable :: rst - end function - - module subroutine plr_set_theta_start(this, x) - class(plot_polar), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - - pure module function plr_get_theta_direction(this) result(rst) - class(plot_polar), intent(in) :: this - character(len = :), allocatable :: rst - end function - - module subroutine plr_set_theta_direction(this, x) - class(plot_polar), intent(inout) :: this - character(len = *), intent(in) :: x - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_FILLED_PLOT_DATA.F90 -! ------------------------------------------------------------------------------ - !> @brief Defines a two-dimensional filled plot data set. - type, extends(plot_data_colored) :: filled_plot_data - private - !> Plot against the secondary y-axis - logical :: m_useY2 = .false. - !> The data set (column 1 = x, column 2 = y, column 3 = constraint y) - real(real64), allocatable, dimension(:,:) :: m_data - contains - !> @brief Gets the GNUPLOT command string defining which axes the data - !! is to be plotted against. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_axis_string(class(filled_plot_data) this) - !! @endcode - !! - !! @param[in] this The filled_plot_data object. - !! @return The command string. - procedure, public :: get_axes_string => fpd_get_axes_cmd - !> @brief Gets a value determining if the data should be plotted against - !! the secondary y-axis. - !! - !! @par Syntax - !! @code{.f90} - !! pure logical function get_draw_against_y2(class(filled_plot_data) this) - !! @endcode - !! - !! @param[in] this The filled_plot_data object. - !! @return Returns true if the data should be plotted against the secondary - !! y-axis; else, false to plot against the primary y-axis. - procedure, public :: get_draw_against_y2 => fpd_get_draw_against_y2 - !> @brief Sets a value determining if the data should be plotted against - !! the secondary y-axis. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine set_draw_against_y2(class(filled_plot_data) this, logical x) - !! @endcode - !! - !! @param[in,out] this The filled_plot_data object. - !! @param[in] x Set to true if the data should be plotted against the - !! secondary y-axis; else, false to plot against the primary y-axis. - procedure, public :: set_draw_against_y2 => fpd_set_draw_against_y2 - !> @brief Gets the GNUPLOT command string to represent this - !! filled_plot_data object. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_command_string(class(filled_plot_data) this) - !! @endcode - !! - !! @param[in] this The filled_plot_data object. - !! @return The command string. - procedure, public :: get_command_string => fpd_get_cmd - !> @brief Gets the GNUPLOT command string containing the actual data - !! to plot. - !! - !! @par Syntax - !! @code{.f90} - !! character(len = :) function, allocatable get_data_string(class(filled_plot_data) this) - !! @endcode - !! - !! @param[in] this The filled_plot_data object. - !! @return The command string. - procedure, public :: get_data_string => fpd_get_data_cmd - !> @brief Defines the data set. - !! - !! @par Syntax - !! @code{.f90} - !! subroutine define_data(class(filled_plot_data) this, real(real64) x(:), real(real64) y(:), real(real64) yc(:)) - !! @endcode - !! - !! @param[in,out] this The filled_plot_data object. - !! @param[in] x An N-element array containing the x coordinate data. - !! @param[in] y An N-element array containing the y coordinate data. - !! @param[in] yc An N-element array containing the constraining curve y coordinate data. - !! @param[out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if @p x and @p y are not the - !! same size. - procedure, public :: define_data => fpd_define_data - end type - -! -------------------- - interface - module function fpd_get_axes_cmd(this) result(x) - class(filled_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - pure module function fpd_get_draw_against_y2(this) result(x) - class(filled_plot_data), intent(in) :: this - logical :: x - end function - - module subroutine fpd_set_draw_against_y2(this, x) - class(filled_plot_data), intent(inout) :: this - logical, intent(in) :: x - end subroutine - - module function fpd_get_cmd(this) result(x) - class(filled_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - module function fpd_get_data_cmd(this) result(x) - class(filled_plot_data), intent(in) :: this - character(len = :), allocatable :: x - end function - - module subroutine fpd_define_data(this, x, y, yc, err) - class(filled_plot_data), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, yc - class(errors), intent(inout), optional, target :: err - end subroutine - end interface - -! ****************************************************************************** -! FPLOT_SIMPLIFY.F90 -! ------------------------------------------------------------------------------ - !> @brief Simplifies a 2D or 3D polyline by removing points too close to - !! discern given a specified tolerance. - !! - !! @par Overload 1 - !! Simplifies a 2D polyline by removing points too close to discern given - !! a specified tolerance. - !! - !! @param[in] x An N-element array containing the x-coordinates of the vertices - !! making up the polyline. - !! @param[in] y An N-element array containing the y-coordinates of the vertices - !! making up the polyline. - !! @param[in] tol The distance tolerance to use when simplifying the polyline. - !! This value must be positive, and larger than machine epsilon. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input array sizes are not - !! compatible. - !! - PLOT_INVALID_INPUT_ERROR: Occurs if @p tol is not positive and greater - !! than machine epsilon. - !! - !! @return A matrix containing the simplified polyline vertices. The first - !! column of the matrix contains the x-coordinates, and the second column - !! contains the y-coordinates. - !! - !! @par Overload 2 - !! Simplifies a 3D polyline by removing points too close to discern - !! given a specified tolerance. - !! - !! @param[in] x An N-element array containing the x-coordinates of the vertices - !! making up the polyline. - !! @param[in] y An N-element array containing the y-coordinates of the vertices - !! making up the polyline. - !! @param[in] z An N-element array containing the z-coordinates of the vertices - !! making up the polyline. - !! @param[in] tol The distance tolerance to use when simplifying the polyline. - !! This value must be positive, and larger than machine epsilon. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input array sizes are not - !! compatible. - !! - PLOT_INVALID_INPUT_ERROR: Occurs if @p tol is not positive and greater - !! than machine epsilon. - !! - !! @return A matrix containing the simplified polyline vertices. The first - !! column of the matrix contains the x-coordinates, the second column - !! contains the y-coordinates, and the third column contains the z-coordinates. - !! - !! @par Overload 3 - !! Simplifies a 2D or 3D polyline by removing points too close to discern - !! given a specified tolerance. - !! - !! @param[in] xy An N-by-2 or N-by-3 matrix containing the polyline vertex data. - !! @param[in] tol The distance tolerance to use when simplifying the polyline. - !! This value must be positive, and larger than machine epsilon. - !! @param[in,out] err An optional errors-based object that if provided can be - !! used to retrieve information relating to any errors encountered during - !! execution. If not provided, a default implementation of the errors - !! class is used internally to provide error handling. Possible errors and - !! warning messages that may be encountered are as follows. - !! - PLOT_OUT_OF_MEMORY_ERROR: Occurs if insufficient memory is available. - !! - PLOT_ARRAY_SIZE_MISMATCH_ERROR: Occurs if the input array sizes are not - !! compatible. - !! - PLOT_INVALID_INPUT_ERROR: Occurs if @p tol is not positive and greater - !! than machine epsilon. - !! - !! @return A matrix containing the simplified polyline vertices. The first - !! column of the matrix contains the x-coordinates, the second column - !! contains the y-coordinates, and if necessary, the third column contains - !! the z-coordinates. - interface simplify_polyline - module procedure :: simplify_polyline_2d1 - module procedure :: simplify_polyline_3d1 - module procedure :: simplify_polyline_mtx - end interface - - interface - module function simplify_polyline_2d1(x, y, tol, err) result(ln) - real(real64), intent(in), dimension(:) :: x, y - real(real64), intent(in) :: tol - class(errors), intent(inout), optional, target :: err - real(real64), allocatable, dimension(:,:) :: ln - end function - - module function simplify_polyline_3d1(x, y, z, tol, err) result(ln) - real(real64), intent(in), dimension(:) :: x, y, z - real(real64), intent(in) :: tol - class(errors), intent(inout), optional, target :: err - real(real64), allocatable, dimension(:,:) :: ln - end function - - module function simplify_polyline_mtx(xy, tol, err) result(ln) - real(real64), intent(in), dimension(:,:) :: xy - real(real64), intent(in) :: tol - class(errors), intent(inout), optional, target :: err - real(real64), allocatable, dimension(:,:) :: ln - end function - end interface + ! FPLOT_MULTIPLOT.F90 + public :: multiplot + + ! FPLOT_PLOT_BAR.F90 + public :: plot_bar + + ! FPLOT_PLOT_POLAR.F90 + public :: plot_polar -! ------------------------------------------------------------------------------ end module diff --git a/src/fplot_core_routines.f90 b/src/fplot_core_routines.f90 index 74499be..e964c97 100644 --- a/src/fplot_core_routines.f90 +++ b/src/fplot_core_routines.f90 @@ -1,13 +1,25 @@ ! fplot_core_routines.f90 -submodule (fplot_core) fplot_core_routines +module fplot_core_routines + use iso_fortran_env + implicit none + private + public :: linspace + public :: logspace + public :: meshgrid + contains ! ------------------------------------------------------------------------------ - pure module function linspace(start, finish, npts) result(x) - ! Arguments - real(real64), intent(in) :: start, finish + pure function linspace(start, finish, npts) result(x) + !! Constructs a linearly spaced array. + real(real64), intent(in) :: start + !! The first value in the array. + real(real64), intent(in) :: finish + !! The last value in the array. integer(int32), intent(in) :: npts + !! The number of values in the array. real(real64), allocatable, dimension(:) :: x + !! The resulting array. ! Local Variables integer(int32) :: i @@ -23,11 +35,16 @@ pure module function linspace(start, finish, npts) result(x) end function ! ------------------------------------------------------------------------------ - pure module function logspace(start, finish, npts) result(x) - ! Arguments - real(real64), intent(in) :: start, finish + pure function logspace(start, finish, npts) result(x) + !! Construcst a logarithmically spaced array. + real(real64), intent(in) :: start + !! The exponent of the first value in the array. + real(real64), intent(in) :: finish + !! The exponent of the final value in the array. integer(int32), intent(in) :: npts + !! The number of values in the array. real(real64), allocatable, dimension(:) :: x + !! The resulting array. ! Local Variables integer(int32) :: i @@ -44,10 +61,15 @@ pure module function logspace(start, finish, npts) result(x) end function ! ------------------------------------------------------------------------------ - pure module function meshgrid(x, y) result(xy) - ! Arguments - real(real64), intent(in), dimension(:) :: x, y + pure function meshgrid(x, y) result(xy) + !! Constructs two matrices (X and Y) from x and y data arrays. + real(real64), intent(in), dimension(:) :: x + !! An M-element array of x data points. + real(real64), intent(in), dimension(:) :: y + !! An N-element array of y data points. real(real64), allocatable, dimension(:,:,:) :: xy + !! An N-by-M-by-2 array containing the x data matrix on the first + !! page of the array, and the y data matrix on the second page. ! Local Variables integer(int32) :: i, nx, ny @@ -64,4 +86,4 @@ pure module function meshgrid(x, y) result(xy) end do end function -end submodule +end module diff --git a/src/fplot_delaunay_tri_surface.f90 b/src/fplot_delaunay_tri_surface.f90 index c35fc29..68efc63 100644 --- a/src/fplot_delaunay_tri_surface.f90 +++ b/src/fplot_delaunay_tri_surface.f90 @@ -1,20 +1,46 @@ ! fplot_delaunay_tri_surface.f90 -submodule (fplot_core) fplot_delaunay_tri_surface +module fplot_delaunay_tri_surface + use iso_fortran_env use ieee_arithmetic + use fplot_triangulations_delaunay_2d + use fplot_errors + use ferror + implicit none + private + public :: delaunay_tri_surface + + type, extends(delaunay_tri_2d) :: delaunay_tri_surface + !! Provides a type describing a triangulated surface. + real(real64), private, allocatable, dimension(:) :: m_z + !! An array of the z-coordinates of each point. + contains + procedure, public :: define_function_values => dts_define_fcn + procedure, public :: get_points_z => dts_get_z + generic, public :: evaluate => dts_interp_1, dts_interp_2 + + procedure, private :: dts_interp_1 + procedure, private :: dts_interp_2 + end type + contains ! ------------------------------------------------------------------------------ - module subroutine dts_define_fcn(this, z, err) - ! Arguments + subroutine dts_define_fcn(this, z, err) + !! Defines the function values that correspond to the x and y + !! data points. class(delaunay_tri_surface), intent(inout) :: this + !! The delaunay_tri_surface object. real(real64), intent(in), dimension(:) :: z + !! An N-element array containing the function values for + !! each x and y coordinate. Notice, the x and y coordinates must + !! already be defined prior to calling this routine. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: n, flag class(errors), pointer :: errmgr type(errors), target :: deferr - character(len = 256) :: errmsg ! Initialization if (present(err)) then @@ -32,11 +58,8 @@ module subroutine dts_define_fcn(this, z, err) return end if if (size(z) /= n) then - write (errmsg, 100) "The number of function values " // & - "does not match the number of x-y points. Expected to find ", & - n, " function values, but found ", size(z), " instead." - call errmgr%report_error("dts_define_fcn", trim(errmsg), & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_array_size_mismatch_error(errmgr, "dts_define_fcn", & + "z", n, size(z)) return end if @@ -44,20 +67,19 @@ module subroutine dts_define_fcn(this, z, err) if (allocated(this%m_z)) deallocate(this%m_z) allocate(this%m_z(n), stat = flag) if (flag /= 0) then - call errmgr%report_error("dts_define_fcn", & - "Insufficient memory available.", & - PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "dts_define_fcn", flag) return end if this%m_z = z - -100 format(A, I0, A, I0, A) end subroutine ! ------------------------------------------------------------------------------ - pure module function dts_get_z(this) result(rst) + pure function dts_get_z(this) result(rst) + !! Gets the z-coordinates of each point. class(delaunay_tri_surface), intent(in) :: this + !! The delaunay_tri_surface object. real(real64), allocatable, dimension(:) :: rst + !! An array of the z-coordinates of each point. if (allocated(this%m_z)) then rst = this%m_z else @@ -69,11 +91,18 @@ pure module function dts_get_z(this) result(rst) ! Interpolation Routine - Barycentric Coordinate Approach ! https://www.iue.tuwien.ac.at/phd/nentchev/node25.html ! https://academic.csuohio.edu/duffy_s/CVE_512_11.pdf - pure module function dts_interp_1(this, x, y) result(z) - ! Arguments + pure function dts_interp_1(this, x, y) result(z) + !! Evaluates the function at the requested point by means of + !! linear interpolation. class(delaunay_tri_surface), intent(in) :: this - real(real64), intent(in) :: x, y + !! The delaunay_tri_surface object. + real(real64), intent(in) :: x + !! The x-coordinate at which to evaluate the function. + real(real64), intent(in) :: y + !! The y-coordinate at which to evaluate the function. real(real64) :: z + !! The function value. If the point (x, y) does not lie within the + !! range of defined values, then a value of NaN is returned. ! Local Variables integer(int32) :: i, n1, n2, n3 @@ -120,11 +149,19 @@ pure module function dts_interp_1(this, x, y) result(z) end function ! -------------------- - pure module function dts_interp_2(this, x, y) result(z) - ! Arguments + pure function dts_interp_2(this, x, y) result(z) + !! Evaluates the function at the requested point by means of + !! linear interpolation. class(delaunay_tri_surface), intent(in) :: this - real(real64), intent(in), dimension(:) :: x, y + !! The delaunay_tri_surface object. + real(real64), intent(in), dimension(:) :: x + !! The x data coordinates. + real(real64), intent(in), dimension(:) :: y + !! The x data coordinates. real(real64), allocatable, dimension(:) :: z + !! The interpolated z coordinate points. If the point (x, y) does + !! not lie within the range of defined values, then a value of NaN + !! is returned. ! Local Variables integer(int32) :: i, j, n1, n2, n3, nxy @@ -195,4 +232,4 @@ pure elemental function linear_interp(x1, y1, z1, x2, y2, z2, x3, & end function ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_errors.f90 b/src/fplot_errors.f90 new file mode 100644 index 0000000..39fb79e --- /dev/null +++ b/src/fplot_errors.f90 @@ -0,0 +1,125 @@ +module fplot_errors + use iso_fortran_env + use ferror + implicit none + +! ****************************************************************************** +! ERROR CODES +! ------------------------------------------------------------------------------ + integer(int32), parameter :: PLOT_OUT_OF_MEMORY_ERROR = 1000 + !! Occurs if there is insufficient memory available for the + !! requested operation. + integer(int32), parameter :: PLOT_INVALID_INPUT_ERROR = 1001 + !! Occurs if an invalid input is provided. + integer(int32), parameter :: PLOT_INVALID_OPERATION_ERROR = 1002 + !! Occurs if an attempt is made to perform an invalid operation. + integer(int32), parameter :: PLOT_ARRAY_SIZE_MISMATCH_ERROR = 1003 + !! Occurs if there is an array size mismatch error. + integer(int32), parameter :: PLOT_GNUPLOT_FILE_ERROR = 1004 + !! Occurs if there is a GNUPLOT file error. + +contains +! ------------------------------------------------------------------------------ +subroutine report_memory_error(err, fcn, flag) + !! Reports a memory allocation error. + class(errors), intent(inout) :: err + !! The error handling object. + character(len = *), intent(in) :: fcn + !! The name of the function or subroutine in which the error occurred. + integer(int32), intent(in) :: flag + !! The error flag returned by the system. + + ! Local Variables + character(len = 256) :: msg + + ! Define the error message + write(100, msg) "Memory allocation error returning flag ", flag, "." + call err%report_error(fcn, trim(msg), PLOT_OUT_OF_MEMORY_ERROR) + + ! Formatting +100 format(A, I0, A) +end subroutine + +! ------------------------------------------------------------------------------ +subroutine report_file_create_error(err, fcn, fname, flag) + !! Reports an I/O error related to file creating. + class(errors), intent(inout) :: err + !! The error handling object. + character(len = *), intent(in) :: fcn + !! The name of the function or subroutine in which the error occurred. + character(len = *), intent(in) :: fname + !! The filename. + integer(int32), intent(in) :: flag + !! The error flag returned by the system. + + ! Local Variables + character(len = 2048) :: msg + + ! Define the error message + write(100, msg) "File ", fname, " could not be created. The error flag ", & + flag, " was returned." + call err%report_error(fcn, trim(msg), PLOT_GNUPLOT_FILE_ERROR) + + ! Formatting +100 format(A, A, A, I0, A) +end subroutine + +! ------------------------------------------------------------------------------ +subroutine report_array_size_mismatch_error(err, fcn, name, expected, actual) + !! Reports an array size mismatch error. + class(errors), intent(inout) :: err + !! The error handling object. + character(len = *), intent(in) :: fcn + !! The name of the function or subroutine in which the error occurred. + character(len = *), intent(in) :: name + !! The variable name. + integer(int32), intent(in) :: expected + !! The expected array size. + integer(int32), intent(in) :: actual + !! The actual array size. + + ! Local Variables + character(len = 256) :: msg + + ! Define the message + write(100, msg) "Array ", name, " was found to be of length ", actual, & + ", but was expected to be of length ", expected, "." + call err%report_error(fcn, trim(msg), PLOT_ARRAY_SIZE_MISMATCH_ERROR) + + ! Formatting +100 format(A, A, A, I0, A, I0, A) +end subroutine + +! ------------------------------------------------------------------------------ +subroutine report_matrix_size_mismatch_error(err, fcn, name, mexp, nexp, & + mact, nact) + !! Reports a matrix size mismatch error. + class(errors), intent(inout) :: err + !! The error handling object. + character(len = *), intent(in) :: fcn + !! The name of the function or subroutine in which the error occurred. + character(len = *), intent(in) :: name + !! The variable name. + integer(int32), intent(in) :: mexp + !! The expected number of rows. + integer(int32), intent(in) :: nexp + !! The expected number of columns. + integer(int32), intent(in) :: mact + !! The actual number of rows. + integer(int32), intent(in) :: nact + !! The actual number of columns. + + ! Local Variables + character(len = 256) :: msg + + ! Define the error + write(100, msg) "Matrix ", name, " was expected to be of size ", mexp, & + "-by-", nexp, ", but was found to be of size ", mact, "-by-", nact, "." + call err%report_error(fcn, trim(msg), PLOT_ARRAY_SIZE_MISMATCH_ERROR) + + ! Formatting +100 format(A, A, A, I0, A, I0, A, I0, A, I0, A) +end subroutine + +! ------------------------------------------------------------------------------ +end module \ No newline at end of file diff --git a/src/fplot_filled_plot_data.f90 b/src/fplot_filled_plot_data.f90 index ea8e502..165adb3 100644 --- a/src/fplot_filled_plot_data.f90 +++ b/src/fplot_filled_plot_data.f90 @@ -1,12 +1,40 @@ ! fplot_filled_plot_data.f90 -submodule (fplot_core) fplot_filled_plot_data +module fplot_filled_plot_data + use iso_fortran_env + use fplot_plot_data + use fplot_errors + use fplot_colors + use ferror + use strings + implicit none + private + public :: filled_plot_data + + type, extends(plot_data_colored) :: filled_plot_data + !! Defines a two-dimensional filled plot data set. + logical, private :: m_useY2 = .false. + !! Plot against the secondary y-axis. + real(real64), private, allocatable, dimension(:,:) :: m_data + !! The data set (column 1 = x, column 2 = y, column 3 = constraint y) + contains + procedure, public :: get_axes_string => fpd_get_axes_cmd + procedure, public :: get_draw_against_y2 => fpd_get_draw_against_y2 + procedure, public :: set_draw_against_y2 => fpd_set_draw_against_y2 + procedure, public :: get_command_string => fpd_get_cmd + procedure, public :: get_data_string => fpd_get_data_cmd + procedure, public :: define_data => fpd_define_data + end type + contains ! ------------------------------------------------------------------------------ - module function fpd_get_axes_cmd(this) result(x) - ! Arguments + function fpd_get_axes_cmd(this) result(x) + !! Gets the GNUPLOT command string defining which axes the data + !! is to be plotted against. class(filled_plot_data), intent(in) :: this + !! The filled_plot_data object. character(len = :), allocatable :: x + !! The command string. ! Define which axes the data is to be plotted against if (this%get_draw_against_y2()) then @@ -17,24 +45,37 @@ module function fpd_get_axes_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - pure module function fpd_get_draw_against_y2(this) result(x) + pure function fpd_get_draw_against_y2(this) result(x) + !! Gets a value determining if the data should be plotted against + !! the secondary y-axis. class(filled_plot_data), intent(in) :: this + !! The filled_plot_data object. logical :: x + !! Returns true if the data should be plotted against the secondary + !! y-axis; else, false to plot against the primary y-axis. x = this%m_useY2 end function ! -------------------- - module subroutine fpd_set_draw_against_y2(this, x) + subroutine fpd_set_draw_against_y2(this, x) + !! Sets a value determining if the data should be plotted against + !! the secondary y-axis. class(filled_plot_data), intent(inout) :: this + !! The filled_plot_data object. logical, intent(in) :: x + !! Set to true if the data should be plotted against the secondary + !! y-axis; else, false to plot against the primary y-axis. this%m_useY2 = x end subroutine ! ------------------------------------------------------------------------------ - module function fpd_get_cmd(this) result(x) - ! Arguments + function fpd_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this + !! filled_plot_data object. class(filled_plot_data), intent(in) :: this + !! The filled_plot_data object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -72,10 +113,12 @@ module function fpd_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - module function fpd_get_data_cmd(this) result(x) - ! Arguments + function fpd_get_data_cmd(this) result(x) + !! Gets the GNUPLOT command string containing the actual data to plot. class(filled_plot_data), intent(in) :: this + !! The filled_plot_data object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -102,16 +145,23 @@ module function fpd_get_data_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - module subroutine fpd_define_data(this, x, y, yc, err) - ! Arguments + subroutine fpd_define_data(this, x, y, yc, err) + !! Defines the data set. class(filled_plot_data), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, yc + !! The filled_plot_data object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x coordinate data. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y coordinate data. + real(real64), intent(in), dimension(:) :: yc + !! An N-element array containing the constraining curve y + !! coordinate data. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables type(errors), target :: deferr class(errors), pointer :: errmgr - character(len = 256) :: errmsg integer(int32) :: i, n, flag ! Set up error handling @@ -124,17 +174,13 @@ module subroutine fpd_define_data(this, x, y, yc, err) ! Input Checking n = size(x) if (size(y) /= n) then - write(errmsg, 100) "Expected the y array to have ", n, & - " elements, but found an array with ", size(y), " elements." - call errmgr%report_error("fpd_define_data", trim(errmsg), & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_array_size_mismatch_error(errmgr, "fpd_define_data", & + "y", n, size(y)) return end if if (size(yc) /= n) then - write(errmsg, 100) "Expected the yc array to have ", n, & - " elements, but found an array with ", size(yc), " elements." - call errmgr%report_error("fpd_define_data", trim(errmsg), & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_array_size_mismatch_error(errmgr, "fpd_define_data", & + "yc", n, size(yc)) return end if @@ -142,9 +188,7 @@ module subroutine fpd_define_data(this, x, y, yc, err) if (allocated(this%m_data)) deallocate(this%m_data) allocate(this%m_data(n, 3), stat = flag) if (flag /= 0) then - call errmgr%report_error("fpd_define_data", & - "Insufficient memory available.", & - PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "fpd_define_data", flag) return end if @@ -154,9 +198,7 @@ module subroutine fpd_define_data(this, x, y, yc, err) this%m_data(i,2) = y(i) this%m_data(i,3) = yc(i) end do - -100 format(A, I0, A, I0, A) end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_label.f90 b/src/fplot_label.f90 index 9f7c40c..82c1d4b 100644 --- a/src/fplot_label.f90 +++ b/src/fplot_label.f90 @@ -1,12 +1,43 @@ ! fplot_label.f90 -submodule (fplot_core) fplot_label +module fplot_label + use iso_fortran_env + use fplot_plot_object + use fplot_constants + use strings + implicit none + private + public :: plot_label + + type, extends(plot_object) :: plot_label + !! Defines a plot label. + logical, private :: m_visible = .true. + !! Is the label visible? + real(real32), private, dimension(3) :: m_position + !! The x, y, and z coordinates of the label. + real(real32), private :: m_angle = 0.0 + !! The rotation angle of the label. + character(len = PLOTDATA_MAX_NAME_LENGTH), private :: m_text + !! The label text. + contains + procedure, public :: get_command_string => lbl_get_cmd + procedure, public :: get_is_visible => lbl_get_is_visible + procedure, public :: set_is_visible => lbl_set_is_visible + procedure, public :: get_position => lbl_get_position + procedure, public :: set_position => lbl_set_position + procedure, public :: get_angle => lbl_get_angle + procedure, public :: set_angle => lbl_set_angle + procedure, public :: get_text => lbl_get_txt + procedure, public :: set_text => lbl_set_txt + end type contains ! ------------------------------------------------------------------------------ - module function lbl_get_cmd(this) result(x) - ! Arguments + function lbl_get_cmd(this) result(x) + !! Gets the GNUPLOT command string for the label. class(plot_label), intent(in) :: this + !! The plot_label object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -37,58 +68,84 @@ module function lbl_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - pure module function lbl_get_is_visible(this) result(x) + pure function lbl_get_is_visible(this) result(x) + !! Gets a value determining if the label is to be drawn. class(plot_label), intent(in) :: this + !! The plot_label object. logical :: x + !! Returns true if the label is to be drawn; else, false. x = this%m_visible end function ! -------------------- - module subroutine lbl_set_is_visible(this, x) + subroutine lbl_set_is_visible(this, x) + !! Sets a value determining if the label is to be drawn. class(plot_label), intent(inout) :: this + !! The plot_label object. logical, intent(in) :: x + !! Set to true if the label is to be drawn; else, false. this%m_visible = x end subroutine ! ------------------------------------------------------------------------------ - pure module function lbl_get_position(this) result(x) + pure function lbl_get_position(this) result(x) + !! Gets the position of the label in terms of plot coordinates. class(plot_label), intent(in) :: this + !! The plot_label object. real(real32), dimension(3) :: x + !! A 3-element array containing the X, Y, and Z position of the + !! label. x = this%m_position end function ! -------------------- - module subroutine lbl_set_position(this, x) + subroutine lbl_set_position(this, x) + !! Sets the position of the label in terms of plot coordinates. class(plot_label), intent(inout) :: this + !! The plot_label object. real(real32), intent(in), dimension(3) :: x + !! A 3-element array containing the X, Y, and Z position of the + !! label. this%m_position = x end subroutine ! ------------------------------------------------------------------------------ - pure module function lbl_get_angle(this) result(x) + pure function lbl_get_angle(this) result(x) + !! Gets the angle of the label text, in degrees. class(plot_label), intent(in) :: this + !! The plot_label object. real(real32) :: x + !! The angle, in degrees. x = this%m_angle end function ! -------------------- - module subroutine lbl_set_angle(this, x) + subroutine lbl_set_angle(this, x) + !! Sets the angle of the label text, in degrees. class(plot_label), intent(inout) :: this + !! The plot_label object. real(real32), intent(in) :: x + !! The angle, in degrees. this%m_angle = x end subroutine ! ------------------------------------------------------------------------------ - module function lbl_get_txt(this) result(x) + function lbl_get_txt(this) result(x) + !! Gets the text displayed by the label. class(plot_label), intent(in) :: this + !! The plot_label object. character(len = :), allocatable :: x + !! The text string to display. x = trim(this%m_text) end function ! -------------------- - module subroutine lbl_set_txt(this, x) + subroutine lbl_set_txt(this, x) + !! Sets the text displayed by the label. class(plot_label), intent(inout) :: this + !! The plot_label object. character(len = *), intent(in) :: x + !! The text string to display. integer(int32) :: n n = min(len(x), PLOTDATA_MAX_NAME_LENGTH) this%m_text = "" @@ -98,14 +155,14 @@ module subroutine lbl_set_txt(this, x) ! ****************************************************************************** ! ADDED: JAN. 09, 2024 - JAC ! ------------------------------------------------------------------------------ - pure module subroutine lbl_assign(x, y) - type(plot_label), intent(out) :: x - class(plot_label), intent(in) :: y - x%m_visible = y%m_visible - x%m_position = y%m_position - x%m_angle = y%m_angle - x%m_text = y%m_text - end subroutine + ! pure subroutine lbl_assign(x, y) + ! type(plot_label), intent(out) :: x + ! class(plot_label), intent(in) :: y + ! x%m_visible = y%m_visible + ! x%m_position = y%m_position + ! x%m_angle = y%m_angle + ! x%m_text = y%m_text + ! end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_latex_terminal.f90 b/src/fplot_latex_terminal.f90 index 6db9099..c3ada37 100644 --- a/src/fplot_latex_terminal.f90 +++ b/src/fplot_latex_terminal.f90 @@ -1,11 +1,35 @@ ! fplot_latex_terminal.f90 -submodule (fplot_core) fplot_latex_terminal +module fplot_latex_terminal + use iso_fortran_env + use fplot_terminal + use fplot_constants + use strings + implicit none + private + public :: latex_terminal + + type, extends(terminal) :: latex_terminal + !! A LATEX terminal. + character(len = 14), private :: m_id = "epslatex color" + !! The terminal ID string + character(len = GNUPLOT_MAX_PATH_LENGTH), private :: m_fname = "default.tex" + !! The filename of the file to write. + contains + procedure, public :: get_filename => tex_get_filename + procedure, public :: set_filename => tex_set_filename + procedure, public :: get_id_string => tex_get_term_string + procedure, public :: get_command_string => tex_get_command_string + end type + contains ! ------------------------------------------------------------------------------ - module function tex_get_term_string(this) result(x) + function tex_get_term_string(this) result(x) + !! Retrieves a GNUPLOT terminal identifier string. class(latex_terminal), intent(in) :: this + !! The latex_terminal object. character(len = :), allocatable :: x + !! The string. integer(int32) :: n n = len_trim(this%m_id) allocate(character(len = n) :: x) @@ -13,9 +37,12 @@ module function tex_get_term_string(this) result(x) end function ! ------------------------------------------------------------------------------ - module function tex_get_filename(this) result(txt) + function tex_get_filename(this) result(txt) + !! Gets the filename for the output LATEX file. class(latex_terminal), intent(in) :: this + !! The latex_terminal object. character(len = :), allocatable :: txt + !! The filename, including the file extension (.tex). integer(int32) :: n n = len_trim(this%m_fname) allocate(character(len = n) :: txt) @@ -23,9 +50,12 @@ module function tex_get_filename(this) result(txt) end function ! -------------------- - module subroutine tex_set_filename(this, txt) + subroutine tex_set_filename(this, txt) + !! Sets the filename for the output LATEX file. class(latex_terminal), intent(inout) :: this + !! The latex_terminal object. character(len = *), intent(in) :: txt + !! The filename, including the file extension (.tex). integer(int32) :: n n = min(len_trim(txt), GNUPLOT_MAX_PATH_LENGTH) this%m_fname = "" @@ -37,10 +67,13 @@ module subroutine tex_set_filename(this, txt) end subroutine ! ------------------------------------------------------------------------------ - module function tex_get_command_string(this) result(x) - ! Arguments + function tex_get_command_string(this) result(x) + !! Returns the appropriate GNUPLOT command string to establish + !! appropriate parameters. class(latex_terminal), intent(in) :: this + !! The latex_terminal object. character(len = :), allocatable :: x + !! The GNUPLOT command string. ! Local Variables type(string_builder) :: str @@ -66,4 +99,4 @@ module function tex_get_command_string(this) result(x) x = char(str%to_string()) end function -end submodule +end module diff --git a/src/fplot_legend.f90 b/src/fplot_legend.f90 index 21b777f..bcc84b3 100644 --- a/src/fplot_legend.f90 +++ b/src/fplot_legend.f90 @@ -1,39 +1,99 @@ ! fplot_legend.f90 -submodule (fplot_core) fplot_legend +module fplot_legend + use iso_fortran_env + use fplot_plot_object + use fplot_constants + use strings + implicit none + private + public :: legend + + type, extends(plot_object) :: legend + !! Defines a legend object. + logical, private :: m_inside = .true. + !! Inside or outside the axes? + logical, private :: m_box = .true. + !! Box around? + character(len = 20), private :: m_horzPosition = LEGEND_RIGHT + !! Horizontal position. + character(len = 20), private :: m_vertPosition = LEGEND_TOP + !! Verical position. + logical, private :: m_show = .false. + !! Is visible? + character(len = 20), private :: m_layout = LEGEND_ARRANGE_VERTICALLY + !! Determines the legend layout. + logical, private :: m_opaque = .true. + !! Opaque background? + contains + procedure, public :: get_draw_inside_axes => leg_get_inside + procedure, public :: set_draw_inside_axes => leg_set_inside + procedure, public :: get_draw_border => leg_get_box + procedure, public :: set_draw_border => leg_set_box + procedure, public :: get_horizontal_position => leg_get_horz_pos + procedure, public :: set_horizontal_position => leg_set_horz_pos + procedure, public :: get_vertical_position => leg_get_vert_pos + procedure, public :: set_vertical_position => leg_set_vert_pos + procedure, public :: get_is_visible => leg_get_visible + procedure, public :: set_is_visible => leg_set_visible + procedure, public :: get_command_string => leg_get_command_txt + procedure, public :: get_layout => leg_get_layout + procedure, public :: set_layout => leg_set_layout + procedure, public :: get_is_opaque => leg_get_opaque + procedure, public :: set_is_opaque => leg_set_opaque + end type + contains ! ------------------------------------------------------------------------------ - pure module function leg_get_inside(this) result(x) + pure function leg_get_inside(this) result(x) + !! Gets a value determining if the legend should be drawn inside + !! or outside the axes border. class(legend), intent(in) :: this + !! The legend object. logical :: x + !! True to draw inside the axes border; else, false for outside. x = this%m_inside end function ! --------------------- - module subroutine leg_set_inside(this, x) + subroutine leg_set_inside(this, x) + !! Sets a value determining if the legend should be drawn inside + !! or outside the axes border. class(legend), intent(inout) :: this + !! The legend object. logical, intent(in) :: x + !! True to draw inside the axes border; else, false for outside. this%m_inside = x end subroutine ! ------------------------------------------------------------------------------ - pure module function leg_get_box(this) result(x) + pure function leg_get_box(this) result(x) + !! Gets a value determining if the legend should have a border. class(legend), intent(in) :: this + !! The legend object. logical :: x + !! True if the legend should have a border; else, false. x = this%m_box end function ! --------------------- - module subroutine leg_set_box(this, x) + subroutine leg_set_box(this, x) + !! Sets a value determining if the legend should have a border. class(legend), intent(inout) :: this + !! The legend object. logical, intent(in) :: x + !! True if the legend should have a border; else, false. this%m_box = x end subroutine ! ------------------------------------------------------------------------------ - module function leg_get_horz_pos(this) result(x) + pure function leg_get_horz_pos(this) result(x) + !! Gets the horizontal position of the legend. class(legend), intent(in) :: this + !! The legend object. character(len = :), allocatable :: x + !! The horizontal position of the legend (LEGEND_LEFT, + !! LEGEND_CENTER, or LEGEND_RIGHT). integer(int32) :: n n = len_trim(this%m_horzPosition) allocate(character(len = n) :: x) @@ -41,18 +101,27 @@ module function leg_get_horz_pos(this) result(x) end function ! --------------------- - module subroutine leg_set_horz_pos(this, x) + subroutine leg_set_horz_pos(this, x) + !! Sets the horizontal position of the legend. class(legend), intent(inout) :: this + !! The legend object. character(len = *), intent(in) :: x + !! The horizontal position of the legend. The parameter must be + !! set to one of the following: LEGEND_LEFT, LEGEND_CENTER, or + !! LEGEND_RIGHT. If not, the default LEGEND_RIGHT will be used. this%m_horzPosition = x if (x /= LEGEND_LEFT .and. x /= LEGEND_RIGHT .and. x /= LEGEND_CENTER) & this%m_horzPosition = LEGEND_RIGHT end subroutine ! ------------------------------------------------------------------------------ - module function leg_get_vert_pos(this) result(x) + pure function leg_get_vert_pos(this) result(x) + !! Gets the vertical position of the legend. class(legend), intent(in) :: this + !! The legend object. character(len = :), allocatable :: x + !! The vertical position of the legend (LEGEND_TOP, + !! LEGEND_CENTER, or LEGEND_BOTTOM). integer(int32) :: n n = len_trim(this%m_vertPosition) allocate(character(len = n) :: x) @@ -60,33 +129,46 @@ module function leg_get_vert_pos(this) result(x) end function ! --------------------- - module subroutine leg_set_vert_pos(this, x) + subroutine leg_set_vert_pos(this, x) + !! Sets the vertical position of the legend. class(legend), intent(inout) :: this + !! The legend object. character(len = *), intent(in) :: x + !! The vertical position of the legend. The parameter must be + !! set to one of the following: LEGEND_TOP, LEGEND_CENTER, or + !! LEGEND_BOTTOM. If not, the default LEGEND_TOP will be used. this%m_vertPosition = x if (x /= LEGEND_TOP .and. x /= LEGEND_CENTER .and. x /= LEGEND_BOTTOM) & this%m_vertPosition = LEGEND_TOP end subroutine ! ------------------------------------------------------------------------------ - pure module function leg_get_visible(this) result(x) + pure function leg_get_visible(this) result(x) + !! Gets a value determining if the legend is visible. class(legend), intent(in) :: this + !! The legend object. logical :: x + !! True if the legend is visible; else, false. x = this%m_show end function ! --------------------- - module subroutine leg_set_visible(this, x) + subroutine leg_set_visible(this, x) + !! Sets a value determining if the legend is visible. class(legend), intent(inout) :: this + !! The legend object. logical, intent(in) :: x + !! True if the legend is visible; else, false. this%m_show = x end subroutine ! ------------------------------------------------------------------------------ - module function leg_get_command_txt(this) result(txt) - ! Arguments + function leg_get_command_txt(this) result(txt) + !! Gets the command string defining the legend properties. class(legend), intent(in) :: this + !! The legend object. character(len = :), allocatable :: txt + !! The GNUPLOT command string. ! Local Variables type(string_builder) :: str @@ -139,16 +221,24 @@ module function leg_get_command_txt(this) result(txt) end function ! ------------------------------------------------------------------------------ - pure module function leg_get_layout(this) result(rst) + pure function leg_get_layout(this) result(rst) + !! Gets the layout of the legend. class(legend), intent(in) :: this + !! The legend object. character(len = :), allocatable :: rst + !! The layout type, either LEGEND_ARRANGE_VERTICALLY or + !! LEGEND_ARRANGE_HORIZONTALLY. rst = trim(this%m_layout) end function ! --------------------- - module subroutine leg_set_layout(this, x) + subroutine leg_set_layout(this, x) + !! Sets the layout of the legend. class(legend), intent(inout) :: this + !! The legend object. character(len = *), intent(in) :: x + !! The layout type, either LEGEND_ARRANGE_VERTICALLY or + !! LEGEND_ARRANGE_HORIZONTALLY. if (x == LEGEND_ARRANGE_HORIZONTALLY .or. & x == LEGEND_ARRANGE_VERTICALLY) & then @@ -157,18 +247,24 @@ module subroutine leg_set_layout(this, x) end subroutine ! ------------------------------------------------------------------------------ - pure module function leg_get_opaque(this) result(rst) + pure function leg_get_opaque(this) result(rst) + !! Gets a value determining if the legend is to be opaque. class(legend), intent(in) :: this + !! The legend object. logical :: rst + !! True if the legend is to be opaque; else, false. rst = this%m_opaque end function ! --------------------- - module subroutine leg_set_opaque(this, x) + subroutine leg_set_opaque(this, x) + !! Sets a value determining if the legend is to be opaque. class(legend), intent(inout) :: this + !! The legend object. logical :: x + !! True if the legend is to be opaque; else, false. this%m_opaque = x end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_multiplot.f90 b/src/fplot_multiplot.f90 index f3237db..db0b2d5 100644 --- a/src/fplot_multiplot.f90 +++ b/src/fplot_multiplot.f90 @@ -1,12 +1,67 @@ ! fplot_multiplot.f90 -submodule (fplot_core) fplot_multiplot +module fplot_multiplot + use iso_fortran_env + use fplot_plot_object + use fplot_plot + use fplot_terminal + use fplot_windows_terminal + use fplot_qt_terminal + use fplot_wxt_terminal + use fplot_png_terminal + use fplot_latex_terminal + use fplot_constants + use fplot_errors + use collections + use ferror + use strings + implicit none + private + public :: multiplot + + type, extends(plot_object) :: multiplot + !! Defines a multi-plot layout. + type(list), private :: m_plots + !! The collection of plot objects. + integer(int32), private :: m_rows = 0 + !! The number of rows of plots. + integer(int32), private :: m_cols = 0 + !! The number of columns of plots. + character(len = PLOTDATA_MAX_NAME_LENGTH), private :: m_title + !! The page title. + logical, private :: m_hasTitle = .false. + !! Has a title? + class(terminal), pointer :: m_terminal => null() + !! The GNUPLOT terminal object to target. + contains + final :: mp_clean + procedure, public :: get_command_string => mp_get_command + procedure, public :: initialize => mp_init + procedure, public :: get_row_count => mp_get_rows + procedure, public :: get_column_count => mp_get_cols + procedure, public :: get_plot_count => mp_get_count + procedure, public :: get_title => mp_get_title + procedure, public :: set_title => mp_set_title + procedure, public :: draw => mp_draw + procedure, public :: get => mp_get + procedure, public :: set => mp_set + procedure, public :: is_title_defined => mp_has_title + procedure, public :: get_terminal => mp_get_term + procedure, public :: save_file => mp_save + procedure, public :: get_font_name => mp_get_font + procedure, public :: set_font_name => mp_set_font + procedure, public :: get_font_size => mp_get_font_size + procedure, public :: set_font_size => mp_set_font_size + end type + contains ! ------------------------------------------------------------------------------ - module function mp_get_command(this) result(x) - ! Arguments + function mp_get_command(this) result(x) + !! Gets the GNUPLOT commands for this object. class(multiplot), intent(in) :: this + !! The multiplot object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -50,12 +105,29 @@ module function mp_get_command(this) result(x) end function ! ------------------------------------------------------------------------------ - module subroutine mp_init(this, m, n, term, err) - ! Arguments + subroutine mp_init(this, m, n, term, err) + !! Initializes the multiplot object. class(multiplot), intent(inout) :: this - integer(int32), intent(in) :: m, n + !! The multiplot object. + integer(int32), intent(in) :: m + !! The number of rows of plots. + integer(int32), intent(in) :: n + !! The number of columns of plots. integer(int32), intent(in), optional :: term + !! An optional input that is used to define the terminal. The + !! default terminal is a WXT terminal. The acceptable inputs are: + !! + !! - GNUPLOT_TERMINAL_PNG + !! + !! - GNUPLOT_TERMINAL_QT + !! + !! - GNUPLOT_TERMINAL_WIN32 + !! + !! - GNUPLOT_TERMINAL_WXT + !! + !! - GNUPLOT_TERMINAL_LATEX class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: flag, t, i @@ -114,52 +186,67 @@ module subroutine mp_init(this, m, n, term, err) ! Error Checking if (flag /= 0) then - call errmgr%report_error("mp_init", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "mp_init", flag) return end if end subroutine ! ------------------------------------------------------------------------------ - module subroutine mp_clean(this) + subroutine mp_clean(this) + !! Cleans up resources held by the multiplot object. type(multiplot), intent(inout) :: this + !! The multiplot object. if (associated(this%m_terminal)) deallocate(this%m_terminal) nullify(this%m_terminal) end subroutine ! ------------------------------------------------------------------------------ - pure module function mp_get_rows(this) result(x) + pure function mp_get_rows(this) result(x) + !! Gets the number of rows of plots. class(multiplot), intent(in) :: this + !! The multiplot object. integer(int32) :: x + !! The row count. x = this%m_rows end function ! -------------------- - pure module function mp_get_cols(this) result(x) + pure function mp_get_cols(this) result(x) + !! Gets the number of columns of plots. class(multiplot), intent(in) :: this + !! The multiplot object. integer(int32) :: x + !! The column count. x = this%m_cols end function ! -------------------- - pure module function mp_get_count(this) result(x) + pure function mp_get_count(this) result(x) + !! Gets the total number of plots. class(multiplot), intent(in) :: this + !! The multiplot object. integer(int32) :: x + !! The plot count. x = this%m_plots%count() end function ! ------------------------------------------------------------------------------ - module function mp_get_title(this) result(x) + function mp_get_title(this) result(x) + !! Gets the multiplot's title. class(multiplot), intent(in) :: this + !! The multiplot object. character(len = :), allocatable :: x + !! The title. x = this%m_title end function ! -------------------- - module subroutine mp_set_title(this, x) - ! Arguments + subroutine mp_set_title(this, x) + !! Sets the multiplot's title. class(multiplot), intent(inout) :: this + !! The multiplot object. character(len = *), intent(in) :: x + !! The title. ! Local Variables integer(int32) :: n @@ -176,11 +263,17 @@ module subroutine mp_set_title(this, x) end subroutine ! ------------------------------------------------------------------------------ - module subroutine mp_draw(this, persist, err) - ! Arguments + subroutine mp_draw(this, persist, err) + !! Launches GNUPLOT and draws the multiplot per the current state of + !! the command list. class(multiplot), intent(in) :: this + !! The multiplot object. logical, intent(in), optional :: persist + !! An optional parameter that can be used to keep GNUPLOT open. + !! Set to true to force GNUPLOT to remain open; else, set to false + !! to allow GNUPLOT to close after drawing. The default is true. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Parameters character(len = *), parameter :: fname = "temp_gnuplot_file.plt" @@ -209,11 +302,7 @@ module subroutine mp_draw(this, persist, err) ! Open the file for writing, and write the contents to file open(newunit = fid, file = fname, iostat = flag) if (flag > 0) then - write(errmsg, 100) & - "The file could not be opened/created. Error code ", flag, & - " was encountered." - call errmgr%report_error("mp_draw", trim(errmsg), & - PLOT_GNUPLOT_FILE_ERROR) + call report_file_create_error(errmgr, "mp_draw", fname, flag) return end if write(fid, '(A)') term%get_command_string() @@ -236,11 +325,16 @@ module subroutine mp_draw(this, persist, err) end subroutine ! ------------------------------------------------------------------------------ - module function mp_get(this, i, j) result(x) - ! Arguments + function mp_get(this, i, j) result(x) + !! Gets the requested plot object. class(multiplot), intent(in) :: this - integer(int32), intent(in) :: i, j + !! The multiplot object. + integer(int32), intent(in) :: i + !! The row index of the plot to retrieve. + integer(int32), intent(in) :: j + !! The column index of the plot to retrieve. class(plot), pointer :: x + !! A pointer to the plot object. ! Local Variables class(*), pointer :: item @@ -258,11 +352,16 @@ module function mp_get(this, i, j) result(x) end function ! -------------------- - module subroutine mp_set(this, i, j, x) - ! Arguments + subroutine mp_set(this, i, j, x) + !! Replaces the specified plot. class(multiplot), intent(inout) :: this - integer(int32), intent(in) :: i, j + !! The multiplot object. + integer(int32), intent(in) :: i + !! The row index of the plot to replace. + integer(int32), intent(in) :: j + !! The column index of the plot to replace. class(plot), intent(in) :: x + !! The new plot. ! Local Variables integer(int32) :: ind @@ -273,31 +372,41 @@ module subroutine mp_set(this, i, j, x) end subroutine ! ------------------------------------------------------------------------------ - pure module function mp_has_title(this) result(x) + pure function mp_has_title(this) result(x) + !! Gets a value determining if a title has been defined for the + !! multiplot object. class(multiplot), intent(in) :: this + !! The multiplot object. logical :: x + !! Returns true if a title has been defined for this multiplot; + !! else, returns false. x = this%m_hasTitle end function ! ------------------------------------------------------------------------------ - module function mp_get_term(this) result(x) + function mp_get_term(this) result(x) + !! Gets the GNUPLOT terminal object. class(multiplot), intent(in) :: this + !! The multiplot object. class(terminal), pointer :: x + !! A pointer to the terminal object. x => this%m_terminal end function ! ------------------------------------------------------------------------------ - module subroutine mp_save(this, fname, err) - ! Arguments + subroutine mp_save(this, fname, err) + !! Saves a GNUPLOT command file. class(multiplot), intent(in) :: this + !! The multiplot object. character(len = *), intent(in) :: fname + !! The filename. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: fid, flag class(errors), pointer :: errmgr type(errors), target :: deferr - character(len = 256) :: errmsg class(terminal), pointer :: term ! Initialization @@ -311,56 +420,62 @@ module subroutine mp_save(this, fname, err) ! Open the file for writing, and write the contents to file open(newunit = fid, file = fname, iostat = flag) if (flag > 0) then - write(errmsg, 100) & - "The file could not be opened/created. Error code ", flag, & - " was encountered." - call errmgr%report_error("mp_save", trim(errmsg), & - PLOT_GNUPLOT_FILE_ERROR) + call report_file_create_error(errmgr, "mp_save", fname, flag) return end if write(fid, '(A)') term%get_command_string() write(fid, '(A)') new_line('a') write(fid, '(A)') this%get_command_string() close(fid) - -100 format(A, I0, A) end subroutine ! ------------------------------------------------------------------------------ - module function mp_get_font(this) result(x) + function mp_get_font(this) result(x) + !! Gets the name of the font used for plot text. class(multiplot), intent(in) :: this + !! The multiplot object. character(len = :), allocatable :: x + !! The font name. class(terminal), pointer :: term term => this%get_terminal() x = term%get_font_name() end function ! -------------------- - module subroutine mp_set_font(this, x) + subroutine mp_set_font(this, x) + !! Sets the name of the font used for plot text. class(multiplot), intent(inout) :: this + !! The multiplot object. character(len = *), intent(in) :: x + !! The font name. class(terminal), pointer :: term term => this%get_terminal() call term%set_font_name(x) end subroutine ! ------------------------------------------------------------------------------ - module function mp_get_font_size(this) result(x) + function mp_get_font_size(this) result(x) + !! Gets the size of the font used by the plot. class(multiplot), intent(in) :: this + !! The multiplot object. integer(int32) :: x + !! The font size. class(terminal), pointer :: term term => this%get_terminal() x = term%get_font_size() end function ! -------------------- - module subroutine mp_set_font_size(this, x) + subroutine mp_set_font_size(this, x) + !! Sets the size of the font used by the plot. class(multiplot), intent(inout) :: this + !! The multiplot object. integer(int32), intent(in) :: x + !! The font size. class(terminal), pointer :: term term => this%get_terminal() call term%set_font_size(x) end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_plot.f90 b/src/fplot_plot.f90 index 2835f59..7b75a96 100644 --- a/src/fplot_plot.f90 +++ b/src/fplot_plot.f90 @@ -1,10 +1,114 @@ ! fplot_plot.f90 -submodule (fplot_core) fplot_plot +module fplot_plot + use iso_fortran_env + use fplot_plot_object + use fplot_plot_data + use fplot_terminal + use fplot_windows_terminal + use fplot_qt_terminal + use fplot_wxt_terminal + use fplot_png_terminal + use fplot_latex_terminal + use fplot_colormap + use fplot_colors + use fplot_errors + use fplot_constants + use fplot_legend + use fplot_label + use fplot_arrow + use ferror + use strings + use collections + implicit none + private + public :: plot + + type, extends(plot_object) :: plot + !! Defines the basic GNUPLOT plot. + character(len = PLOTDATA_MAX_NAME_LENGTH), private :: m_title = "" + !! The plot title. + logical, private :: m_hasTitle = .false. + !! Has a title? + class(terminal), private, pointer :: m_terminal => null() + !! The GNUPLOT terminal object to target. + type(list), private :: m_data + !! A collection of plot_data items to plot. + type(legend), private, pointer :: m_legend => null() + !! The legend. + logical, private :: m_showGrid = .true. + !! Show grid lines? + logical, private :: m_ticsIn = .true. + !! Point tic marks in? + logical, private :: m_drawBorder = .true. + !! Draw the border? + type(list), private :: m_labels ! Added 6/22/2018, JAC + !! A collection of plot_label items to draw. + integer(int32), private :: m_colorIndex = 1 + !! The color index to use for automatic line coloring for scatter plots. + logical, private :: m_axisEqual = .false. + !! Determines if the axes should be scaled proportionally. + class(colormap), private, pointer :: m_colormap + !! The colormap. + logical, private :: m_showColorbar = .true. + !! Show the colorbar? + type(list), private :: m_arrows ! Added 1/3/2024, JAC + !! A collection of plot_arrow items to draw. + contains + procedure, public :: free_resources => plt_clean_up + procedure, public :: initialize => plt_init + procedure, public :: get_title => plt_get_title + procedure, public :: set_title => plt_set_title + procedure, public :: is_title_defined => plt_has_title + procedure, public :: get_legend => plt_get_legend + procedure, public :: get_count => plt_get_count + procedure, public :: push => plt_push_data + procedure, public :: pop => plt_pop_data + procedure, public :: clear_all => plt_clear_all + procedure, public :: get => plt_get + procedure, public :: set => plt_set + procedure, public :: get_terminal => plt_get_term + procedure, public :: get_show_gridlines => plt_get_show_grid + procedure, public :: set_show_gridlines => plt_set_show_grid + procedure, public :: draw => plt_draw + procedure, public :: save_file => plt_save + procedure, public :: get_font_name => plt_get_font + procedure, public :: set_font_name => plt_set_font + procedure, public :: get_font_size => plt_get_font_size + procedure, public :: set_font_size => plt_set_font_size + procedure, public :: get_tics_inward => plt_get_tics_in + procedure, public :: set_tics_inward => plt_set_tics_in + procedure, public :: get_draw_border => plt_get_draw_border + procedure, public :: set_draw_border => plt_set_draw_border + procedure, public :: push_label => plt_push_label + procedure, public :: pop_label => plt_pop_label + procedure, public :: get_label => plt_get_label + procedure, public :: set_label => plt_set_label + procedure, public :: get_label_count => plt_get_label_count + procedure, public :: clear_all_labels => plt_clear_labels + procedure, public :: get_axis_equal => plt_get_axis_equal + procedure, public :: set_axis_equal => plt_set_axis_equal + procedure, public :: get_colormap => plt_get_colormap + procedure, public :: set_colormap => plt_set_colormap + procedure, public :: get_show_colorbar => plt_get_show_colorbar + procedure, public :: set_show_colorbar => plt_set_show_colorbar + procedure, public :: get_command_string => plt_get_cmd + procedure, public :: push_arrow => plt_push_arrow + procedure, public :: pop_arrow => plt_pop_arrow + procedure, public :: get_arrow => plt_get_arrow + procedure, public :: set_arrow => plt_set_arrow + procedure, public :: get_arrow_count => plt_get_arrow_count + procedure, public :: clear_arrows => plt_clear_arrows + end type + contains ! ------------------------------------------------------------------------------ - module subroutine plt_clean_up(this) + subroutine plt_clean_up(this) + !! Cleans up resources held by the plot object. Inheriting + !! classes are expected to call this routine to free internally held + !! resources. class(plot), intent(inout) :: this + !! The plot object. if (associated(this%m_terminal)) then deallocate(this%m_terminal) nullify(this%m_terminal) @@ -20,12 +124,29 @@ module subroutine plt_clean_up(this) end subroutine ! ------------------------------------------------------------------------------ - module subroutine plt_init(this, term, fname, err) - ! Arguments + subroutine plt_init(this, term, fname, err) + !! Initializes the plot object. class(plot), intent(inout) :: this + !! The plot object. integer(int32), intent(in), optional :: term + !! An optional input that is used to define the terminal. + !! The default terminal is a WXT terminal. The acceptable inputs + !! are: + !! + !! - GNUPLOT_TERMINAL_PNG + !! + !! - GNUPLOT_TERMINAL_QT + !! + !! - GNUPLOT_TERMINAL_WIN32 + !! + !! - GNUPLOT_TERMINAL_WXT + !! + !! - GNUPLOT_TERMINAL_LATEX character(len = *), intent(in), optional :: fname + !! A filename to pass to the terminal in the event the + !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: flag, t @@ -81,16 +202,18 @@ module subroutine plt_init(this, term, fname, err) ! Error Checking if (flag /= 0) then - call errmgr%report_error("plt_init", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "plt_init", flag) return end if end subroutine ! ------------------------------------------------------------------------------ - module function plt_get_title(this) result(txt) + function plt_get_title(this) result(txt) + !! Gets the plot's title. class(plot), intent(in) :: this + !! The plot object. character(len = :), allocatable :: txt + !! The title. integer(int32) :: n n = len_trim(this%m_title) allocate(character(len = n) :: txt) @@ -98,9 +221,12 @@ module function plt_get_title(this) result(txt) end function ! -------------------- - module subroutine plt_set_title(this, txt) + subroutine plt_set_title(this, txt) + !! Sets the plot's title. class(plot), intent(inout) :: this + !! The plot object. character(len = *), intent(in) :: txt + !! The title. integer :: n n = min(len_trim(txt), PLOTDATA_MAX_NAME_LENGTH) this%m_title = "" @@ -113,33 +239,46 @@ module subroutine plt_set_title(this, txt) end subroutine ! ------------------------------------------------------------------------------ - pure module function plt_has_title(this) result(x) + pure function plt_has_title(this) result(x) + !! Gets a value determining if a title has been defined for the plot + !! object. class(plot), intent(in) :: this + !! The plot object. logical :: x + !! Returns true if a title has been defined for this plot; else, + !! returns false. x = this%m_hasTitle end function ! ------------------------------------------------------------------------------ - module function plt_get_legend(this) result(x) + function plt_get_legend(this) result(x) + !! Gets the plot's legend object. class(plot), intent(in) :: this + !! The plot object. type(legend), pointer :: x + !! A pointer to the legend object. x => this%m_legend end function ! ------------------------------------------------------------------------------ - pure module function plt_get_count(this) result(x) + pure function plt_get_count(this) result(x) + !! Gets the number of stored plot_data objects. class(plot), intent(in) :: this + !! The plot object. integer(int32) :: x + !! The number of plot_data objects. x = this%m_data%count() end function ! ------------------------------------------------------------------------------ - module subroutine plt_push_data(this, x, err) - ! Arguments + subroutine plt_push_data(this, x, err) + !! Pushes a plot_data object onto the stack. class(plot), intent(inout) :: this + !! The plot object. class(plot_data), intent(inout) :: x + !! The plot_data object. class(errors), intent(inout), optional, target :: err - class(legend), pointer :: lgnd + !! An error handling object. ! Index the color tracking index if the type is of plot_data_colored select type (x) @@ -157,23 +296,20 @@ module subroutine plt_push_data(this, x, err) end subroutine ! ------------------------------------------------------------------------------ - module subroutine plt_pop_data(this) - ! Arguments + subroutine plt_pop_data(this) + !! Pops the last plot_data object from the stack. class(plot), intent(inout) :: this - class(legend), pointer :: lgnd + !! The plot object. ! Process call this%m_data%pop() - if (this%m_data%count() < 2) then - lgnd => this%get_legend() - call lgnd%set_is_visible(.false.) - end if end subroutine ! ------------------------------------------------------------------------------ - module subroutine plt_clear_all(this) - ! Arguments + subroutine plt_clear_all(this) + !! Removes all plot_data objects from the plot. class(plot), intent(inout) :: this + !! The plot object. ! Process this%m_colorIndex = 1 @@ -181,11 +317,14 @@ module subroutine plt_clear_all(this) end subroutine ! ------------------------------------------------------------------------------ - module function plt_get(this, i) result(x) - ! Arguments + function plt_get(this, i) result(x) + !! Gets a pointer to the requested plot_data object. class(plot), intent(in) :: this + !! The plot object. integer(int32), intent(in) :: i + !! The index of the plot_data object. class(plot_data), pointer :: x + !! A pointer to the requested plot_data object. ! Local Variables class(*), pointer :: item @@ -202,40 +341,59 @@ module function plt_get(this, i) result(x) ! -------------------- - module subroutine plt_set(this, i, x) + subroutine plt_set(this, i, x) + !! Sets the requested plot_data object into the plot. class(plot), intent(inout) :: this + !! The plot object. integer(int32), intent(in) :: i + !! The index of the plot_data object. class(plot_data), intent(in) :: x + !! The plot_data object. call this%m_data%set(i, x) end subroutine ! ------------------------------------------------------------------------------ - module function plt_get_term(this) result(x) + function plt_get_term(this) result(x) + !! Gets the GNUPLOT terminal object. class(plot), intent(in) :: this + !! The plot object. class(terminal), pointer :: x + !! A pointer to the GNUPLOT terminal object. x => this%m_terminal end function ! ------------------------------------------------------------------------------ - pure module function plt_get_show_grid(this) result(x) + pure function plt_get_show_grid(this) result(x) + !! Gets a flag determining if the grid lines should be shown. class(plot), intent(in) :: this + !! The plot object. logical :: x + !! Returns true if the grid lines should be shown; else, false. x = this%m_showGrid end function ! -------------------- - module subroutine plt_set_show_grid(this, x) + subroutine plt_set_show_grid(this, x) + !! Sets a flag determining if the grid lines should be shown. class(plot), intent(inout) :: this + !! The plot object. logical, intent(in) :: x + !! Set to true if the grid lines should be shown; else, false. this%m_showGrid = x end subroutine ! ------------------------------------------------------------------------------ - module subroutine plt_draw(this, persist, err) - ! Arguments + subroutine plt_draw(this, persist, err) + !! Launches GNUPLOT and draws the plot per the current state of + !! the command list. class(plot), intent(in) :: this + !! The plot object. logical, intent(in), optional :: persist + !! An optional parameter that can be used to keep GNUPLOT open. + !! Set to true to force GNUPLOT to remain open; else, set to false + !! to allow GNUPLOT to close after drawing. The default is true. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Parameters character(len = *), parameter :: fname = "temp_gnuplot_file.plt" @@ -245,7 +403,6 @@ module subroutine plt_draw(this, persist, err) integer(int32) :: fid, flag class(errors), pointer :: errmgr type(errors), target :: deferr - character(len = 256) :: errmsg class(terminal), pointer :: term ! Initialization @@ -264,11 +421,7 @@ module subroutine plt_draw(this, persist, err) ! Open the file for writing, and write the contents to file open(newunit = fid, file = fname, iostat = flag) if (flag > 0) then - write(errmsg, 100) & - "The file could not be opened/created. Error code ", flag, & - " was encountered." - call errmgr%report_error("plt_draw", trim(errmsg), & - PLOT_GNUPLOT_FILE_ERROR) + call report_file_create_error(errmgr, "plt_draw", fname, flag) return end if write(fid, '(A)') term%get_command_string() @@ -286,22 +439,22 @@ module subroutine plt_draw(this, persist, err) ! Clean up by deleting the file open(newunit = fid, file = fname) close(fid, status = "delete") - -100 format(A, I0, A) end subroutine ! ------------------------------------------------------------------------------ - module subroutine plt_save(this, fname, err) - ! Arguments + subroutine plt_save(this, fname, err) + !! Saves a GNUPLOT command file. class(plot), intent(in) :: this + !! The plot object. character(len = *), intent(in) :: fname + !! The filename. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: fid, flag class(errors), pointer :: errmgr type(errors), target :: deferr - character(len = 256) :: errmsg class(terminal), pointer :: term ! Initialization @@ -315,110 +468,141 @@ module subroutine plt_save(this, fname, err) ! Open the file for writing, and write the contents to file open(newunit = fid, file = fname, iostat = flag) if (flag > 0) then - write(errmsg, 100) & - "The file could not be opened/created. Error code ", flag, & - " was encountered." - call errmgr%report_error("plt_save", trim(errmsg), & - PLOT_GNUPLOT_FILE_ERROR) + call report_file_create_error(errmgr, "plt_save", fname, flag) return end if write(fid, '(A)') term%get_command_string() write(fid, '(A)') new_line('a') write(fid, '(A)') this%get_command_string() close(fid) - -100 format(A, I0, A) end subroutine ! ------------------------------------------------------------------------------ - module function plt_get_font(this) result(x) + function plt_get_font(this) result(x) + !! Gets the name of the font used for plot text. class(plot), intent(in) :: this + !! The plot object. character(len = :), allocatable :: x + !! The font name. class(terminal), pointer :: term term => this%get_terminal() x = term%get_font_name() end function ! -------------------- - module subroutine plt_set_font(this, x) + subroutine plt_set_font(this, x) + !! Sets the name of the font used for plot text. class(plot), intent(inout) :: this + !! The plot object. character(len = *), intent(in) :: x + !! The font name. class(terminal), pointer :: term term => this%get_terminal() call term%set_font_name(x) end subroutine ! ------------------------------------------------------------------------------ - module function plt_get_font_size(this) result(x) + function plt_get_font_size(this) result(x) + !! Gets the size of the font used by the plot. class(plot), intent(in) :: this + !! The plot object. integer(int32) :: x + !! The size of the font, in points. class(terminal), pointer :: term term => this%get_terminal() x = term%get_font_size() end function ! -------------------- - module subroutine plt_set_font_size(this, x) + subroutine plt_set_font_size(this, x) + !! Sets the size of the font used by the plot. class(plot), intent(inout) :: this + !! The plot object. integer(int32), intent(in) :: x + !! The font size, in points. If a value of zero is provided, + !! the font size is reset to its default value; or, if a negative + !! value is provided, the absolute value of the supplied value is + !! utilized. class(terminal), pointer :: term term => this%get_terminal() call term%set_font_size(x) end subroutine ! ------------------------------------------------------------------------------ - pure module function plt_get_tics_in(this) result(x) + pure function plt_get_tics_in(this) result(x) + !! Gets a value determining if the axis tic marks should point inwards. class(plot), intent(in) :: this + !! The plot object. logical :: x + !! Returns true if the tic marks should point inwards; else, false + !! if the tic marks should point outwards. x = this%m_ticsIn end function ! -------------------- - module subroutine plt_set_tics_in(this, x) + subroutine plt_set_tics_in(this, x) + !! Sets a value determining if the axis tic marks should point inwards. class(plot), intent(inout) :: this + !! The plot object. logical, intent(in) :: x + !! Set to true if the tic marks should point inwards; else, false + !! if the tic marks should point outwards. this%m_ticsIn = x end subroutine ! ------------------------------------------------------------------------------ - pure module function plt_get_draw_border(this) result(x) + pure function plt_get_draw_border(this) result(x) + !! Gets a value determining if the border should be drawn. class(plot), intent(in) :: this + !! The plot object. logical :: x + !! Returns true if the border should be drawn; else, false. x = this%m_drawBorder end function ! -------------------- - module subroutine plt_set_draw_border(this, x) + subroutine plt_set_draw_border(this, x) + !! Sets a value determining if the border should be drawn. class(plot), intent(inout) :: this + !! The plot object. logical, intent(in) :: x + !! Set to true if the border should be drawn; else, false. this%m_drawBorder = x end subroutine ! ****************************************************************************** ! ADDED: JUNE 22, 2018 - JAC ! ------------------------------------------------------------------------------ - module subroutine plt_push_label(this, lbl, err) - ! Arguments + subroutine plt_push_label(this, lbl, err) + !! Adds a label to the plot. class(plot), intent(inout) :: this + !! The plot object. class(plot_label), intent(in) :: lbl + !! The plot label. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Process call this%m_labels%push(lbl, err = err) end subroutine ! ------------------------------------------------------------------------------ - module subroutine plt_pop_label(this) + subroutine plt_pop_label(this) + !! Removes the last label from the plot. class(plot), intent(inout) :: this + !! The plot object. call this%m_labels%pop() end subroutine ! ------------------------------------------------------------------------------ - module function plt_get_label(this, i) result(x) - ! Arguments + function plt_get_label(this, i) result(x) + !! Gets the requested plot_label from the plot. class(plot), intent(in) :: this + !! The plot object. integer(int32), intent(in) :: i + !! The index of the plot_label object to retrieve. class(plot_label), pointer :: x + !! A pointer to the requested plot_label object. ! Local Variables class(*), pointer :: item @@ -434,57 +618,81 @@ module function plt_get_label(this, i) result(x) end function ! -------------------- - module subroutine plt_set_label(this, i, x) + subroutine plt_set_label(this, i, x) + !! Sets the specified plot_label object. class(plot), intent(inout) :: this + !! The plot object. integer(int32), intent(in) :: i + !! The index of the plot_label to replace. class(plot_label), intent(in) :: x + !! The new plot_label object. call this%m_labels%set(i, x) end subroutine ! ------------------------------------------------------------------------------ - pure module function plt_get_label_count(this) result(x) + pure function plt_get_label_count(this) result(x) + !! Gets the number of plot_label objects belonging to the plot. class(plot), intent(in) :: this + !! The plot object. integer(int32) :: x + !! The number of plot_label objects. x = this%m_labels%count() end function ! ------------------------------------------------------------------------------ - module subroutine plt_clear_labels(this) + subroutine plt_clear_labels(this) + !! Clears all plot_label objects from the plot. class(plot), intent(inout) :: this + !! The plot object. call this%m_labels%clear() end subroutine ! ****************************************************************************** ! ADDED: SEPT. 25, 2020 - JAC ! ------------------------------------------------------------------------------ - pure module function plt_get_axis_equal(this) result(rst) + pure function plt_get_axis_equal(this) result(rst) + !! Gets a flag determining if the axes should be equally scaled. class(plot), intent(in) :: this + !! The plot object. logical :: rst + !! Returns true if the axes should be scaled equally; else, false. rst = this%m_axisEqual end function ! -------------------- - module subroutine plt_set_axis_equal(this, x) + subroutine plt_set_axis_equal(this, x) + !! Sets a flag determining if the axes should be equally scaled. class(plot), intent(inout) :: this + !! The plot object. logical, intent(in) :: x + !! Set to true if the axes should be scaled equally; else, false. this%m_axisEqual = x end subroutine ! ****************************************************************************** ! ADDED: OCT. 8, 2020 - JAC ! ------------------------------------------------------------------------------ - module function plt_get_colormap(this) result(x) + function plt_get_colormap(this) result(x) + !! Gets a pointer to the colormap object. class(plot), intent(in) :: this + !! The plot object. class(colormap), pointer :: x + !! A pointer to the colormap object. If no colormap is defined, a + !! null pointer is returned. x => this%m_colormap end function ! -------------------- - module subroutine plt_set_colormap(this, x, err) - ! Arguments + subroutine plt_set_colormap(this, x, err) + !! Sets the colormap object. class(plot), intent(inout) :: this + !! The plot object. class(colormap), intent(in) :: x + !! The colormap object. Notice, a copy of this object is + !! stored, and the plot object then manages the lifetime of the + !! copy. class(errors), intent(inout), optional, target :: err + !! An error handler object. ! Local Variables integer(int32) :: flag @@ -509,24 +717,32 @@ module subroutine plt_set_colormap(this, x, err) end subroutine ! ------------------------------------------------------------------------------ - pure module function plt_get_show_colorbar(this) result(x) + pure function plt_get_show_colorbar(this) result(x) + !! Gets a value determining if the colorbar should be shown. class(plot), intent(in) :: this + !! The plot object. logical :: x + !! Returns true if the colorbar should be drawn; else, false. x = this%m_showColorbar end function ! -------------------- - module subroutine plt_set_show_colorbar(this, x) + subroutine plt_set_show_colorbar(this, x) + !! Sets a value determining if the colorbar should be shown. class(plot), intent(inout) :: this + !! The plot object. logical, intent(in) :: x + !! Set to true if the colorbar should be drawn; else, false. this%m_showColorbar = x end subroutine ! ------------------------------------------------------------------------------ - module function plt_get_cmd(this) result(x) - ! Arguments + function plt_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this plot object. class(plot), intent(in) :: this + !! The plot object. character(len = :), allocatable :: x + !! The command string. ! Local Variables integer(int32) :: i @@ -574,24 +790,34 @@ module function plt_get_cmd(this) result(x) ! ****************************************************************************** ! ADDED: 1/3/2024 - JAC ! ------------------------------------------------------------------------------ - module subroutine plt_push_arrow(this, x, err) + subroutine plt_push_arrow(this, x, err) + !! Pushes a new @ref plot_arrow object onto the plot. class(plot), intent(inout) :: this + !! The plot object. class(plot_arrow), intent(in) :: x + !! The plot_arrow object. class(errors), intent(inout), optional, target :: err + !! An error handling object. call this%m_arrows%push(x, manage = .true., err = err) end subroutine ! ------------------------------------------------------------------------------ - module subroutine plt_pop_arrow(this) + subroutine plt_pop_arrow(this) + !! Pops the last plot_arrow object from the plot. class(plot), intent(inout) :: this + !! The plot object. call this%m_arrows%pop() end subroutine ! ------------------------------------------------------------------------------ - module function plt_get_arrow(this, i) result(rst) + function plt_get_arrow(this, i) result(rst) + !! Gets a pointer to the requested plot_arrow object. class(plot), intent(in) :: this + !! The plot object. integer(int32), intent(in) :: i + !! The index of the plot_arrow to retrieve. class(plot_arrow), pointer :: rst + !! The plot_arrow object to retrieve. class(*), pointer :: ptr ptr => this%m_arrows%get(i) @@ -604,25 +830,34 @@ module function plt_get_arrow(this, i) result(rst) end function ! ------------------------------------------------------------------------------ - module subroutine plt_set_arrow(this, i, x) + subroutine plt_set_arrow(this, i, x) + !! Sets a plot_arrow into the plot. class(plot), intent(inout) :: this + !! The plot object. integer(int32), intent(in) :: i + !! The index of the plot_arrow object to replace. class(plot_arrow), intent(in) :: x + !! The new plot_arrow object. call this%m_arrows%set(i, x) end subroutine ! ------------------------------------------------------------------------------ - pure module function plt_get_arrow_count(this) result(rst) + pure function plt_get_arrow_count(this) result(rst) + !! Gets the number of plot_arrow objects held by the plot object. class(plot), intent(in) :: this + !! The plot object. integer(int32) :: rst + !! The plot_arrow objects count. rst = this%m_arrows%count() end function ! ------------------------------------------------------------------------------ - module subroutine plt_clear_arrows(this) + subroutine plt_clear_arrows(this) + !! Clears all plot_arrow objects from the plot. class(plot), intent(inout) :: this + !! The plot object. call this%m_arrows%clear() end subroutine ! ------------------------------------------------------------------------------ -end submodule \ No newline at end of file +end module \ No newline at end of file diff --git a/src/fplot_plot_2d.f90 b/src/fplot_plot_2d.f90 index 06f2dc1..62769ea 100644 --- a/src/fplot_plot_2d.f90 +++ b/src/fplot_plot_2d.f90 @@ -1,10 +1,48 @@ ! fplot_plot_2d.f90 +module fplot_plot_2d + use iso_fortran_env + use fplot_plot_data + use fplot_plot + use fplot_errors + use fplot_plot_axis + use fplot_legend + use ferror + use strings + implicit none + private + public :: plot_2d + + type, extends(plot) :: plot_2d + !! A plot object defining a 2D plot. + type(x_axis), private, pointer :: m_xAxis => null() + !! The x-axis. + type(y_axis), private, pointer :: m_yAxis => null() + !! The y-axis. + type(y2_axis), private, pointer :: m_y2Axis => null() + !! The secondary y-axis. + logical, private :: m_useY2 = .false. + !! Display the secondary y axis? + logical, private :: m_set2square = .false. + !! Set to square scaling. + contains + final :: p2d_clean_up + procedure, public :: initialize => p2d_init + procedure, public :: get_command_string => p2d_get_cmd + procedure, public :: get_x_axis => p2d_get_x_axis + procedure, public :: get_y_axis => p2d_get_y_axis + procedure, public :: get_y2_axis => p2d_get_y2_axis + procedure, public :: get_use_y2_axis => p2d_get_use_y2 + procedure, public :: set_use_y2_axis => p2d_set_use_y2 + procedure, public :: get_square_axes => p2d_get_square_axes + procedure, public :: set_square_axes => p2d_set_square_axes + end type -submodule (fplot_core) fplot_plot_2d contains ! ------------------------------------------------------------------------------ - module subroutine p2d_clean_up(this) + subroutine p2d_clean_up(this) + !! Cleans up resources held by the plot_2d object. type(plot_2d), intent(inout) :: this + !! The plot_2d object. call this%free_resources() if (associated(this%m_xAxis)) then deallocate(this%m_xAxis) @@ -21,12 +59,29 @@ module subroutine p2d_clean_up(this) end subroutine ! ------------------------------------------------------------------------------ - module subroutine p2d_init(this, term, fname, err) - ! Arguments + subroutine p2d_init(this, term, fname, err) + !! Initializes the plot_2d object. class(plot_2d), intent(inout) :: this + !! The plot_2d object. integer(int32), intent(in), optional :: term + !! An optional input that is used to define the terminal. + !! The default terminal is a WXT terminal. The acceptable inputs + !! are: + !! + !! - GNUPLOT_TERMINAL_PNG + !! + !! - GNUPLOT_TERMINAL_QT + !! + !! - GNUPLOT_TERMINAL_WIN32 + !! + !! - GNUPLOT_TERMINAL_WXT + !! + !! - GNUPLOT_TERMINAL_LATEX character(len = *), intent(in), optional :: fname + !! A filename to pass to the terminal in the event the + !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: flag @@ -41,7 +96,8 @@ module subroutine p2d_init(this, term, fname, err) end if ! Initialize the base class - call plt_init(this, term, fname, errmgr) + ! call plt_init(this, term, fname, errmgr) + call this%plot%initialize(term, fname, errmgr) if (errmgr%has_error_occurred()) return ! Process @@ -58,17 +114,18 @@ module subroutine p2d_init(this, term, fname, err) ! Error Checking if (flag /= 0) then - call errmgr%report_error("p2d_init", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "p2d_init", flag) return end if end subroutine ! ------------------------------------------------------------------------------ - module function p2d_get_cmd(this) result(x) - ! Arguments + function p2d_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this plot_2d object. class(plot_2d), intent(in) :: this + !! The plot_2d object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -217,53 +274,80 @@ module function p2d_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - module function p2d_get_x_axis(this) result(ptr) + function p2d_get_x_axis(this) result(ptr) + !! Gets the x-axis object. class(plot_2d), intent(in) :: this + !! The plot_2d object. class(plot_axis), pointer :: ptr + !! A pointer to the x-axis object. ptr => this%m_xAxis end function ! ------------------------------------------------------------------------------ - module function p2d_get_y_axis(this) result(ptr) + function p2d_get_y_axis(this) result(ptr) + !! Gets the y-axis object. class(plot_2d), intent(in) :: this + !! The plot_2d object. class(plot_axis), pointer :: ptr + !! A pointer to the y-axis object. ptr => this%m_yAxis end function ! ------------------------------------------------------------------------------ - module function p2d_get_y2_axis(this) result(ptr) + function p2d_get_y2_axis(this) result(ptr) + !! Gets the secondary y-axis object. class(plot_2d), intent(in) :: this + !! The plot_2d object. class(plot_axis), pointer :: ptr + !! A pointer to the secondary y-axis object. ptr => this%m_y2Axis end function ! ------------------------------------------------------------------------------ - pure module function p2d_get_use_y2(this) result(x) + pure function p2d_get_use_y2(this) result(x) + !! Gets a flag determining if the secondary y-axis should be + !! displayed. class(plot_2d), intent(in) :: this + !! The plot_2d object. logical :: x + !! Returns true if the axis should be displayed; else, false. x = this%m_useY2 end function ! -------------------- - module subroutine p2d_set_use_y2(this, x) + subroutine p2d_set_use_y2(this, x) + !! Sets a flag determining if the secondary y-axis should be + !! displayed. class(plot_2d), intent(inout) :: this + !! The plot_2d object. logical, intent(in) :: x + !! Set to true if the axis should be displayed; else, false. this%m_useY2 = x end subroutine ! ------------------------------------------------------------------------------ - pure module function p2d_get_square_axes(this) result(rst) + pure function p2d_get_square_axes(this) result(rst) + !! Gets a logical flag determining if the axes size should be squared + !! off. class(plot_2d), intent(in) :: this + !! The plot_2d object. logical :: rst + !! Returns true if the axes are to be sized to a square; else, + !! false. rst = this%m_set2square end function ! -------------------- - module subroutine p2d_set_square_axes(this, x) + subroutine p2d_set_square_axes(this, x) + !! Sets a logical flag determining if the axes size should be + !! squared off. class(plot_2d), intent(inout) :: this + !! The plot_2d object. logical, intent(in) :: x + !! Set to true if the axes are to be sized to a square; else, + !! false. this%m_set2square = x end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_plot_3d.f90 b/src/fplot_plot_3d.f90 index 3798dfa..5fe21c4 100644 --- a/src/fplot_plot_3d.f90 +++ b/src/fplot_plot_3d.f90 @@ -1,10 +1,62 @@ ! fplot_plot_3d.f90 -submodule (fplot_core) fplot_plot_3d +module fplot_plot_3d + use iso_fortran_env + use fplot_plot + use fplot_errors + use fplot_plot_axis + use fplot_constants + use fplot_plot_data + use fplot_legend + use ferror + use strings + implicit none + private + public :: plot_3d + + type, extends(plot) :: plot_3d + !! A plot object defining a 3D plot. + type(x_axis), private, pointer :: m_xAxis => null() + !! The x-axis. + type(y_axis), private, pointer :: m_yAxis => null() + !! The y-axis. + type(z_axis), private, pointer :: m_zAxis => null() + !! The z-axis. + real(real64), private :: m_elevation = 60.0d0 + !! The elevation angle. + real(real64), private :: m_azimuth = 30.0d0 + !! The azimuth. + logical, private :: m_zIntersect = .true. + !! Z-axis intersect X-Y plane? + logical, private :: m_setMap = .false. + !! Set map projection. + integer(int32), private :: m_csys = COORDINATES_CARTESIAN + !! Plot coordinate system. + contains + final :: p3d_clean_up + procedure, public :: initialize => p3d_init + procedure, public :: get_command_string => p3d_get_cmd + procedure, public :: get_x_axis => p3d_get_x_axis + procedure, public :: get_y_axis => p3d_get_y_axis + procedure, public :: get_z_axis => p3d_get_z_axis + procedure, public :: get_elevation => p3d_get_elevation + procedure, public :: set_elevation => p3d_set_elevation + procedure, public :: get_azimuth => p3d_get_azimuth + procedure, public :: set_azimuth => p3d_set_azimuth + procedure, public :: get_z_intersect_xy => p3d_get_z_axis_intersect + procedure, public :: set_z_intersect_xy => p3d_set_z_axis_intersect + procedure, public :: get_use_map_view => p3d_get_use_map_view + procedure, public :: set_use_map_view => p3d_set_use_map_view + procedure, public :: get_coordinate_system => p3d_get_csys + procedure, public :: set_coordinate_system => p3d_set_csys + end type + contains ! ------------------------------------------------------------------------------ - module subroutine p3d_clean_up(this) + subroutine p3d_clean_up(this) + !! Cleans up resources held by the plot_3d object. type(plot_3d), intent(inout) :: this + !! The plot_3d object. call this%free_resources() if (associated(this%m_xAxis)) then deallocate(this%m_xAxis) @@ -21,12 +73,29 @@ module subroutine p3d_clean_up(this) end subroutine ! ------------------------------------------------------------------------------ - module subroutine p3d_init(this, term, fname, err) - ! Arguments + subroutine p3d_init(this, term, fname, err) + !! Initializes the plot_3d object. class(plot_3d), intent(inout) :: this + !! The plot_3d object. integer(int32), intent(in), optional :: term + !! An optional input that is used to define the terminal. + !! The default terminal is a WXT terminal. The acceptable inputs + !! are: + !! + !! - GNUPLOT_TERMINAL_PNG + !! + !! - GNUPLOT_TERMINAL_QT + !! + !! - GNUPLOT_TERMINAL_WIN32 + !! + !! - GNUPLOT_TERMINAL_WXT + !! + !! - GNUPLOT_TERMINAL_LATEX character(len = *), intent(in), optional :: fname + !! A filename to pass to the terminal in the event the + !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: flag @@ -41,7 +110,8 @@ module subroutine p3d_init(this, term, fname, err) end if ! Initialize the base class - call plt_init(this, term, fname, errmgr) + ! call plt_init(this, term, fname, errmgr) + call this%plot%initialize(term, fname, errmgr) if (errmgr%has_error_occurred()) return ! Process @@ -58,17 +128,18 @@ module subroutine p3d_init(this, term, fname, err) ! Error Checking if (flag /= 0) then - call errmgr%report_error("p3d_init", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "p3d_init", flag) return end if end subroutine ! ------------------------------------------------------------------------------ - module function p3d_get_cmd(this) result(x) - ! Arguments + function p3d_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this plot_3d object. class(plot_3d), intent(in) :: this + !! The plot_3d object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -220,95 +291,152 @@ module function p3d_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - module function p3d_get_x_axis(this) result(ptr) + function p3d_get_x_axis(this) result(ptr) + !! Gets the x-axis object. class(plot_3d), intent(in) :: this + !! The plot_3d object. class(plot_axis), pointer :: ptr + !! A pointer to the x-axis object. ptr => this%m_xAxis end function ! ------------------------------------------------------------------------------ - module function p3d_get_y_axis(this) result(ptr) + function p3d_get_y_axis(this) result(ptr) + !! Gets the y-axis object. class(plot_3d), intent(in) :: this + !! The plot_3d object. class(plot_axis), pointer :: ptr + !! A pointer to the y-axis object. ptr => this%m_yAxis end function ! ------------------------------------------------------------------------------ - module function p3d_get_z_axis(this) result(ptr) + function p3d_get_z_axis(this) result(ptr) + !! Gets the z-axis object. class(plot_3d), intent(in) :: this + !! The plot_3d object. class(plot_axis), pointer :: ptr + !! A pointer to the z-axis object. ptr => this%m_zAxis end function ! ------------------------------------------------------------------------------ - pure module function p3d_get_elevation(this) result(x) + pure function p3d_get_elevation(this) result(x) + !! Gets the plot elevation angle. class(plot_3d), intent(in) :: this + !! The plot_3d object. real(real64) :: x + !! The elevation angle, in degrees. x = this%m_elevation end function ! -------------------- - module subroutine p3d_set_elevation(this, x) + subroutine p3d_set_elevation(this, x) + !! Sets the plot elevation angle. class(plot_3d), intent(inout) :: this + !! The plot_3d object. real(real64), intent(in) :: x + !! The elevation angle, in degrees. this%m_elevation = x end subroutine ! ------------------------------------------------------------------------------ - pure module function p3d_get_azimuth(this) result(x) + pure function p3d_get_azimuth(this) result(x) + !! Gets the plot azimuth angle. class(plot_3d), intent(in) :: this + !! The plot_3d object. real(real64) :: x + !! The azimuth angle, in degrees. x = this%m_azimuth end function ! -------------------- - module subroutine p3d_set_azimuth(this, x) + subroutine p3d_set_azimuth(this, x) + !! Sets the plot azimuth angle. class(plot_3d), intent(inout) :: this + !! The plot_3d object. real(real64), intent(in) :: x + !! The azimuth angle, in degrees. this%m_azimuth = x end subroutine ! ------------------------------------------------------------------------------ - pure module function p3d_get_z_axis_intersect(this) result(x) + pure function p3d_get_z_axis_intersect(this) result(x) + !! Gets a value determining if the z-axis should intersect the + !! x-y plane. class(plot_3d), intent(in) :: this + !! The plot_3d object. logical :: x + !! Returns true if the z-axis should intersect the x-y plane; else, + !! false to allow the z-axis to float. x = this%m_zIntersect end function ! -------------------- - module subroutine p3d_set_z_axis_intersect(this, x) + subroutine p3d_set_z_axis_intersect(this, x) + !! Sets a value determining if the z-axis should intersect the + !! x-y plane. class(plot_3d), intent(inout) :: this + !! The plot_3d object. logical, intent(in) :: x + !! Set to true if the z-axis should intersect the x-y plane; else, + !! false to allow the z-axis to float. this%m_zIntersect = x end subroutine ! ADDED March 29, 2023 - JAC ! ------------------------------------------------------------------------------ - pure module function p3d_get_use_map_view(this) result(rst) + pure function p3d_get_use_map_view(this) result(rst) + !! Gets a value determining if the view should be set to a 2D + !! map view. If true, the azimuth and elevation terms are ignored. class(plot_3d), intent(in) :: this + !! The plot_3d object. logical :: rst + !! Returns true if the map view will be used; else, false. rst = this%m_setMap end function ! -------------------- - module subroutine p3d_set_use_map_view(this, x) + subroutine p3d_set_use_map_view(this, x) + !! Sets a value determining if the view should be set to a 2D + !! map view. If true, the azimuth and elevation terms are ignored. class(plot_3d), intent(inout) :: this + !! The plot_3d object. logical, intent(in) :: x + !! Seturns true if the map view will be used; else, false. this%m_setMap = x end subroutine ! ADDED Sept. 15, 2023 - JAC ! ------------------------------------------------------------------------------ - pure module function p3d_get_csys(this) result(rst) + pure function p3d_get_csys(this) result(rst) + !! Gets a value determining the coordinate system. class(plot_3d), intent(in) :: this + !! The plot_3d object. integer(int32) :: rst + !! The coordinate system ID, which must be one of the following. + !! + !! - COORDINATES_CARTESIAN + !! + !! - COORDINATES_CYLINDRICAL + !! + !! - COORDINATES_SPHERICAL rst = this%m_csys end function ! -------------------- - module subroutine p3d_set_csys(this, x) + subroutine p3d_set_csys(this, x) + !! Sets a value determining the coordinate system. class(plot_3d), intent(inout) :: this + !! The plot_3d object. integer(int32), intent(in) :: x + !! The coordinate system ID, which must be one of the following. + !! + !! - COORDINATES_CARTESIAN + !! + !! - COORDINATES_CYLINDRICAL + !! + !! - COORDINATES_SPHERICAL if (x /= COORDINATES_CARTESIAN .and. & x /= COORDINATES_CYLINDRICAL .and. & x /= COORDINATES_SPHERICAL) & @@ -321,4 +449,4 @@ module subroutine p3d_set_csys(this, x) end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_plot_axis.f90 b/src/fplot_plot_axis.f90 index 2ffe8a1..a25142a 100644 --- a/src/fplot_plot_axis.f90 +++ b/src/fplot_plot_axis.f90 @@ -1,11 +1,114 @@ ! fplot_plot_axis.f90 -submodule (fplot_core) fplot_plot_axis +module fplot_plot_axis + use iso_fortran_env + use fplot_plot_object + use fplot_constants + use strings + implicit none + private + public :: plot_axis + public :: pa_get_string_result + public :: x_axis + public :: y_axis + public :: y2_axis + public :: z_axis + + type, abstract, extends(plot_object) :: plot_axis + private + logical :: m_hasTitle = .false. + !! Has a title? + character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_title = "" + !! Axis title. + logical :: m_autoscale = .true. + !! Autoscale? + real(real64), dimension(2) :: m_limits = [0.0d0, 1.0d0] + !! Display limits. + logical :: m_logScale = .false. + !! Log scaled? + logical :: m_zeroAxis = .false. + !! Has a zero axis? + real(real32) :: m_axisWidth = 1.0 + !! The width, in pixels, of the zero-axis line. + logical :: m_defaultTicLabels = .true. + !! Use default tic label format? + character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_ticLabelFmt = "%g" + !! The tic lablel format. + contains + procedure, public :: get_title => pa_get_title + procedure, public :: set_title => pa_set_title + procedure, public :: is_title_defined => pa_has_title + procedure, public :: get_autoscale => pa_get_autoscale + procedure, public :: set_autoscale => pa_set_autoscale + procedure, public :: get_limits => pa_get_axis_limits + procedure, public :: set_limits => pa_set_axis_limits + procedure, public :: get_is_log_scaled => pa_get_log_scale + procedure, public :: set_is_log_scaled => pa_set_log_scale + procedure, public :: get_command_string => pa_get_cmd_string + procedure, public :: get_zero_axis => pa_get_zero_axis + procedure, public :: set_zero_axis => pa_set_zero_axis + procedure, public :: get_zero_axis_line_width => pa_get_zero_axis_width + procedure, public :: set_zero_axis_line_width => pa_set_zero_axis_width + procedure(pa_get_string_result), deferred, public :: get_id_string + procedure, public :: get_use_default_tic_label_format => & + pa_get_use_dft_tic_lbl_fmt + procedure, public :: set_use_default_tic_label_format => & + pa_set_use_dft_tic_lbl_fmt + procedure, public :: get_tic_label_format => pa_get_tic_label_fmt + procedure, public :: set_tic_label_format => pa_set_tic_label_fmt + end type + + interface + function pa_get_string_result(this) result(x) + !! Retrieves a string from a plot_axis. + import plot_axis + class(plot_axis), intent(in) :: this + !! The plot_axis object. + character(len = :), allocatable :: x + !! The string. + end function + end interface + + type, extends(plot_axis) :: x_axis + !! Defines an x-axis object. + character, private :: m_id = "x" + !! The ID character. + contains + procedure, public :: get_id_string => xa_get_id + end type + + type, extends(plot_axis) :: y_axis + !! Defines a y-axis object. + character, private :: m_id = "y" + !! The ID character. + contains + procedure, public :: get_id_string => ya_get_id + end type + + type, extends(plot_axis) :: y2_axis + !! Defines a secondary y-axis object. + character(len = 2), private :: m_id = "y2" + !! The ID character. + contains + procedure, public :: get_id_string => y2a_get_id + end type + + type, extends(plot_axis) :: z_axis + !! Defines a z-axis object. + character, private :: m_id = "z" + !! The ID character. + contains + procedure, public :: get_id_string => za_get_id + end type + contains ! ------------------------------------------------------------------------------ - module function pa_get_title(this) result(txt) + function pa_get_title(this) result(txt) + !! Gets the axis title. class(plot_axis), intent(in) :: this + !! The plot_axis object. character(len = :), allocatable :: txt + !! The title. integer(int32) :: n n = len_trim(this%m_title) allocate(character(len = n) :: txt) @@ -13,10 +116,12 @@ module function pa_get_title(this) result(txt) end function ! -------------------- - module subroutine pa_set_title(this, txt) - ! Arguments + subroutine pa_set_title(this, txt) + !! Sets the axis title. class(plot_axis), intent(inout) :: this + !! The plot_axis object. character(len = *), intent(in) :: txt + !! The title. ! Local Variables integer(int32) :: n @@ -33,61 +138,94 @@ module subroutine pa_set_title(this, txt) end subroutine ! ------------------------------------------------------------------------------ - pure module function pa_has_title(this) result(x) + pure function pa_has_title(this) result(x) + !! Gets a value determining if a title has been defined for this axis. class(plot_axis), intent(in) :: this + !! The plot_axis object. logical :: x + !! Returns true if a title has been defined; else, false. x = this%m_hasTitle end function ! ------------------------------------------------------------------------------ - pure module function pa_get_autoscale(this) result(x) + pure function pa_get_autoscale(this) result(x) + !! Gets a value determining if the axis should be automatically scaled + !! to fit the data. class(plot_axis), intent(in) :: this + !! The plot_axis object. logical :: x + !! Returns true if the axis should be automatically scaled; else, + !! false. x = this%m_autoscale end function ! -------------------- - module subroutine pa_set_autoscale(this, x) + subroutine pa_set_autoscale(this, x) + !! Sets a value determining if the axis should be automatically scaled + !! to fit the data. class(plot_axis), intent(inout) :: this + !! The plot_axis object. logical, intent(in) :: x + !! Set to true if the axis should be automatically scaled; else, + !! set to false. this%m_autoscale = x end subroutine ! ------------------------------------------------------------------------------ - pure module function pa_get_axis_limits(this) result(x) + pure function pa_get_axis_limits(this) result(x) + !! Gets the axis display limits, assuming autoscaling is not + !! active for this axis. class(plot_axis), intent(in) :: this + !! The plot_axis object. real(real64), dimension(2) :: x + !! A two-element array containing the limits as follows: + !! [lower, upper]. x(1) = minval(this%m_limits) x(2) = maxval(this%m_limits) end function ! -------------------- - module subroutine pa_set_axis_limits(this, lower, upper) + subroutine pa_set_axis_limits(this, lower, upper) + !! Gets the axis display limits, assuming autoscaling is not + !! active for this axis. class(plot_axis), intent(inout) :: this - real(real64), intent(in) :: lower, upper - this%m_limits(1) = lower - this%m_limits(2) = upper + !! The plot_axis object. + real(real64), intent(in) :: lower + !! The lower display limit. + real(real64), intent(in) :: upper + !! The upper display limit. + this%m_limits(1) = min(lower, upper) + this%m_limits(2) = max(lower, upper) end subroutine ! ------------------------------------------------------------------------------ - pure module function pa_get_log_scale(this) result(x) + pure function pa_get_log_scale(this) result(x) + !! Gets a logical value defining if the axis should be log scaled. class(plot_axis), intent(in) :: this + !! The plot_axis object. logical :: x + !! Returns true if log scaling is applied to the axis; else, false. x = this%m_logScale end function ! -------------------- - module subroutine pa_set_log_scale(this, x) + subroutine pa_set_log_scale(this, x) + !! Sets a logical value defining if the axis should be log scaled. class(plot_axis), intent(inout) :: this + !! The plot_axis object. logical, intent(in) :: x + !! Set to true if log scaling is applied to the axis; else, false. this%m_logScale = x end subroutine ! ------------------------------------------------------------------------------ - module function pa_get_cmd_string(this) result(txt) - ! Arguments + function pa_get_cmd_string(this) result(txt) + !! Returns the appropriate GNUPLOT command string to define the + !! plot_axis properties. class(plot_axis), intent(in) :: this + !! The plot_axis object. character(len = :), allocatable :: txt + !! The GNUPLOT command string. ! Local Variables type(string_builder) :: str @@ -165,61 +303,143 @@ module function pa_get_cmd_string(this) result(txt) end function ! ------------------------------------------------------------------------------ - pure module function pa_get_zero_axis(this) result(x) + pure function pa_get_zero_axis(this) result(x) + !! Gets a value determining if the axis should be drawn through + !! zero of opposing axes. class(plot_axis), intent(in) :: this + !! The plot_axis object. logical :: x + !! Returns true to draw as a zero axis; else, set to false. x = this%m_zeroAxis end function ! -------------------- - module subroutine pa_set_zero_axis(this, x) + subroutine pa_set_zero_axis(this, x) + !! Sets a value determining if the axis should be drawn through + !! zero of opposing axes. class(plot_axis), intent(inout) :: this + !! The plot_axis object. logical, intent(in) :: x + !! Set to true to draw as a zero axis; else, set to false. this%m_zeroAxis = x end subroutine ! ------------------------------------------------------------------------------ - pure module function pa_get_zero_axis_width(this) result(x) + pure function pa_get_zero_axis_width(this) result(x) + !! Gets the width of the line used to represent the zero axis line, if + !! active. class(plot_axis), intent(in) :: this + !! The plot_axis object. real(real32) :: x + !! The width of the line, in pixels. x = this%m_axisWidth end function ! -------------------- - module subroutine pa_set_zero_axis_width(this, x) + subroutine pa_set_zero_axis_width(this, x) + !! Sets the width of the line used to represent the zero axis line, if + !! active. class(plot_axis), intent(inout) :: this + !! The plot_axis object. real(real32), intent(in) :: x + !! The width of the line, in pixels. this%m_axisWidth = x end subroutine ! ADDED March 29, 2023 - JAC ! ------------------------------------------------------------------------------ - pure module function pa_get_use_dft_tic_lbl_fmt(this) result(rst) + pure function pa_get_use_dft_tic_lbl_fmt(this) result(rst) + !! Gets a value determining if the default tic label format will be + !! used. class(plot_axis), intent(in) :: this + !! The plot_axis object. logical :: rst + !! Returns true if the default tic label format will be used; else, + !! false. rst = this%m_defaultTicLabels end function ! -------------------- - module subroutine pa_set_use_dft_tic_lbl_fmt(this, x) + subroutine pa_set_use_dft_tic_lbl_fmt(this, x) + !! Sets a value determining if the default tic label format will be + !! used. class(plot_axis), intent(inout) :: this + !! The plot_axis object. logical, intent(in) :: x + !! Set to true if the default tic label format will be used; else, + !! false. this%m_defaultTicLabels = x end subroutine ! ------------------------------------------------------------------------------ - pure module function pa_get_tic_label_fmt(this) result(rst) + pure function pa_get_tic_label_fmt(this) result(rst) + !! Gets the tic label format. The format string can be any format + !! string accepted by the C command 'printf.' class(plot_axis), intent(in) :: this + !! The plot_axis object. character(len = :), allocatable :: rst + !! The tic label format string. rst = trim(this%m_ticLabelFmt) end function ! -------------------- - module subroutine pa_set_tic_label_fmt(this, x) + subroutine pa_set_tic_label_fmt(this, x) + !! Sets the tic label format. The format string can be any format + !! string accepted by the C command 'printf.' class(plot_axis), intent(inout) :: this + !! The plot_axis object. character(len = *), intent(in) :: x + !! The tic label format string. this%m_ticLabelFmt = x end subroutine +! ****************************************************************************** +! X_AXIS MEMBERS +! ------------------------------------------------------------------------------ + function xa_get_id(this) result(x) + !! Gets the axis identification string. + class(x_axis), intent(in) :: this + !! The x_axis object. + character(len = :), allocatable :: x + !! The identification string. + x = this%m_id + end function + +! ****************************************************************************** +! Y_AXIS MEMBERS +! ------------------------------------------------------------------------------ + function ya_get_id(this) result(x) + !! Gets the axis identification string. + class(y_axis), intent(in) :: this + !! The y_axis object. + character(len = :), allocatable :: x + !! The identification string. + x = this%m_id + end function + +! ****************************************************************************** +! Y2_AXIS MEMBERS +! ------------------------------------------------------------------------------ + function y2a_get_id(this) result(x) + !! Gets the axis identification string. + class(y2_axis), intent(in) :: this + !! The y2_axis object. + character(len = :), allocatable :: x + !! The identification string. + x = this%m_id + end function + +! ****************************************************************************** +! Z_AXIS MEMBERS +! ------------------------------------------------------------------------------ + function za_get_id(this) result(x) + !! Gets the axis identification string. + class(z_axis), intent(in) :: this + !! The z_axis object. + character(len = :), allocatable :: x + !! The identification string. + x = this%m_id + end function + ! ------------------------------------------------------------------------------ -end submodule \ No newline at end of file +end module \ No newline at end of file diff --git a/src/fplot_plot_bar.f90 b/src/fplot_plot_bar.f90 index 09e6415..a479311 100644 --- a/src/fplot_plot_bar.f90 +++ b/src/fplot_plot_bar.f90 @@ -1,18 +1,43 @@ ! fplot_plot_bar.f90 -submodule (fplot_core) fplot_plot_bar +module fplot_plot_bar + use iso_fortran_env + use fplot_plot_2d + use strings + implicit none + private + public :: plot_bar + + type, extends(plot_2d) :: plot_bar + !! Defines a 2D plot tailored towards bar plotting. + real(real32), private :: m_barWidth = 0.75d0 + !! A relative scaling of the width of a single bar. The value + !! must be between 0 and 1 with 1 being full width. + contains + procedure, public :: get_bar_width => pb_get_bar_width + procedure, public :: set_bar_width => pb_set_bar_width + procedure, public :: get_command_string => pb_get_cmd + end type + contains ! ------------------------------------------------------------------------------ -pure module function pb_get_bar_width(this) result(x) +pure function pb_get_bar_width(this) result(x) + !! Gets the bar width scaling factor. class(plot_bar), intent(in) :: this + !! The plot_bar object. real(real32) :: x + !! The scaling factor. x = this%m_barWidth end function ! ------------------------------------------------------------------------------ -module subroutine pb_set_bar_width(this, x) +subroutine pb_set_bar_width(this, x) + !! Sets the bar width scaling factor. class(plot_bar), intent(inout) :: this + !! The plot_bar object. real(real32), intent(in) :: x + !! The scaling factor. The value must be in the set [0, 1]; else, the + !! value will be shifted accordingly. if (x > 1.0) then this%m_barWidth = 1.0 else if (x < 0.0) then @@ -23,10 +48,12 @@ module subroutine pb_set_bar_width(this, x) end subroutine ! ------------------------------------------------------------------------------ -module function pb_get_cmd(this) result(x) - ! Arguments +function pb_get_cmd(this) result(x) + !! Gets the GNUPLOT commands required to draw the plot. class(plot_bar), intent(in) :: this + !! The plot_bar object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -52,4 +79,4 @@ module function pb_get_cmd(this) result(x) ! - clustering ! - stacking ! - lighting -end submodule +end module diff --git a/src/fplot_plot_data.f90 b/src/fplot_plot_data.f90 index ce88f1e..5171745 100644 --- a/src/fplot_plot_data.f90 +++ b/src/fplot_plot_data.f90 @@ -1,26 +1,191 @@ ! fplot_plot_data.f90 -submodule (fplot_core) fplot_plot_data +module fplot_plot_data + use iso_fortran_env + use fplot_plot_object + use fplot_constants + use fplot_colors + use strings + use ferror + use fplot_errors + implicit none + private + public :: plot_data + public :: pd_get_string_result + public :: plot_data_colored + public :: scatter_plot_data + public :: spd_get_int_value + public :: spd_get_string_result + public :: spd_get_value + public :: spd_set_value + + type, abstract, extends(plot_object) :: plot_data + !! A container for plot data. + private + character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_name = "" + !! The name to associate with the data set. + contains + procedure, public :: get_name => pd_get_name + procedure, public :: set_name => pd_set_name + procedure(pd_get_string_result), deferred, public :: get_data_string + end type + + interface + function pd_get_string_result(this) result(x) + !! Retrieves a string from a plot_data object. + import plot_data + class(plot_data), intent(in) :: this + !! The plot_data object. + character(len = :), allocatable :: x + !! The string. + end function + end interface + + type, abstract, extends(plot_data) :: plot_data_colored + !! Defines a colored plot data set. + private + type(color) :: m_color = CLR_BLUE + !! The line color. + logical :: m_useAutoColor = .true. + !! Let the object choose colors automatically? + integer(int32) :: m_colorIndex = 1 + !! The color index to use, assuming we're using auto color + contains + procedure, public :: get_line_color => pdc_get_line_color + procedure, public :: set_line_color => pdc_set_line_color + procedure, public :: get_color_index => pdc_get_color_index + procedure, public :: set_color_index => pdc_set_color_index + end type + + type, abstract, extends(plot_data_colored) :: scatter_plot_data + !! A plot_data object for describing scatter plot data sets. + private + logical :: m_drawLine = .true. + !! Draw a line connecting the dots? + logical :: m_drawMarkers = .false. + !! Draw the markers? + integer(int32) :: m_markerFrequency = 1 + !! Marker frequency. + real(real32) :: m_lineWidth = 1.0 + !! Line width. + integer(int32) :: m_lineStyle = LINE_SOLID + !! Line style. + integer(int32) :: m_markerType = MARKER_FILLED_CIRCLE + !! Marker type. + real(real32) :: m_markerSize = 0.5 + !! Marker size multiplier. + logical :: m_simplifyData = .true. + !! True if large data sets should be simplified before sending to + !! GNUPLOT. + real(real64) :: m_simplifyFactor = 1.0d-3 + !! A scaling factor used to establish the simplification tolerance. + !! The simplification tolerance is established by multiplying this + !! factor by the range in the dependent variable data. + logical :: m_dataDependentColors = .false. + !! Determines if the data should utilize data-dependent colors. + logical :: m_filledCurve = .false. + !! Fill the curve? + logical :: m_useVariableSizePoints = .false. + !! Use variable size data points? + contains + procedure, public :: get_command_string => spd_get_cmd + procedure, public :: get_line_width => spd_get_line_width + procedure, public :: set_line_width => spd_set_line_width + procedure, public :: get_line_style => spd_get_line_style + procedure, public :: set_line_style => spd_set_line_style + procedure, public :: get_draw_line => spd_get_draw_line + procedure, public :: set_draw_line => spd_set_draw_line + procedure, public :: get_draw_markers => spd_get_draw_markers + procedure, public :: set_draw_markers => spd_set_draw_markers + procedure, public :: get_marker_style => spd_get_marker_style + procedure, public :: set_marker_style => spd_set_marker_style + procedure, public :: get_marker_scaling => spd_get_marker_scaling + procedure, public :: set_marker_scaling => spd_set_marker_scaling + procedure, public :: get_marker_frequency => spd_get_marker_frequency + procedure, public :: set_marker_frequency => spd_set_marker_frequency + procedure(spd_get_int_value), deferred, public :: get_count + procedure(spd_get_value), deferred, public :: get_x + procedure(spd_set_value), deferred, public :: set_x + procedure(spd_get_value), deferred, public :: get_y + procedure(spd_set_value), deferred, public :: set_y + procedure(spd_get_string_result), deferred, public :: get_axes_string + procedure, public :: get_simplify_data => spd_get_simplify_data + procedure, public :: set_simplify_data => spd_set_simplify_data + procedure, public :: get_simplification_factor => spd_get_simplify_factor + procedure, public :: set_simplification_factor => spd_set_simplify_factor + procedure, public :: get_use_data_dependent_colors => & + spd_get_data_dependent_colors + procedure, public :: set_use_data_dependent_colors => & + spd_set_data_dependent_colors + procedure, public :: get_fill_curve => spd_get_filled + procedure, public :: set_fill_curve => spd_set_filled + procedure, public :: get_use_variable_size_points => spd_get_use_var_point_size + procedure, public :: set_use_variable_size_points => spd_set_use_var_point_size + end type + + interface + pure function spd_get_value(this, index) result(x) + !! Gets an indexed value from the scatter_plot_data object. + use, intrinsic :: iso_fortran_env, only : int32, real64 + import scatter_plot_data + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + integer(int32), intent(in) :: index + !! The index. + real(real64) :: x + !! The value. + end function + + subroutine spd_set_value(this, index, x) + !! Sets an indexed value from the scatter_plot_data object. + use, intrinsic :: iso_fortran_env, only : int32, real64 + import scatter_plot_data + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + integer(int32), intent(in) :: index + !! The index. + real(real64), intent(in) :: x + !! The value. + end subroutine + + pure function spd_get_int_value(this) result(x) + !! Gets an integer value from the scatter_plot_data object. + use, intrinsic :: iso_fortran_env, only : int32 + import scatter_plot_data + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + integer(int32) :: x + !! The value. + end function + + function spd_get_string_result(this) result(x) + !! Gets a string value from the scatter_plot_data object. + import scatter_plot_data + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + character(len = :), allocatable :: x + !! The string. + end function + end interface + contains ! ------------------------------------------------------------------------------ - !> @brief Gets the name to associate with this data set. - !! - !! @param[in] this The plot_data object. - !! @return The name. - pure module function pd_get_name(this) result(txt) + pure function pd_get_name(this) result(txt) + !! Gets the name to associate with this data set. class(plot_data), intent(in) :: this + !! The plot_data object. character(len = :), allocatable :: txt + !! The name. txt = trim(this%m_name) end function ! -------------------- - !> @brief Sets the name to associate with this data set. - !! - !! @param[in,out] this The plot_data object. - !! @param[in] txt The name. - module subroutine pd_set_name(this, txt) + subroutine pd_set_name(this, txt) + !! Sets the name to associate with this data set. class(plot_data), intent(inout) :: this + !! The plot_data object. character(len = *), intent(in) :: txt + !! The name. integer(int32) :: n n = min(len(txt), PLOTDATA_MAX_NAME_LENGTH) this%m_name = "" @@ -29,4 +194,486 @@ module subroutine pd_set_name(this, txt) end if end subroutine -end submodule \ No newline at end of file +! ****************************************************************************** +! PLOT_DATA_COLORED +! ------------------------------------------------------------------------------ + pure function pdc_get_line_color(this) result(x) + !! Gets the object color. + class(plot_data_colored), intent(in) :: this + !! The plot_data_colored object. + type(color) :: x + !! The color. + if (this%m_useAutoColor) then + x = color_list(this%get_color_index()) + else + x = this%m_color + end if + end function + +! -------------------- + subroutine pdc_set_line_color(this, x) + !! Sets the object color. + class(plot_data_colored), intent(inout) :: this + !! The plot_data_colored object. + type(color), intent(in) :: x + !! The color. + this%m_color = x + this%m_useAutoColor = .false. + end subroutine + +! ------------------------------------------------------------------------------ + pure function pdc_get_color_index(this) result(x) + !! Gets the color index. + class(plot_data_colored), intent(in) :: this + !! The plot_data_colored object. + integer(int32) :: x + !! The index value. + x = this%m_colorIndex + end function + +! -------------------- + subroutine pdc_set_color_index(this, x) + !! Sets the color index. + class(plot_data_colored), intent(inout) :: this + !! The plot_data_colored object. + integer(int32), intent(in) :: x + !! The index value. + this%m_colorIndex = x + end subroutine + +! ****************************************************************************** +! SCATTER_PLOT_DATA +! ------------------------------------------------------------------------------ + function spd_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this + !! scatter_plot_data object. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + character(len = :), allocatable :: x + !! The command string. + + ! Local Variables + type(string_builder) :: str + integer(int32) :: n + type(color) :: clr + + ! Initialization + call str%initialize() + + ! Title + n = len_trim(this%get_name()) + if (n > 0) then + call str%append(' "-" title "') + call str%append(this%get_name()) + call str%append('"') + else + call str%append(' "-" notitle') + end if + + ! Lines, points, or filled + if (this%get_fill_curve()) then + call str%append(" with filledcurves") + else + if (this%get_draw_line() .and. this%get_draw_markers()) then + call str%append(" with linespoints") + else if (.not.this%get_draw_line() .and. this%get_draw_markers()) then + call str%append(" with points") + else + call str%append(" with lines") + end if + end if + + ! Line Width + call str%append(" lw ") + call str%append(to_string(this%get_line_width())) + + ! Line Color + if (this%get_use_data_dependent_colors()) then + ! http://www.gnuplotting.org/using-a-palette-as-line-color/ + call str%append(" lc palette") + else + clr = this%get_line_color() + call str%append(' lc rgb "#') + call str%append(clr%to_hex_string()) + call str%append('"') + end if + + ! Define other properties specific to the lines and points + if (this%get_draw_line()) then + call str%append(" lt ") + call str%append(to_string(this%get_line_style())) + if (this%get_line_style() /= LINE_SOLID) then + call str%append(" dashtype ") + call str%append(to_string(this%get_line_style())) + end if + end if + if (this%get_draw_markers()) then + call str%append(" pi ") + call str%append(to_string(this%get_marker_frequency())) + call str%append(" pt ") + call str%append(to_string(this%get_marker_style())) + call str%append(" ps ") + if (this%get_use_variable_size_points()) then + call str%append("variable") + else + call str%append(to_string(this%get_marker_scaling())) + end if + end if + + ! Define the axes structure + call str%append(" ") + call str%append(this%get_axes_string()) + + ! End + x = char(str%to_string()) + end function + +! ------------------------------------------------------------------------------ + pure function spd_get_line_width(this) result(x) + !! Gets the width of the line, in pixels. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + real(real32) :: x + !! The line width. + x = this%m_lineWidth + end function + +! -------------------- + subroutine spd_set_line_width(this, x) + !! Sets the width of the line, in pixels. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + real(real32), intent(in) :: x + !! The line width. + this%m_lineWidth = x + end subroutine + +! ------------------------------------------------------------------------------ + pure function spd_get_line_style(this) result(x) + !! Gets the line style. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + integer(int32) :: x + !! The line style. The line style must be one of the following. + !! + !! - LINE_DASHED + !! + !! - LINE_DASH_DOTTED + !! + !! - LINE_DASH_DOT_DOT + !! + !! - LINE_DOTTED + !! + !! - LINE_SOLID + x = this%m_lineStyle + end function + +! -------------------- + subroutine spd_set_line_style(this, x) + !! Sets the line style. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + integer(int32), intent(in) :: x + !! The line style. The line style must be one of the following. + !! + !! - LINE_DASHED + !! + !! - LINE_DASH_DOTTED + !! + !! - LINE_DASH_DOT_DOT + !! + !! - LINE_DOTTED + !! + !! - LINE_SOLID + if (x == LINE_DASHED .or. & + x == LINE_DASH_DOTTED .or. & + x == LINE_DASH_DOT_DOT .or. & + x == LINE_DOTTED .or. & + x == LINE_SOLID) then + ! Only reset the line style if it is a valid type. + this%m_lineStyle = x + end if + end subroutine + +! ------------------------------------------------------------------------------ + pure function spd_get_draw_line(this) result(x) + !! Gets a value determining if a line should be drawn. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + logical :: x + !! Returns true if the line should be drawn; else, false. + x = this%m_drawLine + end function + +! -------------------- + subroutine spd_set_draw_line(this, x) + !! Sets a value determining if a line should be drawn. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + logical, intent(in) :: x + !! Set to true if the line should be drawn; else, false. + this%m_drawLine = x + end subroutine + +! ------------------------------------------------------------------------------ + pure function spd_get_draw_markers(this) result(x) + !! Gets a value determining if data point markers should be drawn. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + logical :: x + !! Returns true if the markers should be drawn; else, false. + x = this%m_drawMarkers + end function + +! -------------------- + subroutine spd_set_draw_markers(this, x) + !! Sets a value determining if data point markers should be drawn. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + logical, intent(in) :: x + !! Set to true if the markers should be drawn; else, false. + this%m_drawMarkers = x + end subroutine + +! ------------------------------------------------------------------------------ + pure function spd_get_marker_style(this) result(x) + !! Gets the marker style. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + integer(int32) :: x + !! The marker type. The marker type must be one of the following: + !! + !! - MARKER_ASTERISK + !! + !! - MARKER_EMPTY_CIRCLE + !! + !! - MARKER_EMPTY_NABLA + !! + !! - MARKER_EMPTY_RHOMBUS + !! + !! - MARKER_EMPTY_SQUARE + !! + !! - MARKER_EMPTY_TRIANGLE + !! + !! - MARKER_FILLED_CIRCLE + !! + !! - MARKER_FILLED_NABLA + !! + !! - MARKER_FILLED_RHOMBUS + !! + !! - MARKER_FILLED_SQUARE + !! + !! - MARKER_FILLED_TRIANGLE + !! + !! - MARKER_PLUS + !! + !! - MARKER_X + x = this%m_markerType + end function + +! -------------------- + subroutine spd_set_marker_style(this, x) + !! Sets the marker style. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + integer(int32), intent(in) :: x + !! The marker type. The marker type must be one of the following: + !! + !! - MARKER_ASTERISK + !! + !! - MARKER_EMPTY_CIRCLE + !! + !! - MARKER_EMPTY_NABLA + !! + !! - MARKER_EMPTY_RHOMBUS + !! + !! - MARKER_EMPTY_SQUARE + !! + !! - MARKER_EMPTY_TRIANGLE + !! + !! - MARKER_FILLED_CIRCLE + !! + !! - MARKER_FILLED_NABLA + !! + !! - MARKER_FILLED_RHOMBUS + !! + !! - MARKER_FILLED_SQUARE + !! + !! - MARKER_FILLED_TRIANGLE + !! + !! - MARKER_PLUS + !! + !! - MARKER_X + if (x == MARKER_ASTERISK .or. & + x == MARKER_EMPTY_CIRCLE .or. & + x == MARKER_EMPTY_NABLA .or. & + x == MARKER_EMPTY_RHOMBUS .or. & + x == MARKER_EMPTY_SQUARE .or. & + x == MARKER_EMPTY_TRIANGLE .or. & + x == MARKER_FILLED_CIRCLE .or. & + x == MARKER_FILLED_NABLA .or. & + x == MARKER_FILLED_RHOMBUS .or. & + x == MARKER_FILLED_SQUARE .or. & + x == MARKER_FILLED_TRIANGLE .or. & + x == MARKER_PLUS .or. & + x == MARKER_X) then + + ! Only alter the value if the marker is a known type + this%m_markerType = x + end if + end subroutine + +! ------------------------------------------------------------------------------ + pure function spd_get_marker_scaling(this) result(x) + !! Gets the marker scaling. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + real(real32) :: x + !! The scaling factor. + x = this%m_markerSize + end function + +! -------------------- + subroutine spd_set_marker_scaling(this, x) + !! Sets the marker scaling. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + real(real32), intent(in) :: x + !! The scaling factor. + this%m_markerSize = x + end subroutine + +! ------------------------------------------------------------------------------ + pure function spd_get_marker_frequency(this) result(x) + !! Gets the marker frequency. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + integer(int32) :: x + !! The marker frequency. + x = this%m_markerFrequency + end function + +! -------------------- + subroutine spd_set_marker_frequency(this, x) + !! Sets the marker frequency. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + integer(int32), intent(in) :: x + !! The marker frequency. + this%m_markerFrequency = x + end subroutine + +! ------------------------------------------------------------------------------ + pure function spd_get_simplify_data(this) result(x) + !! Gets a value determining if the stored data should be + !! simplified (reduced) before passing to GNUPLOT. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + logical :: x + !! True if the data should be simplified prior to sending + !! to GNUPLOT; else, false to leave the data alone. + x = this%m_simplifyData + end function + +! -------------------- + subroutine spd_set_simplify_data(this, x) + !! Sets a value determining if the stored data should be + !! simplified (reduced) before passing to GNUPLOT. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + logical, intent(in) :: x + !! True if the data should be simplified prior to sending + !! to GNUPLOT; else, false to leave the data alone. + this%m_simplifyData = x + end subroutine + +! ------------------------------------------------------------------------------ + pure function spd_get_simplify_factor(this) result(x) + !! Gets a factor used to establish the simplification tolerance. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + real(real64) :: x + !! The scaling factor. + x = this%m_simplifyFactor + end function + +! -------------------- + subroutine spd_set_simplify_factor(this, x) + !! Sets a factor used to establish the simplification tolerance. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + real(real64), intent(in) :: x + !! The scaling factor. + this%m_simplifyFactor = x + end subroutine + +! ------------------------------------------------------------------------------ + pure function spd_get_data_dependent_colors(this) result(rst) + !! Gets a value determing if data-dependent colors should be used. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + logical :: rst + !! True if data-dependent colors should be used; else, false. + rst = this%m_dataDependentColors + end function + +! -------------------- + subroutine spd_set_data_dependent_colors(this, x) + !! Sets a value determing if data-dependent colors should be used. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + logical, intent(in) :: x + !! True if data-dependent colors should be used; else, false. + this%m_dataDependentColors = x + end subroutine + +! ****************************************************************************** +! ADDED: JUNE 28, 2021 - JAC +! ------------------------------------------------------------------------------ + pure function spd_get_filled(this) result(rst) + !! Gets a logical value determining if a filled curve should be drawn. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + logical :: rst + !! True if the curve should be filled; else, false. + rst = this%m_filledCurve + end function + +! -------------------- + subroutine spd_set_filled(this, x) + !! Sets a logical value determining if a filled curve should be drawn. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + logical, intent(in) :: x + !! True if the curve should be filled; else, false. + this%m_filledCurve = x + end subroutine + +! ****************************************************************************** +! ADDED: JAN 12, 2024 - JAC +! ------------------------------------------------------------------------------ + pure function spd_get_use_var_point_size(this) result(rst) + !! Gets a logical value determining if variable sized data points + !! should be used. The default is false, such that points will be of + !! a constant size. + class(scatter_plot_data), intent(in) :: this + !! The scatter_plot_data object. + logical :: rst + !! True if variable size points should be used; else, false. + rst = this%m_useVariableSizePoints + end function + +! -------------------- + subroutine spd_set_use_var_point_size(this, x) + !! Sets a logical value determining if variable sized data points + !! should be used. The default is false, such that points will be of + !! a constant size. + class(scatter_plot_data), intent(inout) :: this + !! The scatter_plot_data object. + logical, intent(in) :: x + !! True if variable size points should be used; else, false. + this%m_useVariableSizePoints = x + end subroutine + +! ------------------------------------------------------------------------------ +end module \ No newline at end of file diff --git a/src/fplot_plot_data_2d.f90 b/src/fplot_plot_data_2d.f90 index 5133c25..8310bf0 100644 --- a/src/fplot_plot_data_2d.f90 +++ b/src/fplot_plot_data_2d.f90 @@ -1,372 +1,457 @@ -! fplot_plot_data_2d.f90 +module fplot_plot_data_2d + use iso_fortran_env + use fplot_plot_data + use fplot_simplify + use fplot_errors + use ferror + use strings + implicit none + private + public :: plot_data_2d + + type, extends(scatter_plot_data) :: plot_data_2d + !! Defines a two-dimensional plot data set. + real(real64), private, allocatable, dimension(:,:) :: m_data + !! An N-by-2 matrix containing the x and y data points. + !> Draw against the secondary y axis? + logical, private :: m_useY2 = .false. + !! Draw against the secondary y axis? + contains + procedure, public :: get_axes_string => pd2d_get_axes_cmd + procedure, public :: get_data_string => pd2d_get_data_cmd + procedure, public :: get_count => pd2d_get_data_count + procedure, public :: get_x => pd2d_get_x_data + procedure, public :: set_x => pd2d_set_x_data + procedure, public :: get_y => pd2d_get_y_data + procedure, public :: set_y => pd2d_set_y_data + procedure, public :: get_draw_against_y2 => pd2d_get_draw_against_y2 + procedure, public :: set_draw_against_y2 => pd2d_set_draw_against_y2 + generic, public :: define_data => pd2d_set_data_1, pd2d_set_data_2 + procedure :: pd2d_set_data_1 + procedure :: pd2d_set_data_2 + procedure, public :: get_x_data => pd2d_get_x_array + procedure, public :: get_y_data => pd2d_get_y_array + procedure, public :: get_color_data => pd2d_get_c_array + procedure, public :: get_point_size_data => pd2d_get_ps_array + end type -submodule (fplot_core) fplot_plot_data_2d contains ! ------------------------------------------------------------------------------ - module function pd2d_get_axes_cmd(this) result(x) - ! Arguments - class(plot_data_2d), intent(in) :: this - character(len = :), allocatable :: x - - ! Define which axes the data is to be plotted against - if (this%get_draw_against_y2()) then - x = "axes x1y2" - else - x = "axes x1y1" - end if - end function +function pd2d_get_axes_cmd(this) result(x) + !! Gets the GNUPLOT command string defining which axes the data + !! is to be plotted against. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + character(len = :), allocatable :: x + !! The command string. + + ! Define which axes the data is to be plotted against + if (this%get_draw_against_y2()) then + x = "axes x1y2" + else + x = "axes x1y1" + end if +end function ! ------------------------------------------------------------------------------ - module function pd2d_get_data_cmd(this) result(x) - ! Arguments - class(plot_data_2d), intent(in) :: this - character(len = :), allocatable :: x - - ! Local Variables - type(string_builder) :: str - integer(int32) :: i - character :: delimiter, nl - real(real64), allocatable, dimension(:) :: xv, yv, cv, ps - real(real64), allocatable, dimension(:,:) :: pts - real(real64) :: tol, maxy, miny, eps - logical :: usecolors, usevarpoints - - ! Initialization - call str%initialize() - delimiter = achar(9) ! tab delimiter - nl = new_line(nl) - usecolors = this%get_use_data_dependent_colors() - usevarpoints = this%get_use_variable_size_points() - - ! Process - xv = this%get_x_data() - yv = this%get_y_data() - if (usecolors .and. usevarpoints) then - cv = this%get_color_data() - ps = this%get_point_size_data() - do i = 1, size(xv) - call str%append(to_string(xv(i))) - call str%append(delimiter) - call str%append(to_string(yv(i))) - call str%append(delimiter) - call str%append(to_string(ps(i))) - call str%append(delimiter) - call str%append(to_string(cv(i))) - call str%append(nl) - end do - else if (usecolors .and. .not.usevarpoints) then - cv = this%get_color_data() - do i = 1, size(xv) - call str%append(to_string(xv(i))) - call str%append(delimiter) - call str%append(to_string(yv(i))) +function pd2d_get_data_cmd(this) result(x) + !! Gets the GNUPLOT command string containing the actual data + !! to plot. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + character(len = :), allocatable :: x + !! The command string. + + ! Local Variables + type(string_builder) :: str + integer(int32) :: i + character :: delimiter, nl + real(real64), allocatable, dimension(:) :: xv, yv, cv, ps + real(real64), allocatable, dimension(:,:) :: pts + real(real64) :: tol, maxy, miny, eps + logical :: usecolors, usevarpoints + + ! Initialization + call str%initialize() + delimiter = achar(9) ! tab delimiter + nl = new_line(nl) + usecolors = this%get_use_data_dependent_colors() + usevarpoints = this%get_use_variable_size_points() + + ! Process + xv = this%get_x_data() + yv = this%get_y_data() + if (usecolors .and. usevarpoints) then + cv = this%get_color_data() + ps = this%get_point_size_data() + do i = 1, size(xv) + call str%append(to_string(xv(i))) + call str%append(delimiter) + call str%append(to_string(yv(i))) + call str%append(delimiter) + call str%append(to_string(ps(i))) + call str%append(delimiter) + call str%append(to_string(cv(i))) + call str%append(nl) + end do + else if (usecolors .and. .not.usevarpoints) then + cv = this%get_color_data() + do i = 1, size(xv) + call str%append(to_string(xv(i))) + call str%append(delimiter) + call str%append(to_string(yv(i))) + call str%append(delimiter) + call str%append(to_string(cv(i))) + call str%append(nl) + end do + else if (.not.usecolors .and. usevarpoints) then + ps = this%get_point_size_data() + do i = 1, size(xv) + call str%append(to_string(xv(i))) + call str%append(delimiter) + call str%append(to_string(yv(i))) + call str%append(delimiter) + call str%append(to_string(ps(i))) + call str%append(nl) + end do + else + if (this%get_simplify_data()) then + maxy = maxval(yv) + miny = minval(yv) + tol = abs(this%get_simplification_factor() * (maxy - miny)) + eps = 10.0d0 * epsilon(eps) + if (tol < eps) tol = eps + pts = simplify_polyline(xv, yv, tol) + do i = 1, size(pts, 1) + call str%append(to_string(pts(i,1))) call str%append(delimiter) - call str%append(to_string(cv(i))) + call str%append(to_string(pts(i,2))) call str%append(nl) end do - else if (.not.usecolors .and. usevarpoints) then - ps = this%get_point_size_data() + else do i = 1, size(xv) call str%append(to_string(xv(i))) call str%append(delimiter) call str%append(to_string(yv(i))) - call str%append(delimiter) - call str%append(to_string(ps(i))) call str%append(nl) end do - else - if (this%get_simplify_data()) then - maxy = maxval(yv) - miny = minval(yv) - tol = abs(this%get_simplification_factor() * (maxy - miny)) - eps = 10.0d0 * epsilon(eps) - if (tol < eps) tol = eps - pts = simplify_polyline(xv, yv, tol) - do i = 1, size(pts, 1) - call str%append(to_string(pts(i,1))) - call str%append(delimiter) - call str%append(to_string(pts(i,2))) - call str%append(nl) - end do - else - do i = 1, size(xv) - call str%append(to_string(xv(i))) - call str%append(delimiter) - call str%append(to_string(yv(i))) - call str%append(nl) - end do - end if end if - - ! End - x = char(str%to_string()) - end function + end if + + ! End + x = char(str%to_string()) +end function ! ------------------------------------------------------------------------------ - pure module function pd2d_get_data_count(this) result(x) - class(plot_data_2d), intent(in) :: this - integer(int32) :: x - if (allocated(this%m_data)) then - x = size(this%m_data, 1) - else - x = 0 - end if - end function +pure function pd2d_get_data_count(this) result(x) + !! Gets the number of data points. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + integer(int32) :: x + !! The number of data points. + if (allocated(this%m_data)) then + x = size(this%m_data, 1) + else + x = 0 + end if +end function ! ------------------------------------------------------------------------------ - pure module function pd2d_get_x_data(this, index) result(x) - class(plot_data_2d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - if (allocated(this%m_data)) then - x = this%m_data(index, 1) - else - x = 0.0d0 - end if - end function +pure function pd2d_get_x_data(this, index) result(x) + !! Gets the requested X data point. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + integer(int32), intent(in) :: index + !! The index of the data point to retrieve. + real(real64) :: x + !! The requested data point. + if (allocated(this%m_data)) then + x = this%m_data(index, 1) + else + x = 0.0d0 + end if +end function ! -------------------- - module subroutine pd2d_set_x_data(this, index, x) - class(plot_data_2d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - if (allocated(this%m_data)) then - this%m_data(index, 1) = x - end if - end subroutine +subroutine pd2d_set_x_data(this, index, x) + !! Sets the requested X data point. + class(plot_data_2d), intent(inout) :: this + !! The plot_data_2d object. + integer(int32), intent(in) :: index + !! The index of the data point to replace. + real(real64), intent(in) :: x + !! The data point. + if (allocated(this%m_data)) then + this%m_data(index, 1) = x + end if +end subroutine ! ------------------------------------------------------------------------------ - pure module function pd2d_get_y_data(this, index) result(x) - class(plot_data_2d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - if (allocated(this%m_data)) then - x = this%m_data(index, 2) - else - x = 0.0d0 - end if - end function +pure function pd2d_get_y_data(this, index) result(x) + !! Gets the requested Y data point. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + integer(int32), intent(in) :: index + !! The index of the data point to retrieve. + real(real64) :: x + !! The requested data point. + if (allocated(this%m_data)) then + x = this%m_data(index, 2) + else + x = 0.0d0 + end if +end function ! -------------------- - module subroutine pd2d_set_y_data(this, index, x) - class(plot_data_2d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - if (allocated(this%m_data)) then - this%m_data(index, 2) = x - end if - end subroutine +subroutine pd2d_set_y_data(this, index, x) + !! Sets the requested Y data point. + class(plot_data_2d), intent(inout) :: this + !! The plot_data_2d object. + integer(int32), intent(in) :: index + !! The index of the data point to replace. + real(real64), intent(in) :: x + !! The data point. + if (allocated(this%m_data)) then + this%m_data(index, 2) = x + end if +end subroutine ! ------------------------------------------------------------------------------ - module subroutine pd2d_set_data_1(this, x, y, c, ps, err) - ! Arguments - class(plot_data_2d), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y - real(real64), intent(in), dimension(:), optional :: c, ps - class(errors), intent(inout), optional, target :: err - - ! Local Variables - integer(int32) :: i, n, flag, ncols - class(errors), pointer :: errmgr - type(errors), target :: deferr - - ! Initialization - n = size(x) - ncols = 2 - if (present(c)) ncols = ncols + 1 - if (present(ps)) ncols = ncols + 1 - if (present(err)) then - errmgr => err - else - errmgr => deferr - end if +subroutine pd2d_set_data_1(this, x, y, c, ps, err) + !! Defines the data set to plot. + class(plot_data_2d), intent(inout) :: this + !! The plot_data_2d object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x coordinate data. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y coordinate data. + real(real64), intent(in), dimension(:), optional :: c + !! An N-element array defining how color should vary with the + !! current colormap for each value. + real(real64), intent(in), dimension(:), optional :: ps + !! An N-element array defining the size of each data point. + class(errors), intent(inout), optional, target :: err + !! An error-handling object. - ! Input Check - if (size(y) /= n) then - call errmgr%report_error("pd2d_set_data_1", & - "The input arrays are not the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) - return - end if - if (present(c)) then - if (size(c) /= n) then - call errmgr%report_error("pd2d_set_data_1", & - "The input arrays are not the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) - return - end if - end if - if (present(ps)) then - if (size(ps) /= n) then - call errmgr%report_error("pd2d_set_data_1", & - "The input arrays are not the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) - return - end if - end if + ! Local Variables + integer(int32) :: i, n, flag, ncols + class(errors), pointer :: errmgr + type(errors), target :: deferr + + ! Initialization + n = size(x) + ncols = 2 + if (present(c)) ncols = ncols + 1 + if (present(ps)) ncols = ncols + 1 + if (present(err)) then + errmgr => err + else + errmgr => deferr + end if - ! Process - if (allocated(this%m_data)) deallocate(this%m_data) - allocate(this%m_data(n, ncols), stat = flag) - if (flag /= 0) then - call errmgr%report_error("pd2d_set_data_1", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + ! Input Check + if (size(y) /= n) then + call report_array_size_mismatch_error(errmgr, "pd2d_set_data_1", & + "y", n, size(y)) + return + end if + if (present(c)) then + if (size(c) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pd2d_set_data_1", "c", n, size(c)) return end if - ! if (present(c)) then - ! call this%set_use_data_dependent_colors(.true.) - ! do concurrent (i = 1:n) - ! this%m_data(i, 1) = x(i) - ! this%m_data(i, 2) = y(i) - ! this%m_data(i, 3) = c(i) - ! end do - ! else - ! call this%set_use_data_dependent_colors(.false.) - ! do concurrent (i = 1:n) - ! this%m_data(i, 1) = x(i) - ! this%m_data(i, 2) = y(i) - ! end do - ! end if - if (present(c) .and. present(ps)) then - call this%set_use_data_dependent_colors(.true.) - call this%set_use_variable_size_points(.true.) - do concurrent (i = 1:n) - this%m_data(i, 1) = x(i) - this%m_data(i, 2) = y(i) - this%m_data(i, 3) = ps(i) - this%m_data(i, 4) = c(i) - end do - else if (present(c) .and. .not.present(ps)) then - call this%set_use_data_dependent_colors(.true.) - call this%set_use_variable_size_points(.false.) - do concurrent (i = 1:n) - this%m_data(i, 1) = x(i) - this%m_data(i, 2) = y(i) - this%m_data(i, 3) = c(i) - end do - else if (.not.present(c) .and. present(ps)) then - call this%set_use_data_dependent_colors(.false.) - call this%set_use_variable_size_points(.true.) - do concurrent (i = 1:n) - this%m_data(i, 1) = x(i) - this%m_data(i, 2) = y(i) - this%m_data(i, 3) = ps(i) - end do - else - call this%set_use_data_dependent_colors(.false.) - call this%set_use_variable_size_points(.false.) - do concurrent (i = 1:n) - this%m_data(i, 1) = x(i) - this%m_data(i, 2) = y(i) - end do + end if + if (present(ps)) then + if (size(ps) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pd2d_set_data_1", "ps", n, size(ps)) + return end if - end subroutine + end if + + ! Process + if (allocated(this%m_data)) deallocate(this%m_data) + allocate(this%m_data(n, ncols), stat = flag) + if (flag /= 0) then + call report_memory_error(errmgr, "pd2d_set_data_1", flag) + return + end if + ! if (present(c)) then + ! call this%set_use_data_dependent_colors(.true.) + ! do concurrent (i = 1:n) + ! this%m_data(i, 1) = x(i) + ! this%m_data(i, 2) = y(i) + ! this%m_data(i, 3) = c(i) + ! end do + ! else + ! call this%set_use_data_dependent_colors(.false.) + ! do concurrent (i = 1:n) + ! this%m_data(i, 1) = x(i) + ! this%m_data(i, 2) = y(i) + ! end do + ! end if + if (present(c) .and. present(ps)) then + call this%set_use_data_dependent_colors(.true.) + call this%set_use_variable_size_points(.true.) + do concurrent (i = 1:n) + this%m_data(i, 1) = x(i) + this%m_data(i, 2) = y(i) + this%m_data(i, 3) = ps(i) + this%m_data(i, 4) = c(i) + end do + else if (present(c) .and. .not.present(ps)) then + call this%set_use_data_dependent_colors(.true.) + call this%set_use_variable_size_points(.false.) + do concurrent (i = 1:n) + this%m_data(i, 1) = x(i) + this%m_data(i, 2) = y(i) + this%m_data(i, 3) = c(i) + end do + else if (.not.present(c) .and. present(ps)) then + call this%set_use_data_dependent_colors(.false.) + call this%set_use_variable_size_points(.true.) + do concurrent (i = 1:n) + this%m_data(i, 1) = x(i) + this%m_data(i, 2) = y(i) + this%m_data(i, 3) = ps(i) + end do + else + call this%set_use_data_dependent_colors(.false.) + call this%set_use_variable_size_points(.false.) + do concurrent (i = 1:n) + this%m_data(i, 1) = x(i) + this%m_data(i, 2) = y(i) + end do + end if +end subroutine ! ------------------------------------------------------------------------------ - pure module function pd2d_get_draw_against_y2(this) result(x) - class(plot_data_2d), intent(in) :: this - logical :: x - x = this%m_useY2 - end function +pure function pd2d_get_draw_against_y2(this) result(x) + !! Gets a value determining if the data should be plotted against + !! the secondary y-axis. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + logical :: x + !! Returns true if the data should be plotted against the secondary + !! y-axis; else, false to plot against the primary y-axis. + x = this%m_useY2 +end function ! -------------------- - module subroutine pd2d_set_draw_against_y2(this, x) - class(plot_data_2d), intent(inout) :: this - logical, intent(in) :: x - this%m_useY2 = x - end subroutine +subroutine pd2d_set_draw_against_y2(this, x) + !! Sets a value determining if the data should be plotted against + !! the secondary y-axis. + class(plot_data_2d), intent(inout) :: this + !! The plot_data_2d object. + logical, intent(in) :: x + !! Set to true if the data should be plotted against the + !! secondary y-axis; else, false to plot against the primary y-axis. + this%m_useY2 = x +end subroutine ! ------------------------------------------------------------------------------ - module subroutine pd2d_set_data_2(this, y, err) - ! Arguments - class(plot_data_2d), intent(inout) :: this - real(real64), intent(in), dimension(:) :: y - class(errors), intent(inout), optional, target :: err - - ! Local Variables - integer(int32) :: i, n, flag - class(errors), pointer :: errmgr - type(errors), target :: deferr - - ! Initialization - n = size(y) - if (present(err)) then - errmgr => err - else - errmgr => deferr - end if +subroutine pd2d_set_data_2(this, y, err) + !! Defines the data set to plot. + class(plot_data_2d), intent(inout) :: this + !! The plot_data_2d object. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y-coordinate data. This + !! data will be plotted against its own index. + class(errors), intent(inout), optional, target :: err + !! An error-handling object. - ! Process - if (allocated(this%m_data)) deallocate(this%m_data) - allocate(this%m_data(n, 2), stat = flag) - if (flag /= 0) then - call errmgr%report_error("pd2d_set_data_2", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) - return - end if - do concurrent (i = 1:n) - this%m_data(i, 1) = real(i, real64) - this%m_data(i, 2) = y(i) - end do - end subroutine + ! Local Variables + integer(int32) :: i, n, flag + class(errors), pointer :: errmgr + type(errors), target :: deferr + + ! Initialization + n = size(y) + if (present(err)) then + errmgr => err + else + errmgr => deferr + end if + + ! Process + if (allocated(this%m_data)) deallocate(this%m_data) + allocate(this%m_data(n, 2), stat = flag) + if (flag /= 0) then + call report_memory_error(errmgr, "pd2d_set_data_2", flag) + return + end if + do concurrent (i = 1:n) + this%m_data(i, 1) = real(i, real64) + this%m_data(i, 2) = y(i) + end do +end subroutine ! ------------------------------------------------------------------------------ - module function pd2d_get_x_array(this) result(x) - ! Arguments - class(plot_data_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - - ! Process - if (allocated(this%m_data)) then - x = this%m_data(:,1) - end if - end function +function pd2d_get_x_array(this) result(x) + !! Gets the stored X data array. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + real(real64), allocatable, dimension(:) :: x + !! A copy of the stored data array. + + ! Process + if (allocated(this%m_data)) then + x = this%m_data(:,1) + end if +end function ! ------------------------------------------------------------------------------ - module function pd2d_get_y_array(this) result(x) - ! Arguments - class(plot_data_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - - ! Process - if (allocated(this%m_data)) then - x = this%m_data(:,2) - end if - end function +function pd2d_get_y_array(this) result(x) + !! Gets the stored Y data array. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + real(real64), allocatable, dimension(:) :: x + !! A copy of the stored data array. + + ! Process + if (allocated(this%m_data)) then + x = this%m_data(:,2) + end if +end function ! ****************************************************************************** ! ADDED: OCT. 8, 2020 - JAC ! ------------------------------------------------------------------------------ - module function pd2d_get_c_array(this) result(x) - ! Arguments - class(plot_data_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - - ! Process - if (allocated(this%m_data)) then - if (size(this%m_data, 2) == 3) then - x = this%m_data(:,3) - else if (size(this%m_data, 2) == 4) then - x = this%m_data(:,4) - end if +function pd2d_get_c_array(this) result(x) + !! Gets the stored color scaling data array. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + real(real64), allocatable, dimension(:) :: x + !! A copy of the stored data array. + + ! Process + if (allocated(this%m_data)) then + if (size(this%m_data, 2) == 3) then + x = this%m_data(:,3) + else if (size(this%m_data, 2) == 4) then + x = this%m_data(:,4) end if - end function + end if +end function ! ****************************************************************************** ! ADDED: JAN. 12, 2024 - JAC ! ------------------------------------------------------------------------------ - module function pd2d_get_ps_array(this) result(x) - ! Arguments - class(plot_data_2d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x - - ! Process - if (allocated(this%m_data)) then - if (size(this%m_data, 2) > 2) then - x = this%m_data(:,3) - end if +function pd2d_get_ps_array(this) result(x) + !! Gets the stored point size data array. + class(plot_data_2d), intent(in) :: this + !! The plot_data_2d object. + real(real64), allocatable, dimension(:) :: x + !! A copy of the stored data array. + + ! Process + if (allocated(this%m_data)) then + if (size(this%m_data, 2) > 2) then + x = this%m_data(:,3) end if - end function + end if +end function ! ------------------------------------------------------------------------------ -end submodule \ No newline at end of file +end module \ No newline at end of file diff --git a/src/fplot_plot_data_3d.f90 b/src/fplot_plot_data_3d.f90 index 8e268ad..eb879e6 100644 --- a/src/fplot_plot_data_3d.f90 +++ b/src/fplot_plot_data_3d.f90 @@ -1,347 +1,438 @@ -! fplot_plot_data_3d.f90 +module fplot_plot_data_3d + use iso_fortran_env + use fplot_plot_data + use fplot_errors + use fplot_simplify + use ferror + use strings + implicit none + private + public :: plot_data_3d + + type, extends(scatter_plot_data) :: plot_data_3d + !! Defines a three-dimensional plot data set. + real(real64), private, allocatable, dimension(:,:) :: m_data + !! An N-by-3 matrix containing the x, y, and z data points. + contains + procedure, public :: get_count => pd3d_get_data_count + procedure, public :: get_x => pd3d_get_x_data + procedure, public :: set_x => pd3d_set_x_data + procedure, public :: get_y => pd3d_get_y_data + procedure, public :: set_y => pd3d_set_y_data + procedure, public :: get_z => pd3d_get_z_data + procedure, public :: set_z => pd3d_set_z_data + procedure, public :: get_axes_string => pd3d_get_axes_cmd + procedure, public :: get_data_string => pd3d_get_data_cmd + procedure, public :: define_data => pd3d_set_data_1 + procedure, public :: get_x_data => pd3d_get_x_array + procedure, public :: get_y_data => pd3d_get_y_array + procedure, public :: get_z_data => pd3d_get_z_array + procedure, public :: get_color_data => pd3d_get_c_array + procedure, public :: get_point_size_data => pd3d_get_c_array + end type -submodule (fplot_core) fplot_plot_data_3d contains ! ------------------------------------------------------------------------------ - pure module function pd3d_get_data_count(this) result(x) - class(plot_data_3d), intent(in) :: this - integer(int32) :: x - if (allocated(this%m_data)) then - x = size(this%m_data, 1) - else - x = 0 - end if - end function +pure function pd3d_get_data_count(this) result(x) + !! Gets the number of data points. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + integer(int32) :: x + !! The number of data points. + if (allocated(this%m_data)) then + x = size(this%m_data, 1) + else + x = 0 + end if +end function ! ------------------------------------------------------------------------------ - pure module function pd3d_get_x_data(this, index) result(x) - class(plot_data_3d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - if (allocated(this%m_data)) then - x = this%m_data(index, 1) - else - x = 0.0d0 - end if - end function +pure function pd3d_get_x_data(this, index) result(x) + !! Gets the requested X data point. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + integer(int32), intent(in) :: index + !! The index of the data point to retrieve. + real(real64) :: x + !! The requested data point. + if (allocated(this%m_data)) then + x = this%m_data(index, 1) + else + x = 0.0d0 + end if +end function ! -------------------- - module subroutine pd3d_set_x_data(this, index, x) - class(plot_data_3d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - if (allocated(this%m_data)) then - this%m_data(index, 1) = x - end if - end subroutine +subroutine pd3d_set_x_data(this, index, x) + !! Sets the requested X data point. + class(plot_data_3d), intent(inout) :: this + !! The plot_data_3d object. + integer(int32), intent(in) :: index + !! The index of the data point to replace. + real(real64), intent(in) :: x + !! The data point. + if (allocated(this%m_data)) then + this%m_data(index, 1) = x + end if +end subroutine ! ------------------------------------------------------------------------------ - pure module function pd3d_get_y_data(this, index) result(x) - class(plot_data_3d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - if (allocated(this%m_data)) then - x = this%m_data(index, 2) - else - x = 0.0d0 - end if - end function +pure function pd3d_get_y_data(this, index) result(x) + !! Gets the requested Y data point. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + integer(int32), intent(in) :: index + !! The index of the data point to retrieve. + real(real64) :: x + !! The requested data point. + if (allocated(this%m_data)) then + x = this%m_data(index, 2) + else + x = 0.0d0 + end if +end function ! -------------------- - module subroutine pd3d_set_y_data(this, index, x) - class(plot_data_3d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - if (allocated(this%m_data)) then - this%m_data(index, 2) = x - end if - end subroutine +subroutine pd3d_set_y_data(this, index, x) + !! Sets the requested Y data point. + class(plot_data_3d), intent(inout) :: this + !! The plot_data_3d object. + integer(int32), intent(in) :: index + !! The index of the data point to replace. + real(real64), intent(in) :: x + !! The data point. + if (allocated(this%m_data)) then + this%m_data(index, 2) = x + end if +end subroutine ! ------------------------------------------------------------------------------ - pure module function pd3d_get_z_data(this, index) result(x) - class(plot_data_3d), intent(in) :: this - integer(int32), intent(in) :: index - real(real64) :: x - if (allocated(this%m_data)) then - x = this%m_data(index, 3) - else - x = 0.0d0 - end if - end function +pure function pd3d_get_z_data(this, index) result(x) + !! Gets the requested Z data point. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + integer(int32), intent(in) :: index + !! The index of the data point to retrieve. + real(real64) :: x + !! The requested data point. + if (allocated(this%m_data)) then + x = this%m_data(index, 3) + else + x = 0.0d0 + end if +end function ! -------------------- - module subroutine pd3d_set_z_data(this, index, x) - class(plot_data_3d), intent(inout) :: this - integer(int32), intent(in) :: index - real(real64), intent(in) :: x - if (allocated(this%m_data)) then - this%m_data(index, 3) = x - end if - end subroutine +subroutine pd3d_set_z_data(this, index, x) + !! Sets the requested Z data point. + class(plot_data_3d), intent(inout) :: this + !! The plot_data_3d object. + integer(int32), intent(in) :: index + !! The index of the data point to replace. + real(real64), intent(in) :: x + !! The data point. + if (allocated(this%m_data)) then + this%m_data(index, 3) = x + end if +end subroutine ! ------------------------------------------------------------------------------ - module function pd3d_get_axes_cmd(this) result(x) - ! Arguments - class(plot_data_3d), intent(in) :: this - character(len = :), allocatable :: x +function pd3d_get_axes_cmd(this) result(x) + !! Gets the GNUPLOT command string defining which axes the data + !! is to be plotted against. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + character(len = :), allocatable :: x + !! The command string. - ! Output - x = "" - end function + ! Output + x = "" +end function ! ------------------------------------------------------------------------------ - module function pd3d_get_data_cmd(this) result(x) - ! Arguments - class(plot_data_3d), intent(in) :: this - character(len = :), allocatable :: x +function pd3d_get_data_cmd(this) result(x) + !! Gets the GNUPLOT command string containing the actual data to plot. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + character(len = :), allocatable :: x + !! The command string. - ! Local Variables - type(string_builder) :: str - integer(int32) :: i - character :: delimiter, nl - real(real64), allocatable, dimension(:) :: xv, yv, zv, cv, ps - real(real64), allocatable, dimension(:,:) :: pts - real(real64) :: tol, maxz, minz, eps - logical :: usecolors, usevarpoints + ! Local Variables + type(string_builder) :: str + integer(int32) :: i + character :: delimiter, nl + real(real64), allocatable, dimension(:) :: xv, yv, zv, cv, ps + real(real64), allocatable, dimension(:,:) :: pts + real(real64) :: tol, maxz, minz, eps + logical :: usecolors, usevarpoints - ! Initialization - call str%initialize() - delimiter = achar(9) ! tab delimiter - nl = new_line(nl) - usecolors = this%get_use_data_dependent_colors() - usevarpoints = this%get_use_variable_size_points() + ! Initialization + call str%initialize() + delimiter = achar(9) ! tab delimiter + nl = new_line(nl) + usecolors = this%get_use_data_dependent_colors() + usevarpoints = this%get_use_variable_size_points() - ! Process - xv = this%get_x_data() - yv = this%get_y_data() - zv = this%get_z_data() - if (usecolors .and. usevarpoints) then - cv = this%get_color_data() - ps = this%get_point_size_data() - do i = 1, size(xv) - call str%append(to_string(xv(i))) + ! Process + xv = this%get_x_data() + yv = this%get_y_data() + zv = this%get_z_data() + if (usecolors .and. usevarpoints) then + cv = this%get_color_data() + ps = this%get_point_size_data() + do i = 1, size(xv) + call str%append(to_string(xv(i))) + call str%append(delimiter) + call str%append(to_string(yv(i))) + call str%append(delimiter) + call str%append(to_string(zv(i))) + call str%append(delimiter) + call str%append(to_string(ps(i))) + call str%append(delimiter) + call str%append(to_string(cv(i))) + call str%append(nl) + end do + else if (usecolors .and. .not.usevarpoints) then + cv = this%get_color_data() + do i = 1, size(xv) + call str%append(to_string(xv(i))) + call str%append(delimiter) + call str%append(to_string(yv(i))) + call str%append(delimiter) + call str%append(to_string(zv(i))) + call str%append(delimiter) + call str%append(to_string(cv(i))) + call str%append(nl) + end do + else if (.not.usecolors .and. usevarpoints) then + ps = this%get_point_size_data() + do i = 1, size(xv) + call str%append(to_string(xv(i))) + call str%append(delimiter) + call str%append(to_string(yv(i))) + call str%append(delimiter) + call str%append(to_string(zv(i))) + call str%append(delimiter) + call str%append(to_string(ps(i))) + call str%append(nl) + end do + else + if (this%get_simplify_data()) then + maxz = maxval(zv) + minz = minval(zv) + tol = abs(this%get_simplification_factor() * (maxz - minz)) + eps = 10.0d0 * epsilon(eps) + if (tol < eps) tol = eps + pts = simplify_polyline(xv, yv, zv, tol) + do i = 1, size(pts, 1) + call str%append(to_string(pts(i,1))) call str%append(delimiter) - call str%append(to_string(yv(i))) - call str%append(delimiter) - call str%append(to_string(zv(i))) + call str%append(to_string(pts(i,2))) call str%append(delimiter) - call str%append(to_string(ps(i))) - call str%append(delimiter) - call str%append(to_string(cv(i))) + call str%append(to_string(pts(i,3))) call str%append(nl) end do - else if (usecolors .and. .not.usevarpoints) then - cv = this%get_color_data() - do i = 1, size(xv) - call str%append(to_string(xv(i))) - call str%append(delimiter) - call str%append(to_string(yv(i))) - call str%append(delimiter) - call str%append(to_string(zv(i))) - call str%append(delimiter) - call str%append(to_string(cv(i))) - call str%append(nl) - end do - else if (.not.usecolors .and. usevarpoints) then - ps = this%get_point_size_data() + else do i = 1, size(xv) call str%append(to_string(xv(i))) call str%append(delimiter) call str%append(to_string(yv(i))) call str%append(delimiter) call str%append(to_string(zv(i))) - call str%append(delimiter) - call str%append(to_string(ps(i))) call str%append(nl) end do - else - if (this%get_simplify_data()) then - maxz = maxval(zv) - minz = minval(zv) - tol = abs(this%get_simplification_factor() * (maxz - minz)) - eps = 10.0d0 * epsilon(eps) - if (tol < eps) tol = eps - pts = simplify_polyline(xv, yv, zv, tol) - do i = 1, size(pts, 1) - call str%append(to_string(pts(i,1))) - call str%append(delimiter) - call str%append(to_string(pts(i,2))) - call str%append(delimiter) - call str%append(to_string(pts(i,3))) - call str%append(nl) - end do - else - do i = 1, size(xv) - call str%append(to_string(xv(i))) - call str%append(delimiter) - call str%append(to_string(yv(i))) - call str%append(delimiter) - call str%append(to_string(zv(i))) - call str%append(nl) - end do - end if end if + end if - ! End - x = char(str%to_string()) - end function + ! End + x = char(str%to_string()) +end function ! ------------------------------------------------------------------------------ - module subroutine pd3d_set_data_1(this, x, y, z, c, ps, err) - ! Arguments - class(plot_data_3d), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, z - real(real64), intent(in), dimension(:), optional :: c, ps - class(errors), intent(inout), optional, target :: err +subroutine pd3d_set_data_1(this, x, y, z, c, ps, err) + !! Defines the data set. + class(plot_data_3d), intent(inout) :: this + !! The plot_data_3d object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x coordinate data. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y coordinate data. + real(real64), intent(in), dimension(:) :: z + !! An N-element array containing the z coordinate data. + real(real64), intent(in), dimension(:), optional :: c + !! An N-element array defining how color should vary with the + !! current colormap for each value. + real(real64), intent(in), dimension(:), optional :: ps + !! An N-element array defining the size of each data point. + class(errors), intent(inout), optional, target :: err + !! An error handling object. - ! Local Variables - integer(int32) :: i, n, flag, ncols - class(errors), pointer :: errmgr - type(errors), target :: deferr + ! Local Variables + integer(int32) :: i, n, flag, ncols + class(errors), pointer :: errmgr + type(errors), target :: deferr - ! Initialization - n = size(x) - ncols = 3 - if (present(c)) ncols = ncols + 1 - if (present(ps)) ncols = ncols + 1 - if (present(err)) then - errmgr => err - else - errmgr => deferr - end if + ! Initialization + n = size(x) + ncols = 3 + if (present(c)) ncols = ncols + 1 + if (present(ps)) ncols = ncols + 1 + if (present(err)) then + errmgr => err + else + errmgr => deferr + end if - ! Input Check - if (size(y) /= n .or. size(z) /= n) then - call errmgr%report_error("pd3d_set_data_1", & - "The input arrays are not the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + ! Input Check + if (size(y) /= n) then + call report_array_size_mismatch_error(errmgr, "pd3d_set_data_1", & + "y", n, size(y)) + return + end if + if (size(z) /= n) then + call report_array_size_mismatch_error(errmgr, "pd3d_set_data_1", & + "z", n, size(z)) + return + end if + if (present(c)) then + if (size(c) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pd3d_set_data_1", "c", n, size(c)) return end if - if (present(c)) then - if (size(c) /= n) then - call errmgr%report_error("pd3d_set_data_1", & - "The input arrays are not the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) - return - end if + end if + if (present(ps)) then + if (size(ps) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pd3d_set_data_1", "ps", n, size(ps)) end if + end if - ! Process - if (allocated(this%m_data)) deallocate(this%m_data) - allocate(this%m_data(n, ncols), stat = flag) - if (flag /= 0) then - call errmgr%report_error("pd3d_set_data_1", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) - return - end if - if (present(c) .and. present(ps)) then - call this%set_use_data_dependent_colors(.true.) - call this%set_use_variable_size_points(.true.) - do concurrent (i = 1:n) - this%m_data(i, 1) = x(i) - this%m_data(i, 2) = y(i) - this%m_data(i, 3) = z(i) - this%m_data(i, 4) = ps(i) - this%m_data(i, 5) = c(i) - end do - else if (present(c) .and. .not.present(ps)) then - call this%set_use_data_dependent_colors(.true.) - call this%set_use_variable_size_points(.false.) - do concurrent (i = 1:n) - this%m_data(i, 1) = x(i) - this%m_data(i, 2) = y(i) - this%m_data(i, 3) = z(i) - this%m_data(i, 4) = c(i) - end do - else if (.not.present(c) .and. present(ps)) then - call this%set_use_data_dependent_colors(.false.) - call this%set_use_variable_size_points(.true.) - do concurrent (i = 1:n) - this%m_data(i, 1) = x(i) - this%m_data(i, 2) = y(i) - this%m_data(i, 3) = z(i) - this%m_data(i, 4) = ps(i) - end do - else - call this%set_use_data_dependent_colors(.false.) - call this%set_use_variable_size_points(.false.) - do concurrent (i = 1:n) - this%m_data(i, 1) = x(i) - this%m_data(i, 2) = y(i) - this%m_data(i, 3) = z(i) - end do - end if - end subroutine + ! Process + if (allocated(this%m_data)) deallocate(this%m_data) + allocate(this%m_data(n, ncols), stat = flag) + if (flag /= 0) then + call report_memory_error(errmgr, "pd3d_set_data_1", flag) + return + end if + if (present(c) .and. present(ps)) then + call this%set_use_data_dependent_colors(.true.) + call this%set_use_variable_size_points(.true.) + do concurrent (i = 1:n) + this%m_data(i, 1) = x(i) + this%m_data(i, 2) = y(i) + this%m_data(i, 3) = z(i) + this%m_data(i, 4) = ps(i) + this%m_data(i, 5) = c(i) + end do + else if (present(c) .and. .not.present(ps)) then + call this%set_use_data_dependent_colors(.true.) + call this%set_use_variable_size_points(.false.) + do concurrent (i = 1:n) + this%m_data(i, 1) = x(i) + this%m_data(i, 2) = y(i) + this%m_data(i, 3) = z(i) + this%m_data(i, 4) = c(i) + end do + else if (.not.present(c) .and. present(ps)) then + call this%set_use_data_dependent_colors(.false.) + call this%set_use_variable_size_points(.true.) + do concurrent (i = 1:n) + this%m_data(i, 1) = x(i) + this%m_data(i, 2) = y(i) + this%m_data(i, 3) = z(i) + this%m_data(i, 4) = ps(i) + end do + else + call this%set_use_data_dependent_colors(.false.) + call this%set_use_variable_size_points(.false.) + do concurrent (i = 1:n) + this%m_data(i, 1) = x(i) + this%m_data(i, 2) = y(i) + this%m_data(i, 3) = z(i) + end do + end if +end subroutine ! ------------------------------------------------------------------------------ - module function pd3d_get_x_array(this) result(x) - ! Arguments - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x +function pd3d_get_x_array(this) result(x) + !! Gets the stored X data array. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + real(real64), allocatable, dimension(:) :: x + !! A copy of the stored data array. - ! Process - if (allocated(this%m_data)) then - x = this%m_data(:,1) - end if - end function + ! Process + if (allocated(this%m_data)) then + x = this%m_data(:,1) + end if +end function ! ------------------------------------------------------------------------------ - module function pd3d_get_y_array(this) result(x) - ! Arguments - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x +function pd3d_get_y_array(this) result(x) + !! Gets the stored Y data array. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + real(real64), allocatable, dimension(:) :: x + !! A copy of the stored data array. - ! Process - if (allocated(this%m_data)) then - x = this%m_data(:,2) - end if - end function + ! Process + if (allocated(this%m_data)) then + x = this%m_data(:,2) + end if +end function ! ------------------------------------------------------------------------------ - module function pd3d_get_z_array(this) result(x) - ! Arguments - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x +function pd3d_get_z_array(this) result(x) + !! Gets the stored Z data array. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + real(real64), allocatable, dimension(:) :: x + !! A copy of the stored data array. - ! Process - if (allocated(this%m_data)) then - x = this%m_data(:,3) - end if - end function + ! Process + if (allocated(this%m_data)) then + x = this%m_data(:,3) + end if +end function ! ****************************************************************************** ! ADDED: OCT. 9, 2020 - JAC ! ------------------------------------------------------------------------------ - module function pd3d_get_c_array(this) result(x) - ! Arguments - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x +function pd3d_get_c_array(this) result(x) + !! Gets the stored color scaling data array. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + real(real64), allocatable, dimension(:) :: x + !! A copy of the stored data array. - ! Process - if (allocated(this%m_data)) then - if (size(this%m_data, 2) == 4) then - x = this%m_data(:,4) - else if (size(this%m_data, 2) == 5) then - x = this%m_data(:,5) - end if + ! Process + if (allocated(this%m_data)) then + if (size(this%m_data, 2) == 4) then + x = this%m_data(:,4) + else if (size(this%m_data, 2) == 5) then + x = this%m_data(:,5) end if - end function + end if +end function ! ****************************************************************************** ! ADDED: JAN. 12, 2020 - JAC ! ------------------------------------------------------------------------------ - module function pd3d_get_ps_array(this) result(x) - ! Arguments - class(plot_data_3d), intent(in) :: this - real(real64), allocatable, dimension(:) :: x +function pd3d_get_ps_array(this) result(x) + !! Gets the stored point scaling data array. + class(plot_data_3d), intent(in) :: this + !! The plot_data_3d object. + real(real64), allocatable, dimension(:) :: x + !! A copy of the stored data array. - ! Process - if (allocated(this%m_data)) then - if (size(this%m_data, 2) > 3) then - x = this%m_data(:,4) - end if + ! Process + if (allocated(this%m_data)) then + if (size(this%m_data, 2) > 3) then + x = this%m_data(:,4) end if - end function + end if +end function ! ------------------------------------------------------------------------------ -end submodule \ No newline at end of file +end module \ No newline at end of file diff --git a/src/fplot_plot_data_bar.f90 b/src/fplot_plot_data_bar.f90 index 1b26440..1b1159a 100644 --- a/src/fplot_plot_data_bar.f90 +++ b/src/fplot_plot_data_bar.f90 @@ -1,11 +1,70 @@ ! fplot_plot_data_bar.f90 -submodule (fplot_core) fplot_plot_data_bar +module fplot_plot_data_bar + use iso_fortran_env + use fplot_plot_data + use fplot_errors + use fplot_colors + use strings + use ferror + implicit none + private + public :: plot_data_bar + + type, extends(plot_data_colored) :: plot_data_bar + !! Defines a data set tailored to bar charts. + type(string), private, allocatable, dimension(:) :: m_axisLabels + !! An array containing axis labels to associate with each bar. + real(real64), private, allocatable, dimension(:,:) :: m_barData + !! An array of data defining each bar - the matrix contains + !! multiple columns to allow multiple bars per label. + logical, private :: m_useAxisLabels = .true. + !! Determines if the axis labels should be used - only applicable + !! if there is existing data stored in m_axisLabels & m_axisLabels + !! is the same size as m_barData. + logical, private :: m_useY2 = .false. + !! Draw against the secondary y axis? + logical, private :: m_filled = .true. + !! Determines if each bar is filled. + real(real32), private :: m_alpha = 1.0 + !! The alpha value (transparency) for each bar. + contains + procedure, public :: get_count => pdb_get_count + procedure, public :: get => pdb_get_data + procedure, public :: set => pdb_set_data + procedure, public :: get_data => pdb_get_data_set + procedure, public :: get_label => pdb_get_label + procedure, public :: set_label => pdb_set_label + procedure, public :: get_use_labels => pdb_get_use_labels + procedure, public :: set_use_labels => pdb_set_use_labels + procedure, public :: get_command_string => pdb_get_cmd + procedure, public :: get_data_string => pdb_get_data_cmd + procedure, public :: get_axes_string => pdb_get_axes_cmd + procedure, public :: get_bar_per_label_count => pdb_get_col_count + procedure, public :: get_draw_against_y2 => pdb_get_use_y2 + procedure, public :: set_draw_against_y2 => pdb_set_use_y2 + procedure, public :: get_is_filled => pdb_get_is_filled + procedure, public :: set_is_filled => pdb_set_is_filled + procedure, public :: get_transparency => pdb_get_alpha + procedure, public :: set_transparency => pdb_set_alpha + generic, public :: define_data => pdb_set_data_1, pdb_set_data_2, & + pdb_set_data_3 + procedure, private :: pdb_set_data_1 + procedure, private :: pdb_set_data_2 + procedure, private :: pdb_set_data_3 + procedure, public :: set_data_1 => pdb_set_data_1_core + procedure, public :: set_data_2 => pdb_set_data_2_core + procedure, public :: set_data_3 => pdb_set_data_3_core + end type + contains ! ------------------------------------------------------------------------------ -pure module function pdb_get_count(this) result(x) +pure function pdb_get_count(this) result(x) + !! Gets the number of stored data points. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. integer(int32) :: x + !! The number of stored data points. if (allocated(this%m_barData)) then x = size(this%m_barData, 1) else @@ -14,10 +73,16 @@ pure module function pdb_get_count(this) result(x) end function ! ------------------------------------------------------------------------------ -pure module function pdb_get_data(this, index, col) result(x) +pure function pdb_get_data(this, index, col) result(x) + !! Gets the requested data point. class(plot_data_bar), intent(in) :: this - integer(int32), intent(in) :: index, col + !! The plot_data_bar object. + integer(int32), intent(in) :: index + !! The data point index. + integer(int32), intent(in) :: col + !! The column index. real(real64) :: x + !! The value. if (allocated(this%m_barData)) then x = this%m_barData(index, col) else @@ -26,20 +91,30 @@ pure module function pdb_get_data(this, index, col) result(x) end function ! ------------------------------------------------------------------------------ -module subroutine pdb_set_data(this, index, col, x) +subroutine pdb_set_data(this, index, col, x) + !! Replaces the requested data point. class(plot_data_bar), intent(inout) :: this - integer(int32), intent(in) :: index, col + !! The plot_data_bar object. + integer(int32), intent(in) :: index + !! The data point index. + integer(int32), intent(in) :: col + !! The column index. real(real64), intent(in) :: x + !! The new value. if (allocated(this%m_barData)) then this%m_barData(index, col) = x end if end subroutine ! ------------------------------------------------------------------------------ -pure module function pdb_get_data_set(this, col) result(x) +pure function pdb_get_data_set(this, col) result(x) + !! Gets the requested data set. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. integer(int32), intent(in) :: col + !! The column index. real(real64), allocatable, dimension(:) :: x + !! A copy of the data set. if (allocated(this%m_barData)) then x = this%m_barData(:,col) else @@ -48,10 +123,14 @@ pure module function pdb_get_data_set(this, col) result(x) end function ! ------------------------------------------------------------------------------ -pure module function pdb_get_label(this, index) result(x) +pure function pdb_get_label(this, index) result(x) + !! Gets the axis label associated with a specific data set. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. integer(int32), intent(in) :: index + !! The index of the data set. character(len = :), allocatable :: x + !! The label. if (allocated(this%m_axisLabels)) then x = char(this%m_axisLabels(index)) else @@ -60,34 +139,46 @@ pure module function pdb_get_label(this, index) result(x) end function ! ------------------------------------------------------------------------------ -module subroutine pdb_set_label(this, index, txt) +subroutine pdb_set_label(this, index, txt) + !! Sets the axis label for a specific data set. class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. integer(int32) :: index + !! The index of the data set. character(len = *), intent(in) :: txt + !! The label. if (allocated(this%m_axisLabels)) then this%m_axisLabels(index) = txt end if end subroutine ! ------------------------------------------------------------------------------ -pure module function pdb_get_use_labels(this) result(x) +pure function pdb_get_use_labels(this) result(x) + !! Gets a value determining if labels are used to identify the data. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. logical :: x + !! Returns true if labels are used; else, false. x = this%m_useAxisLabels end function ! ------------------------------------------------------------------------------ -module subroutine pdb_set_use_labels(this, x) +subroutine pdb_set_use_labels(this, x) + !! Sets a value determining if labels are used to identify the data. class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. logical, intent(in) :: x + !! Set to true if labels are used; else, false. this%m_useAxisLabels = x end subroutine ! ------------------------------------------------------------------------------ -module function pdb_get_cmd(this) result(x) - ! Arguments +function pdb_get_cmd(this) result(x) + !! Gets the GNUPLOT command string for this object. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -151,10 +242,12 @@ module function pdb_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ -module function pdb_get_data_cmd(this) result(x) - ! Arguments +function pdb_get_data_cmd(this) result(x) + !! Gets the GNUPLOT command string defining the data for this object. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -195,10 +288,12 @@ module function pdb_get_data_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ -module function pdb_get_axes_cmd(this) result(x) - ! Arguments +function pdb_get_axes_cmd(this) result(x) + !! Gets the GNUPLOT command defining which axes to plot against. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. character(len = :), allocatable :: x + !! The command string. ! Define which axes the data is to be plotted against if (this%get_draw_against_y2()) then @@ -209,9 +304,12 @@ module function pdb_get_axes_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ -pure module function pdb_get_col_count(this) result(x) +pure function pdb_get_col_count(this) result(x) + !! Gets the number of data sets (columns). class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. integer(int32) :: x + !! The count. if (allocated(this%m_barData)) then x = size(this%m_barData, 2) else @@ -220,80 +318,112 @@ pure module function pdb_get_col_count(this) result(x) end function ! ------------------------------------------------------------------------------ -pure module function pdb_get_use_y2(this) result(x) +pure function pdb_get_use_y2(this) result(x) + !! Gets a value determining if the data should be plotted against a + !! secondary y-axis. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. logical :: x + !! Returns true to plot against a secondary y-axis; else, false. x = this%m_useY2 end function ! ------------------------------------------------------------------------------ -module subroutine pdb_set_use_y2(this, x) +subroutine pdb_set_use_y2(this, x) + !! Sets a value determining if the data should be plotted against a + !! secondary y-axis. class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. logical, intent(in) :: x + !! Set to true to plot against a secondary y-axis; else, false. this%m_useY2 = x end subroutine ! ------------------------------------------------------------------------------ -module subroutine pdb_set_data_1(this, x, err) - ! Arguments +subroutine pdb_set_data_1(this, x, err) + !! Defines a single data set. class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. real(real64), intent(in), dimension(:) :: x + !! The data to plot. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Process call this%set_data_1(x, err) end subroutine ! ------------------------------------------------------------------------------ -module subroutine pdb_set_data_2(this, labels, x, err) - ! Arguments +subroutine pdb_set_data_2(this, labels, x, err) + !! Defines data along with associated axis labels. class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. class(string), intent(in), dimension(:) :: labels + !! The axis labels to associate with the data. real(real64), intent(in), dimension(:) :: x + !! The data set. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Process call this%set_data_2(labels, x, err) end subroutine ! ------------------------------------------------------------------------------ -module subroutine pdb_set_data_3(this, labels, x, fmt, err) - ! Arguments +subroutine pdb_set_data_3(this, labels, x, fmt, err) + !! Defines data along with labels and formatting information. class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. real(real64), intent(in), dimension(:) :: labels + !! The axis labels to associate with the data. real(real64), intent(in), dimension(:) :: x + !! The data set. character(len = *), intent(in), optional :: fmt + !! The format string for the labels (e.g. '(I0)', etc.). class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Process call this%set_data_3(labels, x, fmt, err) end subroutine ! ------------------------------------------------------------------------------ -pure module function pdb_get_is_filled(this) result(x) +pure function pdb_get_is_filled(this) result(x) + !! Gets a value determining if each bar is filled. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. logical :: x + !! Returns true if the bars are to be filled; else, false. x = this%m_filled end function ! ------------------------------------------------------------------------------ -module subroutine pdb_set_is_filled(this, x) +subroutine pdb_set_is_filled(this, x) + !! Sets a value determining if each bar is filled. class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. logical, intent(in) :: x + !! Set to true if the bars are to be filled; else, false. this%m_filled = x end subroutine ! ------------------------------------------------------------------------------ -pure module function pdb_get_alpha(this) result(x) +pure function pdb_get_alpha(this) result(x) + !! Gets the alpha (transparency) for the bar color. class(plot_data_bar), intent(in) :: this + !! The plot_data_bar object. real(real32) :: x + !! The alpha value ([0, 1]). x = this%m_alpha end function ! ------------------------------------------------------------------------------ -module subroutine pdb_set_alpha(this, x) +subroutine pdb_set_alpha(this, x) + !! Gets the alpha (transparency) for the bar color. class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. real(real32), intent(in) :: x + !! The alpha value ([0, 1]). if (x > 1.0) then this%m_alpha = 1.0 else if (x < 0.0) then @@ -304,11 +434,14 @@ module subroutine pdb_set_alpha(this, x) end subroutine ! ------------------------------------------------------------------------------ -module subroutine pdb_set_data_1_core(this, x, err) - ! Arguments +subroutine pdb_set_data_1_core(this, x, err) + !! Defines the data set. class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. real(real64), intent(in), dimension(:) :: x + !! The data set. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables class(errors), pointer :: errmgr @@ -328,20 +461,23 @@ module subroutine pdb_set_data_1_core(this, x, err) if (allocated(this%m_barData)) deallocate(this%m_barData) allocate(this%m_barData(n, 1), stat = flag) if (flag /= 0) then - call errmgr%report_error("pdb_set_data_1_core", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pdb_set_data_1_core", flag) return end if this%m_barData(:,1) = x end subroutine ! ------------------------------------------------------------------------------ -module subroutine pdb_set_data_2_core(this, labels, x, err) +subroutine pdb_set_data_2_core(this, labels, x, err) ! Arguments class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. class(string), intent(in), dimension(:) :: labels + !! The axis labels. real(real64), intent(in), dimension(:) :: x + !! The data set. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables class(errors), pointer :: errmgr @@ -358,9 +494,8 @@ module subroutine pdb_set_data_2_core(this, labels, x, err) ! Input Check if (size(labels) /= n) then - call errmgr%report_error("pdb_set_data_2_core", & - "The input arrays are not the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_array_size_mismatch_error(errmgr, "pdb_set_data_2_core", & + "labels", n, size(labels)) return end if @@ -370,8 +505,7 @@ module subroutine pdb_set_data_2_core(this, labels, x, err) allocate(this%m_barData(n, 1), stat = flag) if (flag == 0) allocate(this%m_axisLabels(n), stat = flag) if (flag /= 0) then - call errmgr%report_error("pdb_set_data_2_core", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pdb_set_data_2_core", flag) return end if this%m_barData(:,1) = x @@ -379,13 +513,18 @@ module subroutine pdb_set_data_2_core(this, labels, x, err) end subroutine ! ------------------------------------------------------------------------------ -module subroutine pdb_set_data_3_core(this, labels, x, fmt, err) +subroutine pdb_set_data_3_core(this, labels, x, fmt, err) ! Arguments class(plot_data_bar), intent(inout) :: this + !! The plot_data_bar object. real(real64), intent(in), dimension(:) :: labels + !! The axis labels. real(real64), intent(in), dimension(:) :: x + !! The data set. character(len = *), intent(in), optional :: fmt + !! The format string for the labels (e.g. '(I0)', etc.). class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables class(errors), pointer :: errmgr @@ -403,17 +542,15 @@ module subroutine pdb_set_data_3_core(this, labels, x, fmt, err) ! Input Check if (size(labels) /= n) then - call errmgr%report_error("pdb_set_data_3_core", & - "The input arrays are not the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_array_size_mismatch_error(errmgr, "pdb_set_data_3_core", & + "labels", n, size(labels)) return end if ! Convert the numeric labels to strings allocate(lbls(n), stat = flag) if (flag /= 0) then - call errmgr%report_error("pdb_set_data_3_core", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pdb_set_data_3_core", flag) return end if do i = 1, n @@ -426,8 +563,7 @@ module subroutine pdb_set_data_3_core(this, labels, x, fmt, err) allocate(this%m_barData(n, 1), stat = flag) if (flag == 0) allocate(this%m_axisLabels(n), stat = flag) if (flag /= 0) then - call errmgr%report_error("pdb_set_data_3_core", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pdb_set_data_3_core", flag) return end if this%m_barData(:,1) = x @@ -435,4 +571,4 @@ module subroutine pdb_set_data_3_core(this, labels, x, fmt, err) end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_plot_data_colored.f90 b/src/fplot_plot_data_colored.f90 deleted file mode 100644 index f3bbbef..0000000 --- a/src/fplot_plot_data_colored.f90 +++ /dev/null @@ -1,39 +0,0 @@ -! fplot_plot_data_colored.f90 - -submodule (fplot_core) fplot_plot_data_colored -contains -! ------------------------------------------------------------------------------ - pure module function pdc_get_line_color(this) result(x) - class(plot_data_colored), intent(in) :: this - type(color) :: x - if (this%m_useAutoColor) then - x = color_list(this%get_color_index()) - else - x = this%m_color - end if - end function - -! -------------------- - module subroutine pdc_set_line_color(this, x) - class(plot_data_colored), intent(inout) :: this - type(color), intent(in) :: x - this%m_color = x - this%m_useAutoColor = .false. - end subroutine - -! ------------------------------------------------------------------------------ - pure module function pdc_get_color_index(this) result(x) - class(plot_data_colored), intent(in) :: this - integer(int32) :: x - x = this%m_colorIndex - end function - -! -------------------- - module subroutine pdc_set_color_index(this, x) - class(plot_data_colored), intent(inout) :: this - integer(int32), intent(in) :: x - this%m_colorIndex = x - end subroutine - -! ------------------------------------------------------------------------------ -end submodule diff --git a/src/fplot_plot_data_error_bars.f90 b/src/fplot_plot_data_error_bars.f90 index eb98166..aab2560 100644 --- a/src/fplot_plot_data_error_bars.f90 +++ b/src/fplot_plot_data_error_bars.f90 @@ -1,12 +1,63 @@ ! fplot_plot_data_error_bars.f90 -submodule (fplot_core) fplot_plot_data_error_bars +module fplot_plot_data_error_bars + use iso_fortran_env + use fplot_plot_data + use fplot_errors + use fplot_colors + use ferror + use strings + implicit none + private + public :: plot_data_error_bars + + type, extends(plot_data_colored) :: plot_data_error_bars + !! Defines a 2D error-bar based data set. + logical, private :: m_xBars = .false. + !! Display x error bars? + logical, private :: m_yBars = .false. + !! Display y error bars? + real(real64), private, allocatable, dimension(:,:) :: m_data + !! A matrix containing the raw and error data. Column 1 is for the + !! x coordinate, column 2 for the y coordinate, and the remaining + !! columns are for the error data (x, then y if applicable). + logical, private :: m_box = .false. + !! Display an error box for the case where x and y errors are + !! defined. + logical, private :: m_range = .false. + !! Plot error bars using a defined range vs. a +/- value. + contains + procedure, public :: get_command_string => pde_get_cmd + procedure, public :: get_data_string => pde_get_data_cmd + generic, public :: define_x_error_data => pde_define_x_err, & + pde_define_x_err_lim + generic, public :: define_y_error_data => pde_define_y_err, & + pde_define_y_err_lim + generic, public :: define_xy_error_data => pde_define_xy_err, & + pde_define_xy_err_lim + procedure, public :: get_plot_x_error_bars => pde_get_plot_x_err + procedure, public :: get_plot_y_error_bars => pde_get_plot_y_err + procedure, public :: get_count => pde_get_count + procedure, public :: get_use_error_box => pde_get_box + procedure, public :: set_use_error_box => pde_set_box + procedure, public :: get_use_range => pde_get_use_range + + procedure :: pde_define_x_err + procedure :: pde_define_y_err + procedure :: pde_define_xy_err + procedure :: pde_define_x_err_lim + procedure :: pde_define_y_err_lim + procedure :: pde_define_xy_err_lim + end type + contains ! ------------------------------------------------------------------------------ - module function pde_get_cmd(this) result(cmd) - ! Arguments + function pde_get_cmd(this) result(cmd) + !! Gets the appropriate GNUPLOT command string for the object. class(plot_data_error_bars), intent(in) :: this + !! The plot_data_error_bars object. character(len = :), allocatable :: cmd + !! The command string. ! Local Variables type(string_builder) :: str @@ -50,10 +101,12 @@ module function pde_get_cmd(this) result(cmd) end function ! ------------------------------------------------------------------------------ - module function pde_get_data_cmd(this) result(cmd) - ! Arguments + function pde_get_data_cmd(this) result(cmd) + !! Gets the appropriate GNUPLOT commands to plot the data itself. class(plot_data_error_bars), intent(in) :: this + !! The plot_data_error_bars object. character(len = :), allocatable :: cmd + !! The command string. ! Local Variables type(string_builder) :: str @@ -146,11 +199,18 @@ module function pde_get_data_cmd(this) result(cmd) end function ! ------------------------------------------------------------------------------ - module subroutine pde_define_x_err(this, x, y, xerr, err) - ! Arguments + subroutine pde_define_x_err(this, x, y, xerr, err) + !! Defines the x error data. class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, xerr + !! The plot_data_error_bars object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x coordinates of the data. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y coordinates of the data. + real(real64), intent(in), dimension(:) :: xerr + !! An N-element array containing the x errors at each data point. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: i, n, flag @@ -166,10 +226,15 @@ module subroutine pde_define_x_err(this, x, y, xerr, err) end if ! Input Checking - if (size(y) /= n .or. size(xerr) /= n) then - call errmgr%report_error("pde_define_x_err", & - "Input arrays must be the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + if (size(y) /= n) then + call report_array_size_mismatch_error(errmgr, "pde_define_x_err", & + "y", n, size(y)) + return + end if + + if (size(xerr) /= n) then + call report_array_size_mismatch_error(errmgr, "pde_define_x_err", & + "xerr", n, size(xerr)) return end if @@ -180,8 +245,7 @@ module subroutine pde_define_x_err(this, x, y, xerr, err) if (allocated(this%m_data)) deallocate(this%m_data) allocate(this%m_data(n, 3), stat = flag) if (flag /= 0) then - call errmgr%report_error("pde_define_x_err", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pde_define_x_err", flag) return end if do i = 1, n @@ -194,11 +258,18 @@ module subroutine pde_define_x_err(this, x, y, xerr, err) end subroutine ! ------------------------------------------------------------------------------ - module subroutine pde_define_y_err(this, x, y, yerr, err) - ! Arguments + subroutine pde_define_y_err(this, x, y, yerr, err) + !! Defines the y error data. class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, yerr + !! The plot_data_error_bars object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x coordinates of the data. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y coordinates of the data. + real(real64), intent(in), dimension(:) :: yerr + !! An N-element array containing the y errors at each data point. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: i, n, flag @@ -214,10 +285,14 @@ module subroutine pde_define_y_err(this, x, y, yerr, err) end if ! Input Checking - if (size(y) /= n .or. size(yerr) /= n) then - call errmgr%report_error("pde_define_y_err", & - "Input arrays must be the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + if (size(y) /= n) then + call report_array_size_mismatch_error(errmgr, "pde_define_y_err", & + "y", n, size(y)) + return + end if + if (size(yerr) /= n) then + call report_array_size_mismatch_error(errmgr, "pde_define_y_err", & + "yerr", n, size(yerr)) return end if @@ -228,8 +303,7 @@ module subroutine pde_define_y_err(this, x, y, yerr, err) if (allocated(this%m_data)) deallocate(this%m_data) allocate(this%m_data(n, 3), stat = flag) if (flag /= 0) then - call errmgr%report_error("pde_define_y_err", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pde_define_y_err", flag) return end if do i = 1, n @@ -242,11 +316,20 @@ module subroutine pde_define_y_err(this, x, y, yerr, err) end subroutine ! ------------------------------------------------------------------------------ - module subroutine pde_define_xy_err(this, x, y, xerr, yerr, err) - ! Arguments + subroutine pde_define_xy_err(this, x, y, xerr, yerr, err) + !! Defines x and y error data. class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, xerr, yerr + !! The plot_data_error_bars object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x coordinates of the data. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y coordinates of the data. + real(real64), intent(in), dimension(:) :: xerr + !! An N-element array containing the x errors at each data point. + real(real64), intent(in), dimension(:) :: yerr + !! An N-element array containing the y errors at each data point. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: i, n, flag @@ -262,10 +345,21 @@ module subroutine pde_define_xy_err(this, x, y, xerr, yerr, err) end if ! Input Checking - if (size(y) /= n .or. size(xerr) /= n .or. size(yerr) /= n) then - call errmgr%report_error("pde_define_xy_err", & - "Input arrays must be the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + if (size(y) /= n) then + call report_array_size_mismatch_error(errmgr, "pde_define_xy_err", & + "y", n, size(y)) + return + end if + + if (size(xerr) /= n) then + call report_array_size_mismatch_error(errmgr, "pde_define_xy_err", & + "xerr", n, size(xerr)) + return + end if + + if (size(yerr) /= n) then + call report_array_size_mismatch_error(errmgr, "pde_define_xy_err", & + "yerr", n, size(yerr)) return end if @@ -276,8 +370,7 @@ module subroutine pde_define_xy_err(this, x, y, xerr, yerr, err) if (allocated(this%m_data)) deallocate(this%m_data) allocate(this%m_data(n, 4), stat = flag) if (flag /= 0) then - call errmgr%report_error("pde_define_xy_err", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pde_define_xy_err", flag) return end if do i = 1, n @@ -292,22 +385,33 @@ module subroutine pde_define_xy_err(this, x, y, xerr, yerr, err) end subroutine ! ------------------------------------------------------------------------------ - pure module function pde_get_plot_x_err(this) result(x) + pure function pde_get_plot_x_err(this) result(x) + !! Checks to see if the x error bar data has been defined, and as + !! a result, if the x error data is to be plotted. class(plot_data_error_bars), intent(in) :: this + !! The plot_data_error_bars object. logical :: x + !! Returns true if the x error bars are to be plotted; else, false. x = this%m_xBars end function ! ------------------------------------------------------------------------------ - pure module function pde_get_plot_y_err(this) result(x) + pure function pde_get_plot_y_err(this) result(x) + !! Checks to see if the y error bar data has been defined, and as + !! a result, if the x error data is to be plotted. class(plot_data_error_bars), intent(in) :: this + !! The plot_data_error_bars object. logical :: x + !! Returns true if the y error bars are to be plotted; else, false. x = this%m_yBars end function ! ------------------------------------------------------------------------------ - pure module function pde_get_count(this) result(x) + pure function pde_get_count(this) result(x) + !! Gets the number of stored data points. class(plot_data_error_bars), intent(in) :: this + !! The plot_data_error_bars object. integer(int32) :: x + !! The number of data points. if (allocated(this%m_data)) then x = size(this%m_data, 1) else @@ -316,32 +420,59 @@ pure module function pde_get_count(this) result(x) end function ! ------------------------------------------------------------------------------ - pure module function pde_get_box(this) result(x) + pure function pde_get_box(this) result(x) + !! Checks to see if the x and y error boxes should be utilized. class(plot_data_error_bars), intent(in) :: this + !! The plot_data_error_bars object. logical :: x + !! Returns true if the error boxes are to be plotted; else, + !! false. Notice, the error boxes are only utilized if there is + !! both x and y error data defined, regardless of the value of this + !! property. x = this%m_box end function ! -------------------- - module subroutine pde_set_box(this, x) + subroutine pde_set_box(this, x) + !! Deterimines if the x and y error boxes should be utilized. class(plot_data_error_bars), intent(inout) :: this + !! The plot_data_error_bars object. logical, intent(in) :: x + !! Set to true if the error boxes are to be plotted; else, + !! false. Notice, the error boxes are only utilized if there is + !! both x and y error data defined, regardless of the value of this + !! property. this%m_box = x end subroutine ! ------------------------------------------------------------------------------ - pure module function pde_get_use_range(this) result(x) + pure function pde_get_use_range(this) result(x) + !! Gets a value determining if a defined range is being used + !! to define the error bar extremes. class(plot_data_error_bars), intent(in) :: this + !! The plot_data_error_bars object. logical :: x + !! True if a defined range is being used; else, false. x = this%m_range end function ! ------------------------------------------------------------------------------ - module subroutine pde_define_x_err_lim(this, x, y, xmin, xmax, err) - ! Arguments + subroutine pde_define_x_err_lim(this, x, y, xmin, xmax, err) + !! Defines the x error data. class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, xmin, xmax + !! The plot_data_error_bars object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x coordinates of the data. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y coordinates of the data. + real(real64), intent(in), dimension(:) :: xmin + !! An N-element array containing the minimum x values at each data + !! point. + real(real64), intent(in), dimension(:) :: xmax + !! An N-element array containing the maximum x values at each data + !! point. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: i, n, flag @@ -357,10 +488,21 @@ module subroutine pde_define_x_err_lim(this, x, y, xmin, xmax, err) end if ! Input Checking - if (size(y) /= n .or. size(xmin) /= n .or. size(xmax) /= n) then - call errmgr%report_error("pde_define_x_err_lim", & - "Input arrays must be the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + if (size(y) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_x_err_lim", "y", n, size(y)) + return + end if + + if (size(xmin) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_x_err_lim", "xmin", n, size(xmin)) + return + end if + + if (size(xmax) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_x_err_lim", "xmax", n, size(xmax)) return end if @@ -371,8 +513,7 @@ module subroutine pde_define_x_err_lim(this, x, y, xmin, xmax, err) if (allocated(this%m_data)) deallocate(this%m_data) allocate(this%m_data(n, 4), stat = flag) if (flag /= 0) then - call errmgr%report_error("pde_define_x_err_lim", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pde_define_x_err_lim", flag) return end if do i = 1, n @@ -386,11 +527,22 @@ module subroutine pde_define_x_err_lim(this, x, y, xmin, xmax, err) end subroutine ! ------------------------------------------------------------------------------ - module subroutine pde_define_y_err_lim(this, x, y, ymin, ymax, err) - ! Arguments + subroutine pde_define_y_err_lim(this, x, y, ymin, ymax, err) + !! Defines the y error data. class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, ymin, ymax + !! The plot_data_error_bars object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x coordinates of the data. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y coordinates of the data. + real(real64), intent(in), dimension(:) :: ymin + !! An N-element array containing the minimum y values at each data + !! point. + real(real64), intent(in), dimension(:) :: ymax + !! An N-element array containing the maximum y values at each data + !! point. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: i, n, flag @@ -406,10 +558,21 @@ module subroutine pde_define_y_err_lim(this, x, y, ymin, ymax, err) end if ! Input Checking - if (size(y) /= n .or. size(ymin) /= n .or. size(ymax) /= n) then - call errmgr%report_error("pde_define_y_err_lim", & - "Input arrays must be the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + if (size(y) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_y_err_lim", "y", n, size(y)) + return + end if + + if (size(ymin) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_y_err_lim", "ymin", n, size(ymin)) + return + end if + + if (size(ymax) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_y_err_lim", "ymax", n, size(ymax)) return end if @@ -420,8 +583,7 @@ module subroutine pde_define_y_err_lim(this, x, y, ymin, ymax, err) if (allocated(this%m_data)) deallocate(this%m_data) allocate(this%m_data(n, 4), stat = flag) if (flag /= 0) then - call errmgr%report_error("pde_define_y_err_lim", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pde_define_y_err_lim", flag) return end if do i = 1, n @@ -434,12 +596,29 @@ module subroutine pde_define_y_err_lim(this, x, y, ymin, ymax, err) this%m_range = .true. end subroutine ! ------------------------------------------------------------------------------ - module subroutine pde_define_xy_err_lim(this, x, y, xmin, xmax, ymin, ymax, err) - ! Arguments + subroutine pde_define_xy_err_lim(this, x, y, xmin, xmax, ymin, & + ymax, err) + !! Defines the x and y error data. class(plot_data_error_bars), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y, xmin, xmax, & - ymin, ymax + !! The plot_data_error_bars object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x coordinates of the data. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y coordinates of the data. + real(real64), intent(in), dimension(:) :: xmin + !! An N-element array containing the minimum x values at each data + !! point. + real(real64), intent(in), dimension(:) :: xmax + !! An N-element array containing the maximum x values at each data + !! point. + real(real64), intent(in), dimension(:) :: ymin + !! An N-element array containing the minimum y values at each data + !! point. + real(real64), intent(in), dimension(:) :: ymax + !! An N-element array containing the maximum x values at each data + !! point. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: i, n, flag @@ -455,10 +634,33 @@ module subroutine pde_define_xy_err_lim(this, x, y, xmin, xmax, ymin, ymax, err) end if ! Input Checking - if (size(y) /= n .or. size(ymin) /= n .or. size(ymax) /= n) then - call errmgr%report_error("pde_define_xy_err_lim", & - "Input arrays must be the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + if (size(y) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_xy_err_lim", "y", n, size(y)) + return + end if + + if (size(xmin) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_xy_err_lim", "xmin", n, size(xmin)) + return + end if + + if (size(xmax) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_xy_err_lim", "xmax", n, size(xmax)) + return + end if + + if (size(ymin) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_xy_err_lim", "ymin", n, size(ymin)) + return + end if + + if (size(ymax) /= n) then + call report_array_size_mismatch_error(errmgr, & + "pde_define_xy_err_lim", "ymax", n, size(ymax)) return end if @@ -469,8 +671,7 @@ module subroutine pde_define_xy_err_lim(this, x, y, xmin, xmax, ymin, ymax, err) if (allocated(this%m_data)) deallocate(this%m_data) allocate(this%m_data(n, 6), stat = flag) if (flag /= 0) then - call errmgr%report_error("pde_define_xy_err_lim", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pde_define_xy_err_lim", flag) return end if do i = 1, n @@ -487,4 +688,4 @@ module subroutine pde_define_xy_err_lim(this, x, y, xmin, xmax, ymin, ymax, err) end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_plot_data_histogram.f90 b/src/fplot_plot_data_histogram.f90 index 8ca982c..b87c58d 100644 --- a/src/fplot_plot_data_histogram.f90 +++ b/src/fplot_plot_data_histogram.f90 @@ -1,28 +1,66 @@ ! fplot_plot_data_histogram.f90 -submodule (fplot_core) fplot_plot_data_histogram +module fplot_plot_data_histogram + use iso_fortran_env + use fplot_plot_data_bar + use fplot_errors + use ferror + use strings + implicit none + private + public :: plot_data_histogram + + type, extends(plot_data_bar) :: plot_data_histogram + !! A container for plotting data in the form of a histogram. + integer(int32), private :: m_binCount = 10 + !! The number of bins. + character(len = :), private, allocatable :: m_numberFmt + !! The numerical label format string. + contains + procedure, public :: get_bin_count => pdh_get_bin_count + procedure, public :: set_bin_count => pdh_set_bin_count + procedure, public :: bin_data => pdh_bin_data + procedure, public :: get_extreme_values => pdh_get_extremes + procedure, public :: get_number_format => pdh_get_num_fmt + procedure, public :: set_number_format => pdh_set_num_fmt + procedure, public :: set_data_1 => pdh_set_data_1 + procedure, public :: set_data_2 => pdh_set_data_2 + procedure, public :: set_data_3 => pdh_set_data_3 + end type + contains ! ------------------------------------------------------------------------------ -pure module function pdh_get_bin_count(this) result(x) +pure function pdh_get_bin_count(this) result(x) + !! Gets the number of bins. class(plot_data_histogram), intent(in) :: this + !! The plot_data_histogram object. integer(int32) :: x + !! The bin count. x = this%m_binCount end function ! ------------------------------------------------------------------------------ -module subroutine pdh_set_bin_count(this, x) +subroutine pdh_set_bin_count(this, x) + !! Sets the bin count. For this property to have an effect, call before + !! calling the define_data subroutine or bin_data subroutine. class(plot_data_histogram), intent(inout) :: this + !! The plot_data_histogram object. integer(int32), intent(in) :: x + !! The bin count. this%m_binCount = x end subroutine ! ------------------------------------------------------------------------------ -module function pdh_bin_data(this, x, err) result(bx) - ! Arguments +function pdh_bin_data(this, x, err) result(bx) + !! Bins the supplied data set. class(plot_data_histogram), intent(in) :: this + !! The plot_data_histogram object. real(real64), intent(in), dimension(:) :: x + !! The data set to bin. class(errors), intent(inout), optional, target :: err + !! An error handling object. real(real64), allocatable, dimension(:,:) :: bx + !! The binned data. ! Local Variables real(real64) :: maxX, minX, width, val @@ -49,8 +87,7 @@ module function pdh_bin_data(this, x, err) result(bx) allocate(bx(nbins, 2), stat = flag) if (flag == 0) allocate(ranges(nbins, 2), stat = flag) if (flag /= 0) then - call errmgr%report_error("pdh_bin_data", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "pdh_bin_data", flag) return end if bx = 0.0d0 @@ -78,10 +115,13 @@ module function pdh_bin_data(this, x, err) result(bx) end function ! ------------------------------------------------------------------------------ -pure module function pdh_get_extremes(this) result(x) - ! Arguments +pure function pdh_get_extremes(this) result(x) + !! Returns the extreme values in the data set. class(plot_data_histogram), intent(in) :: this + !! The plot_data_histogram object. real(real64), dimension(2) :: x + !! A two-element array containing the minimum and maximum values, in + !! that order. ! Local Variables integer(int32) :: i, j, nrows, ncols @@ -113,11 +153,14 @@ pure module function pdh_get_extremes(this) result(x) end function ! ------------------------------------------------------------------------------ -module subroutine pdh_set_data_1(this, x, err) - ! Arguments +subroutine pdh_set_data_1(this, x, err) + !! Defines the data set. class(plot_data_histogram), intent(inout) :: this + !! The plot_data_histogram object. real(real64), intent(in), dimension(:) :: x + !! The data set. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables real(real64), allocatable, dimension(:,:) :: bx @@ -142,12 +185,16 @@ module subroutine pdh_set_data_1(this, x, err) end subroutine ! ------------------------------------------------------------------------------ -module subroutine pdh_set_data_2(this, labels, x, err) - ! Arguments +subroutine pdh_set_data_2(this, labels, x, err) + !! Defines the data set with associated axis labels. class(plot_data_histogram), intent(inout) :: this + !! The plot_data_histogram object. class(string), intent(in), dimension(:) :: labels + !! The axis labels. real(real64), intent(in), dimension(:) :: x + !! The data set. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables real(real64), allocatable, dimension(:,:) :: bx @@ -163,9 +210,8 @@ module subroutine pdh_set_data_2(this, labels, x, err) ! Ensure the labels array is the same size as the number of bins if (size(labels) /= this%get_bin_count()) then - call errmgr%report_error("pdh_set_data_2", & - "The labels array must be the same size as the number of bins.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_array_size_mismatch_error(errmgr, "pdh_set_data_2", & + "labels", this%get_bin_count(), size(labels)) return end if @@ -174,13 +220,18 @@ module subroutine pdh_set_data_2(this, labels, x, err) end subroutine ! ------------------------------------------------------------------------------ -module subroutine pdh_set_data_3(this, labels, x, fmt, err) - ! Arguments +subroutine pdh_set_data_3(this, labels, x, fmt, err) + !! Defines the data set with associated axis labels with a specific format. class(plot_data_histogram), intent(inout) :: this + !! The plot_data_histogram object. real(real64), intent(in), dimension(:) :: labels + !! The axis labels. real(real64), intent(in), dimension(:) :: x + !! The data set. character(len = *), intent(in), optional :: fmt + !! The format string for the labels (e.g. '(I0)', etc.). class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables real(real64), allocatable, dimension(:,:) :: bx @@ -196,9 +247,8 @@ module subroutine pdh_set_data_3(this, labels, x, fmt, err) ! Ensure the labels array is the same size as the number of bins if (size(labels) /= this%get_bin_count()) then - call errmgr%report_error("pdh_set_data_3", & - "The labels array must be the same size as the number of bins.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_array_size_mismatch_error(errmgr, "pdh_set_data_3", & + "labels", this%get_bin_count(), size(labels)) return end if @@ -207,9 +257,12 @@ module subroutine pdh_set_data_3(this, labels, x, fmt, err) end subroutine ! ------------------------------------------------------------------------------ -pure module function pdh_get_num_fmt(this) result(x) +pure function pdh_get_num_fmt(this) result(x) + !! Gets the numerical format string used for the labels. class(plot_data_histogram), intent(in) :: this + !! The plot_data_histogram object. character(len = :), allocatable :: x + !! The format string. if (allocated(this%m_numberFmt)) then x = this%m_numberFmt else @@ -218,11 +271,14 @@ pure module function pdh_get_num_fmt(this) result(x) end function ! ------------------------------------------------------------------------------ -module subroutine pdh_set_num_fmt(this, x) +subroutine pdh_set_num_fmt(this, x) + !! Sets the numerical format string used for the labels. class(plot_data_histogram), intent(inout) :: this + !! The plot_data_histogram object. character(len = *), intent(in) :: x + !! The format string (e.g. "(F6.2)"). this%m_numberFmt = x end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_plot_data_tri_2d.f90 b/src/fplot_plot_data_tri_2d.f90 index 65e4287..703836e 100644 --- a/src/fplot_plot_data_tri_2d.f90 +++ b/src/fplot_plot_data_tri_2d.f90 @@ -1,12 +1,47 @@ ! fplot_plot_data_tri_2d.f90 -submodule (fplot_core) fplot_plot_data_tri_2d +module fplot_plot_data_tri_2d + use iso_fortran_env + use fplot_plot_data + use fplot_constants + use fplot_triangulations_delaunay_2d + use fplot_colors + use strings + implicit none + private + public :: plot_data_tri_2d + + type, extends(plot_data_colored) :: plot_data_tri_2d + !! Defines a 2D triangulated data set. + real(real64), private, allocatable, dimension(:) :: m_x + !! An array of the x-coordinates of each point. + real(real64), private, allocatable, dimension(:) :: m_y + !! An array of the y-coordinates of each point. + integer(int32), private, allocatable, dimension(:,:) :: m_indices + !! A 3-column matrix containing the indices of each triangle's + !! vertex. + real(real32), private :: m_lineWidth = 1.0 + !! The line width. + integer(int32), private :: m_lineStyle = LINE_SOLID + !! The line style + contains + procedure, public :: get_data_string => pdt2d_get_data_cmd + procedure, public :: get_command_string => pdt2d_get_cmd + procedure, public :: define_data => pdt2d_define_data + procedure, public :: get_line_width => pdt2d_get_line_width + procedure, public :: set_line_width => pdt2d_set_line_width + procedure, public :: get_line_style => pdt2d_get_line_style + procedure, public :: set_line_style => pdt2d_set_line_style + end type + contains ! ------------------------------------------------------------------------------ - module function pdt2d_get_data_cmd(this) result(x) - ! Arguments + function pdt2d_get_data_cmd(this) result(x) + !! Gets the GNUPLOT command string describing the data to plot. class(plot_data_tri_2d), intent(in) :: this + !! The plot_data_tri_2d object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -96,10 +131,12 @@ module function pdt2d_get_data_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - module function pdt2d_get_cmd(this) result(x) - ! Arguments + function pdt2d_get_cmd(this) result(x) + !! Gets the GNUPLOT command string for the object. class(plot_data_tri_2d), intent(in) :: this + !! The plot_data_tri_2d object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -145,10 +182,12 @@ module function pdt2d_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - module subroutine pdt2d_define_data(this, tri) - ! Arguments + subroutine pdt2d_define_data(this, tri) + !! Defines the data to plot. class(plot_data_tri_2d), intent(inout) :: this + !! The plot_data_tri_2d object. class(delaunay_tri_2d), intent(in) :: tri + !! The triangulation data to plot. ! Process if (allocated(this%m_x)) deallocate(this%m_x) @@ -161,16 +200,22 @@ module subroutine pdt2d_define_data(this, tri) end subroutine ! ------------------------------------------------------------------------------ - pure module function pdt2d_get_line_width(this) result(rst) + pure function pdt2d_get_line_width(this) result(rst) + !! Gets the width of the lines used to draw the triangulation. class(plot_data_tri_2d), intent(in) :: this + !! The plot_data_tri_2d object. real(real32) :: rst + !! The line width. rst = this%m_lineWidth end function ! -------------------- - module subroutine pdt2d_set_line_width(this, x) + subroutine pdt2d_set_line_width(this, x) + !! Sets the width of the lines used to draw the triangulation. class(plot_data_tri_2d), intent(inout) :: this + !! The plot_data_tri_2d object. real(real32), intent(in) :: x + !! The line width. if (x <= 0.0d0) then this%m_lineWidth = 1.0d0 else @@ -178,16 +223,44 @@ module subroutine pdt2d_set_line_width(this, x) end if end subroutine ! ------------------------------------------------------------------------------ - pure module function pdt2d_get_line_style(this) result(rst) + pure function pdt2d_get_line_style(this) result(rst) + !! Gets the line style. class(plot_data_tri_2d), intent(in) :: this + !! The plot_data_tri_2d object. integer(int32) :: rst + !! The line style. The line style must be one of the following + !! constants. + !! + !! - LINE_DASHED + !! + !! - LINE_DASH_DOTTED + !! + !! - LINE_DASH_DOT_DOT + !! + !! - LINE_DOTTED + !! + !! - LINE_SOLID rst = this%m_lineStyle end function ! -------------------- - module subroutine pdt2d_set_line_style(this, x) + subroutine pdt2d_set_line_style(this, x) + !! Sets the line style. class(plot_data_tri_2d), intent(inout) :: this + !! The plot_data_tri_2d object. integer(int32), intent(in) :: x + !! The line style. The line style must be one of the following + !! constants. + !! + !! - LINE_DASHED + !! + !! - LINE_DASH_DOTTED + !! + !! - LINE_DASH_DOT_DOT + !! + !! - LINE_DOTTED + !! + !! - LINE_SOLID if (x == LINE_DASHED .or. & x == LINE_DASH_DOTTED .or. & x == LINE_DASH_DOT_DOT .or. & @@ -199,4 +272,4 @@ module subroutine pdt2d_set_line_style(this, x) end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_plot_object.f90 b/src/fplot_plot_object.f90 new file mode 100644 index 0000000..784795a --- /dev/null +++ b/src/fplot_plot_object.f90 @@ -0,0 +1,21 @@ +module fplot_plot_object + use iso_fortran_env + implicit none + + type, abstract :: plot_object + !! The base type for all plot objects. + contains + procedure(get_string_result), deferred, public :: get_command_string + end type + + interface + function get_string_result(this) result(x) + !! Returns a string from a plot_object. + import plot_object + class(plot_object), intent(in) :: this + !! The plot_object object. + character(len = :), allocatable :: x + !! The result string. + end function + end interface +end module \ No newline at end of file diff --git a/src/fplot_plot_polar.f90 b/src/fplot_plot_polar.f90 index 5aa80a5..47b3ebd 100644 --- a/src/fplot_plot_polar.f90 +++ b/src/fplot_plot_polar.f90 @@ -1,20 +1,80 @@ ! fplot_polar.f90 -submodule (fplot_core) fplot_plot_polar +module fplot_plot_polar + use iso_fortran_env + use fplot_plot + use fplot_terminal + use fplot_errors + use fplot_constants + use fplot_legend + use fplot_plot_data + use ferror + use strings + implicit none + private + public :: plot_polar + + type, extends(plot) :: plot_polar + private + !> @brief Allow the plot to autoscale? + logical :: m_autoscale = .true. + !> @brief The minimum radius value - only applicable if m_autoscale is + !! false. + real(real64) :: m_minrad = 0.0d0 + !> @brief The maximum radius value - only applicable if m_autoscale is + !! false. + real(real64) :: m_maxrad = 1.0d0 + !> @brief The location for theta = 0 + character(len = :), allocatable :: m_thetaStart + !> @brief The direction for theta + character(len = :), allocatable :: m_thetaDirection + contains + final :: plr_clean_up + procedure, public :: initialize => plr_init + procedure, public :: get_command_string => plr_get_cmd + procedure, public :: get_autoscale => plr_get_autoscale + procedure, public :: set_autoscale => plr_set_autoscale + procedure, public :: get_radial_limits => plr_get_limits + procedure, public :: set_radial_limits => plr_set_limits + procedure, public :: get_theta_start_position => plr_get_theta_start + procedure, public :: set_theta_start_position => plr_set_theta_start + procedure, public :: get_theta_direction => plr_get_theta_direction + procedure, public :: set_theta_direction => plr_set_theta_direction + end type + contains ! ------------------------------------------------------------------------------ - module subroutine plr_clean_up(this) + subroutine plr_clean_up(this) + !! Cleans up resources held by the plot_polar object. type(plot_polar), intent(inout) :: this + !! The plot_polar object. call this%free_resources() end subroutine ! ------------------------------------------------------------------------------ - module subroutine plr_init(this, term, fname, err) - ! Arguments + subroutine plr_init(this, term, fname, err) + !! Initializes the plot_polar object. class(plot_polar), intent(inout) :: this + !! The plot_polar object. integer(int32), intent(in), optional :: term + !! An optional input that is used to define the terminal. + !! The default terminal is a WXT terminal. The acceptable inputs + !! are: + !! + !! - GNUPLOT_TERMINAL_PNG + !! + !! - GNUPLOT_TERMINAL_QT + !! + !! - GNUPLOT_TERMINAL_WIN32 + !! + !! - GNUPLOT_TERMINAL_WXT + !! + !! - GNUPLOT_TERMINAL_LATEX character(len = *), intent(in), optional :: fname + !! A filename to pass to the terminal in the event the + !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables class(errors), pointer :: errmgr @@ -28,7 +88,8 @@ module subroutine plr_init(this, term, fname, err) end if ! Initialize the base class - call plt_init(this, term, fname, errmgr) + ! call plt_init(this, term, fname, errmgr) + call this%plot%initialize(term, fname, errmgr) if (errmgr%has_error_occurred()) return ! Initialize the rest of the object @@ -37,10 +98,12 @@ module subroutine plr_init(this, term, fname, err) end subroutine ! ------------------------------------------------------------------------------ - module function plr_get_cmd(this) result(x) - ! Arguments + function plr_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this plot_polar object. class(plot_polar), intent(in) :: this + !! The plot_polar object. character(len = :), allocatable :: x + !! The command string. ! Local Variables integer(int32) :: i, n @@ -155,45 +218,83 @@ module function plr_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - pure module function plr_get_autoscale(this) result(rst) + pure function plr_get_autoscale(this) result(rst) + !! Gets a logical value determining if the axis should be + !! automatically scaled to fit the data. class(plot_polar), intent(in) :: this + !! The plot_polar object. logical :: rst + !! Returns true if the plot will autoscale; else, false. rst = this%m_autoscale end function ! -------------------- - module subroutine plr_set_autoscale(this, x) + subroutine plr_set_autoscale(this, x) + !! Sets a logical value determining if the axis should be + !! automatically scaled to fit the data. class(plot_polar), intent(inout) :: this + !! The plot_polar object. logical, intent(in) :: x + !! Set to true if the plot will autoscale; else, false. this%m_autoscale = x end subroutine ! ------------------------------------------------------------------------------ - pure module function plr_get_limits(this) result(rst) + pure function plr_get_limits(this) result(rst) + !! Gets the radial axis limits if autoscaling is inactive. class(plot_polar), intent(in) :: this + !! The plot_polar object. real(real64) :: rst(2) + !! A 2-element array containing the minimum and maximum limit + !! values in that order. rst = [this%m_minrad, this%m_maxrad] end function ! -------------------- - module subroutine plr_set_limits(this, x) + subroutine plr_set_limits(this, x) + !! Sets the radial axis limits if autoscaling is inactive. class(plot_polar), intent(inout) :: this + !! The plot_polar object. real(real64), intent(in) :: x(2) + !! A 2-element array containing the minimum and maximum limit + !! values in that order. this%m_minrad = minval(x) this%m_maxrad = maxval(x) end subroutine ! ------------------------------------------------------------------------------ - pure module function plr_get_theta_start(this) result(rst) + pure function plr_get_theta_start(this) result(rst) + !! Gets the position for \(\theta = 0\). class(plot_polar), intent(in) :: this + !! The plot_polar object. character(len = :), allocatable :: rst + !! The starting position. It is one of the following flags. + !! + !! - POLAR_THETA_BOTTOM + !! + !! - POLAR_THETA_TOP + !! + !! - POLAR_THETA_RIGHT + !! + !! - POLAR_THETA_LEFT rst = this%m_thetaStart end function ! -------------------- - module subroutine plr_set_theta_start(this, x) + subroutine plr_set_theta_start(this, x) + !! Sets the position for \(\theta = 0\). class(plot_polar), intent(inout) :: this + !! The plot_polar object. character(len = *), intent(in) :: x + !! The starting position. It is one of the following flags. + !! + !! - POLAR_THETA_BOTTOM + !! + !! - POLAR_THETA_TOP + !! + !! - POLAR_THETA_RIGHT + !! + !! - POLAR_THETA_LEFT if (x /= POLAR_THETA_BOTTOM .and. & x /= POLAR_THETA_TOP .and. & x /= POLAR_THETA_LEFT .and. & @@ -207,16 +308,30 @@ module subroutine plr_set_theta_start(this, x) end subroutine ! ------------------------------------------------------------------------------ - pure module function plr_get_theta_direction(this) result(rst) + pure function plr_get_theta_direction(this) result(rst) + !! Gets the \(\theta\) direction. class(plot_polar), intent(in) :: this + !! The plot_polar object. character(len = :), allocatable :: rst + !! The direction. It is one of the following flags. + !! + !! - POLAR_THETA_CCW + !! + !! - POLAR_THETA_CW rst = this%m_thetaDirection end function ! -------------------- - module subroutine plr_set_theta_direction(this, x) + subroutine plr_set_theta_direction(this, x) + !! Sets the \(\theta\) direction. class(plot_polar), intent(inout) :: this + !! The plot_polar object. character(len = *), intent(in) :: x + !! The direction. It is one of the following flags. + !! + !! - POLAR_THETA_CCW + !! + !! - POLAR_THETA_CW if (x /= POLAR_THETA_CCW .and. x /= POLAR_THETA_CW) then ! Reset to default this%m_thetaDirection = POLAR_THETA_CCW @@ -226,8 +341,4 @@ module subroutine plr_set_theta_direction(this, x) end subroutine ! ------------------------------------------------------------------------------ - -! -------------------- - -! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_png_terminal.f90 b/src/fplot_png_terminal.f90 index 4fbed73..9bb6083 100644 --- a/src/fplot_png_terminal.f90 +++ b/src/fplot_png_terminal.f90 @@ -1,15 +1,35 @@ ! fplot_png_terminal.f90 -submodule (fplot_core) fplot_png_terminal +module fplot_png_terminal + use iso_fortran_env + use strings + use fplot_terminal + use fplot_constants + implicit none + private + public :: png_terminal + + type, extends(terminal) :: png_terminal + !! Defines a terminal used for producing PNG outputs. + character(len = 3), private :: m_id = "png" + !! The terminal ID string + character(len = GNUPLOT_MAX_PATH_LENGTH), private :: m_fname = "default.png" + !! The filename of the PNG file to write. + contains + procedure, public :: get_filename => png_get_filename + procedure, public :: set_filename => png_set_filename + procedure, public :: get_id_string => png_get_term_string + procedure, public :: get_command_string => png_get_command_string + end type + contains ! ------------------------------------------------------------------------------ - !> @brief Retrieves a GNUPLOT terminal identifier string. - !! - !! @param[in] this The png_terminal object. - !! @return The string. - module function png_get_term_string(this) result(x) + function png_get_term_string(this) result(x) + !! Retrieves a GNUPLOT terminal identifier string. class(png_terminal), intent(in) :: this + !! The png_terminal object. character(len = :), allocatable :: x + !! The string. integer(int32) :: n n = len_trim(this%m_id) allocate(character(len = n) :: x) @@ -17,13 +37,12 @@ module function png_get_term_string(this) result(x) end function ! ------------------------------------------------------------------------------ - !> @brief Gets the filename for the output PNG file. - !! - !! @param[in] this The png_terminal object. - !! @return The filename, including the file extension (.png). - module function png_get_filename(this) result(txt) + function png_get_filename(this) result(txt) + !! Gets the filename for the output PNG file. class(png_terminal), intent(in) :: this + !! The png_terminal object. character(len = :), allocatable :: txt + !! The filename, including the file extension (.png). integer(int32) :: n n = len_trim(this%m_fname) allocate(character(len = n) :: txt) @@ -31,13 +50,12 @@ module function png_get_filename(this) result(txt) end function ! -------------------- - !> @brief Sets the filename for the output PNG file. - !! - !! @param[in,out] this The png_terminal object. - !! @param[in] The filename, including the file extension (.png). - module subroutine png_set_filename(this, txt) + subroutine png_set_filename(this, txt) + !!Sets the filename for the output PNG file. class(png_terminal), intent(inout) :: this + !! The png_terminal object. character(len = *), intent(in) :: txt + !! The filename, including the file extension (.png). integer(int32) :: n n = min(len_trim(txt), GNUPLOT_MAX_PATH_LENGTH) this%m_fname = "" @@ -49,15 +67,13 @@ module subroutine png_set_filename(this, txt) end subroutine ! ------------------------------------------------------------------------------ - !> @brief Returns the appropriate GNUPLOT command string to establish - !! appropriate parameters. - !! - !! @param[in] this The terminal object. - !! @return The GNUPLOT command string. - module function png_get_command_string(this) result(x) - ! Arguments + function png_get_command_string(this) result(x) + !! Returns the appropriate GNUPLOT command string to establish + !! appropriate parameters. class(png_terminal), intent(in) :: this + !! The png_terminal object. character(len = :), allocatable :: x + !! The GNUPLOT command string. ! Local Variables type(string_builder) :: str @@ -83,4 +99,4 @@ module function png_get_command_string(this) result(x) x = char(str%to_string()) end function -end submodule \ No newline at end of file +end module \ No newline at end of file diff --git a/src/fplot_qt_terminal.f90 b/src/fplot_qt_terminal.f90 index aa9fbd0..34afb00 100644 --- a/src/fplot_qt_terminal.f90 +++ b/src/fplot_qt_terminal.f90 @@ -1,13 +1,30 @@ ! fplot_qt_terminal.f90 -submodule (fplot_core) fplot_qt_terminal +module fplot_qt_terminal + use iso_fortran_env + use fplot_terminal + implicit none + private + public :: qt_terminal + + type, extends(terminal) :: qt_terminal + !! Defines a terminal that utilizes QT. + character(len = 2), private :: m_id = "qt" + !! The terminal ID string + contains + procedure, public :: get_id_string => qt_get_term_string + end type + contains - module function qt_get_term_string(this) result(x) + function qt_get_term_string(this) result(x) + !! Retrieves a GNUPLOT terminal identifier string. class(qt_terminal), intent(in) :: this + !! The qt_terminal object. character(len = :), allocatable :: x + !! The string. integer(int32) :: n n = len_trim(this%m_id) allocate(character(len = n) :: x) x = this%m_id end function -end submodule +end module diff --git a/src/fplot_scatter_plot_data.f90 b/src/fplot_scatter_plot_data.f90 deleted file mode 100644 index 8588457..0000000 --- a/src/fplot_scatter_plot_data.f90 +++ /dev/null @@ -1,283 +0,0 @@ -! fplot_scatter_plot_data.f90 - -submodule (fplot_core) fplot_scatter_plot_data -contains -! ------------------------------------------------------------------------------ - module function spd_get_cmd(this) result(x) - ! Arguments - class(scatter_plot_data), intent(in) :: this - character(len = :), allocatable :: x - - ! Local Variables - type(string_builder) :: str - integer(int32) :: n - type(color) :: clr - - ! Initialization - call str%initialize() - - ! Title - n = len_trim(this%get_name()) - if (n > 0) then - call str%append(' "-" title "') - call str%append(this%get_name()) - call str%append('"') - else - call str%append(' "-" notitle') - end if - - ! Lines, points, or filled - if (this%get_fill_curve()) then - call str%append(" with filledcurves") - else - if (this%get_draw_line() .and. this%get_draw_markers()) then - call str%append(" with linespoints") - else if (.not.this%get_draw_line() .and. this%get_draw_markers()) then - call str%append(" with points") - else - call str%append(" with lines") - end if - end if - - ! Line Width - call str%append(" lw ") - call str%append(to_string(this%get_line_width())) - - ! Line Color - if (this%get_use_data_dependent_colors()) then - ! http://www.gnuplotting.org/using-a-palette-as-line-color/ - call str%append(" lc palette") - else - clr = this%get_line_color() - call str%append(' lc rgb "#') - call str%append(clr%to_hex_string()) - call str%append('"') - end if - - ! Define other properties specific to the lines and points - if (this%get_draw_line()) then - call str%append(" lt ") - call str%append(to_string(this%get_line_style())) - if (this%get_line_style() /= LINE_SOLID) then - call str%append(" dashtype ") - call str%append(to_string(this%get_line_style())) - end if - end if - if (this%get_draw_markers()) then - call str%append(" pi ") - call str%append(to_string(this%get_marker_frequency())) - call str%append(" pt ") - call str%append(to_string(this%get_marker_style())) - call str%append(" ps ") - if (this%get_use_variable_size_points()) then - call str%append("variable") - else - call str%append(to_string(this%get_marker_scaling())) - end if - end if - - ! Define the axes structure - call str%append(" ") - call str%append(this%get_axes_string()) - - ! End - x = char(str%to_string()) - end function - -! ------------------------------------------------------------------------------ - pure module function spd_get_line_width(this) result(x) - class(scatter_plot_data), intent(in) :: this - real(real32) :: x - x = this%m_lineWidth - end function - -! -------------------- - module subroutine spd_set_line_width(this, x) - class(scatter_plot_data), intent(inout) :: this - real(real32), intent(in) :: x - this%m_lineWidth = x - end subroutine - -! ------------------------------------------------------------------------------ - pure module function spd_get_line_style(this) result(x) - class(scatter_plot_data), intent(in) :: this - integer(int32) :: x - x = this%m_lineStyle - end function - -! -------------------- - module subroutine spd_set_line_style(this, x) - class(scatter_plot_data), intent(inout) :: this - integer(int32), intent(in) :: x - if (x == LINE_DASHED .or. & - x == LINE_DASH_DOTTED .or. & - x == LINE_DASH_DOT_DOT .or. & - x == LINE_DOTTED .or. & - x == LINE_SOLID) then - ! Only reset the line style if it is a valid type. - this%m_lineStyle = x - end if - end subroutine - -! ------------------------------------------------------------------------------ - pure module function spd_get_draw_line(this) result(x) - class(scatter_plot_data), intent(in) :: this - logical :: x - x = this%m_drawLine - end function - -! -------------------- - module subroutine spd_set_draw_line(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - this%m_drawLine = x - end subroutine - -! ------------------------------------------------------------------------------ - pure module function spd_get_draw_markers(this) result(x) - class(scatter_plot_data), intent(in) :: this - logical :: x - x = this%m_drawMarkers - end function - -! -------------------- - module subroutine spd_set_draw_markers(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - this%m_drawMarkers = x - end subroutine - -! ------------------------------------------------------------------------------ - pure module function spd_get_marker_style(this) result(x) - class(scatter_plot_data), intent(in) :: this - integer(int32) :: x - x = this%m_markerType - end function - -! -------------------- - module subroutine spd_set_marker_style(this, x) - class(scatter_plot_data), intent(inout) :: this - integer(int32), intent(in) :: x - if (x == MARKER_ASTERISK .or. & - x == MARKER_EMPTY_CIRCLE .or. & - x == MARKER_EMPTY_NABLA .or. & - x == MARKER_EMPTY_RHOMBUS .or. & - x == MARKER_EMPTY_SQUARE .or. & - x == MARKER_EMPTY_TRIANGLE .or. & - x == MARKER_FILLED_CIRCLE .or. & - x == MARKER_FILLED_NABLA .or. & - x == MARKER_FILLED_RHOMBUS .or. & - x == MARKER_FILLED_SQUARE .or. & - x == MARKER_FILLED_TRIANGLE .or. & - x == MARKER_PLUS .or. & - x == MARKER_X) then - - ! Only alter the value if the marker is a known type - this%m_markerType = x - end if - end subroutine - -! ------------------------------------------------------------------------------ - pure module function spd_get_marker_scaling(this) result(x) - class(scatter_plot_data), intent(in) :: this - real(real32) :: x - x = this%m_markerSize - end function - -! -------------------- - module subroutine spd_set_marker_scaling(this, x) - class(scatter_plot_data), intent(inout) :: this - real(real32), intent(in) :: x - this%m_markerSize = x - end subroutine - -! ------------------------------------------------------------------------------ - pure module function spd_get_marker_frequency(this) result(x) - class(scatter_plot_data), intent(in) :: this - integer(int32) :: x - x = this%m_markerFrequency - end function - -! -------------------- - module subroutine spd_set_marker_frequency(this, x) - class(scatter_plot_data), intent(inout) :: this - integer(int32), intent(in) :: x - this%m_markerFrequency = x - end subroutine - -! ------------------------------------------------------------------------------ - pure module function spd_get_simplify_data(this) result(x) - class(scatter_plot_data), intent(in) :: this - logical :: x - x = this%m_simplifyData - end function - -! -------------------- - module subroutine spd_set_simplify_data(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - this%m_simplifyData = x - end subroutine - -! ------------------------------------------------------------------------------ - pure module function spd_get_simplify_factor(this) result(x) - class(scatter_plot_data), intent(in) :: this - real(real64) :: x - x = this%m_simplifyFactor - end function - -! -------------------- - module subroutine spd_set_simplify_factor(this, x) - class(scatter_plot_data), intent(inout) :: this - real(real64), intent(in) :: x - this%m_simplifyFactor = x - end subroutine - -! ------------------------------------------------------------------------------ - pure module function spd_get_data_dependent_colors(this) result(rst) - class(scatter_plot_data), intent(in) :: this - logical :: rst - rst = this%m_dataDependentColors - end function - -! -------------------- - module subroutine spd_set_data_dependent_colors(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - this%m_dataDependentColors = x - end subroutine - -! ****************************************************************************** -! ADDED: JUNE 28, 2021 - JAC -! ------------------------------------------------------------------------------ - pure module function spd_get_filled(this) result(rst) - class(scatter_plot_data), intent(in) :: this - logical :: rst - rst = this%m_filledCurve - end function - -! -------------------- - module subroutine spd_set_filled(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - this%m_filledCurve = x - end subroutine - -! ****************************************************************************** -! ADDED: JAN 12, 2024 - JAC -! ------------------------------------------------------------------------------ - pure module function spd_get_use_var_point_size(this) result(rst) - class(scatter_plot_data), intent(in) :: this - logical :: rst - rst = this%m_useVariableSizePoints - end function - -! -------------------- - module subroutine spd_set_use_var_point_size(this, x) - class(scatter_plot_data), intent(inout) :: this - logical, intent(in) :: x - this%m_useVariableSizePoints = x - end subroutine - -! ------------------------------------------------------------------------------ -end submodule diff --git a/src/fplot_simplify.f90 b/src/fplot_simplify.f90 index 535ca4f..f2c03bf 100644 --- a/src/fplot_simplify.f90 +++ b/src/fplot_simplify.f90 @@ -4,19 +4,43 @@ ! - https://www.codeproject.com/Articles/114797/Polyline-Simplification ! - https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm -submodule (fplot_core) fplot_simplify +module fplot_simplify + use iso_fortran_env + use ferror + use fplot_errors + implicit none + private + public :: simplify_polyline + + interface simplify_polyline + module procedure :: simplify_polyline_2d1 + module procedure :: simplify_polyline_3d1 + module procedure :: simplify_polyline_mtx + end interface + contains - module function simplify_polyline_2d1(x, y, tol, err) result(ln) - ! Arguments - real(real64), intent(in), dimension(:) :: x, y + function simplify_polyline_2d1(x, y, tol, err) result(ln) + !! Simplifies a 2D polyline by removing points too close to + !! discern given a specified tolerance. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x-coordinates of the vertices + !! making up the polyline. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y-coordinates of the vertices + !! making up the polyline. real(real64), intent(in) :: tol + !! The distance tolerance to use when simplifying the polyline. + !! This value must be positive, and larger than machine epsilon. class(errors), intent(inout), optional, target :: err + !! An error handling object. real(real64), allocatable, dimension(:,:) :: ln + !! A matrix containing the simplified polyline vertices. The first + !! column of the matrix contains the x-coordinates, and the second + !! column contains the y-coordinates. ! Local Variables class(errors), pointer :: errmgr type(errors), target :: deferr - character(len = 256) :: errmsg integer(int32) :: n real(real64) :: eps @@ -31,11 +55,8 @@ module function simplify_polyline_2d1(x, y, tol, err) result(ln) ! Input Check if (size(y) /= n) then - write(errmsg, 100) "The array sizes did not match. " // & - "The x array contained ", size(x), & - " items, but the y array contained ", size(y), "." - call errmgr%report_error("simplify_polyline_2d1", trim(errmsg), & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_array_size_mismatch_error(errmgr, & + "simplify_polyline_2d1", "y", n, size(y)) return end if @@ -48,22 +69,35 @@ module function simplify_polyline_2d1(x, y, tol, err) result(ln) ! Process ln = radial_distance_2d(x, y, tol, err) - -100 format(A, I0, A, I0, A) end function - module function simplify_polyline_3d1(x, y, z, tol, err) result(ln) - ! Arguments - real(real64), intent(in), dimension(:) :: x, y, z + function simplify_polyline_3d1(x, y, z, tol, err) result(ln) + !! Simplifies a 3D polyline by removing points too close to + !! discern given a specified tolerance. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x-coordinates of the vertices + !! making up the polyline. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y-coordinates of the vertices + !! making up the polyline. + real(real64), intent(in), dimension(:) :: z + !! An N-element array containing the z-coordinates of the vertices + !! making up the polyline. real(real64), intent(in) :: tol + !! The distance tolerance to use when simplifying the polyline. + !! This value must be positive, and larger than machine epsilon. class(errors), intent(inout), optional, target :: err + !! An error handling object. real(real64), allocatable, dimension(:,:) :: ln + !! A matrix containing the simplified polyline vertices. The first + !! column of the matrix contains the x-coordinates, the second + !! column contains the y-coordinates, and the third column contains + !! the z-coordinates. ! Local Variables class(errors), pointer :: errmgr type(errors), target :: deferr - character(len = 256) :: errmsg integer(int32) :: n real(real64) :: eps @@ -77,13 +111,15 @@ module function simplify_polyline_3d1(x, y, z, tol, err) result(ln) end if ! Input Check - if (size(y) /= n .or. size(z) /= n) then - write(errmsg, 100) "The array sizes did not match. " // & - "The x array contained ", size(x), & - " items, the y array contained ", size(y), & - ", and the z array contained ", size(z), "." - call errmgr%report_error("simplify_polyline_3d1", trim(errmsg), & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + if (size(y) /= n) then + call report_array_size_mismatch_error(errmgr, & + "simplify_polyline_3d1", "y", n, size(y)) + return + end if + + if (size(z) /= n) then + call report_array_size_mismatch_error(errmgr, & + "simplify_polyline_3d1", "z", n, size(z)) return end if @@ -96,23 +132,29 @@ module function simplify_polyline_3d1(x, y, z, tol, err) result(ln) ! Process ln = radial_distance_3d(x, y, z, tol, errmgr) - -100 format(A, I0, A, I0, A, I0, A) end function - module function simplify_polyline_mtx(xy, tol, err) result(ln) - ! Arguments + function simplify_polyline_mtx(xy, tol, err) result(ln) + !! Simplifies a 2D or 3D polyline by removing points too close to + !! discern given a specified tolerance. real(real64), intent(in), dimension(:,:) :: xy + !! An N-by-2 or N-by-3 matrix containing the polyline vertex data. real(real64), intent(in) :: tol + !! The distance tolerance to use when simplifying the polyline. + !! This value must be positive, and larger than machine epsilon. class(errors), intent(inout), optional, target :: err + !! An error handling object. real(real64), allocatable, dimension(:,:) :: ln + !! A matrix containing the simplified polyline vertices. The first + !! column of the matrix contains the x-coordinates, the second + !! column contains the y-coordinates, and if necessary, the third + !! column contains the z-coordinates. ! Local Variables class(errors), pointer :: errmgr type(errors), target :: deferr - character(len = 256) :: errmsg ! Initialization if (present(err)) then @@ -123,10 +165,9 @@ module function simplify_polyline_mtx(xy, tol, err) result(ln) ! Ensure there are at least 2 columns of data in XY if (size(xy, 2) < 2) then - write(errmsg, 100) "The input matrix must have at " // & - "least 2 columns; however, only ", size(xy, 2), " was found." - call errmgr%report_error("simplify_polyline_mtx", trim(errmsg), & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_matrix_size_mismatch_error(errmgr, & + "simplify_polyline_mtx", "xy", size(xy, 1), 2, size(xy, 1), & + size(xy, 2)) return end if @@ -136,8 +177,6 @@ module function simplify_polyline_mtx(xy, tol, err) result(ln) else ln = simplify_polyline_3d1(xy(:,1), xy(:,2), xy(:,3), tol, errmgr) end if - -100 format(A, I0, A) end function @@ -165,9 +204,7 @@ function radial_distance_2d(x, y, tol, err) result(pts) ! Local Memory Allocation allocate(valid(n), stat = flag) if (flag /= 0) then - call err%report_error("radial_distance_2d", & - "Insufficient memory available.", & - PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(err, "radial_distance_2d", flag) return end if valid(1) = .true. @@ -194,9 +231,7 @@ function radial_distance_2d(x, y, tol, err) result(pts) ! Allocate space, and collect all valid points allocate(pts(nvalid, 2), stat = flag) if (flag /= 0) then - call err%report_error("radial_distance_2d", & - "Insufficient memory available.", & - PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(err, "radial_distance_2d", flag) return end if j = 1 @@ -234,9 +269,7 @@ function radial_distance_3d(x, y, z, tol, err) result(pts) ! Local Memory Allocation allocate(valid(n), stat = flag) if (flag /= 0) then - call err%report_error("radial_distance_3d", & - "Insufficient memory available.", & - PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(err, "radial_distance_3d", flag) return end if valid(1) = .true. @@ -264,9 +297,7 @@ function radial_distance_3d(x, y, z, tol, err) result(pts) ! Allocate space, and collect all valid points allocate(pts(nvalid, 3), stat = flag) if (flag /= 0) then - call err%report_error("radial_distance_3d", & - "Insufficient memory available.", & - PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(err, "radial_distance_3d", flag) return end if j = 1 @@ -319,4 +350,4 @@ pure function pythag3(x, y, z, xo, yo, zo) result(r) end if end function -end submodule +end module diff --git a/src/fplot_surface_plot.f90 b/src/fplot_surface_plot.f90 index 8d6baa9..06d1f29 100644 --- a/src/fplot_surface_plot.f90 +++ b/src/fplot_surface_plot.f90 @@ -1,26 +1,75 @@ ! fplot_surface_plot.f90 -submodule (fplot_core) fplot_surface_plot -contains -! ------------------------------------------------------------------------------ - ! module subroutine surf_clean_up(this) - ! type(surface_plot), intent(inout) :: this - ! if (associated(this%m_colormap)) then - ! deallocate(this%m_colormap) - ! nullify(this%m_colormap) - ! end if - - ! ! No need to call the base class finalization routine as the compiler - ! ! takes care of that for us. - ! end subroutine +module fplot_surface_plot + use iso_fortran_env + use fplot_plot_3d + use fplot_errors + use fplot_legend + use ferror + use strings + implicit none + private + public :: surface_plot + + type, extends(plot_3d) :: surface_plot + logical, private :: m_showHidden = .false. + !! Show hidden lines? + logical, private :: m_smooth = .true. + !! Smooth the surface? + logical, private :: m_contour = .false. + !! Show a contour plot as well as the surface plot? + logical, private :: m_useLighting = .false. + !! Use lighting? + real(real32), private :: m_lightIntensity = 0.5 + !! Lighting intensity (0 - 1) - default is 0.5 + real(real32), private :: m_specular = 0.5 + !! Specular highlight intensity (0 - 1). + real(real32), private :: m_transparency = 1.0 + !! Defines the translucency value. Must exist on (0, 1]. + contains + procedure, public :: initialize => surf_init + procedure, public :: get_show_hidden => surf_get_show_hidden + procedure, public :: set_show_hidden => surf_set_show_hidden + procedure, public :: get_command_string => surf_get_cmd + procedure, public :: get_allow_smoothing => surf_get_smooth + procedure, public :: set_allow_smoothing => surf_set_smooth + procedure, public :: get_show_contours => surf_get_show_contours + procedure, public :: set_show_contours => surf_set_show_contours + procedure, public :: get_use_lighting => surf_get_use_lighting + procedure, public :: set_use_lighting => surf_set_use_lighting + procedure, public :: get_light_intensity => surf_get_light_intensity + procedure, public :: set_light_intensity => surf_set_light_intensity + procedure, public :: get_specular_intensity => surf_get_specular_intensity + procedure, public :: set_specular_intensity => surf_set_specular_intensity + procedure, public :: get_transparency => surf_get_transparency + procedure, public :: set_transparency => surf_set_transparency + end type +contains ! ------------------------------------------------------------------------------ - module subroutine surf_init(this, term, fname, err) - ! Arguments + subroutine surf_init(this, term, fname, err) + !! Initializes the surface_plot object. class(surface_plot), intent(inout) :: this + !! The surface_plot object. integer(int32), intent(in), optional :: term + !! An optional input that is used to define the terminal. + !! The default terminal is a WXT terminal. The acceptable inputs + !! are: + !! + !! - GNUPLOT_TERMINAL_PNG + !! + !! - GNUPLOT_TERMINAL_QT + !! + !! - GNUPLOT_TERMINAL_WIN32 + !! + !! - GNUPLOT_TERMINAL_WXT + !! + !! - GNUPLOT_TERMINAL_LATEX character(len = *), intent(in), optional :: fname + !! A filename to pass to the terminal in the event the + !! terminal is a file type (e.g. GNUPLOT_TERMINAL_PNG). class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables type(legend), pointer :: lgnd @@ -31,30 +80,36 @@ module subroutine surf_init(this, term, fname, err) ! Do not display the legend lgnd => this%get_legend() call lgnd%set_is_visible(.false.) - - ! Nullify the colormap - ! nullify(this%m_colormap) end subroutine ! ------------------------------------------------------------------------------ - pure module function surf_get_show_hidden(this) result(x) + pure function surf_get_show_hidden(this) result(x) + !! Gets a value indicating if hidden lines should be shown. class(surface_plot), intent(in) :: this + !! The surface_plot object. logical :: x + !! Returns true if hidden lines should be shown; else, false. x = this%m_showHidden end function ! ------------------------------------------------------------------------------ - module subroutine surf_set_show_hidden(this, x) + subroutine surf_set_show_hidden(this, x) + !! Sets a value indicating if hidden lines should be shown. class(surface_plot), intent(inout) :: this + !! The surface_plot object. logical, intent(in) :: x + !! Set to true if hidden lines should be shown; else, false. this%m_showHidden = x end subroutine ! ------------------------------------------------------------------------------ - module function surf_get_cmd(this) result(x) - ! Arguments + function surf_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this plot_3d + !! object. class(surface_plot), intent(in) :: this + !! The surface_plot object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -160,30 +215,48 @@ module function surf_get_cmd(this) result(x) ! end subroutine ! ------------------------------------------------------------------------------ - pure module function surf_get_smooth(this) result(x) + pure function surf_get_smooth(this) result(x) + !! Gets a value determining if the plotted surfaces should be + !! smoothed. class(surface_plot), intent(in) :: this + !! The surface_plot object. logical :: x + !! Returns true if the surface should be smoothed; else, false. x = this%m_smooth end function ! -------------------- - module subroutine surf_set_smooth(this, x) + subroutine surf_set_smooth(this, x) + !! Sets a value determining if the plotted surfaces should be + !! smoothed. class(surface_plot), intent(inout) :: this + !! The surface_plot object. logical, intent(in) :: x + !! Set to true if the surface should be smoothed; else, false. this%m_smooth = x end subroutine ! ------------------------------------------------------------------------------ - pure module function surf_get_show_contours(this) result(x) + pure function surf_get_show_contours(this) result(x) + !! Gets a value determining if a contour plot should be drawn in + !! conjunction with the surface plot. class(surface_plot), intent(in) :: this + !! The surface_plot object. logical :: x + !! Returns true if the contour plot should be drawn; else, false to + !! only draw the surface. x = this%m_contour end function ! -------------------- - module subroutine surf_set_show_contours(this, x) + subroutine surf_set_show_contours(this, x) + !! Sets a value determining if a contour plot should be drawn in + !! conjunction with the surface plot. class(surface_plot), intent(inout) :: this + !! The surface_plot object. logical, intent(in) :: x + !! Set to true if the contour plot should be drawn; else, false to + !! only draw the surface. this%m_contour = x end subroutine @@ -202,30 +275,47 @@ module subroutine surf_set_show_contours(this, x) ! end subroutine ! ------------------------------------------------------------------------------ - pure module function surf_get_use_lighting(this) result(x) + pure function surf_get_use_lighting(this) result(x) + !! Gets a value indicating if lighting, beyond the ambient + !! light source, is to be used. class(surface_plot), intent(in) :: this + !! The surface_plot object. logical :: x + !! True if lighting should be used; else, false. x = this%m_useLighting end function ! -------------------- - module subroutine surf_set_use_lighting(this, x) + subroutine surf_set_use_lighting(this, x) + !! Sets a value indicating if lighting, beyond the ambient + !! light source, is to be used. class(surface_plot), intent(inout) :: this + !! The surface_plot object. logical, intent(in) :: x + !! True if lighting should be used; else, false. this%m_useLighting = x end subroutine ! ------------------------------------------------------------------------------ - pure module function surf_get_light_intensity(this) result(x) + pure function surf_get_light_intensity(this) result(x) + !! Gets the ratio of the strength of the light source relative + !! to the ambient light. class(surface_plot), intent(in) :: this + !! The surface_plot object. real(real32) :: x + !! The light intensity ratio. x = this%m_lightIntensity end function ! -------------------- - module subroutine surf_set_light_intensity(this, x) + subroutine surf_set_light_intensity(this, x) + !! Sets the ratio of the strength of the light source relative + !! to the ambient light. class(surface_plot), intent(inout) :: this + !! The surface_plot object. real(real32), intent(in) :: x + !! The light intensity ratio. The value must exist in the + !! set [0, 1]; else, it will be clipped to lie within the range. if (x < 0.0) then this%m_lightIntensity = 0.0 else if (x > 1.0) then @@ -236,16 +326,25 @@ module subroutine surf_set_light_intensity(this, x) end subroutine ! ------------------------------------------------------------------------------ - pure module function surf_get_specular_intensity(this) result(x) + pure function surf_get_specular_intensity(this) result(x) + !! Gets the ratio of the strength of the specular light source + !! relative to the ambient light. class(surface_plot), intent(in) :: this + !! The surface_plot object. real(real32) :: x + !! The specular light intensity ratio. x = this%m_specular end function ! -------------------- - module subroutine surf_set_specular_intensity(this, x) + subroutine surf_set_specular_intensity(this, x) + !! Sets the ratio of the strength of the specular light source + !! relative to the ambient light. class(surface_plot), intent(inout) :: this + !! The surface_plot object. real(real32), intent(in) :: x + !! The specular light intensity ratio. The value must exist in the + !! set [0, 1]; else, it will be clipped to lie within the range. if (x < 0.0) then this%m_specular = 0.0 else if (x > 1.0) then @@ -256,16 +355,26 @@ module subroutine surf_set_specular_intensity(this, x) end subroutine ! ------------------------------------------------------------------------------ - pure module function surf_get_transparency(this) result(x) + pure function surf_get_transparency(this) result(x) + !! Gets a factor defining the transparency of plotted surfaces. class(surface_plot), intent(in) :: this + !! The surface_plot object. real(real32) :: x + !! A value existing on the set (0 1] defining the level of + !! transparency. A value of 1 indicates a fully opaque surface. x = this%m_transparency end function ! -------------------- - module subroutine surf_set_transparency(this, x) + subroutine surf_set_transparency(this, x) + !! Sets a factor defining the transparency of plotted surfaces. class(surface_plot), intent(inout) :: this + !! The surface_plot object. real(real32), intent(in) :: x + !! A value existing on the set (0 1] defining the level of + !! transparency. A value of 1 indicates a fully opaque surface. + !! Any values supplied outside of the set are clipped to fit within + !! (0 1]. if (x > 1.0) then this%m_transparency = 1.0 else if (x <= 0.0) then @@ -275,4 +384,5 @@ module subroutine surf_set_transparency(this, x) end if end subroutine -end submodule \ No newline at end of file +! ------------------------------------------------------------------------------ +end module \ No newline at end of file diff --git a/src/fplot_surface_plot_data.f90 b/src/fplot_surface_plot_data.f90 index e3d3e5e..914cf60 100644 --- a/src/fplot_surface_plot_data.f90 +++ b/src/fplot_surface_plot_data.f90 @@ -1,216 +1,315 @@ -! fplot_surface_plot_data.f90 +module fplot_surface_plot_data + use iso_fortran_env + use fplot_plot_data + use ferror + use fplot_errors + use strings + implicit none + private + public :: surface_plot_data + + type, extends(plot_data) :: surface_plot_data + !! Provides a three-dimensional surface plot data set. + real(real64), private, allocatable, dimension(:,:) :: m_x + !! Stores the x-coordinate data + real(real64), private, allocatable, dimension(:,:) :: m_y + !! Stores the y-coordinate data + real(real64), private, allocatable, dimension(:,:) :: m_z + !! Stores the z-coordinate data + logical, private :: m_wireframe = .false. + !! Set to true to display a wireframe of the surface; else, just a + !! smooth surface will be drawn + contains + procedure, public :: get_size => surfd_get_size + procedure, public :: get_x => surfd_get_x + procedure, public :: set_x => surfd_set_x + procedure, public :: get_y => surfd_get_y + procedure, public :: set_y => surfd_set_y + procedure, public :: get_z => surfd_get_z + procedure, public :: set_z => surfd_set_z + procedure, public :: get_use_wireframe => surfd_get_wireframe + procedure, public :: set_use_wireframe => surfd_set_wireframe + procedure, public :: get_command_string => surfd_get_cmd + procedure, public :: get_data_string => surfd_get_data_cmd + procedure, public :: define_data => surfd_set_data_1 + end type -submodule (fplot_core) fplot_surface_plot_data contains ! ------------------------------------------------------------------------------ - pure module function surfd_get_size(this, dim) result(x) - class(surface_plot_data), intent(in) :: this - integer(int32), intent(in) :: dim - integer(int32) :: x - if (allocated(this%m_x)) then - x = size(this%m_x, dim) - else - x = 0 - end if - end function +pure function surfd_get_size(this, dim) result(x) + !! Gets the size of the stored data set. + class(surface_plot_data), intent(in) :: this + !! The suface_plot_data object. + integer(int32), intent(in) :: dim + !! The dimension of interest. Notice, data is stored as a + !! 2D matrix (i.e. only 1 and 2 are valid inputs). + integer(int32) :: x + !! The size of the requested dimension. + if (allocated(this%m_x)) then + x = size(this%m_x, dim) + else + x = 0 + end if +end function ! ------------------------------------------------------------------------------ - pure module function surfd_get_x(this, i, j) result(x) - class(surface_plot_data), intent(in) :: this - integer(int32), intent(in) :: i, j - real(real64) :: x - if (allocated(this%m_x)) then - x = this%m_x(i,j) - else - x = 0.0d0 - end if - end function +pure function surfd_get_x(this, i, j) result(x) + !! Gets the requested X data point. + class(surface_plot_data), intent(in) :: this + !! The suface_plot_data object. + integer(int32), intent(in) :: i + !! The row index. + integer(int32), intent(in) :: j + !! The column index. + real(real64) :: x + !! The value. + if (allocated(this%m_x)) then + x = this%m_x(i,j) + else + x = 0.0d0 + end if +end function ! -------------------- - module subroutine surfd_set_x(this, i, j, x) - class(surface_plot_data), intent(inout) :: this - integer(int32), intent(in) :: i, j - real(real64), intent(in) :: x - if (allocated(this%m_x)) then - this%m_x(i,j) = x - end if - end subroutine +subroutine surfd_set_x(this, i, j, x) + !! Sets the requested X data point. + class(surface_plot_data), intent(inout) :: this + !! The suface_plot_data object. + integer(int32), intent(in) :: i + !! The row index. + integer(int32), intent(in) :: j + !! The column index. + real(real64), intent(in) :: x + !! The value. + if (allocated(this%m_x)) then + this%m_x(i,j) = x + end if +end subroutine ! ------------------------------------------------------------------------------ - pure module function surfd_get_y(this, i, j) result(x) - class(surface_plot_data), intent(in) :: this - integer(int32), intent(in) :: i, j - real(real64) :: x - if (allocated(this%m_y)) then - x = this%m_y(i,j) - else - x = 0.0d0 - end if - end function +pure function surfd_get_y(this, i, j) result(x) + !! Gets the requested Y data point. + class(surface_plot_data), intent(in) :: this + !! The suface_plot_data object. + integer(int32), intent(in) :: i + !! The row index. + integer(int32), intent(in) :: j + !! The column index. + real(real64) :: x + !! The value. + if (allocated(this%m_y)) then + x = this%m_y(i,j) + else + x = 0.0d0 + end if +end function ! -------------------- - module subroutine surfd_set_y(this, i, j, x) - class(surface_plot_data), intent(inout) :: this - integer(int32), intent(in) :: i, j - real(real64), intent(in) :: x - if (allocated(this%m_y)) then - this%m_y(i,j) = x - end if - end subroutine +subroutine surfd_set_y(this, i, j, x) + !! Sets the requested Y data point. + class(surface_plot_data), intent(inout) :: this + !! The suface_plot_data object. + integer(int32), intent(in) :: i + !! The row index. + integer(int32), intent(in) :: j + !! The column index. + real(real64), intent(in) :: x + !! The value. + if (allocated(this%m_y)) then + this%m_y(i,j) = x + end if +end subroutine ! ------------------------------------------------------------------------------ - pure module function surfd_get_z(this, i, j) result(x) - class(surface_plot_data), intent(in) :: this - integer(int32), intent(in) :: i, j - real(real64) :: x - if (allocated(this%m_z)) then - x = this%m_z(i,j) - else - x = 0.0d0 - end if - end function +pure function surfd_get_z(this, i, j) result(x) + !! Gets the requested Z data point. + class(surface_plot_data), intent(in) :: this + !! The suface_plot_data object. + integer(int32), intent(in) :: i + !! The row index. + integer(int32), intent(in) :: j + !! The column index. + real(real64) :: x + !! The value. + if (allocated(this%m_z)) then + x = this%m_z(i,j) + else + x = 0.0d0 + end if +end function ! -------------------- - module subroutine surfd_set_z(this, i, j, x) - class(surface_plot_data), intent(inout) :: this - integer(int32), intent(in) :: i, j - real(real64), intent(in) :: x - if (allocated(this%m_z)) then - this%m_z(i,j) = x - end if - end subroutine +subroutine surfd_set_z(this, i, j, x) + !! Sets the requested Z data point. + class(surface_plot_data), intent(inout) :: this + !! The suface_plot_data object. + integer(int32), intent(in) :: i + !! The row index. + integer(int32), intent(in) :: j + !! The column index. + real(real64), intent(in) :: x + !! The value. + if (allocated(this%m_z)) then + this%m_z(i,j) = x + end if +end subroutine ! ------------------------------------------------------------------------------ - pure module function surfd_get_wireframe(this) result(x) - class(surface_plot_data), intent(in) :: this - logical :: x - x = this%m_wireframe - end function +pure function surfd_get_wireframe(this) result(x) + !! Gets a value determining if a wireframe mesh should be displayed. + class(surface_plot_data), intent(in) :: this + !! The suface_plot_data object. + logical :: x + !! Returns true if a wireframe mesh should be displayed; else, + !! false to display a solid surface. + x = this%m_wireframe +end function ! -------------------- - module subroutine surfd_set_wireframe(this, x) - class(surface_plot_data), intent(inout) :: this - logical, intent(in) :: x - this%m_wireframe = x - end subroutine +subroutine surfd_set_wireframe(this, x) + !! Sets a value determining if a wireframe mesh should be displayed. + class(surface_plot_data), intent(inout) :: this + !! The suface_plot_data object. + logical, intent(in) :: x + !! Set to true if a wireframe mesh should be displayed; else, + !! false to display a solid surface. + this%m_wireframe = x +end subroutine ! ------------------------------------------------------------------------------ - module function surfd_get_cmd(this) result(x) - ! Arguments - class(surface_plot_data), intent(in) :: this - character(len = :), allocatable :: x - - ! Local Variables - type(string_builder) :: str - integer(int32) :: n - - ! Initialization - call str%initialize() - - ! Title - n = len_trim(this%get_name()) - if (n > 0) then - call str%append(' "-" title "') - call str%append(this%get_name()) - call str%append('"') - else - call str%append(' "-" notitle') - end if - - ! PM3D or wireframe? - if (this%get_use_wireframe()) then - call str%append(" with lines") - else - call str%append(" with pm3d") - end if - - ! End - x = char(str%to_string()) - end function +function surfd_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this surface_plot_data + !! object. + class(surface_plot_data), intent(in) :: this + !! The suface_plot_data object. + character(len = :), allocatable :: x + !! The command string. + + ! Local Variables + type(string_builder) :: str + integer(int32) :: n + + ! Initialization + call str%initialize() + + ! Title + n = len_trim(this%get_name()) + if (n > 0) then + call str%append(' "-" title "') + call str%append(this%get_name()) + call str%append('"') + else + call str%append(' "-" notitle') + end if + + ! PM3D or wireframe? + if (this%get_use_wireframe()) then + call str%append(" with lines") + else + call str%append(" with pm3d") + end if + + ! End + x = char(str%to_string()) +end function ! ------------------------------------------------------------------------------ - module function surfd_get_data_cmd(this) result(x) - ! Arguments - class(surface_plot_data), intent(in) :: this - character(len = :), allocatable :: x - - ! Local Variables - type(string_builder) :: str - integer(int32) :: i, j, m, n - character :: delimiter, nl - - ! Initialization - call str%initialize() - m = this%get_size(1) - n = this%get_size(2) - delimiter = achar(9) ! tab delimiter - nl = new_line(nl) - - ! Process - do j = 1, n - do i = 1, m - call str%append(to_string(this%get_x(i,j))) - call str%append(delimiter) - call str%append(to_string(this%get_y(i,j))) - call str%append(delimiter) - call str%append(to_string(this%get_z(i,j))) - call str%append(nl) - end do - if (j /= n) call str%append(nl) +function surfd_get_data_cmd(this) result(x) + !! Gets the GNUPLOT command string containing the actual data to plot. + class(surface_plot_data), intent(in) :: this + !! The suface_plot_data object. + character(len = :), allocatable :: x + !! The GNUPLOT command string. + + ! Local Variables + type(string_builder) :: str + integer(int32) :: i, j, m, n + character :: delimiter, nl + + ! Initialization + call str%initialize() + m = this%get_size(1) + n = this%get_size(2) + delimiter = achar(9) ! tab delimiter + nl = new_line(nl) + + ! Process + do j = 1, n + do i = 1, m + call str%append(to_string(this%get_x(i,j))) + call str%append(delimiter) + call str%append(to_string(this%get_y(i,j))) + call str%append(delimiter) + call str%append(to_string(this%get_z(i,j))) + call str%append(nl) end do + if (j /= n) call str%append(nl) + end do - ! End - x = char(str%to_string()) - end function + ! End + x = char(str%to_string()) +end function ! ------------------------------------------------------------------------------ - module subroutine surfd_set_data_1(this, x, y, z, err) - ! Arguments - class(surface_plot_data), intent(inout) :: this - real(real64), intent(in), dimension(:,:) :: x, y, z - class(errors), intent(inout), optional, target :: err - - ! Local Variables - integer(int32) :: i, j, m, n, flag - class(errors), pointer :: errmgr - type(errors), target :: deferr - - ! Initialization - m = size(x, 1) - n = size(x, 2) - if (present(err)) then - errmgr => err - else - errmgr => deferr - end if - - ! Input Check - if (size(y, 1) /= m .or. size(y, 2) /= n .or. size(z, 1) /= m .or. size(z, 2) /= n) then - call errmgr%report_error("surfd_set_data_1", & - "The input arrays are not the same size.", & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) - return - end if - - ! Process - if (allocated(this%m_x)) deallocate(this%m_x) - if (allocated(this%m_y)) deallocate(this%m_y) - if (allocated(this%m_z)) deallocate(this%m_z) - allocate(this%m_x(m, n), stat = flag) - if (flag == 0) allocate(this%m_y(m, n), stat = flag) - if (flag == 0) allocate(this%m_z(m, n), stat = flag) - if (flag /= 0) then - call errmgr%report_error("surfd_set_data_1", & - "Insufficient memory available.", PLOT_OUT_OF_MEMORY_ERROR) - return - end if - do concurrent (j = 1:n) - do i = 1, m - this%m_x(i, j) = x(i, j) - this%m_y(i, j) = y(i, j) - this%m_z(i, j) = z(i, j) - end do +subroutine surfd_set_data_1(this, x, y, z, err) + !! Defines the data set. + class(surface_plot_data), intent(inout) :: this + !! The suface_plot_data object. + real(real64), intent(in), dimension(:,:) :: x + !! An M-by-N matrix containing the x-coordinate data. + real(real64), intent(in), dimension(:,:) :: y + !! An M-by-N matrix containing the y-coordinate data. + real(real64), intent(in), dimension(:,:) :: z + !! An M-by-N matrix containing the z-coordinate data. + class(errors), intent(inout), optional, target :: err + !! An error handling object. + + ! Local Variables + integer(int32) :: i, j, m, n, flag + class(errors), pointer :: errmgr + type(errors), target :: deferr + + ! Initialization + m = size(x, 1) + n = size(x, 2) + if (present(err)) then + errmgr => err + else + errmgr => deferr + end if + + ! Input Check + if (size(y, 1) /= m .or. size(y, 2) /= n) then + call report_matrix_size_mismatch_error(errmgr, "surfd_set_data_1", & + "y", m, n, size(y, 1), size(y,2)) + return + end if + + if (size(z, 1) /= m .or. size(z, 2) /= n) then + call report_matrix_size_mismatch_error(errmgr, "surfd_set_data_1", & + "z", m, n, size(z, 1), size(z,2)) + return + end if + + ! Process + if (allocated(this%m_x)) deallocate(this%m_x) + if (allocated(this%m_y)) deallocate(this%m_y) + if (allocated(this%m_z)) deallocate(this%m_z) + allocate(this%m_x(m, n), stat = flag) + if (flag == 0) allocate(this%m_y(m, n), stat = flag) + if (flag == 0) allocate(this%m_z(m, n), stat = flag) + if (flag /= 0) then + call report_memory_error(errmgr, "surfd_set_data_1", flag) + return + end if + do concurrent (j = 1:n) + do i = 1, m + this%m_x(i, j) = x(i, j) + this%m_y(i, j) = y(i, j) + this%m_z(i, j) = z(i, j) end do - end subroutine + end do +end subroutine -end submodule +! ------------------------------------------------------------------------------ +end module \ No newline at end of file diff --git a/src/fplot_terminal.f90 b/src/fplot_terminal.f90 index d2192b5..7658f1e 100644 --- a/src/fplot_terminal.f90 +++ b/src/fplot_terminal.f90 @@ -1,18 +1,80 @@ ! fplot_terminal.f90 -submodule (fplot_core) fplot_terminal +module fplot_terminal + use iso_fortran_env + use fplot_plot_object + use fplot_constants + use strings + implicit none + private + public :: terminal + public :: term_get_string_result + + type, abstract, extends(plot_object) :: terminal + !! A GNUPLOT terminal object. + private + integer(int32) :: m_windowHeight = GNUPLOT_DEFAULT_WINDOW_HEIGHT + !! The window height, in pixels. + integer(int32) :: m_windowWidth = GNUPLOT_DEFAULT_WINDOW_WIDTH + !! The window width, in pixels. + integer(int32) :: m_termID = 0 + !! The terminal ID number. + character(len = GNUPLOT_MAX_LABEL_LENGTH) :: m_title = "" + !! The plot window title. + logical :: m_hasTitle = .false. + !! Determines if the plot title is defined. + character(len = GNUPLOT_MAX_LABEL_LENGTH) :: m_fontName = & + GNUPLOT_DEFAULT_FONTNAME + !! The font used by the graph. + integer(int32) :: m_fontSize = GNUPLOT_DEFAULT_FONT_SIZE + !! The size of the font used by the graph. + contains + procedure, public :: get_window_width => term_get_window_width + procedure, public :: set_window_width => term_set_window_width + procedure, public :: get_window_height => term_get_window_height + procedure, public :: set_window_height => term_set_window_height + procedure, public :: get_command_string => term_get_command_string + procedure, public :: get_plot_window_number => & + term_get_plot_window_number + procedure, public :: set_plot_window_number => & + term_set_plot_window_number + procedure, public :: get_title => term_get_title + procedure, public :: set_title => term_set_title + procedure, public :: get_font_name => term_get_font_name + procedure, public :: set_font_name => term_set_font_name + procedure, public :: get_font_size => term_get_font_size + procedure, public :: set_font_size => term_set_font_size + procedure(term_get_string_result), deferred, public :: get_id_string + end type + + interface + function term_get_string_result(this) result(x) + !! Retrieves a string from a terminal. + import terminal + class(terminal), intent(in) :: this + !! The terminal object. + character(len = :), allocatable :: x + !! The string. + end function + end interface contains ! ------------------------------------------------------------------------------ - pure module function term_get_window_width(this) result(x) + pure function term_get_window_width(this) result(x) + !! Gets the width of the plot window. class(terminal), intent(in) :: this + !! The terminal object. integer :: x + !! The width of the plot window. x = this%m_windowWidth end function ! -------------------- - module subroutine term_set_window_width(this, x) + subroutine term_set_window_width(this, x) + !! Sets the width of the plot window. class(terminal), intent(inout) :: this + !! The terminal object. integer, intent(in) :: x + !! The width of the plot window. if (x == 0) then this%m_windowWidth = GNUPLOT_DEFAULT_WINDOW_WIDTH else @@ -21,16 +83,22 @@ module subroutine term_set_window_width(this, x) end subroutine ! ------------------------------------------------------------------------------ - pure module function term_get_window_height(this) result(x) + pure function term_get_window_height(this) result(x) + !! Gets the height of the plot window. class(terminal), intent(in) :: this + !! The terminal object. integer :: x + !! The height of the plot window. x = this%m_windowHeight end function ! -------------------- - module subroutine term_set_window_height(this, x) + subroutine term_set_window_height(this, x) + !! Sets the height of the plot window. class(terminal), intent(inout) :: this + !! The terminal object. integer, intent(in) :: x + !! The height of the plot window. if (x == 0) then this%m_windowHeight = GNUPLOT_DEFAULT_WINDOW_HEIGHT else @@ -39,23 +107,32 @@ module subroutine term_set_window_height(this, x) end subroutine ! ------------------------------------------------------------------------------ - pure module function term_get_plot_window_number(this) result(x) + pure function term_get_plot_window_number(this) result(x) + !! Gets the targeted plot window number. class(terminal), intent(in) :: this + !! The terminal object. integer(int32) :: x + !! The plot window number. x = this%m_termID end function ! -------------------- - module subroutine term_set_plot_window_number(this, x) + subroutine term_set_plot_window_number(this, x) + !! Sets the targeted plot window number. class(terminal), intent(inout) :: this + !! The terminal object. integer(int32), intent(in) :: x + !! The plot window number. this%m_termID = x end subroutine ! ------------------------------------------------------------------------------ - module function term_get_title(this) result(str) + function term_get_title(this) result(str) + !! Gets the plot window's title. class(terminal), intent(in) :: this + !! The terminal object. character(len = :), allocatable :: str + !! The title. integer(int32) :: n n = len_trim(str) allocate(character(len = n) :: str) @@ -63,9 +140,12 @@ module function term_get_title(this) result(str) end function ! -------------------- - module subroutine term_set_title(this, txt) + subroutine term_set_title(this, txt) + !! Sets the plot window's title. class(terminal), intent(inout) :: this + !! The terminal object. character(len = *), intent(in) :: txt + !! The title. integer(int32) :: n n = min(len_trim(txt), GNUPLOT_MAX_LABEL_LENGTH) this%m_title = "" @@ -78,9 +158,12 @@ module subroutine term_set_title(this, txt) end subroutine ! ------------------------------------------------------------------------------ - module function term_get_font_name(this) result(name) + function term_get_font_name(this) result(name) + !! Gets the name of the font used for text displayed by the graph. class(terminal), intent(in) :: this + !! The terminal object. character(len = :), allocatable :: name + !! The font name. integer(int32) :: n n = len_trim(this%m_fontName) allocate(character(len = n) :: name) @@ -88,9 +171,12 @@ module function term_get_font_name(this) result(name) end function ! -------------------- - module subroutine term_set_font_name(this, name) + subroutine term_set_font_name(this, name) + !! Sets the name of the font used for text displayed by the graph. class(terminal), intent(inout) :: this + !! The terminal object. character(len = *), intent(in) :: name + !! The font name. integer(int32) :: n n = min(len_trim(name), GNUPLOT_MAX_LABEL_LENGTH) this%m_fontName = "" @@ -102,16 +188,22 @@ module subroutine term_set_font_name(this, name) end subroutine ! ------------------------------------------------------------------------------ - pure module function term_get_font_size(this) result(sz) + pure function term_get_font_size(this) result(sz) + !! Gets the size of the font used by the graph. class(terminal), intent(in) :: this + !! The terminal object. integer(int32) :: sz + !! The font size, in points. sz = this%m_fontSize end function ! -------------------- - module subroutine term_set_font_size(this, sz) + subroutine term_set_font_size(this, sz) + !! Sets the size of the font used by the graph. class(terminal), intent(inout) :: this + !! The terminal object. integer(int32), intent(in) :: sz + !! The font size, in points. if (sz == 0) then this%m_fontSize = GNUPLOT_DEFAULT_FONT_SIZE else @@ -120,10 +212,13 @@ module subroutine term_set_font_size(this, sz) end subroutine ! ------------------------------------------------------------------------------ - module function term_get_command_string(this) result(x) - ! Arguments + function term_get_command_string(this) result(x) + !! Returns the appropriate GNUPLOT command string to establish + !! appropriate parameters. class(terminal), intent(in) :: this + !! The terminal object. character(len = :), allocatable :: x + !! The GNUPLOT command string. ! Local Variables type(string_builder) :: str @@ -153,4 +248,4 @@ module function term_get_command_string(this) result(x) end function ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_tri_surface_plot_data.f90 b/src/fplot_tri_surface_plot_data.f90 index bb4bf1d..3dcba63 100644 --- a/src/fplot_tri_surface_plot_data.f90 +++ b/src/fplot_tri_surface_plot_data.f90 @@ -1,14 +1,45 @@ ! fplot_tri_surface_plot_data.f90 -submodule (fplot_core) fplot_tri_surface_plot_data +module fplot_tri_surface_plot_data + use iso_fortran_env + use fplot_plot_data + use fplot_delaunay_tri_surface + use strings + implicit none + private + public :: tri_surface_plot_data + + type, extends(plot_data) :: tri_surface_plot_data + !! Provides a three-dimensional surface plot data set constructed of + !! triangulated points. + real(real64), private, allocatable, dimension(:) :: m_x + !! An array of the x-coordinates of each point. + real(real64), private, allocatable, dimension(:) :: m_y + !! An array of the y-coordinates of each point. + real(real64), private, allocatable, dimension(:) :: m_z + !! An array of the z-coordinates of each point. + integer(int32), private, allocatable, dimension(:,:) :: m_indices + !! A 3-column matrix containing the indices of each triangle's + !! vertex. + logical, private :: m_wireframe = .true. + !! Determines if the surface should be drawn as a wireframe. + contains + procedure, public :: get_data_string => tspd_get_data_cmd + procedure, public :: get_command_string => tspd_get_cmd + procedure, public :: get_use_wireframe => tspd_get_wireframe + procedure, public :: set_use_wireframe => tspd_set_wireframe + procedure, public :: define_data => tspd_define_data + end type + contains ! ------------------------------------------------------------------------------ - module function tspd_get_data_cmd(this) result(x) - ! Arguments + function tspd_get_data_cmd(this) result(x) + !! Gets the GNUPLOT command string for representing the data. class(tri_surface_plot_data), intent(in) :: this + !! The tri_surface_plot_data object. character(len = :), allocatable :: x + !! The command string. - ! Local Variables ! Local Variables type(string_builder) :: str integer(int32) :: i, j, n @@ -96,10 +127,12 @@ module function tspd_get_data_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - module function tspd_get_cmd(this) result(x) - ! Arguments + function tspd_get_cmd(this) result(x) + !! Gets the GNUPLOT command string for the object. class(tri_surface_plot_data), intent(in) :: this + !! The tri_surface_plot_data object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -130,24 +163,34 @@ module function tspd_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - pure module function tspd_get_wireframe(this) result(rst) + pure function tspd_get_wireframe(this) result(rst) + !! Gets a value determining if a wireframe mesh should be displayed. class(tri_surface_plot_data), intent(in) :: this + !! The tri_surface_plot_data object. logical :: rst + !! Returns true if the plot is to be drawn as a wireframe; else, + !! false to draw as a surface. rst = this%m_wireframe end function ! ------------------------------------------------------------------------------ - module subroutine tspd_set_wireframe(this, x) + subroutine tspd_set_wireframe(this, x) + !! Sets a value determining if a wireframe mesh should be displayed. class(tri_surface_plot_data), intent(inout) :: this + !! The tri_surface_plot_data object. logical, intent(in) :: x + !! Set to true if the plot is to be drawn as a wireframe; else, + !! false to draw as a surface. this%m_wireframe = x end subroutine ! ------------------------------------------------------------------------------ - module subroutine tspd_define_data(this, tri) - ! Arguments + subroutine tspd_define_data(this, tri) + !! Defines the data to plot. class(tri_surface_plot_data), intent(inout) :: this + !! The tri_surface_plot_data object. class(delaunay_tri_surface), intent(in) :: tri + !! The triangulation to plot. ! Process if (allocated(this%m_x)) deallocate(this%m_x) @@ -162,4 +205,4 @@ module subroutine tspd_define_data(this, tri) end subroutine ! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_triangulations_delaunay_2d.f90 b/src/fplot_triangulations_delaunay_2d.f90 index ade40db..d008650 100644 --- a/src/fplot_triangulations_delaunay_2d.f90 +++ b/src/fplot_triangulations_delaunay_2d.f90 @@ -1,17 +1,50 @@ -submodule (fplot_core) fplot_triangulations_delaunay_2d +module fplot_triangulations_delaunay_2d + use iso_fortran_env use geompack + use ferror + use fplot_errors + implicit none + private + public :: delaunay_tri_2d + + type delaunay_tri_2d + !! Provides a container for a 2D Delaunay triangulation. + real(real64), private, allocatable, dimension(:) :: m_x + !! An array of the x-coordinates of each point. + real(real64), private, allocatable, dimension(:) :: m_y + !! An array of the y-coordinates of each point. + integer(int32), private, allocatable, dimension(:,:) :: m_indices + !! A 3-column matrix containing the indices of each triangle's + !! vertex. + contains + procedure, public :: create => d2d_init + procedure, public :: get_point_count => d2d_get_pt_count + procedure, public :: get_triangle_count => d2d_get_tri_count + procedure, public :: get_points_x => d2d_get_x_pts + procedure, public :: get_points_y => d2d_get_y_pts + procedure, public :: get_indices => d2d_get_tris + procedure, public :: find_triangle => d2d_get_tri_with_pt + end type + contains ! ------------------------------------------------------------------------------ - module subroutine d2d_init(this, x, y, err) - ! Arguments + subroutine d2d_init(this, x, y, err) + !! Creates an unconstrained 2D Delaunay triangulation given a + !! set of x-y points. class(delaunay_tri_2d), intent(inout) :: this - real(real64), intent(in), dimension(:) :: x, y + !! The delaunay_tri_2d object. + real(real64), intent(in), dimension(:) :: x + !! An N-element array containing the x-coordinates of each + !! data point. + real(real64), intent(in), dimension(:) :: y + !! An N-element array containing the y-coordinates of each + !! data point. class(errors), intent(inout), target, optional :: err + !! An error handling object. ! Local Variables class(errors), pointer :: errmgr type(errors), target :: deferr - character(len = 256) :: errmsg integer(int32) :: i, npts, ntri, flag real(real64), allocatable, dimension(:,:) :: nodexy integer(int32), allocatable, dimension(:,:) :: trinode, trinbr @@ -26,11 +59,8 @@ module subroutine d2d_init(this, x, y, err) ! Input Check if (size(y) /= npts) then - write(errmsg, 200) & - "Expected the y-coordinate array to have ", npts, & - " elements, but found ", size(y), " instead." - call errmgr%report_error("d2d_init", trim(errmsg), & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) + call report_array_size_mismatch_error(errmgr, "d2d_init", "y", & + npts, size(y)) return end if @@ -73,17 +103,17 @@ module subroutine d2d_init(this, x, y, err) ! Memory Error Handler 100 continue - call errmgr%report_error("d2d_init", "Insufficient memory available.", & - PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "d2d_init", flag) return - -200 format(A, I0, A, I0, A) end subroutine ! ------------------------------------------------------------------------------ - pure module function d2d_get_pt_count(this) result(rst) + pure function d2d_get_pt_count(this) result(rst) + !! Gets the number of points in the triangulation. class(delaunay_tri_2d), intent(in) :: this + !! The delaunay_tri_2d object. integer(int32) :: rst + !! The number of points in the triangulation. if (allocated(this%m_x)) then rst = size(this%m_x) else @@ -92,9 +122,12 @@ pure module function d2d_get_pt_count(this) result(rst) end function ! ------------------------------------------------------------------------------ - pure module function d2d_get_tri_count(this) result(rst) + pure function d2d_get_tri_count(this) result(rst) + !! Gets the number of triangles in the triangulation. class(delaunay_tri_2d), intent(in) :: this + !! The delaunay_tri_2d object. integer(int32) :: rst + !! The number of triangles in the triangulation. if (allocated(this%m_indices)) then rst = size(this%m_indices, 1) else @@ -103,9 +136,12 @@ pure module function d2d_get_tri_count(this) result(rst) end function ! ------------------------------------------------------------------------------ - pure module function d2d_get_x_pts(this) result(rst) + pure function d2d_get_x_pts(this) result(rst) + !! Gets the x-coordinates of each point. class(delaunay_tri_2d), intent(in) :: this + !! The delaunay_tri_2d object. real(real64), allocatable, dimension(:) :: rst + !! An array of the x-coordinates of each point. if (allocated(this%m_x)) then rst = this%m_x else @@ -114,9 +150,12 @@ pure module function d2d_get_x_pts(this) result(rst) end function ! ------------------------------------------------------------------------------ - pure module function d2d_get_y_pts(this) result(rst) + pure function d2d_get_y_pts(this) result(rst) + !! Gets the y-coordinates of each point. class(delaunay_tri_2d), intent(in) :: this + !! The delaunay_tri_2d object. real(real64), allocatable, dimension(:) :: rst + !! An array of the y-coordinates of each point. if (allocated(this%m_y)) then rst = this%m_y else @@ -125,9 +164,13 @@ pure module function d2d_get_y_pts(this) result(rst) end function ! ------------------------------------------------------------------------------ - pure module function d2d_get_tris(this) result(rst) + pure function d2d_get_tris(this) result(rst) + !! Gets a list of the indices of each triangle vertex. class(delaunay_tri_2d), intent(in) :: this + !! The delaunay_tri_2d object. integer(int32), allocatable, dimension(:,:) :: rst + !! An N-by-3 matrix with each column containing the index of the + !! vertex of each triangle where N is the number of triangles. if (allocated(this%m_indices)) then rst = this%m_indices else @@ -136,11 +179,18 @@ pure module function d2d_get_tris(this) result(rst) end function ! ------------------------------------------------------------------------------ - pure module function d2d_get_tri_with_pt(this, x, y) result(rst) - ! Arguments + pure function d2d_get_tri_with_pt(this, x, y) result(rst) + !! Finds the triangle that contains the specified point. class(delaunay_tri_2d), intent(in) :: this - real(real64), intent(in) :: x, y + !! The delaunay_tri_2d object. + real(real64), intent(in) :: x + !! The x-coordinate of the point. + real(real64), intent(in) :: y + !! The y-coordinate of the point. integer(int32) :: rst + !! Returns the index of the triangle containing the specified + !! point. If no triangle contains the specified point, a value of + !! -1 is returned. ! Local Variables integer(int32) :: i, j @@ -199,4 +249,4 @@ pure elemental function point_inside_triangle(x1, y1, x2, y2, x3, y3, & end function ! ------------------------------------------------------------------------------ -end submodule \ No newline at end of file +end module \ No newline at end of file diff --git a/src/fplot_vector_field_plot_data.f90 b/src/fplot_vector_field_plot_data.f90 index 9306e49..c4041e1 100644 --- a/src/fplot_vector_field_plot_data.f90 +++ b/src/fplot_vector_field_plot_data.f90 @@ -1,12 +1,50 @@ ! fplot_vector_field_plot_data.f90 +! REF: + ! http://www.gnuplotting.org/vector-field-from-data-file/ + ! http://gnuplot.sourceforge.net/demo_5.4/vector.html + ! http://www.gnuplot.info/docs_5.4/Gnuplot_5_4.pdf (pg 79) + +module fplot_vector_field_plot_data + use iso_fortran_env + use fplot_plot_data + use fplot_errors + use fplot_colors + use ferror + use strings + implicit none + private + public :: vector_field_plot_data + + type, extends(plot_data_colored) :: vector_field_plot_data + !! Defines a two-dimensional vector-field plot data set. + real(real64), private, allocatable, dimension(:,:,:) :: m_data + !! An M-by-N-by-4 array containing the x, y, dx, and dy plot + !! data points. Optionally, a 5th page can be added to define the + !! color for each arrow. + real(real64), private :: m_arrowSize = 1.0d0 + !! The vector size (scaling factor). + logical, private :: m_filledHeads = .false. + !! Fill the arrow heads? + contains + procedure, public :: get_data_string => vfpd_get_data_cmd + procedure, public :: get_command_string => vfpd_get_cmd + procedure, public :: define_data => vfpd_define_data + procedure, public :: get_arrow_size => vfpd_get_arrow_size + procedure, public :: set_arrow_size => vfpd_set_arrow_size + procedure, public :: get_fill_arrow => vfpd_get_fill_arrow + procedure, public :: set_fill_arrow => vfpd_set_fill_arrow + procedure, public :: get_use_data_dependent_colors => & + vfpd_get_use_data_dependent_colors + end type -submodule (fplot_core) fplot_vector_field_plot_data contains ! ------------------------------------------------------------------------------ - module function vfpd_get_data_cmd(this) result(x) - ! Arguments + function vfpd_get_data_cmd(this) result(x) + !! Gets the GNUPLOT command string containing the actual data to plot. class(vector_field_plot_data), intent(in) :: this + !! The vector_field_plot_data object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -64,10 +102,13 @@ module function vfpd_get_data_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - module function vfpd_get_cmd(this) result(x) - ! Arguments + function vfpd_get_cmd(this) result(x) + !! Gets the GNUPLOT command string to represent this + !! vector_field_plot_data object. class(vector_field_plot_data), intent(in) :: this + !! The vector_field_plot_data object. character(len = :), allocatable :: x + !! The command string. ! Local Variables type(string_builder) :: str @@ -108,12 +149,25 @@ module function vfpd_get_cmd(this) result(x) end function ! ------------------------------------------------------------------------------ - module subroutine vfpd_define_data(this, x, y, dx, dy, c, err) - ! Arguments + subroutine vfpd_define_data(this, x, y, dx, dy, c, err) + !! Defines the data set. class(vector_field_plot_data), intent(inout) :: this - real(real64), intent(in), dimension(:,:) :: x, y, dx, dy + !! The vector_field_plot_data object. + real(real64), intent(in), dimension(:,:) :: x + !! An M-by-N matrix containing the x-locations of each arrow's + !! origin. + real(real64), intent(in), dimension(:,:) :: y + !! An M-by-N matrix containing the y-locations of each arrow's + !! origin. + real(real64), intent(in), dimension(:,:) :: dx + !! An M-by-N matrix containing the x-direction of each arrow. + real(real64), intent(in), dimension(:,:) :: dy + !! An M-by-N matrix containing the y-direction of each arrow. real(real64), intent(in), dimension(:,:), optional :: c + !! An optional M-by-N matrix containing information on how to color + !! the arrows. The colors are determined by the active colormap. class(errors), intent(inout), optional, target :: err + !! An error handling object. ! Local Variables integer(int32) :: i, j, m, n, flag @@ -131,22 +185,26 @@ module subroutine vfpd_define_data(this, x, y, dx, dy, c, err) ! Input Checking m = size(x, 1) n = size(x, 2) - if (.not.check_size(y, m, n)) then - call write_errmsg("y", size(y, 1), size(y, 2), m, n, errmsg) - go to 100 + if (size(y, 1) /= m .or. size(y, 2) /= n) then + call report_matrix_size_mismatch_error(errmgr, "vfpd_define_data", & + "y", m, n, size(y, 1), size(y, 2)) + return end if - if (.not.check_size(dx, m, n)) then - call write_errmsg("dx", size(y, 1), size(y, 2), m, n, errmsg) - go to 100 + if (size(dx, 1) /= m .or. size(dx, 2) /= n) then + call report_matrix_size_mismatch_error(errmgr, "vfpd_define_data", & + "dx", m, n, size(dx, 1), size(dx, 2)) + return end if - if (.not.check_size(dy, m, n)) then - call write_errmsg("dy", size(y, 1), size(y, 2), m, n, errmsg) - go to 100 + if (size(dy, 1) /= m .or. size(dy, 2) /= n) then + call report_matrix_size_mismatch_error(errmgr, "vfpd_define_data", & + "dy", m, n, size(dy, 1), size(dy, 2)) + return end if if (present(c)) then - if (.not.check_size(c, m, n)) then - call write_errmsg("c", size(c, 1), size(c, 2), m, n, errmsg) - go to 100 + if (size(c, 1) /= m .or. size(c, 2) /= n) then + call report_matrix_size_mismatch_error(errmgr, & + "vfpd_define_data", "c", m, n, size(c, 1), size(c, 2)) + return end if end if @@ -158,9 +216,7 @@ module subroutine vfpd_define_data(this, x, y, dx, dy, c, err) allocate(this%m_data(m, n, 4), stat = flag) end if if (flag /= 0) then - call errmgr%report_error("vfpd_define_data", & - "Insufficient memory available.", & - PLOT_OUT_OF_MEMORY_ERROR) + call report_memory_error(errmgr, "vfpd_define_data", flag) return end if @@ -188,88 +244,62 @@ module subroutine vfpd_define_data(this, x, y, dx, dy, c, err) ! End return - - ! Error Handling - 100 continue - call errmgr%report_error("vfpd_define_data", trim(errmsg), & - PLOT_ARRAY_SIZE_MISMATCH_ERROR) - return - - contains - ! Checks the size of the supplied array (xc) vs the reference row (mref) - ! and column (nref) dimensions. - ! - ! Returns true if the array size matches the reference; else, false. - function check_size(xc, mref, nref) result(rst) - ! Arguments - real(real64), intent(in), dimension(:,:) :: xc - integer(int32), intent(in) :: mref, nref - logical :: rst - - ! Process - if (size(xc, 1) /= mref .or. size(xc, 2) /= nref) then - rst = .false. - else - rst = .true. - end if - end function - - ! Writes an error message regarding array size. - subroutine write_errmsg(name, mfound, nfound, mexpect, nexpect, msg) - ! Arguments - character(len = *), intent(in) :: name - integer(int32), intent(in) :: mfound, nfound, mexpect, nexpect - character(len = *), intent(out) :: msg - - ! Process - write(msg, 200) "Input " // name // & - " is not sized correctly. Expected a ", mexpect, "-by-", & - nexpect, " matrix, but found a ", mfound, "-by-", nfound, & - " matrix." -200 format(A, I0, A, I0, A, I0, A, I0, A) - end subroutine end subroutine ! ------------------------------------------------------------------------------ - pure module function vfpd_get_arrow_size(this) result(rst) + pure function vfpd_get_arrow_size(this) result(rst) + !! Gets the scaling factor used to determine the arrow size. class(vector_field_plot_data), intent(in) :: this + !! The vector_field_plot_data object. real(real64) :: rst + !! The scaling factor. rst = this%m_arrowSize end function ! -------------------- - module subroutine vfpd_set_arrow_size(this, x) + subroutine vfpd_set_arrow_size(this, x) + !! Sets the scaling factor used to determine the arrow size. class(vector_field_plot_data), intent(inout) :: this + !! The vector_field_plot_data object. real(real64), intent(in) :: x + !! The scaling factor. this%m_arrowSize = x end subroutine ! ------------------------------------------------------------------------------ - pure module function vfpd_get_fill_arrow(this) result(rst) + pure function vfpd_get_fill_arrow(this) result(rst) + !! Gets a value determining if the arrow heads should be filled. class(vector_field_plot_data), intent(in) :: this + !! The vector_field_plot_data object. logical :: rst + !! True if the arrow heads should be filled; else, false. rst = this%m_filledHeads end function ! -------------------- - module subroutine vfpd_set_fill_arrow(this, x) + subroutine vfpd_set_fill_arrow(this, x) + !! Sets a value determining if the arrow heads should be filled. class(vector_field_plot_data), intent(inout) :: this + !! The vector_field_plot_data object. logical, intent(in) :: x + !! True if the arrow heads should be filled; else, false. this%m_filledHeads = x end subroutine ! ------------------------------------------------------------------------------ - pure module function vfpd_get_use_data_dependent_colors(this) result(rst) + pure function vfpd_get_use_data_dependent_colors(this) result(rst) + !! Gets a value indicating if data-dependent coloring should be + !! used. This is defined by supplying information on how to scale the + !! coloring when calling define_data. class(vector_field_plot_data), intent(in) :: this + !! The vector_field_plot_data object. logical :: rst + !! Returns true if data-dependent coloring is being used; else, + !! false. rst = .false. if (.not.allocated(this%m_data)) return rst = size(this%m_data, 3) >= 5 end function ! ------------------------------------------------------------------------------ - -! ------------------------------------------------------------------------------ - -! ------------------------------------------------------------------------------ -end submodule +end module diff --git a/src/fplot_windows_terminal.f90 b/src/fplot_windows_terminal.f90 index 078485c..52bc79b 100644 --- a/src/fplot_windows_terminal.f90 +++ b/src/fplot_windows_terminal.f90 @@ -1,15 +1,32 @@ ! fplot_windows_terminal.f90 -submodule (fplot_core) fplot_windows_terminal +module fplot_windows_terminal + use iso_fortran_env + use fplot_terminal + implicit none + private + public :: windows_terminal + + type, extends(terminal) :: windows_terminal + !! A Windows-specific terminal. + character(len = 3), private :: m_id = "win" + !! The terminal ID string + contains + procedure, public :: get_id_string => wt_get_term_string + end type + contains - module function wt_get_term_string(this) result(x) + function wt_get_term_string(this) result(x) + !! Retrieves a GNUPLOT terminal identifier string. class(windows_terminal), intent(in) :: this + !! The windows_terminal object. character(len = :), allocatable :: x + !! The string. integer(int32) :: n n = len_trim(this%m_id) allocate(character(len = n) :: x) x = this%m_id end function -end submodule +end module diff --git a/src/fplot_wxt_terminal.f90 b/src/fplot_wxt_terminal.f90 index 0cfebf2..055cf8a 100644 --- a/src/fplot_wxt_terminal.f90 +++ b/src/fplot_wxt_terminal.f90 @@ -1,13 +1,30 @@ ! fplot_wxt_terminal.f90 -submodule (fplot_core) fplot_wxt_terminal +module fplot_wxt_terminal + use iso_fortran_env + use fplot_terminal + implicit none + private + public :: wxt_terminal + + type, extends(terminal) :: wxt_terminal + !! A WXT terminal. + character(len = 3), private :: m_id = "wxt" + !! The terminal ID string + contains + procedure, public :: get_id_string => wxt_get_term_string + end type + contains - module function wxt_get_term_string(this) result(x) + function wxt_get_term_string(this) result(x) + !! Retrieves a GNUPLOT terminal identifier string. class(wxt_terminal), intent(in) :: this + !! The wxt_terminal object. character(len = :), allocatable :: x + !! The string. integer(int32) :: n n = len_trim(this%m_id) allocate(character(len = n) :: x) x = this%m_id end function -end submodule +end module