Showing preview only (7,731K chars total). Download the full file or copy to clipboard to get everything.
Repository: NCAR/VAPOR
Branch: main
Commit: 43b85ed4e78c
Files: 1316
Total size: 7.1 MB
Directory structure:
gitextract__3medrpc/
├── .circleci/
│ ├── config.yml
│ └── downloadWin3rdParty.py
├── .clang-format
├── .editorconfig
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── documentation-request.md
│ │ └── enhancement-request.md
│ └── workflows/
│ └── release.yml
├── .gitignore
├── .readthedocs.yml
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── Contributing.md
├── LICENSE.txt
├── README.md
├── apps/
│ ├── CMakeLists.txt
│ ├── asciitf2vtf/
│ │ └── asciitf2vtf.cpp
│ ├── cf2vdc/
│ │ ├── CMakeLists.txt
│ │ └── cf2vdc.cpp
│ ├── cfvdccreate/
│ │ ├── CMakeLists.txt
│ │ └── cfvdccreate.cpp
│ ├── linuxlauncher/
│ │ ├── CMakeLists.txt
│ │ └── launcher.c
│ ├── ncdf2wasp/
│ │ ├── CMakeLists.txt
│ │ └── ncdf2wasp.cpp
│ ├── pythonapi/
│ │ ├── CMakeLists.txt
│ │ ├── cmake.py
│ │ ├── example_scripts/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── animation_example.py
│ │ │ ├── annotation_example.py
│ │ │ ├── camera_example.py
│ │ │ ├── dataset_example.py
│ │ │ ├── example_utils.py
│ │ │ ├── flow_example.py
│ │ │ ├── numpy_example.py
│ │ │ ├── rotate_video.py
│ │ │ ├── transfer_function_example.py
│ │ │ ├── visualizer_widget_example.py
│ │ │ ├── workflow_example.py
│ │ │ └── xarray_example.py
│ │ ├── setup.py
│ │ ├── tests/
│ │ │ ├── CanvasStreamTest.ipynb
│ │ │ ├── bld.bat
│ │ │ ├── build.sh
│ │ │ ├── cppyy-syntax-test.py
│ │ │ ├── cppyy-test.py
│ │ │ ├── meta.yaml
│ │ │ ├── module-data-test.py
│ │ │ ├── module-test.py
│ │ │ ├── syntax-test.py
│ │ │ └── test.py
│ │ └── vapor/
│ │ ├── __init__.py
│ │ ├── animation.py
│ │ ├── annotations.py
│ │ ├── camera.py
│ │ ├── cmake.py
│ │ ├── common.py
│ │ ├── config.py
│ │ ├── cppyyDoxygenWrapper.py
│ │ ├── dataset.py
│ │ ├── link.py
│ │ ├── params.py
│ │ ├── renderer.py
│ │ ├── session.py
│ │ ├── smartwrapper.py
│ │ ├── transferfunction.py
│ │ ├── transform.py
│ │ ├── utils/
│ │ │ ├── __init__.py
│ │ │ ├── histogram.py
│ │ │ └── keyframing.py
│ │ ├── widget-jquery.js
│ │ ├── widget.css
│ │ ├── widget.js
│ │ └── widget.py
│ ├── raw2vdc/
│ │ ├── CMakeLists.txt
│ │ └── raw2vdc.cpp
│ ├── raw2wasp/
│ │ ├── CMakeLists.txt
│ │ └── raw2wasp.cpp
│ ├── tiff2geotiff/
│ │ ├── CMakeLists.txt
│ │ ├── geotiff_proj4.cpp
│ │ ├── getopt.cpp
│ │ └── tiff2geotiff.cpp
│ ├── vapor_check_udunits/
│ │ ├── CMakeLists.txt
│ │ └── vapor_check_udunits.cpp
│ ├── vaporgui/
│ │ ├── .gitignore
│ │ ├── AbstractWidgetGroup.cpp
│ │ ├── AbstractWidgetGroup.h
│ │ ├── AnimationController.cpp
│ │ ├── AnimationController.h
│ │ ├── AnnotationEventRouter.cpp
│ │ ├── AnnotationEventRouter.h
│ │ ├── AppSettingsMenu.cpp
│ │ ├── AppSettingsMenu.h
│ │ ├── AppSettingsParams.cpp
│ │ ├── AppSettingsParams.h
│ │ ├── BannerGUI.cpp
│ │ ├── BannerGUI.h
│ │ ├── BarbEventRouter.cpp
│ │ ├── BarbEventRouter.h
│ │ ├── BookmarkManager.cpp
│ │ ├── BookmarkManager.h
│ │ ├── CLIToolInstaller.cpp
│ │ ├── CLIToolInstaller.h
│ │ ├── CMakeLists.txt
│ │ ├── CaptureController.cpp
│ │ ├── CaptureController.h
│ │ ├── CheckForNotices.cpp
│ │ ├── CheckForNotices.h
│ │ ├── CheckForUpdate.cpp
│ │ ├── CheckForUpdate.h
│ │ ├── CheckForUpdateUI.cpp
│ │ ├── CheckForUpdateUI.h
│ │ ├── CitationReminder.h
│ │ ├── Combo.cpp
│ │ ├── Combo.h
│ │ ├── ContourEventRouter.cpp
│ │ ├── ContourEventRouter.h
│ │ ├── CopyRegionAnnotationWidget.cpp
│ │ ├── CopyRegionAnnotationWidget.h
│ │ ├── CopyRegionWidget.cpp
│ │ ├── CopyRegionWidget.h
│ │ ├── Core3_2_context.h
│ │ ├── DatasetImportController.cpp
│ │ ├── DatasetImportController.h
│ │ ├── DatasetInspector.cpp
│ │ ├── DatasetInspector.h
│ │ ├── DatasetTypeLookup.cpp
│ │ ├── DatasetTypeLookup.h
│ │ ├── ErrorReporter.cpp
│ │ ├── ErrorReporter.h
│ │ ├── ExportTab.cpp
│ │ ├── ExportTab.h
│ │ ├── FidelityWidget.cpp
│ │ ├── FidelityWidget.h
│ │ ├── FidelityWidgetGUI.ui
│ │ ├── FileOperationChecker.cpp
│ │ ├── FileOperationChecker.h
│ │ ├── Flags.h
│ │ ├── FlowEventRouter.cpp
│ │ ├── FlowEventRouter.h
│ │ ├── GLWidget.cpp
│ │ ├── GLWidget.h
│ │ ├── ImageEventRouter.cpp
│ │ ├── ImageEventRouter.h
│ │ ├── ImportTab.cpp
│ │ ├── ImportTab.h
│ │ ├── LeftPanel.cpp
│ │ ├── LeftPanel.h
│ │ ├── MainForm.cpp
│ │ ├── MainForm.h
│ │ ├── MainForm_isOpenGLContextActive.cpp
│ │ ├── Manip.cpp
│ │ ├── Manip.h
│ │ ├── ModelEventRouter.cpp
│ │ ├── ModelEventRouter.h
│ │ ├── NcarCasperUtils.cpp
│ │ ├── NcarCasperUtils.h
│ │ ├── NewRendererDialog.ui
│ │ ├── NewRendererDialogManager.cpp
│ │ ├── NewRendererDialogManager.h
│ │ ├── NoticeBoard.cpp
│ │ ├── NoticeBoard.h
│ │ ├── PAnnotationColorbarWidget.cpp
│ │ ├── PAnnotationColorbarWidget.h
│ │ ├── PAxisAnnotationWidget.cpp
│ │ ├── PAxisAnnotationWidget.h
│ │ ├── PButton.cpp
│ │ ├── PButton.h
│ │ ├── PCameraControlsSection.cpp
│ │ ├── PCameraControlsSection.h
│ │ ├── PCaptureWidget.cpp
│ │ ├── PCaptureWidget.h
│ │ ├── PCheckbox.cpp
│ │ ├── PCheckbox.h
│ │ ├── PCheckboxHLI.h
│ │ ├── PColorSelector.cpp
│ │ ├── PColorSelector.h
│ │ ├── PConstantColorWidget.cpp
│ │ ├── PConstantColorWidget.h
│ │ ├── PCopyRegionAnnotationWidget.cpp
│ │ ├── PCopyRegionAnnotationWidget.h
│ │ ├── PCopyRegionWidget.cpp
│ │ ├── PCopyRegionWidget.h
│ │ ├── PCornerSelector.cpp
│ │ ├── PCornerSelector.h
│ │ ├── PDatasetTransformWidget.cpp
│ │ ├── PDatasetTransformWidget.h
│ │ ├── PDimensionSelector.cpp
│ │ ├── PDimensionSelector.h
│ │ ├── PDisplay.cpp
│ │ ├── PDisplay.h
│ │ ├── PDisplayHLI.h
│ │ ├── PDoubleInput.cpp
│ │ ├── PDoubleInput.h
│ │ ├── PDoubleInputHLI.h
│ │ ├── PDynamicMixin.cpp
│ │ ├── PDynamicMixin.h
│ │ ├── PEnumDropdown.cpp
│ │ ├── PEnumDropdown.h
│ │ ├── PEnumDropdownHLI.h
│ │ ├── PFidelitySection.cpp
│ │ ├── PFidelitySection.h
│ │ ├── PFileButton.cpp
│ │ ├── PFileButton.h
│ │ ├── PFileSelector.cpp
│ │ ├── PFileSelector.h
│ │ ├── PFileSelectorHLI.h
│ │ ├── PFlowIntegrationRegionSelector.cpp
│ │ ├── PFlowIntegrationRegionSelector.h
│ │ ├── PFlowRakeRegionSelector.cpp
│ │ ├── PFlowRakeRegionSelector.h
│ │ ├── PGeometrySubtab.cpp
│ │ ├── PGeometrySubtab.h
│ │ ├── PGroup.cpp
│ │ ├── PGroup.h
│ │ ├── PImportDataButton.cpp
│ │ ├── PImportDataButton.h
│ │ ├── PImportDataWidget.cpp
│ │ ├── PImportDataWidget.h
│ │ ├── PIntegerInput.cpp
│ │ ├── PIntegerInput.h
│ │ ├── PIntegerInputHLI.h
│ │ ├── PLabel.cpp
│ │ ├── PLabel.h
│ │ ├── PLineItem.cpp
│ │ ├── PLineItem.h
│ │ ├── PMetadataClasses.cpp
│ │ ├── PMetadataClasses.h
│ │ ├── PMovingDomainSettings.cpp
│ │ ├── PMovingDomainSettings.h
│ │ ├── PMultiVarSelector.cpp
│ │ ├── PMultiVarSelector.h
│ │ ├── POrientationSelector.cpp
│ │ ├── POrientationSelector.h
│ │ ├── POutputResolutionSection.cpp
│ │ ├── POutputResolutionSection.h
│ │ ├── PProjectionStringWidget.cpp
│ │ ├── PProjectionStringWidget.h
│ │ ├── PRadioButtons.cpp
│ │ ├── PRadioButtons.h
│ │ ├── PRegionSelector.cpp
│ │ ├── PRegionSelector.h
│ │ ├── PSection.cpp
│ │ ├── PSection.h
│ │ ├── PShowIf.cpp
│ │ ├── PShowIf.h
│ │ ├── PSliceController.cpp
│ │ ├── PSliceController.h
│ │ ├── PSliderEdit.cpp
│ │ ├── PSliderEdit.h
│ │ ├── PSliderEditHLI.h
│ │ ├── PStringDropdown.cpp
│ │ ├── PStringDropdown.h
│ │ ├── PStringDropdownHLI.h
│ │ ├── PStringInput.cpp
│ │ ├── PStringInput.h
│ │ ├── PTFEditor.cpp
│ │ ├── PTFEditor.h
│ │ ├── PTMSLODInput.h
│ │ ├── PTimeRangeSelector.cpp
│ │ ├── PTimeRangeSelector.h
│ │ ├── PTimestepInput.cpp
│ │ ├── PTimestepInput.h
│ │ ├── PTimestepSliderEdit.cpp
│ │ ├── PTimestepSliderEdit.h
│ │ ├── PTotalTimestepsDisplay.cpp
│ │ ├── PTotalTimestepsDisplay.h
│ │ ├── PTransformWidget.cpp
│ │ ├── PTransformWidget.h
│ │ ├── PVariableSelector.cpp
│ │ ├── PVariableSelector.h
│ │ ├── PVisualizerSelector.cpp
│ │ ├── PVisualizerSelector.h
│ │ ├── PWidget.cpp
│ │ ├── PWidget.h
│ │ ├── PWidgetHLI.h
│ │ ├── PWidgetWrapper.cpp
│ │ ├── PWidgetWrapper.h
│ │ ├── PWidgets.h
│ │ ├── PWidgetsFwd.h
│ │ ├── ParamsMenuItems.cpp
│ │ ├── ParamsMenuItems.h
│ │ ├── ParamsUpdatable.cpp
│ │ ├── ParamsUpdatable.h
│ │ ├── ParamsWidgetDemo.cpp
│ │ ├── ParamsWidgetDemo.h
│ │ ├── ParticleEventRouter.cpp
│ │ ├── ParticleEventRouter.h
│ │ ├── Plot.cpp
│ │ ├── Plot.h
│ │ ├── PlotParams.cpp
│ │ ├── PlotParams.h
│ │ ├── ProgressStatusBar.h
│ │ ├── PythonVariables.cpp
│ │ ├── PythonVariables.h
│ │ ├── PythonVariablesGUI.ui
│ │ ├── PythonVariablesParams.cpp
│ │ ├── PythonVariablesParams.h
│ │ ├── QColorWidget.cpp
│ │ ├── QColorWidget.h
│ │ ├── QCustomIconSizeProxyStyle.h
│ │ ├── QEnableable.h
│ │ ├── QIntValidatorWithFixup.cpp
│ │ ├── QIntValidatorWithFixup.h
│ │ ├── QMontereySlider.h
│ │ ├── QPaintUtils.cpp
│ │ ├── QPaintUtils.h
│ │ ├── QPushButtonWithDoubleClick.h
│ │ ├── QRange.cpp
│ │ ├── QRange.h
│ │ ├── QRange.ui
│ │ ├── QRangeSlider.cpp
│ │ ├── QRangeSlider.h
│ │ ├── QRangeSliderTextCombo.cpp
│ │ ├── QRangeSliderTextCombo.h
│ │ ├── QSinglePoint.cpp
│ │ ├── QSinglePoint.h
│ │ ├── QSinglePoint.ui
│ │ ├── QSliderEdit.cpp
│ │ ├── QSliderEdit.h
│ │ ├── QSliderEdit.ui
│ │ ├── QtVizWinGLContextManager.cpp
│ │ ├── QtVizWinGLContextManager.h
│ │ ├── RangeCombos.cpp
│ │ ├── RangeCombos.h
│ │ ├── RenderEventRouter.cpp
│ │ ├── RenderEventRouter.h
│ │ ├── RenderEventRouterGUI.cpp
│ │ ├── RenderEventRouterGUI.h
│ │ ├── RenderHolder.cpp
│ │ ├── RenderHolder.h
│ │ ├── RendererInspector.cpp
│ │ ├── RendererInspector.h
│ │ ├── RendererList.cpp
│ │ ├── RendererList.h
│ │ ├── RenderersPanel.cpp
│ │ ├── RenderersPanel.h
│ │ ├── SliceEventRouter.cpp
│ │ ├── SliceEventRouter.h
│ │ ├── Statistics.cpp
│ │ ├── Statistics.h
│ │ ├── StatisticsParams.cpp
│ │ ├── StatisticsParams.h
│ │ ├── TFColorInfoWidget.cpp
│ │ ├── TFColorInfoWidget.h
│ │ ├── TFColorWidget.cpp
│ │ ├── TFColorWidget.h
│ │ ├── TFHistogramInfoWidget.cpp
│ │ ├── TFHistogramInfoWidget.h
│ │ ├── TFHistogramWidget.cpp
│ │ ├── TFHistogramWidget.h
│ │ ├── TFInfoWidget.cpp
│ │ ├── TFInfoWidget.h
│ │ ├── TFIsoValueInfoWidget.cpp
│ │ ├── TFIsoValueInfoWidget.h
│ │ ├── TFIsoValueWidget.cpp
│ │ ├── TFIsoValueWidget.h
│ │ ├── TFMapGroupWidget.cpp
│ │ ├── TFMapGroupWidget.h
│ │ ├── TFMapWidget.cpp
│ │ ├── TFMapWidget.h
│ │ ├── TFMappingRangeSelector.cpp
│ │ ├── TFMappingRangeSelector.h
│ │ ├── TFOpacityInfoWidget.cpp
│ │ ├── TFOpacityInfoWidget.h
│ │ ├── TFOpacityWidget.cpp
│ │ ├── TFOpacityWidget.h
│ │ ├── TFUtils.cpp
│ │ ├── TFUtils.h
│ │ ├── TwoDDataEventRouter.cpp
│ │ ├── TwoDDataEventRouter.h
│ │ ├── UCloseVDCMenu.cpp
│ │ ├── UCloseVDCMenu.h
│ │ ├── UWidget.cpp
│ │ ├── UWidget.h
│ │ ├── Updatable.h
│ │ ├── V3DInput.cpp
│ │ ├── V3DInput.h
│ │ ├── V3DIntInput.cpp
│ │ ├── V3DIntInput.h
│ │ ├── VActions.cpp
│ │ ├── VActions.h
│ │ ├── VCheckBox.cpp
│ │ ├── VCheckBox.h
│ │ ├── VComboBox.cpp
│ │ ├── VComboBox.h
│ │ ├── VContainer.cpp
│ │ ├── VContainer.h
│ │ ├── VDoubleLineEdit.cpp
│ │ ├── VDoubleLineEdit.h
│ │ ├── VDoubleRangeMenu.cpp
│ │ ├── VDoubleRangeMenu.h
│ │ ├── VDoubleSliderEdit.cpp
│ │ ├── VDoubleSliderEdit.h
│ │ ├── VDoubleSliderEditMenu.cpp
│ │ ├── VDoubleSliderEditMenu.h
│ │ ├── VDoubleValidator.cpp
│ │ ├── VDoubleValidator.h
│ │ ├── VFileSelector.cpp
│ │ ├── VFileSelector.h
│ │ ├── VFrame.cpp
│ │ ├── VFrame.h
│ │ ├── VGroup.cpp
│ │ ├── VGroup.h
│ │ ├── VHBoxWidget.cpp
│ │ ├── VHBoxWidget.h
│ │ ├── VHyperlink.cpp
│ │ ├── VHyperlink.h
│ │ ├── VIntLineEdit.cpp
│ │ ├── VIntLineEdit.h
│ │ ├── VIntRangeMenu.cpp
│ │ ├── VIntRangeMenu.h
│ │ ├── VIntSliderEdit.cpp
│ │ ├── VIntSliderEdit.h
│ │ ├── VIntSliderEditMenu.cpp
│ │ ├── VIntSliderEditMenu.h
│ │ ├── VIntSpinBox.cpp
│ │ ├── VIntSpinBox.h
│ │ ├── VLabel.cpp
│ │ ├── VLabel.h
│ │ ├── VLabelPair.cpp
│ │ ├── VLabelPair.h
│ │ ├── VLineEdit_Deprecated.cpp
│ │ ├── VLineEdit_Deprecated.h
│ │ ├── VLineItem.cpp
│ │ ├── VLineItem.h
│ │ ├── VNumericFormatMenu.cpp
│ │ ├── VNumericFormatMenu.h
│ │ ├── VNumericLineEdit.cpp
│ │ ├── VNumericLineEdit.h
│ │ ├── VProjectionStringFrame.cpp
│ │ ├── VProjectionStringFrame.h
│ │ ├── VPushButton.cpp
│ │ ├── VPushButton.h
│ │ ├── VRadioButton.cpp
│ │ ├── VRadioButton.h
│ │ ├── VRouter.cpp
│ │ ├── VRouter.h
│ │ ├── VScrollArea.cpp
│ │ ├── VScrollArea.h
│ │ ├── VScrollGroup.h
│ │ ├── VSection.cpp
│ │ ├── VSection.h
│ │ ├── VSlider.cpp
│ │ ├── VSlider.h
│ │ ├── VSliderEdit.cpp
│ │ ├── VSliderEdit.h
│ │ ├── VSliderEditInterface.cpp
│ │ ├── VSliderEditInterface.h
│ │ ├── VStringLineEdit.cpp
│ │ ├── VStringLineEdit.h
│ │ ├── VVisibilityCheckbox.cpp
│ │ ├── VVisibilityCheckbox.h
│ │ ├── VaporFwd.h
│ │ ├── VaporTable.cpp
│ │ ├── VaporTable.h
│ │ ├── VaporTableGUI.ui
│ │ ├── VaporWidgetsFwd.h
│ │ ├── ViewpointToolbar.cpp
│ │ ├── ViewpointToolbar.h
│ │ ├── VizWin.cpp
│ │ ├── VizWin.h
│ │ ├── VizWinMgr.cpp
│ │ ├── VizWinMgr.h
│ │ ├── VolumeEventRouter.cpp
│ │ ├── VolumeEventRouter.h
│ │ ├── VolumeIsoEventRouter.cpp
│ │ ├── VolumeIsoEventRouter.h
│ │ ├── WireFrameEventRouter.cpp
│ │ ├── WireFrameEventRouter.h
│ │ ├── common.cpp
│ │ ├── common.h
│ │ ├── core_profile_attributes.mm
│ │ ├── hide_std_error_util.cpp
│ │ ├── hide_std_error_util.h
│ │ ├── images/
│ │ │ ├── arrowrake.xpm
│ │ │ ├── back.xpm
│ │ │ ├── capture-off.xpm
│ │ │ ├── capture-on.xpm
│ │ │ ├── cascade.xpm
│ │ │ ├── cube.xpm
│ │ │ ├── eye.xpm
│ │ │ ├── fileopen.xpm
│ │ │ ├── forward.xpm
│ │ │ ├── home.xpm
│ │ │ ├── home2.xpm
│ │ │ ├── isoline.xpm
│ │ │ ├── lightbulb.xpm
│ │ │ ├── magnify.xpm
│ │ │ ├── pauseA.xpm
│ │ │ ├── pauseimage.xpm
│ │ │ ├── planes.xpm
│ │ │ ├── playforward.xpm
│ │ │ ├── playforwardA.xpm
│ │ │ ├── playreverse.xpm
│ │ │ ├── playreverseA.xpm
│ │ │ ├── probe.xpm
│ │ │ ├── rake.xpm
│ │ │ ├── replayA.xpm
│ │ │ ├── sethome.xpm
│ │ │ ├── sphere.xpm
│ │ │ ├── spherecolored.xpm
│ │ │ ├── step-back-off.xpm
│ │ │ ├── step-fwd-off.xpm
│ │ │ ├── stepback.xpm
│ │ │ ├── stepbackA.xpm
│ │ │ ├── stepfwd.xpm
│ │ │ ├── stepfwdA.xpm
│ │ │ ├── tiles.xpm
│ │ │ ├── tobeginA.xpm
│ │ │ ├── toendA.xpm
│ │ │ ├── twoDData.xpm
│ │ │ ├── twoDImage.xpm
│ │ │ ├── vapor-icon-32.xpm
│ │ │ └── wheel.xpm
│ │ ├── mac_helpers.h
│ │ ├── mac_helpers.mm
│ │ ├── main.cpp
│ │ ├── plotWindow.ui
│ │ ├── statsWindow.ui
│ │ ├── vapor.rc.in
│ │ ├── windowsUtils.cpp
│ │ └── windowsUtils.h
│ ├── vaporpychecker/
│ │ ├── CMakeLists.txt
│ │ └── vaporpychecker.cpp
│ ├── vaporversion/
│ │ ├── CMakeLists.txt
│ │ └── vaporversion.cpp
│ ├── vdc2raw/
│ │ ├── CMakeLists.txt
│ │ └── vdc2raw.cpp
│ ├── vdccompare/
│ │ ├── CMakeLists.txt
│ │ └── vdccompare.cpp
│ ├── vdccreate/
│ │ ├── CMakeLists.txt
│ │ └── vdccreate.cpp
│ ├── vdcdump/
│ │ ├── CMakeLists.txt
│ │ └── vdcdump.cpp
│ ├── vdcerr/
│ │ └── vdcerr.cpp
│ ├── wasp2ncdf/
│ │ ├── CMakeLists.txt
│ │ └── wasp2ncdf.cpp
│ ├── wasp2raw/
│ │ ├── CMakeLists.txt
│ │ └── wasp2raw.cpp
│ ├── waspcreate/
│ │ ├── CMakeLists.txt
│ │ └── waspcreate.cpp
│ ├── wrf2vdc/
│ │ ├── CMakeLists.txt
│ │ └── wrf2vdc.cpp
│ └── wrfvdccreate/
│ ├── CMakeLists.txt
│ └── wrfvdccreate.cpp
├── buildutils/
│ ├── AppRun
│ ├── GetGitRevisionDescription.cmake
│ ├── GetGitRevisionDescription.cmake.in
│ ├── NSIS.preInstall.ini.in
│ ├── NSIS.preUnInstall.ini.in
│ ├── NSIS.template.in
│ ├── OpenMPInstaller.cmake
│ ├── UtilityFunctions.cmake
│ ├── codesignMacOS.sh
│ ├── copylibdeps.pl
│ ├── exports.awk
│ ├── fastdep.pl
│ ├── genAppImage.sh
│ ├── gen_linux_shared_libs.pl
│ ├── install-sh
│ ├── install_name.pl
│ ├── mklinks.pl
│ ├── patchelf/
│ │ ├── COPYING
│ │ ├── elf.h
│ │ └── patchelf.cpp
│ ├── postflight
│ ├── postinstall
│ ├── postupgrade
│ ├── renameomp.sh
│ ├── sgiinstall.sh
│ └── vapor.desktop
├── conda/
│ ├── vapor/
│ │ ├── build.sh
│ │ ├── jupyter_installer_fix.py
│ │ ├── make_installer.sh
│ │ └── meta.yaml
│ ├── vapor-maps/
│ │ └── meta.yaml
│ └── vapor-maps-extra/
│ └── meta.yaml
├── include/
│ ├── CMakeLists.txt
│ └── vapor/
│ ├── Advection.h
│ ├── AdvectionIO.h
│ ├── AnimationParams.h
│ ├── AnnotationParams.h
│ ├── AnnotationRenderer.h
│ ├── AnnotationsParams.h
│ ├── ArbitrarilyOrientedRegularGrid.h
│ ├── AxisAnnotation.h
│ ├── BOVCollection.h
│ ├── BarbParams.h
│ ├── BarbRenderer.h
│ ├── Base16StringStream.h
│ ├── BlkMemMgr.h
│ ├── BookmarkParams.h
│ ├── Box.h
│ ├── CFuncs.h
│ ├── CMakeConfig.h
│ ├── CalcEngineMgr.h
│ ├── ColorMap.h
│ ├── ColorbarPbase.h
│ ├── ColorbarRenderer.h
│ ├── Compressor.h
│ ├── ConstantGrid.h
│ ├── ContourParams.h
│ ├── ContourRenderer.h
│ ├── ControlExecutive.h
│ ├── CurvilinearGrid.h
│ ├── DC.h
│ ├── DCBOV.h
│ ├── DCCF.h
│ ├── DCMPAS.h
│ ├── DCMelanie.h
│ ├── DCP.h
│ ├── DCRAM.h
│ ├── DCUGRID.h
│ ├── DCUtils.h
│ ├── DCWRF.h
│ ├── DataMgr.h
│ ├── DataMgrFactory.h
│ ├── DataMgrUtils.h
│ ├── DataStatus.h
│ ├── DatasetsParams.h
│ ├── DerivedParticleDensity.h
│ ├── DerivedVar.h
│ ├── DerivedVarMgr.h
│ ├── EasyThreads.h
│ ├── Field.h
│ ├── FileUtils.h
│ ├── FlowParams.h
│ ├── FlowRenderer.h
│ ├── Font.h
│ ├── FontManager.h
│ ├── Framebuffer.h
│ ├── GLManager.h
│ ├── GUIStateParams.h
│ ├── GeoImage.h
│ ├── GeoImageGeoTiff.h
│ ├── GeoImageTMS.h
│ ├── GeoTIFWriter.h
│ ├── GeoTile.h
│ ├── GeoTileEquirectangular.h
│ ├── GeoTileMercator.h
│ ├── GeoUtil.h
│ ├── GetAppPath.h
│ ├── Grid.h
│ ├── GridHelper.h
│ ├── HelloParams.h
│ ├── HelloRenderer.h
│ ├── Histo.h
│ ├── IResourceManager.h
│ ├── ImageParams.h
│ ├── ImageRenderer.h
│ ├── ImageWriter.h
│ ├── ImpExp.h
│ ├── JPGWriter.h
│ ├── KDTreeRG.h
│ ├── LayeredGrid.h
│ ├── LegacyGL.h
│ ├── LegacyVectorMath.h
│ ├── MapperFunction.h
│ ├── MatWaveBase.h
│ ├── MatWaveDwt.h
│ ├── MatWaveWavedec.h
│ ├── MatrixManager.h
│ ├── ModelParams.h
│ ├── ModelRenderer.h
│ ├── MouseModeParams.h
│ ├── MyBase.h
│ ├── MyPython.h
│ ├── NavigationUtils.h
│ ├── NetCDFCFCollection.h
│ ├── NetCDFCollection.h
│ ├── NetCDFCpp.h
│ ├── NetCDFSimple.h
│ ├── NonCopyableMixin.h
│ ├── OSPRay.h
│ ├── OpacityMap.h
│ ├── OpenMPSupport.h
│ ├── OptionParser.h
│ ├── PNGWriter.h
│ ├── PVTime.h
│ ├── ParamsBase.h
│ ├── ParamsMgr.h
│ ├── Particle.h
│ ├── ParticleParams.h
│ ├── ParticleRenderer.h
│ ├── Progress.h
│ ├── Proj4API.h
│ ├── Proj4StringParser.h
│ ├── PyEngine.h
│ ├── PythonDataMgr.h
│ ├── QuadTreeRectangle.hpp
│ ├── QuadTreeRectangleP.h
│ ├── RayCaster.h
│ ├── RayCasterParams.h
│ ├── RegularGrid.h
│ ├── RenderParams.h
│ ├── Renderer.h
│ ├── ResourcePath.h
│ ├── STLUtils.h
│ ├── SetHDF5PluginPath.h
│ ├── SettingsParams.h
│ ├── Shader.h
│ ├── ShaderManager.h
│ ├── ShaderProgram.h
│ ├── SignificanceMap.h
│ ├── SliceParams.h
│ ├── SliceRenderer.h
│ ├── SphericalGrid.h
│ ├── StretchedGrid.h
│ ├── StructuredGrid.h
│ ├── TFInterpolator.h
│ ├── TIFWriter.h
│ ├── TMSUtils.h
│ ├── TextLabel.h
│ ├── Texture.h
│ ├── TrackBall.h
│ ├── Transform.h
│ ├── TwoDDataParams.h
│ ├── TwoDDataRenderer.h
│ ├── TwoDRenderer.h
│ ├── UDUnitsClass.h
│ ├── UnstructuredGrid.h
│ ├── UnstructuredGrid2D.h
│ ├── UnstructuredGrid3D.h
│ ├── UnstructuredGridCoordless.h
│ ├── UnstructuredGridLayered.h
│ ├── VAssert.h
│ ├── VDC.h
│ ├── VDCNetCDF.h
│ ├── VDC_c.h
│ ├── VaporField.h
│ ├── Version.h
│ ├── Viewpoint.h
│ ├── ViewpointParams.h
│ ├── Visualizer.h
│ ├── VisualizerGLContextManager.h
│ ├── VolumeAlgorithm.h
│ ├── VolumeCellTraversal.h
│ ├── VolumeGLSL.h
│ ├── VolumeIsoParams.h
│ ├── VolumeIsoRenderer.h
│ ├── VolumeOSPRay.h
│ ├── VolumeParams.h
│ ├── VolumeRectilinear.h
│ ├── VolumeRegular.h
│ ├── VolumeRenderer.h
│ ├── VolumeResampled.h
│ ├── VolumeTest.h
│ ├── VolumeTest2.h
│ ├── WASP.h
│ ├── WaveCodecIO.h
│ ├── WaveFiltBase.h
│ ├── WaveFiltBior.h
│ ├── WaveFiltCoif.h
│ ├── WaveFiltDaub.h
│ ├── WaveFiltHaar.h
│ ├── WaveFiltInt.h
│ ├── WireFrameParams.h
│ ├── WireFrameRenderer.h
│ ├── XmlNode.h
│ ├── common.h
│ ├── converter.h
│ ├── debug.h
│ ├── direntWin32.h
│ ├── errorcodes.h
│ ├── glutil.h
│ ├── jpegapi.h
│ ├── nanoflann.hpp
│ ├── ptr_cache.hpp
│ ├── regionparams.h
│ ├── udunits2.h
│ ├── utils.h
│ └── vizutil.h
├── lib/
│ ├── CMakeLists.txt
│ ├── common/
│ │ ├── Base16StringStream.cpp
│ │ ├── CFuncs.cpp
│ │ ├── CMakeConfig.cpp.in
│ │ ├── CMakeLists.txt
│ │ ├── EasyThreads.cpp
│ │ ├── FileUtils.cpp
│ │ ├── GetAppPath.cpp
│ │ ├── LegacyVectorMath.cpp
│ │ ├── MyBase.cpp
│ │ ├── OptionParser.cpp
│ │ ├── PVTime.cpp
│ │ ├── Progress.cpp
│ │ ├── ResourcePath.cpp
│ │ ├── STLUtils.cpp
│ │ ├── TMSUtils.cpp
│ │ ├── VAssert.cpp
│ │ ├── Version.cpp
│ │ ├── common.cpp
│ │ └── utils.cpp
│ ├── flow/
│ │ ├── Advection.cpp
│ │ ├── AdvectionIO.cpp
│ │ ├── CMakeLists.txt
│ │ ├── Field.cpp
│ │ ├── Particle.cpp
│ │ └── VaporField.cpp
│ ├── osgl/
│ │ ├── CMakeCopy.cmake
│ │ ├── CMakeLists.txt
│ │ ├── GLContext.cpp
│ │ ├── GLContextProvider.cpp
│ │ ├── GLContextProviderEGL.cpp
│ │ ├── GLContextProviderMacOS.mm
│ │ ├── GLContextProviderMesa.cpp
│ │ ├── GLContextProviderNvidia.cpp
│ │ ├── GLContextProviderUtil.cpp
│ │ ├── Log.cpp
│ │ ├── build.sh
│ │ ├── glad/
│ │ │ ├── include/
│ │ │ │ ├── EGL/
│ │ │ │ │ └── eglplatform.h
│ │ │ │ ├── KHR/
│ │ │ │ │ └── khrplatform.h
│ │ │ │ └── glad/
│ │ │ │ ├── egl.h
│ │ │ │ └── gl.h
│ │ │ └── src/
│ │ │ ├── egl.c
│ │ │ └── gl.c
│ │ ├── include/
│ │ │ └── vapor/
│ │ │ ├── GLAD.h
│ │ │ ├── GLContext.h
│ │ │ ├── GLContextProvider.h
│ │ │ ├── GLContextProviderCommon.h
│ │ │ ├── GLContextProviderEGL.h
│ │ │ ├── GLContextProviderMacOS.h
│ │ │ ├── GLContextProviderMesa.h
│ │ │ ├── GLContextProviderNvidia.h
│ │ │ ├── GLContextProviderUtil.h
│ │ │ ├── GLInclude.h
│ │ │ └── Log.h
│ │ ├── meta.yaml
│ │ ├── stb_image_write.h
│ │ ├── test_framebuffer_glad.cpp
│ │ └── test_version.cpp
│ ├── params/
│ │ ├── AnimationParams.cpp
│ │ ├── AnnotationParams.cpp
│ │ ├── AxisAnnotation.cpp
│ │ ├── BarbParams.cpp
│ │ ├── BookmarkParams.cpp
│ │ ├── Box.cpp
│ │ ├── CMakeLists.txt
│ │ ├── ColorMap.cpp
│ │ ├── ColorbarPbase.cpp
│ │ ├── ContourParams.cpp
│ │ ├── DataStatus.cpp
│ │ ├── DatasetsParams.cpp
│ │ ├── FlowParams.cpp
│ │ ├── GUIStateParams.cpp
│ │ ├── HelloParams.cpp
│ │ ├── ImageParams.cpp
│ │ ├── MapperFunction.cpp
│ │ ├── ModelParams.cpp
│ │ ├── MouseModeParams.cpp
│ │ ├── OpacityMap.cpp
│ │ ├── ParamsBase.cpp
│ │ ├── ParamsMgr.cpp
│ │ ├── ParticleParams.cpp
│ │ ├── RayCasterParams.cpp
│ │ ├── RenderParams.cpp
│ │ ├── SettingsParams.cpp
│ │ ├── SliceParams.cpp
│ │ ├── TFInterpolator.cpp
│ │ ├── TODO.txt
│ │ ├── Transform.cpp
│ │ ├── TwoDDataParams.cpp
│ │ ├── Viewpoint.cpp
│ │ ├── ViewpointParams.cpp
│ │ ├── VolumeIsoParams.cpp
│ │ ├── VolumeParams.cpp
│ │ ├── WireFrameParams.cpp
│ │ ├── XmlNode.cpp
│ │ └── regionparams.cpp
│ ├── render/
│ │ ├── AnnotationRenderer.cpp
│ │ ├── BarbRenderer.cpp
│ │ ├── CMakeLists.txt
│ │ ├── CalcEngineMgr.cpp
│ │ ├── ColorbarRenderer.cpp
│ │ ├── ContourRenderer.cpp
│ │ ├── ControlExecutive.cpp
│ │ ├── FlowRenderer.cpp
│ │ ├── Font.cpp
│ │ ├── FontManager.cpp
│ │ ├── Framebuffer.cpp
│ │ ├── GLManager.cpp
│ │ ├── GeoImage.cpp
│ │ ├── GeoImageGeoTiff.cpp
│ │ ├── GeoImageTMS.cpp
│ │ ├── GeoTIFWriter.cpp
│ │ ├── GeoTile.cpp
│ │ ├── GeoTileEquirectangular.cpp
│ │ ├── GeoTileMercator.cpp
│ │ ├── HelloRenderer.cpp
│ │ ├── Histo.cpp
│ │ ├── ImageRenderer.cpp
│ │ ├── ImageWriter.cpp
│ │ ├── JPGWriter.cpp
│ │ ├── LegacyGL.cpp
│ │ ├── MatrixManager.cpp
│ │ ├── ModelRenderer.cpp
│ │ ├── MyPython.cpp
│ │ ├── NavigationUtils.cpp
│ │ ├── OSPRay.cpp
│ │ ├── PNGWriter.cpp
│ │ ├── ParticleRenderer.cpp
│ │ ├── Proj4StringParser.cpp
│ │ ├── PyEngine.cpp
│ │ ├── RayCaster.cpp
│ │ ├── Renderer.cpp
│ │ ├── Shader.cpp
│ │ ├── ShaderManager.cpp
│ │ ├── ShaderProgram.cpp
│ │ ├── SliceRenderer.cpp
│ │ ├── TIFWriter.cpp
│ │ ├── TODO.txt
│ │ ├── TextLabel.cpp
│ │ ├── Texture.cpp
│ │ ├── TrackBall.cpp
│ │ ├── TwoDDataRenderer.cpp
│ │ ├── TwoDRenderer.cpp
│ │ ├── Visualizer.cpp
│ │ ├── VolumeAlgorithm.cpp
│ │ ├── VolumeCellTraversal.cpp
│ │ ├── VolumeGLSL.cpp
│ │ ├── VolumeIsoRenderer.cpp
│ │ ├── VolumeOSPRay.cpp
│ │ ├── VolumeRectilinear.cpp
│ │ ├── VolumeRegular.cpp
│ │ ├── VolumeRenderer.cpp
│ │ ├── VolumeResampled.cpp
│ │ ├── VolumeTest.cpp
│ │ ├── VolumeTest2.cpp
│ │ ├── WireFrameRenderer.cpp
│ │ ├── glutil.cpp
│ │ └── jfilewrite.cpp
│ ├── vapi/
│ │ ├── CMakeLists.txt
│ │ ├── RenderManager.cpp
│ │ ├── RenderManager.h
│ │ ├── Session.cpp
│ │ ├── Session.h
│ │ ├── VPCommon.h
│ │ └── main.cpp
│ ├── vdc/
│ │ ├── ArbitrarilyOrientedRegularGrid.cpp
│ │ ├── BOVCollection.cpp
│ │ ├── BlkMemMgr.cpp
│ │ ├── CMakeLists.txt
│ │ ├── ConstantGrid.cpp
│ │ ├── CurvilinearGrid.cpp
│ │ ├── DC.cpp
│ │ ├── DCBOV.cpp
│ │ ├── DCCF.cpp
│ │ ├── DCMPAS.cpp
│ │ ├── DCMelanie.cpp
│ │ ├── DCP.cpp
│ │ ├── DCRAM.cpp
│ │ ├── DCUGRID.cpp
│ │ ├── DCUtils.cpp
│ │ ├── DCWRF.cpp
│ │ ├── DataMgr.cpp
│ │ ├── DataMgrUtils.cpp
│ │ ├── DerivedParticleDensity.cpp
│ │ ├── DerivedVar.cpp
│ │ ├── DerivedVarMgr.cpp
│ │ ├── GeoUtil.cpp
│ │ ├── Grid.cpp
│ │ ├── GridHelper.cpp
│ │ ├── KDTreeRG.cpp
│ │ ├── LayeredGrid.cpp
│ │ ├── NetCDFCFCollection.cpp
│ │ ├── NetCDFCollection.cpp
│ │ ├── NetCDFSimple.cpp
│ │ ├── Proj4API.cpp
│ │ ├── PythonDataMgr.cpp
│ │ ├── QuadTreeRectangleP.cpp
│ │ ├── RegularGrid.cpp
│ │ ├── StretchedGrid.cpp
│ │ ├── StructuredGrid.cpp
│ │ ├── TODO.txt
│ │ ├── UDUnitsClass.cpp
│ │ ├── UnstructuredGrid.cpp
│ │ ├── UnstructuredGrid2D.cpp
│ │ ├── UnstructuredGrid3D.cpp
│ │ ├── UnstructuredGridLayered.cpp
│ │ ├── VDC.cpp
│ │ ├── VDCNetCDF.cpp
│ │ ├── VDC_c.cpp
│ │ ├── kdtree.c
│ │ ├── kdtree.h
│ │ └── vizutil.cpp
│ └── wasp/
│ ├── CMakeLists.txt
│ ├── Compressor.cpp
│ ├── MatWaveBase.cpp
│ ├── MatWaveDwt.cpp
│ ├── MatWaveWavedec.cpp
│ ├── NOTES
│ ├── NetCDFCpp.cpp
│ ├── SignificanceMap.cpp
│ ├── TODO
│ ├── WASP.cpp
│ ├── WaveFiltBase.cpp
│ ├── WaveFiltBior.cpp
│ ├── WaveFiltCoif.cpp
│ ├── WaveFiltDaub.cpp
│ ├── WaveFiltHaar.cpp
│ └── WaveFiltInt.cpp
├── plugins/
│ ├── paraview/
│ │ ├── CMakeLists.txt
│ │ ├── README
│ │ ├── VDFReader.xml
│ │ ├── VDFReaderGUI.xml
│ │ ├── vtkVDFReader.cxx
│ │ └── vtkVDFReader.h
│ └── visit/
│ ├── VDC/
│ │ ├── README
│ │ ├── avtvdfFileFormat.C
│ │ ├── avtvdfFileFormat.h
│ │ ├── avtvdfOptions.C
│ │ ├── avtvdfOptions.h
│ │ ├── vdf.xml
│ │ ├── vdf2.xml
│ │ ├── vdfCommonPluginInfo.C
│ │ ├── vdfEnginePluginInfo.C
│ │ ├── vdfMDServerPluginInfo.C
│ │ ├── vdfPluginInfo.C
│ │ └── vdfPluginInfo.h
│ └── WASP/
│ ├── README
│ ├── WASP.xml
│ ├── WASPCommonPluginInfo.C
│ ├── WASPEnginePluginInfo.C
│ ├── WASPMDServerPluginInfo.C
│ ├── WASPPluginInfo.C
│ ├── WASPPluginInfo.h
│ ├── avtWASPFileFormat.C
│ └── avtWASPFileFormat.h
├── scripts/
│ ├── CMakeLists.txt
│ ├── build3rdParty.sh
│ ├── getWMSImage.sh
│ ├── ptcl2vms.py
│ ├── vapor-setup-win32.csh
│ ├── vapor-setup-win32.sh
│ ├── vapor-setup.bat
│ ├── vapor-setup.csh.sed
│ ├── vapor-setup.sh.sed
│ ├── vaporBatchFuncs.py
│ ├── vaporLSF.py
│ ├── vaporSGE.py
│ ├── vdccp
│ ├── vdfbkup.pl
│ └── wrf2vdfbatch
├── share/
│ ├── CMakeLists.txt
│ ├── Doxygen/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── Doxyfile.in
│ │ ├── TODO
│ │ └── mainpage.dox
│ ├── doc/
│ │ ├── DCP_Format.md
│ │ ├── VaporPythonGuide.doc
│ │ ├── help/
│ │ │ ├── FieldLineAdvectionHelp.html
│ │ │ └── UnsteadyHelp.html
│ │ └── man/
│ │ ├── asciitf2vtf.pod
│ │ ├── getWMSImage.pod
│ │ ├── ptcl2vms.pod
│ │ ├── raw2wasp.pod
│ │ ├── tiff2geotiff.pod
│ │ ├── vdccp.py.pod
│ │ ├── vdcdump.pod
│ │ ├── wasp2raw.pod
│ │ └── waspcreate.pod
│ ├── docker/
│ │ ├── centos7/
│ │ │ └── Dockerfile
│ │ └── ubuntu18/
│ │ └── Dockerfile
│ ├── examples/
│ │ ├── .vapor3_prefs
│ │ ├── .vapor_prefs
│ │ ├── NCL/
│ │ │ ├── USFilled.ncl
│ │ │ ├── USOutline.ncl
│ │ │ ├── WrfTestScripts.Notes
│ │ │ ├── worldFilled.ncl
│ │ │ ├── worldOutline.ncl
│ │ │ ├── wrf2geotiff.ncl
│ │ │ ├── wrf_CrossSection2.ncl
│ │ │ ├── wrf_CrossSection2_Final.ncl
│ │ │ ├── wrf_CrossSection2_FirstMod.ncl
│ │ │ ├── wrf_EtaLevels.ncl
│ │ │ ├── wrf_Height.ncl
│ │ │ ├── wrf_Height_Final.ncl
│ │ │ ├── wrf_Height_FirstMod.ncl
│ │ │ ├── wrf_Precip.ncl
│ │ │ ├── wrf_Precip_Final.ncl
│ │ │ ├── wrf_Precip_FirstMod.ncl
│ │ │ ├── wrf_Surface1.ncl
│ │ │ ├── wrf_cloud.ncl
│ │ │ ├── wrf_crossSection4.ncl
│ │ │ └── wrf_pv.ncl
│ │ ├── VDC/
│ │ │ └── amr_ex.cpp
│ │ ├── generateExampleDCP.py
│ │ ├── idl/
│ │ │ ├── AddCurlVDF.pro
│ │ │ ├── AddDivVDF.pro
│ │ │ ├── AddMagVDF.pro
│ │ │ ├── AddWRFCurl.pro
│ │ │ ├── AddWRFDiv.pro
│ │ │ ├── AddWRFETH.pro
│ │ │ ├── MakeCmbo.pro
│ │ │ ├── MakeLinCmb.pro
│ │ │ ├── PrintMetaVDF.pro
│ │ │ ├── QuickStartEx1.pro
│ │ │ ├── README.txt
│ │ │ ├── ReadRegionVDF.pro
│ │ │ ├── ReadVDF.pro
│ │ │ ├── WRFVortMagEx.pro
│ │ │ ├── WriteTimeVaryVDF.pro
│ │ │ ├── WriteVDF.pro
│ │ │ ├── curl_findiff.pro
│ │ │ ├── deriv_findiff.pro
│ │ │ ├── div_findiff.pro
│ │ │ ├── elev_deriv.pro
│ │ │ ├── expregion.pro
│ │ │ ├── impexp.pro
│ │ │ ├── impregion.pro
│ │ │ ├── marschner_lobb.pro
│ │ │ ├── myderiv.pro
│ │ │ ├── pencil2vapor.pro
│ │ │ ├── wrf_curl_findiff.pro
│ │ │ └── wrf_div_findiff.pro
│ │ └── listOfSeeds.txt
│ ├── gitHooks/
│ │ ├── pre-push
│ │ └── setupHooks.sh
│ ├── images/
│ │ └── VAPOR.icns
│ ├── notices/
│ │ └── __example-notice.json
│ ├── palettes/
│ │ ├── Diverging/
│ │ │ ├── BlueWhiteGold.tf3
│ │ │ ├── CoolWarm.tf3
│ │ │ ├── CoolWarmBent.tf3
│ │ │ ├── CoolWarmSmooth.tf3
│ │ │ ├── GreenWhitePurple.tf3
│ │ │ ├── GreenWhiteRed.tf3
│ │ │ ├── PurpleWhiteOrange.tf3
│ │ │ ├── balance.tf3
│ │ │ ├── curl.tf3
│ │ │ ├── delta.tf3
│ │ │ ├── diff.tf3
│ │ │ └── tarn.tf3
│ │ ├── Highlighting/
│ │ │ ├── oxy.tf3
│ │ │ └── topo.tf3
│ │ └── Sequential/
│ │ ├── BlackBody.tf3
│ │ ├── BlackBodyExtended.tf3
│ │ ├── BlackWhite.tf3
│ │ ├── Kindlmann.tf3
│ │ ├── KindlmannExtended.tf3
│ │ ├── Rainbow.tf3
│ │ ├── algae.tf3
│ │ ├── amp.tf3
│ │ ├── deep.tf3
│ │ ├── dense.tf3
│ │ ├── haline.tf3
│ │ ├── ice.tf3
│ │ ├── matter.tf3
│ │ ├── phase.tf3
│ │ ├── rain.tf3
│ │ ├── solar.tf3
│ │ ├── speed.tf3
│ │ ├── tempo.tf3
│ │ ├── thermal.tf3
│ │ └── turbid.tf3
│ ├── python/
│ │ ├── imagewriter.py
│ │ ├── plot.py
│ │ ├── plot1D.py
│ │ ├── pythonSystemStartup.py
│ │ ├── vapor_utils.py
│ │ └── vapor_wrf.py
│ ├── shaders/
│ │ ├── .gitattributes
│ │ ├── 2DData.frag
│ │ ├── 2DData.vert
│ │ ├── BBTraversalAlgorithms.frag
│ │ ├── BBTraversalAlgorithmsNV.frag
│ │ ├── Contour.frag
│ │ ├── Contour.vert
│ │ ├── DepthBuffer.frag
│ │ ├── DepthBuffer.vert
│ │ ├── FlowGlyphsArrow.frag
│ │ ├── FlowGlyphsArrow.geom
│ │ ├── FlowGlyphsArrow.vert
│ │ ├── FlowGlyphsArrow2D.frag
│ │ ├── FlowGlyphsArrow2D.geom
│ │ ├── FlowGlyphsArrow2D.vert
│ │ ├── FlowGlyphsLineDirArrow2D.frag
│ │ ├── FlowGlyphsLineDirArrow2D.geom
│ │ ├── FlowGlyphsLineDirArrow2D.vert
│ │ ├── FlowGlyphsSphere2D.frag
│ │ ├── FlowGlyphsSphere2D.geom
│ │ ├── FlowGlyphsSphere2D.vert
│ │ ├── FlowGlyphsSphereSplat.frag
│ │ ├── FlowGlyphsSphereSplat.geom
│ │ ├── FlowGlyphsSphereSplat.vert
│ │ ├── FlowGlyphsTubeDirArrow.frag
│ │ ├── FlowGlyphsTubeDirArrow.geom
│ │ ├── FlowGlyphsTubeDirArrow.vert
│ │ ├── FlowInclude.geom
│ │ ├── FlowLine.frag
│ │ ├── FlowLine.vert
│ │ ├── FlowLines.frag
│ │ ├── FlowLines.geom
│ │ ├── FlowLines.vert
│ │ ├── FlowTubes.frag
│ │ ├── FlowTubes.geom
│ │ ├── FlowTubes.vert
│ │ ├── Framebuffer.frag
│ │ ├── Framebuffer.vert
│ │ ├── FramebufferND.frag
│ │ ├── FramebufferND.vert
│ │ ├── GenerateBBTraversals.pl
│ │ ├── GenerateBBTraversalsNvidia.pl
│ │ ├── GenerateUniversalBBTraversal.pl
│ │ ├── Image.frag
│ │ ├── Image.vert
│ │ ├── Legacy.frag
│ │ ├── Legacy.vert
│ │ ├── ParticleDirection.frag
│ │ ├── ParticleDirection.geom
│ │ ├── ParticleDirection.vert
│ │ ├── ParticlePoint.frag
│ │ ├── ParticlePoint.geom
│ │ ├── ParticlePoint.vert
│ │ ├── ProgTexture.efc
│ │ ├── Slice.frag
│ │ ├── Slice.vert
│ │ ├── VolumeBase.frag
│ │ ├── VolumeCellBase.frag
│ │ ├── VolumeCellDVR.frag
│ │ ├── VolumeCellDVR.vert
│ │ ├── VolumeCellIso.frag
│ │ ├── VolumeCellIso.vert
│ │ ├── VolumeDVR.frag
│ │ ├── VolumeDVR.vert
│ │ ├── VolumeIso.frag
│ │ ├── VolumeIso.vert
│ │ ├── VolumeIsoInclude.frag
│ │ ├── VolumeRayMath.frag
│ │ ├── VolumeRectilinearDVR.frag
│ │ ├── VolumeRectilinearDVR.vert
│ │ ├── VolumeRectilinearIso.frag
│ │ ├── VolumeRectilinearIso.vert
│ │ ├── White.frag
│ │ ├── White.vert
│ │ ├── Wireframe.frag
│ │ ├── Wireframe.vert
│ │ ├── depthpeeling.efc
│ │ ├── font.frag
│ │ ├── font.vert
│ │ ├── includes/
│ │ │ ├── alphagradient.hgl
│ │ │ ├── cart2sph.hgl
│ │ │ ├── datagradient.hgl
│ │ │ ├── depthpeeling.hgl
│ │ │ ├── gradient.hgl
│ │ │ ├── gradient2.hgl
│ │ │ ├── invpermute.hgl
│ │ │ ├── permute.hgl
│ │ │ └── tex2lay.hgl
│ │ ├── main/
│ │ │ ├── 2DData.fgl
│ │ │ ├── 2DData.vgl
│ │ │ ├── Iso.fgl
│ │ │ ├── Iso.vgl
│ │ │ ├── ProgTexture.fgl
│ │ │ ├── ProgTexture.vgl
│ │ │ ├── SphericalDVR.fgl
│ │ │ ├── SphericalDVR.vgl
│ │ │ ├── depthpeeling.fgl
│ │ │ ├── depthpeeling.vgl
│ │ │ ├── texSampler.fgl
│ │ │ └── texSampler.vgl
│ │ └── texSampler.efc
│ └── udunits/
│ ├── udunits2-accepted.xml
│ ├── udunits2-base.xml
│ ├── udunits2-common.xml
│ ├── udunits2-derived.xml
│ ├── udunits2-prefixes.xml
│ └── udunits2.xml
├── site_files/
│ └── site.NCAR
└── test_apps/
├── CMakeLists.txt
├── OpenMP/
│ ├── CMakeLists.txt
│ └── GetRange.cpp
├── ParamsMgr/
│ ├── CMakeLists.txt
│ ├── file.xml
│ └── test_ParamsMgr.cpp
├── TransferFunction/
│ └── test_TransferFunction.cpp
├── base64/
│ ├── CMakeLists.txt
│ └── test_base64.cpp
├── controlExec/
│ ├── CMakeLists.txt
│ ├── file.xml
│ ├── moc_test_vizwin.cpp
│ ├── test_CE.cpp
│ ├── test_vizwin.cpp
│ └── test_vizwin.h
├── datamgr/
│ ├── CMakeLists.txt
│ └── test_datamgr.cpp
├── grid_iter/
│ ├── CMakeLists.txt
│ └── test_grid_iter.cpp
├── params/
│ ├── file.xml
│ └── test_params.cpp
├── params2/
│ ├── CMakeLists.txt
│ └── test_params2.cpp
├── pyengine/
│ ├── CMakeLists.txt
│ └── test_pyengine.cpp
├── quadtreerectangle/
│ ├── CMakeLists.txt
│ └── test_quadtreerectangle.cpp
├── render_regression_tests/
│ ├── README.md
│ ├── config.yaml
│ ├── run_config.py
│ └── run_test.py
├── smokeTests/
│ ├── CMakeLists.txt
│ ├── dataMgrTools.cpp
│ ├── dataMgrTools.h
│ ├── gridTools.cpp
│ ├── gridTools.h
│ ├── smokeTests.py
│ ├── testDataMgr.cpp
│ ├── testGrid.cpp
│ └── testResults/
│ ├── cf_baseline.txt
│ ├── vdc_baseline.txt
│ └── wrf_baseline.txt
├── udunits/
│ ├── CMakeLists.txt
│ └── test_udunits.cpp
├── vdc3test/
│ ├── test.csh
│ └── vdc3test.csh
└── xmlnode/
└── test_xmlnode.cpp
================================================
FILE CONTENTS
================================================
================================================
FILE: .circleci/config.yml
================================================
anchors:
- &srcLibs "2024-Sept-src"
- &macOSx86Libs "2024-Sept-macOSx86"
- &appleSiliconLibs "2024-Sept-appleSilicon"
- &u20Libs "2025-July-Ubuntu20"
version: 2.1
orbs:
win: circleci/windows@2.2.0
references:
workspace_root: &workspace_root
/tmp/workspace
attach_workspace: &attach_workspace
attach_workspace:
at: *workspace_root
commands:
get_libraries:
parameters:
useAWS:
type: boolean
default: true
fileName:
type: string
sudo:
type: string
default: ""
dir:
type: string
default: "/usr/local/VAPOR-Deps"
steps:
- run:
name: get third party libraries
command: |
# if /usr/local/VAPOR-Deps is empty, acquire libraries
if [ ! -d <<parameters.dir>> ]; then
<<parameters.sudo>> mkdir -p <<parameters.dir>>
<<parameters.sudo>> chmod -R 777 <<parameters.dir>>
<<parameters.sudo>> chown -R `whoami` <<parameters.dir>>
wget https://vaporawsbucket.s3.us-west-2.amazonaws.com/<<parameters.fileName>>.tar.xz
tar -xf <<parameters.fileName>>.tar.xz -C <<parameters.dir>>
fi
build_vapor:
parameters:
branch:
type: string
default: $CIRCLE_BRANCH
beforeCompile:
type: string
default: ""
compileArgs:
type: string
default: ""
moveToCommand:
type: string
libDir:
type: string
default: "/usr/local/VAPOR-Deps"
libName:
type: string
default: 2023-Sept
steps:
- run:
name: build vapor
command: |
libraryDir=`ls <<parameters.libDir>>`
ln -s $libraryDir <<parameters.libDir>>/current
cp site_files/site.NCAR site.local
mkdir -p build
cd build
git checkout <<parameters.branch>>
<<parameters.beforeCompile>>
cmake \
-DCMAKE_BUILD_TYPE:String=Release \
-DDIST_INSTALLER:string=ON \
-DUSE_OMP=ON \
<<parameters.compileArgs>> \
-DTHIRD_PARTY_DIR=<<parameters.libDir>>/current ..
make -j4
make installer
for f in VAPOR3-* ; do mv "$f" "<<parameters.moveToCommand>>" ; done
mkdir -p /tmp/workspace/installers
find VAPOR* -maxdepth 1 -type f \( -name "*.AppImage" -o -name "*.exe" -o -name "*.dmg" \) -exec mv {} /tmp/workspace/installers \;
ls /tmp/workspace/installers
no_output_timeout: 30m
- store_artifacts:
path: /tmp/workspace/installers
- persist_to_workspace:
root: *workspace_root
paths:
- installers
smoke_tests:
steps:
- restore_cache:
name: restore smoke test data
keys:
- smoke-test-data
- run:
name: Acquire smoke test data
command: |
if [ -z "$(ls -A /smokeTestData)" ]; then
mkdir -p /smokeTestData
wget https://vaporawsbucket.s3.us-west-2.amazonaws.com/smokeTestData.tar.gz
tar --no-same-owner -xf /root/project/smokeTestData.tar.gz -C /smokeTestData
chown -R root:root /smokeTestData
chmod -R 777 /smokeTestData
else
echo "Data already acquired"
fi
- save_cache:
key: smoke-test-data
paths:
- /smokeTestData
- run:
name: Smoke tests
command: |
python3 ~/project/test_apps/smokeTests/smokeTests.py \
-testDataRoot=/smokeTestData/smokeTestData \
-binaryRoot=~/project/build/test_binaries \
-resultsDir=~/project/test_apps/smokeTests/testResults
- store_artifacts:
path: ~/project/test_apps/smokeTests/testResults
get_macos_dependencies:
steps:
- run:
name: Get dependencies
command: |
#Caching clang would miss every couple of weeks and require ~2 hours of build time.
#Instead of caching it, we're just going to host it on aws and download it.
wget https://vaporawsbucket.s3.us-west-2.amazonaws.com/portClang.tar.xz
sudo tar -xf portClang.tar.xz -C /
brew install cmake
no_output_timeout: 45m
jobs:
build_win10_installer:
executor: win/default
steps:
- checkout
- run:
name: Install dependencies
command: |
choco install visualstudio2019-workload-vctools -y
choco install python -y
choco install git -y
choco install cmake --version=3.31.6 -y
choco install nsis -y
python -m pip install gdown
setx /M PATH "%PATH%;C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin"
msbuild -version
pwd
ls
python .circleci/downloadWin3rdParty.py
no_output_timeout: 20m
- run:
name: dos2unix
command: |
dos2unix /c/Users/circleci/project/share/shaders/*
dos2unix /c/Users/circleci/project/share/shaders/main
dos2unix /c/Users/circleci/project/share/shaders/includes
shell: bash.exe
- run:
name: Build Vapor
command: |
Copy-Item site_files\* -Destination .
mkdir build
cd build
git checkout $CIRCLE_BRANCH
& 'C:\\Program Files\\CMake\\bin\\cmake.exe' -S C:\Users\circleci\project -B C:\Users\circleci\project\build -DDIST_INSTALLER:string=ON -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_OSP=OFF -G 'Visual Studio 16 2019' -A x64
msbuild C:\Users\circleci\project\build\PACKAGE.vcxproj /p:Configuration=Release /p:Platform=x64
mkdir -p C:\Users\circleci\project\tmp\workspace\installers
Copy-Item C:\Users\circleci\project\build\*.exe -Destination C:\Users\circleci\project\tmp\workspace\installers
if (!(Test-Path -Path C:\Users\circleci\project\tmp\workspace\installers\*.exe)) {
Write-Error "Build failed: No installers found"
exit 1
}
no_output_timeout: 45m
- store_artifacts:
path: C:\Users\circleci\project\tmp\workspace\installers
- persist_to_workspace:
root: C:\Users\circleci\project\tmp\workspace
paths:
- installers
build_macOSx86_installer:
macos:
xcode: "14.3.1"
resource_class: m4pro.large
steps:
- checkout
- get_libraries:
fileName: *macOSx86Libs
sudo: sudo
- get_macos_dependencies
- build_vapor:
beforeCompile: export PATH=/opt/local/bin:$PATH; softwareupdate --install-rosetta --agree-to-license
compileArgs: |
-DCMAKE_BUILD_TYPE:String=Release \
-DDIST_INSTALLER:string=ON \
-DUSE_OMP=ON \
-DCPACK_BINARY_DRAGNDROP=ON \
-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
-DTHIRD_PARTY_DIR=/usr/local/VAPOR-Deps/current \
moveToCommand: ${f/Darwin/macOSx86}
build_appleSilicon_installer:
macos:
xcode: "14.3.1"
resource_class: m4pro.large
steps:
- checkout
- get_libraries:
fileName: *appleSiliconLibs
sudo: sudo
- get_macos_dependencies
- build_vapor:
beforeCompile: export PATH=/opt/local/bin:$PATH
compileArgs: |
-DCMAKE_BUILD_TYPE:String=Release \
-DDIST_INSTALLER:string=ON \
-DUSE_OMP=ON \
-DCPACK_BINARY_DRAGNDROP=ON \
-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang \
-DTHIRD_PARTY_DIR=/usr/local/VAPOR-Deps/current \
moveToCommand: ${f/Darwin/AppleSilicon}
build_python_api_ubuntuDebug:
docker:
- image: conda/miniconda3 # Debian based docker image
resource_class: xlarge
steps:
- checkout
- run:
name: conda build .
command: |
cd /root/project/conda
conda update -y -n base -c defaults conda
conda install -y conda-build
conda config --add channels conda-forge
conda config --add channels ncar-vapor
conda build .
mkdir /usr/local/conda-bld/linux-64/tarBallDir
mv /usr/local/conda-bld/linux-64/*.tar.bz2 /usr/local/conda-bld/linux-64/tarBallDir
no_output_timeout: 180m
- store_artifacts:
path: /usr/local/conda-bld/linux-64/tarBallDir
build_python_api_ubuntu:
docker:
- image: conda/miniconda3 # Debian based docker image
resource_class: large
steps:
- checkout
- run:
name: acquire map image archive
command: |
cd /root
# The following resolves the error "E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file."
echo "deb http://archive.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list
apt update
apt install -y git
git clone https://github.com/NCAR/VAPOR-Data.git
- run:
name: build conda installer
command: |
conda update -y -n base -c defaults conda
conda config --add channels ncar-vapor
conda config --add channels conda-forge
conda install -y conda-build
cd /root/project/conda
#conda build .
DEBUG_BUILD=false MAP_IMAGES_PATH="/root/VAPOR-Data/images" conda build .
mkdir /usr/local/conda-bld/linux-64/tarBallDir
mv /usr/local/conda-bld/linux-64/*.tar.bz2 /usr/local/conda-bld/linux-64/tarBallDir
no_output_timeout: 180m
- store_artifacts:
path: /usr/local/conda-bld/linux-64/tarBallDir
build_python_api_osx:
macos:
xcode: "13.4.1"
steps:
- checkout
- run:
name: install miniconda
command: |
brew install wget
wget https://repo.continuum.io/miniconda/Miniconda3-py39_4.9.2-MacOSX-x86_64.sh -O ~/miniconda.sh
bash ~/miniconda.sh -b -p ~/miniconda
- run:
name: acquire map image archive
command: |
cd /Users/distiller
git clone https://github.com/NCAR/VAPOR-Data.git
- run:
name: conda build .
command: |
cd /Users/distiller/project/conda
/Users/distiller/miniconda/bin/conda install -y conda-build anaconda conda-verify
/Users/distiller/miniconda/bin/conda config --add channels conda-forge
DEBUG_BUILD=false MAP_IMAGES_PATH="/Users/distiller/VAPOR-Data/images" /Users/distiller/miniconda/bin/conda build .
mkdir -p /tmp/workspace/installers
mv /Users/distiller/miniconda/conda-bld/osx-64/*.tar.bz2 /tmp/workspace/installers
cd /tmp/workspace/installers
fileName=${ls}
newFileName=${fileName//vapor/vaporUbuntu}
no_output_timeout: 30m
- store_artifacts:
path: /tmp/workspace/installers
suse_smoke_tests:
docker:
- image: opensuse/leap
resource_class: medium
steps:
- suse_prerequisites
- attach_workspace:
at: /
- smoke_tests
build_linux_installer:
docker:
- image: ubuntu:20.04
resource_class: xlarge
steps:
- checkout
- run:
name: acquire prerequisites
command: |
export DEBIAN_FRONTEND=noninteractive
apt update
apt install -y libffi-dev
apt install -y curl
apt install -y xz-utils
apt install -y git
apt install -y g++
apt install -y libomp-dev
apt install -y freeglut3-dev
apt install -y libexpat1-dev
apt install -y libglib2.0-0
apt install -y libdbus-1-3
apt install -y valgrind
apt install -y clang-tidy
apt install -y lsb-release
apt install -y python3-pip
pip3 install gdown
git config --global --add safe.directory /tmp/_circleci_local_build_repo
# all for cmake
apt-get update
apt-get install -y gpg wget
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
DEBIAN_FRONTEND=noninteractive apt install -y software-properties-common
apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ focal main'
apt install -y cmake --allow-unauthenticated
# for AppImage
apt install -y \
libxcb-icccm4-dev \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-render-util0 \
libxkbcommon-x11-0 \
desktop-file-utils
- restore_cache:
name: restore intel's oneapi
keys:
- intelOneapi
- run:
name: acquire intel hpckit for bundling ospray
command: |
# if not restored from cache, acquire oneapi
if [ ! -d /opt/intel/oneapi ]; then
# For bundling Ospray, which wants Intel's MPI implementation to be bundled
apt install -y linux-headers-5.15.0-1053-aws
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | tee /etc/apt/sources.list.d/oneAPI.list
apt update
apt install -y intel-hpckit
fi
- save_cache:
key: intelOneapi
paths:
- /opt/intel/oneapi
- get_libraries:
fileName: *u20Libs
- build_vapor:
moveToCommand: ${f/Linux/Ubuntu20}
compileArgs: |
-DDIST_APPIMAGE=ON \
-DBUILD_TEST_APPS=ON \
- smoke_tests
release_weekly_installers:
macos:
xcode: "14.3.1"
steps:
- checkout
- *attach_workspace
- run:
name: publish release
command: |
cd /Users/distiller/project
hash=`git rev-parse HEAD`
tag="Weekly"
cd /tmp/workspace/installers
brew install ghr
brew install gh
current_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
release_date=$(gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/NCAR/VAPOR/releases/latest --jq ".published_at")
current_date_sec=$(date -jf "%Y-%m-%dT%H:%M:%SZ" "$current_date" +"%s")
release_date_sec=$(date -jf "%Y-%m-%dT%H:%M:%SZ" "$release_date" +"%s")
weeks_since_release=$(( ($current_date_sec - $release_date_sec) / 604800 ))
for installer in VAPOR*3*; do
extension="${installer##*.}"
new_name="${installer%.*}-w$weeks_since_release.$extension"
mv "$installer" "$new_name"
done
endl=$'\n'
title="sha 256"$endl
a="AppImage: "
sha=`shasum -a 256 VAPOR*.AppImage`
linuxSha=$a$sha$endl
os="OSX: "
sha=`shasum -a 256 VAPOR*x86*.dmg`
osxSha=$os$sha$endl
os="AppleSilicon: "
sha=`shasum -a 256 VAPOR*AppleSilicon*.dmg`
siliconSha=$os$sha$endl
os="Windows: "
sha=`shasum -a 256 VAPOR*.exe`
winSha=$os$sha$endl
shaMessage="$title$linuxSha$osxSha$siliconSha$winSha"
date=`date +"%d_%m_%y"`
echo "$shaMessage"
echo "$shaMessage" > "/tmp/workspace/installers/sha256.txt"
echo ghr -b "Weekly installers are untested an may not be stable. Built with commit ${hash} on ${date} \(DD-MM-YY\)" -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -prerelease -c ${CIRCLE_SHA1} -recreate -c ${hash} -n ${tag} ${tag} /tmp/workspace/installers
ghr -b "Weekly installers are untested an may not be stable. Built with commit ${hash} on ${date} \(DD-MM-YY\)" -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -prerelease -c ${CIRCLE_SHA1} -recreate -c ${hash} -n ${tag} ${tag} /tmp/workspace/installers
build_ubuntu20_libs:
docker:
- image: ubuntu:20.04
resource_class: xlarge
steps:
- run:
name: acquire prerequisites
command: |
DEBIAN_FRONTEND=noninteractive
apt update
apt install -y xz-utils git curl libomp-dev
git config --global --add safe.directory /tmp/_circleci_local_build_repo
- checkout
- get_libraries:
fileName: 2023-Sept-src.tar.xz
#driveID: *srcLibID
- run:
name: build libraries
command: |
chmod 777 /root/project/scripts/build3rdParty.sh
/root/project/scripts/build3rdParty.sh -o Ubuntu
no_output_timeout: 60m
- build_vapor:
moveToCommand: ${f/Linux/Ubuntu20}
- store_artifacts:
path: /tmp/workspace/installers
- store_artifacts:
path: /usr/local/VAPOR-Deps/2023-Sept-Ubuntu.tar.xz
build_macOSx86_libs:
macos:
xcode: "13.4.1"
resource_class: macos.x86.medium.gen2
steps:
- checkout
- run:
name: Get MacPorts
command: |
curl -k -O https://distfiles.macports.org/MacPorts/MacPorts-2.7.1.tar.bz2
tar xf MacPorts-2.7.1.tar.bz2
cd MacPorts-2.7.1/
./configure
make -j6
sudo make install
- run:
name: Get clang13
command: |
sudo /opt/local/bin/port selfupdate
(sudo yes || true) | sudo /opt/local/bin/port install clang-13
sudo /opt/local/bin/port select --set clang mp-clang-13
/opt/local/bin/clang++ -v > clangVersion.txt
no_output_timeout: 30m
- get_libraries:
fileName: *srcLibs
sudo: sudo
- run:
name: build libraries
command: |
chmod 777 /Users/distiller/project/scripts/build3rdParty.sh
/Users/distiller/project/scripts/build3rdParty.sh -o macOSx86
- build_vapor:
beforeCompile: export PATH=/opt/local/bin:$PATH; softwareupdate --install-rosetta --agree-to-license; sudo port select --set clang mp-clang-13
compileArgs: |
-DCPACK_BINARY_DRAGNDROP=ON \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_C_COMPILER=clang \
-DMACOS_BUILD_ARM64=OFF \
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
moveToCommand: ${f/Darwin/macOSx86}
- store_artifacts:
path: /tmp/workspace/installers
- store_artifacts:
path: /usr/local/VAPOR-Deps
build_AppleSilicon_libs:
macos:
xcode: "13.4.1"
resource_class: macos.m1.large.gen1
steps:
- checkout
- get_libraries:
driveID: *srcLibs
sudo: sudo
- run:
name: Get MacPorts
command: |
curl -k -O https://distfiles.macports.org/MacPorts/MacPorts-2.7.1.tar.bz2
tar xf MacPorts-2.7.1.tar.bz2
cd MacPorts-2.7.1/
./configure
make -j8
sudo make install
- run:
name: Get clang13
command: |
sudo /opt/local/bin/port selfupdate
(sudo yes || true) | sudo /opt/local/bin/port install clang-13
sudo /opt/local/bin/port select --set clang mp-clang-13
/opt/local/bin/clang++ -v > clangVersion.txt
no_output_timeout: 30m
- run:
name: build libraries
command: |
chmod 777 /Users/distiller/project/scripts/build3rdParty.sh
/Users/distiller/project/scripts/build3rdParty.sh -o appleSilicon
- build_vapor:
beforeCompile: export PATH=/opt/local/bin:$PATH
compileArgs: |
-DCPACK_BINARY_DRAGNDROP=ON \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_C_COMPILER=clang \
moveToCommand: ${f/Darwin/AppleSilicon}
- store_artifacts:
path: /tmp/workspace/installers
- store_artifacts:
path: /usr/local/VAPOR-Deps
build_win10_libs:
executor: win/default
steps:
- checkout
- run:
name: get source files
command: |
gdown https://drive.google.com/uc?id=1FG8ngmz9Tk3HKZgGejqwtbkBAVonm91z
tar xvf ${filename} -C /usr/local/VAPOR-Deps
msbuild -version
- run:
name: build libraries
command: |
chmod 777 /root/project/scripts/build3rdParty.sh
/root/project/scripts/build3rdParty.sh -o Windows
- store_artifacts:
path: C:\Users\circleci\project\tmp\workspace\installers
workflows:
version: 2
build:
jobs:
#- build_python_api_ubuntuDebug
#- build_python_api_ubuntu
#- build_python_api_osx
- build_win10_installer
# - build_macOS_installers
# - build_appleSilicon_installer
# - build_macOSx86_installer
- build_linux_installer
#- build_suse_installer
#- build_ubuntu20_libs
# - build_macOSx86_libs
#- build_AppleSilicon_libs
#- build_suse_libs
# - build_windows_libs
# - release_weekly_installers
# - release_weekly_installers:
# requires:
# - build_win10_installer
# - build_appleSilicon_installer
# - build_macOSx86_installer
# - build_linux_installer
weekly:
triggers:
- schedule:
cron: "30 17 * * 1" #Time is GMT
filters:
branches:
only: main
jobs:
- build_linux_installer
- build_appleSilicon_installer
- build_macOSx86_installer
- build_win10_installer
#- build_macOS_installers
#- build_python_api_ubuntu
#- build_python_api_osx
- release_weekly_installers:
requires:
- build_linux_installer
- build_appleSilicon_installer
- build_macOSx86_installer
- build_win10_installer
#- build_macOS_installers
#- build_python_api_ubuntu
#- build_python_api_osx
================================================
FILE: .circleci/downloadWin3rdParty.py
================================================
import gdown
url = "https://drive.google.com/a/ucar.edu/uc?id=1fzZ-mbY4Cek1TRsaKm79a08Od5gNCogk"
output = "2019-Aug-Win32.zip"
gdown.download(url, output, quiet=False)
import zipfile
with zipfile.ZipFile("2019-Aug-Win32.zip", 'r') as zip_ref:
zip_ref.extractall('C:\\')
================================================
FILE: .clang-format
================================================
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveBitFields: true
AlignConsecutiveDeclarations: true
AlignConsecutiveMacros: true
AlignEscapedNewlines: Left
AlignOperands: AlignAfterOperator
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
BinPackArguments: true
BinPackParameters: true
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: WebKit
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: false
ColumnLimit: 200
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
DisableFormat: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Preserve
IndentCaseBlocks: false
IndentCaseLabels: false
IndentExternBlock: NoIndent
IndentGotoLabels: true
IndentPPDirectives: BeforeHash
IndentWidth: 4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 3
NamespaceIndentation: None
PointerAlignment: Right
ReflowComments: true
SortIncludes: false
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 4
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Latest
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 4
UseCRLF: false
UseTab: Never
...
================================================
FILE: .editorconfig
================================================
[*.{c,cpp,h,pl,frag,vert}]
indent_style = tab
indent_size = 4
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a bug report
title: ''
labels: Bug
assignees: ''
---
### Describe the bug
A clear and concise description of what the bug is.
**Helpful additional information**
(*Please click check boxes AFTER submitting ticket*)
- [ ] Did VAPOR crash?
- [ ] Did you get wrong results?
**Impact**
- [ ] High - User productivity significantly degraded
- [ ] Medium - User productivity partially degraded
- [ ] Low - User productivity trivially degraded
### To Reproduce
Steps to reproduce the behavior. For example:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
*Additionally, please attach a session file to this ticket to easily reproduce (use File->Save Session).*
### Expected behavior
A clear and concise description of what you expected to happen.
### Attachments
* Can you reproduce the bug on our test data?
* If so, which file?
* If not, access to your data would be very helpful. If the data set is small, please zip and upload it as an attachment. If it is large, please provide instructions for how we can contact you to obtain this data.
* Please attach a session file to easily reproduce (use File->Save Session).
* Please attach any screenshots relevant to understanding the issue.
### Desktop
- OS and version: [e.g. Ubuntu 18.04]
- Version: [e.g. Vapor 3.1]
### Additional context
Add any other context about the problem here. Attach any (zipped) relevant files, such as data, configurations, session files, etc.
================================================
FILE: .github/ISSUE_TEMPLATE/documentation-request.md
================================================
---
name: Documentation Request
about: Submit a request fo Documentation on VAPOR
title: ''
labels: Documentation
assignees: ''
---
### Describe what needs to be documented.
A clear and concise description of what you would like to see.
### Is the documentation missing?
If so, please describe where have you looked for the documentation and where you expect to see it.
### Is the documentation there but needs improvement?
*Please provide the url of the documentation.*
### Additional context
Add any other context or screenshots about the desired documentation.
================================================
FILE: .github/ISSUE_TEMPLATE/enhancement-request.md
================================================
---
name: Enhancement request
about: Suggest an idea for this project
title: ''
labels: Enhancement
assignees: ''
---
### Is your feature request related to a problem?
A clear and concise description of the problem. E.g. I'm always frustrated when [...]
### Describe the solution you'd like.
A clear and concise description of what you want to happen.
**Impact**
(*Please click check boxes AFTER submitting ticket*)
- [ ] High - User productivity significantly improved
- [ ] Medium - User productivity partially improved
- [ ] Low - User productivity trivially improved
### Is your feature request specific to a data set?
Can you use one of our example data sets to demonstrate the desired feature?
* Please provide a data set. If the data set is small, please zip and upload it as an attachment. If it is large, please provide instructions on how we can contact you to obtain this data.
### Additional context
Add any other context or screenshots about the feature request here.
================================================
FILE: .github/workflows/release.yml
================================================
name: Trigger Documentation Update
on:
release:
types: [published]
workflow_dispatch:
jobs:
trigger-doc-update:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout VAPOR repo
uses: actions/checkout@v4
- name: Trigger documentation update
run: |
curl -X POST -H "Authorization: token ${{ secrets.GH_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/NCAR/VaporDocumentationWebsite/dispatches \
-d '{"event_type":"update-docs"}'
================================================
FILE: .gitignore
================================================
.DS_Store
apps/vaporgui/guis/ui/*.h
apps/vaporgui/moc/
lib/idl/IDLMetadataAuto.cpp
lib/render/moc/
share/doc/Doxygen/Doxyfile
site.mk
targets/
.ycm_extra_conf.py
make/Darwin/VaporXcode/vaporXcode.xcodeproj/project.xcworkspace/
make/Darwin/VaporXcode/vaporXcode.xcodeproj/xcuserdata/
plugins/visit/CMakeCache.txt
plugins/visit/CMakeFiles/
plugins/visit/CMakeLists.txt
plugins/visit/Makefile
plugins/visit/WASP/CMakeCache.txt
plugins/visit/WASP/CMakeFiles/
plugins/visit/WASP/CMakeLists.txt
plugins/visit/WASP/Makefile
plugins/visit/WASP/WASP.xml.bak
plugins/visit/WASP/cmake_install.cmake
plugins/visit/vdf.xml.bak
plugins/visit/VDC/CMake*
share/fonts/Pacifico.ttf
__pycache__
.idea
tags
# CMake
Makefile
cmake_install.cmake
CmakeFiles
CMakeCache.txt
/site.local
bin
/build
/build-release
/cmake-build-*
/xcode
/apps/vaporgui/ui/
/buildutils/LinuxInstallLibs.txt
# vim swap files
*.swp
*.swo
# object files
*.o
*.out*
================================================
FILE: .readthedocs.yml
================================================
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py
# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml
# Optionally build your docs in additional formats such as PDF
formats:
- pdf
# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
# install:
# - requirements: docs/requirements.txt
================================================
FILE: CMakeLists.txt
================================================
# Note on building VDC only:
# These packages from Ubuntu repo are required to build VAPOR with only VDC enabled:
# (tested on Ubuntu 18.04)
#
# libnetcdf-dev, libudunits2-dev, libproj-dev
cmake_minimum_required (VERSION 3.17)
project (VAPOR3)
include (buildutils/UtilityFunctions.cmake)
include (buildutils/GetGitRevisionDescription.cmake)
include (buildutils/OpenMPInstaller.cmake)
set (CMAKE_CXX_STANDARD 17)
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build." FORCE)
# Set the possible values of build type for cmake-gui
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "DEBUG" "RELEASE" "RELWITHDEBINFO")
endif()
if(APPLE)
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "")
# Check if the target architecture is arm64
include(CheckCXXSourceRuns)
set(CMAKE_REQUIRED_FLAGS "-arch arm64")
set(CHECK_ARM64_SOURCE_CODE "int main() { return 0; }")
check_cxx_source_runs("${CHECK_ARM64_SOURCE_CODE}" IS_ARM64)
if(IS_ARM64)
set(CMAKE_OSX_ARCHITECTURES arm64)
else()
set(CMAKE_OSX_ARCHITECTURES x86_64)
endif()
endif()
set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0" CACHE STRING "Minimum OS X deployment version" FORCE)
if (CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
message("Building on macOS M1 architecture (arm64)")
else()
message("Building on macOS x86 architecture")
set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "macOS build architecture" FORCE)
endif()
endif()
set (VERSION_MAJOR 3)
set (VERSION_MINOR 11)
set (VERSION_MICRO 0)
set (VERSION_RC )
message("CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}")
if (CMAKE_BUILD_TYPE STREQUAL "Release")
get_git_head_revision (GIT_REFSPEC VERSION_COMMIT)
message("VERSION_COMMIT ${VERSION_COMMIT}")
execute_process (
COMMAND git rev-parse --short ${VERSION_COMMIT}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE VERSION_COMMIT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message("VERSION_COMMIT2 ${VERSION_COMMIT}")
endif ()
string (TIMESTAMP VERSION_DATE UTC)
if (VERSION_RC)
set (VERSION_STRING ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}.${VERSION_RC})
else ()
set (VERSION_STRING ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO})
endif ()
set (VERSION_STRING_FULL ${VERSION_STRING}.${VERSION_COMMIT})
if (APPLE)
add_definitions (-DDarwin)
elseif (WIN32)
add_definitions (-DWIN32 -DNOMINMAX)
add_definitions (-DGLAD_API_CALL_EXPORT)
add_compile_definitions(_HAS_STD_BYTE=0)
endif()
# compiler warning flags
if (NOT WIN32)
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-sign-compare -Wno-overloaded-virtual -Wno-parentheses")
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-sign-compare")
else ()
# Enable multithread compiling on Visual Studio
# This feature is glitchy so you may need to re-run
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
endif()
if (CMAKE_GENERATOR STREQUAL "Xcode")
set (DEFAULT_BUILD_UTILITIES OFF)
else ()
set (DEFAULT_BUILD_UTILITIES ON)
endif ()
option (BUILD_VDC "Build VDC library and utilities" ON)
option (BUILD_GUI "Build Vapor GUI" ON)
option (BUILD_PYTHON "Build Vapor Python Library" OFF)
option (BUILD_OSP "Build OSPRay" ON)
option (BUILD_UTL "Build conversion and utility applications" ${DEFAULT_BUILD_UTILITIES})
option (BUILD_DOC "Build Vapor Doxygen documentation" ON)
option (BUILD_TEST_APPS "Build test applications" OFF)
option (DIST_INSTALLER "Generate installer for distributing vapor binaries. Will generate standard make install if off" OFF)
option (USE_OMP "Use OpenMP on some calculations" OFF)
option (CONDA_BUILD "Use Conda to build" OFF)
if (UNIX AND NOT APPLE)
include (CMakeDependentOption)
cmake_dependent_option (DIST_APPIMAGE "Generate an AppImage for VAPOR's installation across multiple Linux platforms" OFF "DIST_INSTALLER" ON)
endif (UNIX AND NOT APPLE)
if( USE_OMP )
find_package(OpenMP REQUIRED)
if( OpenMP_CXX_FOUND AND OpenMP_CXX_FLAGS )
message(STATUS "OpenMP found! (${OpenMP_CXX_LIB_NAMES})")
else()
message(STATUS "OpenMP NOT found! Are you using Apple Clang?")
endif()
endif()
set (GENERATE_FULL_INSTALLER ON)
if (BUILD_GUI)
set (BUILD_VDC ON)
endif ()
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set (test_output_dir ${CMAKE_BINARY_DIR}/test_binaries)
set (debug_output_dir ${CMAKE_BINARY_DIR}/debug_binaries)
set (QTDIR )
set (OSPRAYDIR )
set (PYTHONDIR )
set (PYTHONVERSION )
set (PYTHONPATH )
set (NUMPY_INCLUDE_DIR )
set (THIRD_PARTY_DIR )
set (THIRD_PARTY_LIB_DIR )
set (THIRD_PARTY_INC_DIR )
set (MAP_IMAGES_PATH )
include (site_files/site.NCAR OPTIONAL)
include (site.local OPTIONAL)
if (CONDA_BUILD)
unset (QTDIR)
unset (OSPRAYDIR)
unset (PYTHONDIR)
unset (PYTHONVERSION)
unset (PYTHONPATH)
unset (NUMPY_INCLUDE_DIR)
unset (THIRD_PARTY_DIR)
unset (THIRD_PARTY_LIB_DIR)
unset (THIRD_PARTY_INC_DIR)
if (DEFINED ENV{MAP_IMAGES_PATH})
set (MAP_IMAGES_PATH $ENV{MAP_IMAGES_PATH})
endif()
else()
message("THIRD_PARTY_DIR = ${THIRD_PARTY_DIR}")
include_directories (SYSTEM ${THIRD_PARTY_INC_DIR})
include_directories (SYSTEM ${THIRD_PARTY_INC_DIR}/freetype2)
link_directories (${THIRD_PARTY_LIB_DIR})
link_directories (${PYTHONPATH})
list (APPEND CMAKE_PREFIX_PATH ${THIRD_PARTY_LIB_DIR})
list (APPEND CMAKE_PREFIX_PATH ${THIRD_PARTY_DIR})
list (APPEND CMAKE_PREFIX_PATH ${THIRD_PARTY_DIR}/HDF_Group/HDF5/1.12.2/lib)
if (APPLE)
set(CMAKE_MODULE_PATH /opt/local/lib/libomp)
endif()
endif()
include_directories ("${PROJECT_SOURCE_DIR}/lib/osgl/include")
include_directories ("${PROJECT_SOURCE_DIR}/lib/osgl/glad/include")
if (WIN32)
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
endif ()
if (BUILD_VDC AND EXISTS ${PYTHONPATH}/lib-dynload)
link_directories (${PYTHONPATH}/lib-dynload)
endif ()
find_library(NETCDF netcdf)
find_library(UDUNITS2 udunits2)
find_library(FREETYPE freetype)
find_library(GEOTIFF geotiff)
find_library(JPEG jpeg)
find_library(HDF5_LIB hdf5)
find_library(EXPAT expat)
message("Library NETCDF = ${NETCDF}")
message("Library UDUNITS2 = ${UDUNITS2}")
message("Library FREETYPE = ${FREETYPE}")
message("Library GEOTIFF = ${GEOTIFF}")
message("Library JPEG = ${JPEG}")
message("Library HDF5_LIB = ${HDF5_LIB}")
message("Library EXPAT = ${EXPAT}")
# find_package(Python)
# Output
# ${Python_VERSION}
# ${Python_LIBRARIES}
# ${Python_INCLUDE_DIRS}
# ${Python_SITELIB}
# ${Python_NumPy_VERSION}
# ${Python_NumPy_INCLUDE_DIRS}
# https://cmake.org/cmake/help/v3.12/module/FindPython.html
function(FIND_BUNDLED_PYTHON)
# FindPython supports Python_ROOT_DIR however vapor's bundled python distribution
# does not conform to its requirements so this manually configures the results
message("Using bundled python")
message(" PYTHONDIR ${PYTHONDIR}")
message(" PYTHONPATH ${PYTHONPATH}")
set(Python_VERSION "${PYTHONVERSION}")
set(Python_NumPy_INCLUDE_DIRS "${NUMPY_INCLUDE_DIR}")
unset(Python_LIBRARIES) # This is required for find_library to work in certain cases
if (APPLE)
set(PYTHON_LIB_DIR "${PYTHONDIR}/lib")
else()
set(PYTHON_LIB_DIR "${PYTHONPATH}")
endif()
message(" PYTHON_LIB_DIR ${PYTHON_LIB_DIR}")
find_library(
Python_LIBRARIES
NAMES python${PYTHONVERSION} python${PYTHONVERSION}m
PATHS ${THIRD_PARTY_LIB_DIR} ${PYTHON_LIB_DIR}
NO_DEFAULT_PATH
)
if (WIN32)
set(Python_SITELIB "${PYTHONPATH}/Lib/site-packages")
set(Python_INCLUDE_DIRS "${THIRD_PARTY_DIR}/Python${PYTHONVERSION}/include")
else()
set(Python_SITELIB "${PYTHONPATH}/site-packages")
if (NOT DEFINED Python_INCLUDE_DIRS)
if (APPLE)
set(Python_INCLUDE_DIRS "${PYTHONDIR}/include/python${PYTHONVERSION}")
else()
set(Python_INCLUDE_DIRS "${THIRD_PARTY_INC_DIR}/python${PYTHONVERSION}")
endif()
endif()
endif()
set(Python_VERSION "${Python_VERSION}" PARENT_SCOPE)
set(Python_LIBRARIES "${Python_LIBRARIES}" PARENT_SCOPE)
set(Python_INCLUDE_DIRS "${Python_INCLUDE_DIRS}" PARENT_SCOPE)
set(Python_SITELIB "${Python_SITELIB}" PARENT_SCOPE)
set(Python_NumPy_VERSION "UNUSED IN BUNDLED PYTHON" PARENT_SCOPE)
set(Python_NumPy_INCLUDE_DIRS "${Python_NumPy_INCLUDE_DIRS}" PARENT_SCOPE)
endfunction()
function(DUMP_FOUND_PYTHON)
set(PATHS "")
list(APPEND PATHS
Python_LIBRARIES
Python_INCLUDE_DIRS
Python_SITELIB
Python_NumPy_INCLUDE_DIRS
)
message("Python Found ${ARGV0}")
message("\tPython_VERSION = '${Python_VERSION}'")
message("\tPython_NumPy_VERSION = '${Python_NumPy_VERSION}'")
foreach(V ${PATHS})
if (EXISTS "${${V}}")
set(VE "OK")
else()
set(VE "**NOT FOUND**")
endif()
message("\t${V} = '${${V}}' ${VE}")
endforeach()
endfunction()
# TODO
# - Replace PYTHONVERSION with Python_VERSION
if (BUILD_PYTHON)
find_package(Python COMPONENTS Interpreter Development NumPy)
# find_library (GETTEXT intl)
else()
find_bundled_python()
endif()
dump_found_python()
include_directories ("${Python_INCLUDE_DIRS}")
include_directories ("${Python_NumPy_INCLUDE_DIRS}")
# if (BUILD_GUI OR BUILD_PYTHON)
# find_package (OpenGL REQUIRED)
# include_directories (${OPENGL_INCLUDE_DIRS})
# endif ()
if (WIN32)
find_library(ASSIMP assimp-vc140-mt)
find_library(TIFF libtiff)
find_library(PROJ proj_6_1)
else ()
find_library(ASSIMP assimp)
find_library(TIFF tiff)
find_library(PROJ proj)
endif()
if (WIN32)
set (INSTALL_BIN_DIR .)
set (INSTALL_LIB_DIR .)
set (INSTALL_SHARE_DIR share)
set (INSTALL_INCLUDE_DIR include/vapor)
elseif (APPLE)
# if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
if (DIST_INSTALLER AND NOT BUILD_PYTHON)
set (CMAKE_INSTALL_PREFIX /Applications)
set (INSTALL_BIN_DIR ./vapor.app/Contents/MacOS)
set (INSTALL_SHARE_DIR ./vapor.app/Contents/share)
set (INSTALL_INCLUDE_DIR ./vapor.app/Contents/include/vapor)
set (INSTALL_LIB_DIR ./vapor.app/Contents/Frameworks)
else ()
set (INSTALL_BIN_DIR bin)
set (INSTALL_LIB_DIR lib)
set (INSTALL_SHARE_DIR share)
set (INSTALL_INCLUDE_DIR include/vapor)
endif ()
if (BUILD_PYTHON)
set (CMAKE_INSTALL_RPATH "@loader_path")
else()
set (CMAKE_INSTALL_RPATH "@executable_path/../Frameworks;@executable_path/../Resources/lib")
endif ()
if (DIST_INSTALLER AND USE_OMP)
message (WARNING "The build mode is set to distributable installer with OpenMP enabled and will not run from source")
set (INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
set (CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set (CMAKE_SKIP_BUILD_RPATH FALSE)
endif()
else ()
if (DIST_INSTALLER)
set (INSTALL_BIN_DIR lib)
else ()
set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
set (INSTALL_BIN_DIR bin)
endif ()
set (INSTALL_LIB_DIR lib)
set (INSTALL_INCLUDE_DIR include/vapor)
set (INSTALL_LAUNCHER_DIR bin)
set (INSTALL_SHARE_DIR share)
endif ()
add_subdirectory (lib)
add_subdirectory (apps)
add_subdirectory (include)
add_subdirectory (share)
add_subdirectory (scripts)
add_subdirectory (test_apps)
###############################################################################
# CPack Installation #
###############################################################################
set (CPACK_PACKAGE_NAME ${PROJECT_NAME})
set (CPACK_PACKAGE_VENDOR "NCAR")
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "VAPOR - DESCRIPTION")
set (CPACK_PACKAGE_VERSION ${VERSION_STRING})
set (CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
set (CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
set (CPACK_PACKAGE_VERSION_PATCH ${VERSION_RC})
set (CPACK_PACKAGE_INSTALL_DIRECTORY "VAPOR")
set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
set (CPACK_PACKAGE_EXECUTABLES vapor;vapor)
set (CPACK_BINARY_STGZ OFF)
set (CPACK_BINARY_TGZ OFF)
set (CPACK_BINARY_TZ OFF)
set (CPACK_BINARY_DRAGNDROP OFF)
if (WIN32)
set (PRE_INSTALL_LOCAL_PATH "buildutils/NSIS.preInstall.ini")
set (PRE_INSTALL_PATH "${CMAKE_CURRENT_BINARY_DIR}/${PRE_INSTALL_LOCAL_PATH}")
configure_file ("${PRE_INSTALL_LOCAL_PATH}.in" "${PRE_INSTALL_PATH}" @ONLY)
set (PRE_UNINSTALL_LOCAL_PATH "buildutils/NSIS.preUnInstall.ini")
set (PRE_UNINSTALL_PATH "${CMAKE_CURRENT_BINARY_DIR}/${PRE_UNINSTALL_LOCAL_PATH}")
configure_file ("${PRE_UNINSTALL_LOCAL_PATH}.in" "${PRE_UNINSTALL_PATH}" @ONLY)
if (GENERATE_FULL_INSTALLER)
set (LIB_DIR ${THIRD_PARTY_DIR}/lib)
file (GLOB WIN_INSTALL_DLLS ${LIB_DIR}/*.dll ${QTDIR}/bin/*.dll ${OSPRAYDIR}/bin/*.dll)
install (
FILES ${WIN_INSTALL_DLLS}
DESTINATION ${INSTALL_BIN_DIR}
COMPONENT Dependencies
)
install (
FILES ${PYTHONPATH}/python${PYTHONVERSION}.dll
DESTINATION ${INSTALL_BIN_DIR}
COMPONENT Dependencies
)
install (
DIRECTORY ${PYTHONPATH}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
install(FILES
${QTDIR}/plugins/platforms/qwindows.dll
DESTINATION platforms
)
install (
DIRECTORY ${THIRD_PARTY_DIR}/share/plugins
DESTINATION ${INSTALL_LIB_DIR}/share
COMPONENT Dependencies
)
endif (GENERATE_FULL_INSTALLER)
set (CPACK_NSIS_MODIFY_PATH OFF)
set (CPACK_NSIS_URL_INFO_ABOUT "https://www.vapor.ucar.edu")
set (CPACK_NSIS_EXECUTABLES_DIRECTORY ".") # Manually fixed in template file
set (CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/share/images/vapor-win-icon.ico")
set (CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set (CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "${PRE_INSTALL_PATH}")
set (CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "${PRE_UNINSTALL_PATH}")
string (REGEX REPLACE "/" "\\\\" CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "${CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS}")
string (REGEX REPLACE "/" "\\\\" CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS}")
set (CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ".")
include (InstallRequiredSystemLibraries)
set (CPACK_MODULE_PATH "${CMAKE_SOURCE_DIR}/buildutils")
endif (WIN32)
if (APPLE)
set (CPACK_BINARY_DRAGNDROP ON)
if (DIST_INSTALLER AND GENERATE_FULL_INSTALLER)
file (GLOB INSTALL_LIBS ${THIRD_PARTY_LIB_DIR}/*.dylib)
install (
FILES ${INSTALL_LIBS}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
set (FRAMEWORKS Core OpenGL Widgets Gui DBus Network PrintSupport)
foreach(item IN LISTS FRAMEWORKS)
list(APPEND FRAMEWORKS "${THIRD_PARTY_LIB_DIR}/Qt${item}.framework")
list(REMOVE_ITEM FRAMEWORKS ${item})
endforeach(item IN LISTS ${FRAMEWORKS})
install (
DIRECTORY ${FRAMEWORKS}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
if (BUILD_OSP)
file (GLOB INSTALL_OSP_LIBS ${OSPRAYDIR}/lib/*.dylib)
message (STATUS "OSPRAYDIR ${OSPRAYDIR}")
install (
FILES ${INSTALL_OSP_LIBS}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
endif ()
if (NOT BUILD_PYTHON)
file (GLOB INSTALL_GUI_FRAMEWORKS ${PYTHONPATH})
set (PYTHON_DESTINATION "${INSTALL_LIB_DIR}/../Resources/lib")
install (
DIRECTORY ${INSTALL_GUI_FRAMEWORKS}
DESTINATION ${PYTHON_DESTINATION}
COMPONENT Dependencies
PATTERN "bin" EXCLUDE
)
install (
FILES ${Python_LIBRARIES}
DESTINATION ${PYTHON_DESTINATION}
COMPONENT Dependencies
)
file (GLOB COCOA_LIBS ${THIRD_PARTY_DIR}/plugins/platforms/libqcocoa.dylib)
install (
FILES ${COCOA_LIBS}
DESTINATION ${INSTALL_BIN_DIR}/platforms
COMPONENT Dependencies
)
file (GLOB STYLE_LIBS ${THIRD_PARTY_DIR}/plugins/styles/libqmacstyle.dylib)
install (
FILES ${STYLE_LIBS}
DESTINATION ${INSTALL_BIN_DIR}/styles
COMPONENT Dependencies
)
endif ()
if (USE_OMP)
get_filename_component(OMP_PATH ${OpenMP_CXX_LIBRARIES} REALPATH)
install (
FILES ${OMP_PATH}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
endif ()
file (GLOB_RECURSE HDF5_PLUGINS "${THIRD_PARTY_DIR}/share/plugins/*.so")
message (STATUS "plugins ${HDF5_PLUGINS}")
install (
FILES ${HDF5_PLUGINS}
DESTINATION "${INSTALL_SHARE_DIR}/plugins"
COMPONENT Dependencies
)
file (GLOB HDF5_LIBS ${THIRD_PARTY_DIR}/HDF_Group/HDF5/1.12.2/lib/*.dylib)
install (
FILES ${HDF5_LIBS}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
endif ()
endif (APPLE)
if (UNIX AND NOT APPLE)
set (CPACK_BINARY_STGZ ON)
if (BUILD_VDC)
set (EXTRA_LIBS_SEARCH ${EXTRA_LIBS_SEARCH} GLU glut expat omp)
endif ()
if (BUILD_GUI)
set (EXTRA_LIBS_SEARCH ${EXTRA_LIBS_SEARCH} quadmath)
endif ()
if (DIST_INSTALLER)
set (PARSE_BINARY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/vapor")
if (BUILD_PYTHON)
set (PARSE_BINARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libvapi.so")
endif()
message( STATUS "${CMAKE_SOURCE_DIR}/buildutils/gen_linux_shared_libs.pl
${PARSE_BINARY} ${EXTRA_LIBS_SEARCH} >
${CMAKE_BINARY_DIR}/LinuxInstallLibs.txt")
add_custom_target (
linuxpreinstall
COMMAND ${CMAKE_SOURCE_DIR}/buildutils/gen_linux_shared_libs.pl
${PARSE_BINARY} ${EXTRA_LIBS_SEARCH} >
${CMAKE_BINARY_DIR}/LinuxInstallLibs.txt
COMMAND touch ${CMAKE_SOURCE_DIR}/CMakeLists.txt
)
endif ()
if (DIST_INSTALLER AND GENERATE_FULL_INSTALLER)
if (EXISTS ${CMAKE_BINARY_DIR}/LinuxInstallLibs.txt)
file (STRINGS ${CMAKE_BINARY_DIR}/LinuxInstallLibs.txt INSTALL_LIBS)
endif ()
install (
FILES ${INSTALL_LIBS}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
if (NOT BUILD_PYTHON)
install (
DIRECTORY ${THIRD_PARTY_LIB_DIR}/python${PYTHONVERSION}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
# Include libxcb-xinerama for Ubuntu 20/22 by reading /etc/issue
if (EXISTS /etc/issue)
file(READ "/etc/issue" ETC_ISSUE)
string(REGEX MATCH "Ubuntu" DIST ${ETC_ISSUE})
if(DIST STREQUAL "Ubuntu")
file (GLOB XCB_FILES ${THIRD_PARTY_LIB_DIR}/libxcb-xinerama.*)
install (
FILES ${XCB_FILES}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
endif(DIST STREQUAL "Ubuntu")
endif (EXISTS /etc/issue)
install (
FILES ${THIRD_PARTY_DIR}/plugins/platforms/libqxcb.so
DESTINATION plugins/platforms
COMPONENT Dependencies
)
install (
DIRECTORY ${THIRD_PARTY_DIR}/plugins/xcbglintegrations
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
file (GLOB XCB_FILES ${THIRD_PARTY_LIB_DIR}/libxcb-xinput.*)
install (
FILES ${XCB_FILES}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
file (GLOB XCBQPA_FILES ${THIRD_PARTY_LIB_DIR}/libQt5XcbQpa.*)
install (
FILES ${XCBQPA_FILES}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
if (BUILD_OSP)
file (GLOB INSTALL_OSPRAY_LIBS ${OSPRAYDIR}/lib/*.so*)
install (
FILES ${INSTALL_OSPRAY_LIBS}
DESTINATION ${INSTALL_LIB_DIR}
COMPONENT Dependencies
)
endif (BUILD_OSP)
file (GLOB HDF5_PLUGINS "${THIRD_PARTY_DIR}/HDF_Group/HDF5/1.12.2/lib/plugin/*.so")
install (
FILES ${HDF5_PLUGINS}
DESTINATION "${INSTALL_SHARE_DIR}/plugins"
COMPONENT Dependencies
)
endif (NOT BUILD_PYTHON)
endif (DIST_INSTALLER AND GENERATE_FULL_INSTALLER)
endif (UNIX AND NOT APPLE)
if (DIST_INSTALLER)
if (UNIX AND NOT APPLE)
if(DIST_APPIMAGE)
set (
APPIMAGE_COMMAND
bash
${CMAKE_SOURCE_DIR}/buildutils/genAppImage.sh
${VERSION_STRING}
${CMAKE_SOURCE_DIR}
)
else()
set (APPIMAGE_COMMAND echo Skipping AppImage generation)
endif()
add_custom_target (
installer
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
COMMAND cpack .
COMMAND ${APPIMAGE_COMMAND}
DEPENDS linuxpreinstall
)
else ()
add_custom_target (
installer
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
COMMAND cpack .
)
endif ()
endif ()
if (BUILD_PYTHON)
# message("GENERATORS = '${CPACK_GENERATOR}'")
set(CPACK_GENERATOR "External")
# message("GENERATORS = '${CPACK_GENERATOR}'")
# message("CPACK_TOPLEVEL_DIRECTORY = '${CPACK_TOPLEVEL_DIRECTORY}'")
# message("CPACK_TEMPORARY_DIRECTORY = '${CPACK_TEMPORARY_DIRECTORY}'")
# message("CPACK_PACKAGE_NAME = '${CPACK_PACKAGE_NAME}'")
# message("CPACK_PACKAGE_FILE_NAME = '${CPACK_PACKAGE_FILE_NAME}'")
# message("CPACK_PACKAGE_VERSION = '${CPACK_PACKAGE_VERSION}'")
# These only work for some things, dont work for others, and they break other things still
# set (CPACK_TOPLEVEL_DIRECTORY "${CMAKE_BINARY_DIR}/CPACK_TOPLEVEL_DIRECTORY")
# set (CPACK_TEMPORARY_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}/CPACK_TEMPORARY_DIRECTORY")
# message("CPACK_TOPLEVEL_DIRECTORY = '${CPACK_TOPLEVEL_DIRECTORY}'")
# message("CPACK_TEMPORARY_DIRECTORY = '${CPACK_TEMPORARY_DIRECTORY}'")
set (CPACK_BINARY_DRAGNDROP OFF)
# set (CPACK_BINARY_EXTERNAL ON)
set (CPACK_EXTERNAL_REQUESTED_VERSIONS "1.0")
set (CPACK_EXTERNAL_ENABLE_STAGING TRUE)
if (NOT CONDA_BUILD)
install (
DIRECTORY ${THIRD_PARTY_DIR}/include
DESTINATION .
COMPONENT Dependencies
)
endif()
endif ()
include (CPack)
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Project maintainers are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the project maintainers responsible for enforcement at
vapor@ucar.edu.
All complaints will be reviewed and investigated promptly and fairly.
All project maintainers are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Project maintainers will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from project maintainers, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
================================================
FILE: Contributing.md
================================================
# Contributing
To make a contribution to Vapor, see our [Contributor's Guide](https://ncar.github.io/VaporDocumentationWebsite/contributingToVapor.html).
================================================
FILE: LICENSE.txt
================================================
BSD 3-Clause License
Copyright (c) 2024, NSF National Center for Atmospheric Research
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: README.md
================================================
[](https://doi.org/10.5281/zenodo.13332956)
[](https://circleci.com/gh/NCAR/VAPOR)
## Vapor:
**VAPOR** is the **V**isualization and **A**nalysis **P**latform for **O**cean, Atmosphere, and Solar **R**esearchers. VAPOR provides an interactive 3D visualization environment that can also produce animations and still frame images. VAPOR runs on most UNIX and Windows systems equipped with modern 3D graphics cards.
The VAPOR Data Collection (**VDC**) data model allows users progressively access the fidelity of their data, allowing for the visualization of terascale data sets on commodity hardware. VAPOR can also directly import data formats including WRF, MOM, POP, ROMS, and some GRIB and NetCDF files.
Users can perform ad-hoc analysis with VAPOR's interactive Python interpreter; which allows for the creation, modification, and visualization of new variables based on input model data.
VAPOR is a product of the **NSF National Center for Atmospheric Research's Computational and Information Systems Lab**. Support for VAPOR is provided by the U.S. **National Science Foundation** (grants # 03-25934 and 09-06379, ACI-14-40412), and by the **Korea Institute of Science and Technology Information**
Project homepage and binary releases can be found at [https://www.vapor.ucar.edu/](https://www.vapor.ucar.edu/)
## Citation
If VAPOR benefits your research, please kindly cite [this publication](https://www.mdpi.com/2073-4433/10/9/488):
```
@Article{atmos10090488,
AUTHOR = {Li, Shaomeng and Jaroszynski, Stanislaw and Pearse, Scott and Orf, Leigh and Clyne, John},
TITLE = {VAPOR: A Visualization Package Tailored to Analyze Simulation Data in Earth System Science},
JOURNAL = {Atmosphere},
VOLUME = {10},
YEAR = {2019},
NUMBER = {9},
ARTICLE-NUMBER = {488},
URL = {https://www.mdpi.com/2073-4433/10/9/488},
ISSN = {2073-4433},
ABSTRACT = {Visualization is an essential tool for analysis of data and communication of findings in the sciences, and the Earth System Sciences (ESS) are no exception. However, within ESS, specialized visualization requirements and data models, particularly for those data arising from numerical models, often make general purpose visualization packages difficult, if not impossible, to use effectively. This paper presents VAPOR: a domain-specific visualization package that targets the specialized needs of ESS modelers, particularly those working in research settings where highly-interactive exploratory visualization is beneficial. We specifically describe VAPOR’s ability to handle ESS simulation data from a wide variety of numerical models, as well as a multi-resolution representation that enables interactive visualization on very large data while using only commodity computing resources. We also describe VAPOR’s visualization capabilities, paying particular attention to features for geo-referenced data and advanced rendering algorithms suitable for time-varying, 3D data. Finally, we illustrate VAPOR’s utility in the study of a numerically- simulated tornado. Our results demonstrate both ease-of-use and the rich capabilities of VAPOR in such a use case.},
DOI = {10.3390/atmos10090488}
}
```
## Project Members:
- Nihanth Cherukuru
- John Clyne
- Scott Pearse
- Samuel Li
- Stanislaw Jaroszynski
- Kenny Gruchalla
- Niklas Roeber
- Pamela Gillman

================================================
FILE: apps/CMakeLists.txt
================================================
if (BUILD_UTL)
add_subdirectory (vaporversion)
add_subdirectory (raw2wasp)
add_subdirectory (wasp2raw)
add_subdirectory (waspcreate)
add_subdirectory (ncdf2wasp)
add_subdirectory (wasp2ncdf)
endif()
if ((BUILD_VDC OR BUILD_GUI) AND BUILD_UTL)
add_subdirectory (vdcdump)
add_subdirectory (cf2vdc)
add_subdirectory (cfvdccreate)
add_subdirectory (raw2vdc)
add_subdirectory (vdc2raw)
add_subdirectory (vdccreate)
add_subdirectory (wrf2vdc)
add_subdirectory (wrfvdccreate)
add_subdirectory (vdccompare)
add_subdirectory (vapor_check_udunits)
endif()
if (BUILD_GUI)
add_subdirectory (vaporgui)
if (BUILD_UTL)
add_subdirectory (tiff2geotiff)
add_subdirectory (vaporpychecker)
endif()
endif()
if (BUILD_PYTHON)
add_subdirectory (pythonapi)
endif()
if (UNIX AND NOT APPLE AND DIST_INSTALLER)
add_subdirectory (linuxlauncher)
endif ()
================================================
FILE: apps/asciitf2vtf/asciitf2vtf.cpp
================================================
#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
#include <sstream>
#include <algorithm>
#include <string>
#include <iomanip>
#include <vapor/CFuncs.h>
#include <vapor/OptionParser.h>
#include <vapor/Metadata.h>
#include <vapor/MetadataSpherical.h>
#include <vapor/TransferFunctionLite.h>
#ifdef WIN32
#pragma warning(disable : 4996)
#endif
using namespace Wasp;
using namespace VAPoR;
//
// asciitf2vtf:
// This is one of the commandline applications for VAPOR.
//
// Modified in April, 2011.
// Added the ability for the program to use NCL colormaps as input.
// Kendall Southwick
//
struct opt_t {
char * omap;
char * cmap;
char * type;
OptionParser::Boolean_T help;
OptionParser::Boolean_T quiet;
} opt;
OptionParser::OptDescRec_T set_opts[] = {{"cmap", 1, "", "Path to ascii file containing color map"},
{"omap", 1, "", "Path to ascii file containing opacity map"},
{"type", 1, "vapor", "Type pf color maps being used, defaults to vapor"},
{"help", 0, "", "Print this message and exit"},
{"quiet", 0, "", "Operate quietly"},
{NULL}};
OptionParser::Option_T get_options[] = {{"cmap", Wasp::CvtToString, &opt.cmap, sizeof(opt.cmap)}, {"omap", Wasp::CvtToString, &opt.omap, sizeof(opt.omap)},
{"type", Wasp::CvtToString, &opt.type, sizeof(opt.type)}, {"help", Wasp::CvtToBoolean, &opt.help, sizeof(opt.help)},
{"quiet", Wasp::CvtToBoolean, &opt.quiet, sizeof(opt.quiet)}, {NULL}};
const char *ProgName;
void Usage(OptionParser &op, const char *msg)
{
if (msg) { cerr << ProgName << " : " << msg << endl; }
cerr << "Usage: " << ProgName << " [options] (-cmap cmap.txt | -omap omap.txt) file.tf3" << endl;
op.PrintOptionHelp(stderr);
}
void ErrMsgCBHandler(const char *msg, int) { cerr << ProgName << " : " << msg << endl; }
//
// This function will process the VAPOR color map files.
//
int ProcessVAPORCMAP(TransferFunctionLite *transFunct)
{
int RetVal = 0;
vector<float> pvec, hvec, svec, vvec;
float point, h, s, v;
ColorMap *cmap = transFunct->getColormap();
cmap->clear();
FILE *fp = fopen(opt.cmap, "r");
if (!fp) {
MyBase::SetErrMsg("fopen(%s) : %M", opt.cmap);
exit(1);
}
const char *format = "%f %f %f %f";
while ((RetVal = fscanf(fp, format, &point, &h, &s, &v)) == 4) {
pvec.push_back(point);
hvec.push_back(h);
svec.push_back(s);
vvec.push_back(v);
}
if (vvec.size() <= 0) {
MyBase::SetErrMsg("Error parsing file %s , no data.", opt.cmap);
exit(1);
}
vector<float> tmpvec = pvec;
sort(tmpvec.begin(), tmpvec.end());
// Apparently we need to set the min and max values in both
// the transfer function and colormap class. Setting the
// cmap bounds is needed so that addControlPointAt() will
// correctly normalize the data value.
transFunct->setMinColorMapValue(tmpvec[0]);
transFunct->setMaxColorMapValue(tmpvec[tmpvec.size() - 1]);
cmap->minValue(tmpvec[0]);
cmap->maxValue(tmpvec[tmpvec.size() - 1]);
ColorMap::Color color;
for (int i = 0; i < pvec.size(); i++) {
color.hue(hvec[i]);
color.sat(svec[i]);
color.val(vvec[i]);
// cmap->addNormControlPoint(pvec[i], color);
cmap->addControlPointAt(pvec[i], color);
}
//
// Ugh. now we need to normalize the data bounds.
//
cmap->minValue(0.0);
cmap->maxValue(1.0);
if (ferror(fp)) {
MyBase::SetErrMsg("Error parsing file %s", opt.cmap);
exit(1);
}
fclose(fp);
return (RetVal);
} // End of ProcessVAPORCMAP.
//
// This function will process the NCL color map files.
//
int ProcessNCLCMAP(TransferFunctionLite *transFunct)
{
int RetVal = 0;
int numColors = 0;
int fileSize;
int rc;
int last_i = 0;
float THRESHOLD = 0.10;
float SLOPE_THRESHOLD = 0.010;
float last_hsv[] = {0.0, 0.0, 0.0};
float rgb[] = {0.0, 0.0, 0.0};
float hsv[] = {0.0, 0.0, 0.0};
float comp_vals[] = {0.0, 0.0, 0.0};
vector<float> pvec, hvec, svec, vvec;
char * readLine;
bool header_flag = false;
bool h_slope_flag, slope_flag, interval_flag, delta_flag;
ColorMap *cmap = transFunct->getColormap();
cmap->clear();
ifstream nclFile(opt.cmap, ios::in);
if (!nclFile) {
MyBase::SetErrMsg("Unable to open file %s: %M", opt.cmap);
exit(1);
}
//
// Start parsing the file.
// There needs to be a line must be of the form
// "ncolors=##" where ## is a number.
// The header ends with a lines of the form
// # r b g
// There may a different number of spaces between the
// # and the r.
//
nclFile.seekg(0, ios::end);
fileSize = nclFile.tellg();
nclFile.seekg(0, ios::beg);
readLine = (char *)malloc(fileSize * sizeof(char));
char *indexChar;
while (!header_flag && !nclFile.eof()) {
nclFile.getline(readLine, fileSize);
indexChar = NULL;
if (readLine[0] == '#') {
indexChar = strstr(readLine, "r g b");
if (indexChar != NULL) { header_flag = true; } // end of headers.
} // comment line.
else {
indexChar = strstr(readLine, "ncolors=");
if (indexChar != NULL) { rc = sscanf(indexChar + 8, "%d", &numColors); } // have ncolors.
} // non comment line.
} // End of while.
if (nclFile.eof() || numColors == 0 || !header_flag) {
MyBase::SetErrMsg("Formating error in file %s", opt.cmap);
exit(1);
}
//
// Since it is hard to have more the ten color control points
// in VAPOR, we need to trim the input down.
//
for (int i = 0; ((i < numColors) && !nclFile.eof()); i++) {
nclFile.getline(readLine, fileSize);
if (strlen(readLine) > 0) {
rc = sscanf(readLine, "%f %f %f", &rgb[0], &rgb[1], &rgb[2]);
if (rc != 3) {
MyBase::SetErrMsg("Formating error in file %s", opt.cmap);
exit(1);
}
h_slope_flag = slope_flag = interval_flag = delta_flag = false;
rgb[0] = rgb[0] / 255.0;
rgb[1] = rgb[1] / 255.0;
rgb[2] = rgb[2] / 255.0;
transFunct->rgbToHsv(rgb, hsv);
if (i == 0) {
comp_vals[0] = hsv[0];
comp_vals[1] = hsv[1];
comp_vals[2] = hsv[2];
last_hsv[0] = hsv[0];
last_hsv[1] = hsv[1];
last_hsv[2] = hsv[2];
last_i = -1;
}
if ((abs(hsv[0] - comp_vals[0]) >= THRESHOLD) || (abs(hsv[1] - comp_vals[1]) >= THRESHOLD) || (abs(hsv[2] - comp_vals[2]) >= THRESHOLD)) { delta_flag = true; }
if ((abs((comp_vals[2] - hsv[2]) / (i - last_i) - (last_hsv[2] - hsv[2])) >= SLOPE_THRESHOLD)
|| (abs((comp_vals[1] - hsv[1]) / (i - last_i) - (last_hsv[1] - hsv[1])) >= SLOPE_THRESHOLD)) {
slope_flag = true;
}
if ((i - last_i) > (0.07 * numColors)) { interval_flag = true; }
if (slope_flag || interval_flag || (i == 0)) {
comp_vals[0] = hsv[0];
comp_vals[1] = hsv[1];
comp_vals[2] = hsv[2];
last_i = i;
pvec.push_back(((float)(i)) / ((float)(numColors)));
hvec.push_back(hsv[0]);
svec.push_back(hsv[1]);
vvec.push_back(hsv[2]);
}
last_hsv[0] = hsv[0];
last_hsv[1] = hsv[1];
last_hsv[2] = hsv[2];
} // End if strlen.
} // End for.
if (vvec.size() <= 0) {
MyBase::SetErrMsg("Error parsing file %s , no data.", opt.cmap);
exit(1);
}
vector<float> tmpvec = pvec;
sort(tmpvec.begin(), tmpvec.end());
// Apparently we need to set the min and max values in both
// the transfer function and colormap class. Setting the
// cmap bounds is needed so that addControlPointAt() will
// correctly normalize the data value.
transFunct->setMinColorMapValue(tmpvec[0]);
transFunct->setMaxColorMapValue(tmpvec[tmpvec.size() - 1]);
cmap->minValue(tmpvec[0]);
cmap->maxValue(tmpvec[tmpvec.size() - 1]);
ColorMap::Color color;
for (int i = 0; i < pvec.size(); i++) {
color.hue(hvec[i]);
color.sat(svec[i]);
color.val(vvec[i]);
// cmap->addNormControlPoint(pvec[i], color);
cmap->addControlPointAt(pvec[i], color);
}
//
// Ugh. now we need to normalize the data bounds.
//
cmap->minValue(0.0);
cmap->maxValue(1.0);
nclFile.close();
return (RetVal);
} // End of ProcessNCLCMAP.
//
// This functions directs how the color maps is t be processed based on the
// type of color maps, form the -type option.
//
int ProcessCMAP(TransferFunctionLite *transFunct, char *cmapType)
{
int RetVal;
if (strcmp(cmapType, "vapor") == 0) {
RetVal = ProcessVAPORCMAP(transFunct);
} else if (strcmp(cmapType, "VAPOR") == 0) {
RetVal = ProcessVAPORCMAP(transFunct);
} else if (strcmp(cmapType, "ncl") == 0) {
RetVal = ProcessNCLCMAP(transFunct);
} else if (strcmp(cmapType, "NCL") == 0) {
RetVal = ProcessNCLCMAP(transFunct);
} else {
RetVal = 1;
MyBase::SetErrMsg("Invalid color map type.");
}
return (RetVal);
} // End of ProcessCMAP.
int main(int argc, char **argv)
{
OptionParser op;
ProgName = Basename(argv[0]);
if (op.AppendOptions(set_opts) < 0) {
cerr << ProgName << " : " << op.GetErrMsg();
exit(1);
}
if (op.ParseOptions(&argc, argv, get_options) < 0) {
cerr << ProgName << " : " << OptionParser::GetErrMsg();
exit(1);
}
MyBase::SetErrMsgCB(ErrMsgCBHandler);
if (opt.help) {
Usage(op, NULL);
exit(0);
}
if (argc != 2) {
Usage(op, "Wrong number of arguments");
exit(1);
}
if ((strlen(opt.cmap) == 0) && (strlen(opt.omap) == 0)) {
Usage(op, "Wrong number of arguments");
exit(1);
}
TransferFunctionLite tf(8);
if (MyBase::GetErrCode() != 0) exit(1);
tf.setMinColorMapValue(0.0);
tf.setMaxColorMapValue(1.0);
tf.setMinOpacMapValue(0.0);
tf.setMaxOpacMapValue(1.0);
string vtffile(argv[1]);
int rc;
if (strlen(opt.cmap) != 0) { ProcessCMAP(&tf, opt.type); }
if (strlen(opt.omap) != 0) {
float point, o;
vector<float> pvec, ovec;
OpacityMap *omap = tf.getOpacityMap(0);
omap->clear();
FILE *fp = fopen(opt.omap, "r");
if (!fp) {
MyBase::SetErrMsg("fopen(%s) : %M", opt.omap);
exit(1);
}
const char *format = "%f %f";
while ((rc = fscanf(fp, format, &point, &o)) == 2) {
pvec.push_back(point);
ovec.push_back(o);
}
vector<float> tmpvec = pvec;
sort(tmpvec.begin(), tmpvec.end());
tf.setMinOpacMapValue(tmpvec[0]);
tf.setMaxOpacMapValue(tmpvec[tmpvec.size() - 1]);
omap->minValue(tmpvec[0]);
omap->maxValue(tmpvec[tmpvec.size() - 1]);
for (int i = 0; i < pvec.size(); i++) {
// omap->addNormControlPoint(pvec[i], ovec[i]);
omap->addControlPoint(pvec[i], ovec[i]);
}
omap->minValue(0.0);
omap->maxValue(1.0);
if (ferror(fp)) {
MyBase::SetErrMsg("Error parsing file %s", opt.omap);
exit(1);
}
fclose(fp);
} // End of if omap.
//
// Write output file.
//
ofstream fileout;
fileout.open(vtffile.c_str());
if (!fileout) {
MyBase::SetErrMsg("Can't open file \"%s\" for writing", vtffile.c_str());
exit(1);
}
if (!(tf.saveToFile(fileout))) exit(1);
exit(0);
} // End of Main.
================================================
FILE: apps/cf2vdc/CMakeLists.txt
================================================
add_executable (cf2vdc cf2vdc.cpp)
target_link_libraries (cf2vdc common vdc)
OpenMPInstall (
TARGETS cf2vdc
DESTINATION ${INSTALL_BIN_DIR}
COMPONENT Utilites
)
================================================
FILE: apps/cf2vdc/cf2vdc.cpp
================================================
#include <iostream>
#include <fstream>
#include <string.h>
#include <vector>
#include <sstream>
#include <vapor/OptionParser.h>
#include <vapor/CFuncs.h>
#include <vapor/VDCNetCDF.h>
#include <vapor/DCCF.h>
#include <vapor/FileUtils.h>
#include <vapor/SetHDF5PluginPath.h>
using namespace Wasp;
using namespace VAPoR;
struct opt_t {
int nthreads;
int numts;
std::vector<string> vars;
std::vector<string> xvars;
OptionParser::Boolean_T help;
} opt;
OptionParser::OptDescRec_T set_opts[] = {{"nthreads", 1, "0",
"Specify number of execution threads "
"0 => use number of cores"},
{"numts", 1, "-1", "Number of timesteps to be included in the VDC. Default (-1) includes all timesteps."},
{"vars", 1, "",
"Colon delimited list of variable names "
"to be copied to the VDC"},
{"xvars", 1, "",
"Colon delimited list of variable names "
"to exclude from copying the VDC"},
{"help", 0, "", "Print this message and exit"},
{NULL}};
OptionParser::Option_T get_options[] = {{"nthreads", Wasp::CvtToInt, &opt.nthreads, sizeof(opt.nthreads)}, {"numts", Wasp::CvtToInt, &opt.numts, sizeof(opt.numts)},
{"vars", Wasp::CvtToStrVec, &opt.vars, sizeof(opt.vars)}, {"xvars", Wasp::CvtToStrVec, &opt.xvars, sizeof(opt.xvars)},
{"help", Wasp::CvtToBoolean, &opt.help, sizeof(opt.help)}, {NULL}};
string ProgName;
SmartBuf dataBuffer;
SmartBuf maskBuffer;
// Product of elements in a vector
//
size_t vproduct(vector<size_t> a)
{
size_t ntotal = 1;
for (int i = 0; i < a.size(); i++) ntotal *= a[i];
return (ntotal);
}
size_t gcd(size_t n1, size_t n2)
{
size_t tmp;
while (n2 != 0) {
tmp = n1;
n1 = n2;
n2 = tmp % n2;
}
return n1;
}
size_t lcm(size_t n1, size_t n2) { return ((n1 * n2) / gcd(n1, n2)); }
int copyVarHelper(DC &dc, VDCNetCDF &vdc, int fdr, int fdw, vector<size_t> &buffer_dims, vector<size_t> &src_hslice_dims, vector<size_t> &dst_hslice_dims, size_t src_nslice, size_t dst_nslice,
double mv, float *buffer)
{
VAssert(buffer_dims.size() == src_hslice_dims.size());
VAssert(buffer_dims.size() == dst_hslice_dims.size());
size_t dim = buffer_dims.size() - 1;
size_t src_slice_count = 0;
size_t dst_slice_count = 0;
while (src_slice_count < src_nslice) {
float *bufptr = buffer;
int n = buffer_dims[dim] / src_hslice_dims[dim];
int rCount;
for (rCount = 0; rCount < n && src_slice_count < src_nslice; rCount++) {
int rc = dc.ReadSlice(fdr, bufptr);
if (rc < 0) return (-1);
bufptr += vproduct(src_hslice_dims);
src_slice_count++;
}
// In place replacmenet of missing value with 1-byte flag
//
size_t sz = rCount * vproduct(src_hslice_dims);
unsigned char *cptr = (unsigned char *)buffer;
for (int j = 0; j < sz; j++) {
if (buffer[j] == mv) {
cptr[j] = 0; // invalid data
} else {
cptr[j] = 1; // valid data
}
}
cptr = (unsigned char *)buffer;
n = buffer_dims[dim] / dst_hslice_dims[dim];
for (int i = 0; i < n && dst_slice_count < dst_nslice; i++) {
int rc = vdc.WriteSlice(fdw, cptr);
if (rc < 0) return (-1);
cptr += vproduct(dst_hslice_dims);
dst_slice_count++;
}
}
return (0);
}
int CopyVar2d3dMask(DC &dc, VDCNetCDF &vdc, size_t ts, string varname, int lod)
{
// Only data variables can have masks
//
if (!vdc.IsDataVar(varname)) return (0);
DC::DataVar varInfo;
bool status = vdc.GetDataVarInfo(varname, varInfo);
if (!status) {
MyBase::SetErrMsg("Invalid destination variable name : %s", varname.c_str());
return (-1);
}
string maskvar = varInfo.GetMaskvar();
// Do nothing if mask variable already exists on disk
//
if (maskvar.empty() || vdc.VariableExists(ts, maskvar, 0, lod)) return (0);
status = dc.GetDataVarInfo(varname, varInfo);
if (!status) {
MyBase::SetErrMsg("Invalid source variable name : %s", varname.c_str());
return (-1);
}
double mv = varInfo.GetMissingValue();
// Get the dimensions of a hyper slice for the source and destination
// varible
//
vector<size_t> src_hslice_dims;
size_t src_nslice;
int rc = dc.GetHyperSliceInfo(varname, -1, src_hslice_dims, src_nslice);
if (rc < 0) return (rc);
if (src_hslice_dims.size() < 2) return (0);
vector<size_t> dst_hslice_dims;
size_t dst_nslice;
rc = vdc.GetHyperSliceInfo(varname, -1, dst_hslice_dims, dst_nslice);
if (rc < 0) return (rc);
if (src_hslice_dims.size() != dst_hslice_dims.size()) {
MyBase::SetErrMsg("Incompatible source and destination variable definitions");
return (-1);
}
// n-1 fastest varying dimensions must be the same for both hyper-slices.
// Slowest dimension may be different.
//
int dim = src_hslice_dims.size() - 1;
size_t src_dimlen = src_hslice_dims[dim];
size_t dst_dimlen = dst_hslice_dims[dim];
for (int i = 0; i < src_hslice_dims.size() - 1; i++) {
if (src_hslice_dims[i] != dst_hslice_dims[i]) {
MyBase::SetErrMsg("Incompatible source and destination variable definitions");
return (-1);
}
}
// Find the slice dimension for slowest varying dimension, the Least
// Common Multiple for the source and destination
//
size_t slice_dim = lcm(src_dimlen, dst_dimlen);
// Common (fastest-varying) dimensions for both variables, plus
// the lcm of the slowest varying dimension for the source
// and destination.
//
vector<size_t> buffer_dims = src_hslice_dims;
buffer_dims.pop_back(); // Remove slowest varying dimension
buffer_dims.push_back(slice_dim);
int fdr = dc.OpenVariableRead(ts, varname, -1);
if (fdr < 0) return (fdr);
int fdw = vdc.OpenVariableWrite(ts, maskvar, lod);
if (fdw < 0) {
dc.CloseVariable(fdr);
return (fdw);
}
size_t bufsize = vproduct(buffer_dims);
float *buffer = (float *)dataBuffer.Alloc(bufsize * sizeof(*buffer));
rc = copyVarHelper(dc, vdc, fdr, fdw, buffer_dims, src_hslice_dims, dst_hslice_dims, src_nslice, dst_nslice, mv, buffer);
dc.CloseVariable(fdr);
vdc.CloseVariable(fdw);
return (rc);
}
// Return a new vector containing elements of v1 with any elements from
// v2 removed
//
vector<string> remove_vector(vector<string> v1, vector<string> v2)
{
vector<string> newvec;
for (auto it = v1.begin(); it != v1.end(); ++it) {
if (find(v2.begin(), v2.end(), *it) == v2.end()) { newvec.push_back(*it); }
}
return (newvec);
}
int main(int argc, char **argv)
{
VAPoR::SetHDF5PluginPath();
OptionParser op;
MyBase::SetErrMsgFilePtr(stderr);
//
// Parse command line arguments
//
ProgName = FileUtils::LegacyBasename(argv[0]);
if (op.AppendOptions(set_opts) < 0) { return (1); }
if (op.ParseOptions(&argc, argv, get_options) < 0) { return (1); }
if (argc < 3) {
cerr << "Usage: " << ProgName << " cffiles... master.vdc" << endl;
op.PrintOptionHelp(stderr, 80, false);
return (1);
}
if (opt.help) {
cerr << "Usage: " << ProgName << " master.vdc" << endl;
op.PrintOptionHelp(stderr, 80, false);
return (0);
}
argc--;
argv++;
vector<string> cffiles;
for (int i = 0; i < argc - 1; i++) cffiles.push_back(argv[i]);
string master = argv[argc - 1];
VDCNetCDF vdc(opt.nthreads);
size_t chunksize = 1024 * 1024 * 4;
vector<size_t> bs;
int rc = vdc.Initialize(master, vector<string>(), VDC::A, bs, chunksize);
if (rc < 0) return (1);
DCCF dccf;
rc = dccf.Initialize(cffiles, vector<string>());
if (rc < 0) { return (1); }
//
// Copy coordinate variables first, checking to ensure that the
// coordinate variable isn't also a data variable (a variable can
// be both data and coordinate). If a coord variable is also
// a data variable, skip it and handle below
//
vector<string> varnames = dccf.GetCoordVarNames();
vector<string> dvarnames = dccf.GetDataVarNames();
for (int i = 0; i < varnames.size(); i++) {
// Skip coordinate varibles that are also data variables
//
if (find(dvarnames.begin(), dvarnames.end(), varnames[i]) != dvarnames.end()) continue;
int nts = dccf.GetNumTimeSteps(varnames[i]);
nts = opt.numts != -1 && nts > opt.numts ? opt.numts : nts;
VAssert(nts >= 0);
cout << "Copying variable " << varnames[i] << endl;
for (int ts = 0; ts < nts; ts++) {
cout << " Time step " << ts << endl;
int rc = vdc.CopyVar(dccf, ts, varnames[i], -1, -1);
if (rc < 0) {
MyBase::SetErrMsg("Failed to copy variable %s", varnames[i].c_str());
return (1);
}
}
}
if (opt.vars.size()) {
varnames = opt.vars;
} else {
varnames = dccf.GetDataVarNames();
}
varnames = remove_vector(varnames, opt.xvars);
// Now copy data variables
//
int estatus = 0;
for (int i = 0; i < varnames.size(); i++) {
int nts = dccf.GetNumTimeSteps(varnames[i]);
nts = opt.numts != -1 && nts > opt.numts ? opt.numts : nts;
VAssert(nts >= 0);
cout << "Copying variable " << varnames[i] << endl;
for (int ts = 0; ts < nts; ts++) {
cout << " Time step " << ts << endl;
int rc = CopyVar2d3dMask(dccf, vdc, ts, varnames[i], -1);
if (rc < 0) {
MyBase::SetErrMsg("Failed to copy variable %s", varnames[i].c_str());
continue;
estatus = 1;
}
rc = vdc.CopyVar(dccf, ts, varnames[i], -1, -1);
if (rc < 0) {
MyBase::SetErrMsg("Failed to copy variable %s", varnames[i].c_str());
estatus = 1;
}
}
}
return (estatus);
}
================================================
FILE: apps/cfvdccreate/CMakeLists.txt
================================================
add_executable (cfvdccreate cfvdccreate.cpp)
target_link_libraries (cfvdccreate common vdc)
OpenMPInstall (
TARGETS cfvdccreate
DESTINATION ${INSTALL_BIN_DIR}
COMPONENT Utilites
)
================================================
FILE: apps/cfvdccreate/cfvdccreate.cpp
================================================
#include <iostream>
#include <fstream>
#include <string.h>
#include <vector>
#include <sstream>
#include <vapor/OptionParser.h>
#include <vapor/CFuncs.h>
#include <vapor/VDCNetCDF.h>
#include <vapor/DCCF.h>
#include <vapor/FileUtils.h>
#include <vapor/SetHDF5PluginPath.h>
using namespace Wasp;
using namespace VAPoR;
struct opt_t {
OptionParser::Dimension3D_T dim;
std::vector<size_t> bs;
std::vector<size_t> cratios;
string wname;
int nthreads;
std::vector<string> vars;
OptionParser::Boolean_T force;
OptionParser::Boolean_T help;
} opt;
OptionParser::OptDescRec_T set_opts[] = {{"dimension", 1, "512x512x512",
"Data volume dimensions expressed in "
"grid points (NXxNYxNZ)"},
{"bs", 1, "64:64:64", "Internal storage blocking factor expressed in grid points (NX:NY:NZ)"},
{"cratios", 1, "1:10:100:500",
"Colon delimited list compression ratios. "
"for 3D variables. The default is 1:10:100:500. The maximum "
"compression ratio is wavelet and block size dependent."},
{"wname", 1, "bior4.4",
"Wavelet family used for compression "
"Valid values are bior1.1, bior1.3, "
"bior1.5, bior2.2, bior2.4 ,bior2.6, bior2.8, bior3.1, bior3.3, "
"bior3.5, bior3.7, bior3.9, bior4.4"},
{"nthreads", 1, "0",
"Specify number of execution threads "
"0 => use number of cores"},
{"vars", 1, "",
"Colon delimited list of 3D variable names (compressed) "
"to be included in "
"the VDC"},
{"force", 0, "",
"Create a new VDC master file even if a VDC data "
"directory already exists. Results may be undefined if settings between "
"the new master file and old data directory do not match."},
{"help", 0, "", "Print this message and exit"},
{NULL}};
OptionParser::Option_T get_options[] = {{"dimension", Wasp::CvtToDimension3D, &opt.dim, sizeof(opt.dim)},
{"bs", Wasp::CvtToSize_tVec, &opt.bs, sizeof(opt.bs)},
{"cratios", Wasp::CvtToSize_tVec, &opt.cratios, sizeof(opt.cratios)},
{"wname", Wasp::CvtToCPPStr, &opt.wname, sizeof(opt.wname)},
{"nthreads", Wasp::CvtToInt, &opt.nthreads, sizeof(opt.nthreads)},
{"vars", Wasp::CvtToStrVec, &opt.vars, sizeof(opt.vars)},
{"force", Wasp::CvtToBoolean, &opt.force, sizeof(opt.force)},
{"help", Wasp::CvtToBoolean, &opt.help, sizeof(opt.help)},
{NULL}};
string ProgName;
// Construct a mask variable name
//
void maskvar(vector<string> dimnames, string &name)
{
VAssert(dimnames.size() >= 1);
name.clear();
name = "mask";
for (int i = 0; i < dimnames.size(); i++) { name += "_" + dimnames[i]; }
}
void DefineMaskVars(const DCCF &dccf, VDCNetCDF &vdc)
{
// Find all coordinate combinations for data with missing values
//
vector<pair<string, vector<string>>> dimpairs;
for (int d = 1; d < 4; d++) {
vector<string> datanames = dccf.DC::GetDataVarNames(d);
for (int i = 0; i < datanames.size(); i++) {
DC::DataVar dvar;
dccf.GetDataVarInfo(datanames[i], dvar);
// skip if no missing value defined for this variable
//
if (!dvar.GetHasMissing()) continue;
// Assume missing values locations don't vary over time!
//
vector<string> dimnames;
bool ok = dccf.GetVarDimNames(datanames[i], true, dimnames);
VAssert(ok);
string maskvar_name;
maskvar(dimnames, maskvar_name);
pair<string, vector<string>> p1 = make_pair(maskvar_name, dimnames);
dimpairs.push_back(p1);
}
}
sort(dimpairs.begin(), dimpairs.end());
vector<pair<string, vector<string>>>::iterator last;
last = unique(dimpairs.begin(), dimpairs.end());
dimpairs.erase(last, dimpairs.end());
for (int i = 0; i < dimpairs.size(); i++) {
string maskvar = dimpairs[i].first;
vector<string> dimnames = dimpairs[i].second;
//
// 1D coordinates are not blocked
//
string mywname;
bool compress;
if (dimnames.size() < 2) {
mywname.clear();
compress = false;
} else {
mywname = "intbior2.2";
compress = true;
}
// Try to compute "reasonable" 1D & 2D compression ratios from 3D
// compression ratios
//
vector<size_t> cratios(1, 1);
int rc = vdc.SetCompressionBlock(mywname, cratios);
if (rc < 0) exit(1);
rc = vdc.DefineDataVar(maskvar, dimnames, vector<string>(), "", DC::INT8, compress);
if (rc < 0) { exit(1); }
}
}
void defineMapProjection(const DCCF &dc, VDCNetCDF &vdc) { vdc.SetMapProjection(dc.GetMapProjection()); }
int main(int argc, char **argv)
{
VAPoR::SetHDF5PluginPath();
OptionParser op;
MyBase::SetErrMsgFilePtr(stderr);
//
// Parse command line arguments
//
ProgName = FileUtils::LegacyBasename(argv[0]);
if (op.AppendOptions(set_opts) < 0) { return (1); }
if (op.ParseOptions(&argc, argv, get_options) < 0) { return (1); }
if (argc < 3) {
cerr << "Usage: " << ProgName << " cf_files... master.vdc" << endl;
op.PrintOptionHelp(stderr, 80, false);
return (1);
}
if (opt.help) {
cerr << "Usage: " << ProgName << " cf_files... master.vdc" << endl;
op.PrintOptionHelp(stderr, 80, false);
return (0);
}
argc--;
argv++;
vector<string> cffiles;
for (int i = 0; i < argc - 1; i++) cffiles.push_back(argv[i]);
string master = argv[argc - 1];
if (FileUtils::Extension(master) != "vdc") { fprintf(stderr, "Warning: VDC files should the extension .vdc\n"); }
VDCNetCDF vdc(opt.nthreads);
if (vdc.DataDirExists(master) && !opt.force) {
MyBase::SetErrMsg("Data directory exists and -force option not used. "
"Remove directory %s or use -force",
vdc.GetDataDir(master).c_str());
return (1);
}
if (FileUtils::Exists(master) && !opt.force) {
MyBase::SetErrMsg("\"%s\" already exists and -force option not used.", master.c_str());
exit(1);
}
size_t chunksize = 1024 * 1024 * 4;
int rc = vdc.Initialize(master, vector<string>(), VDC::W, opt.bs, chunksize);
if (rc < 0) return (1);
DCCF dccf;
rc = dccf.Initialize(cffiles, vector<string>());
if (rc < 0) { return (1); }
vector<string> dimnames = dccf.GetDimensionNames();
for (int i = 0; i < dimnames.size(); i++) {
DC::Dimension dim;
dccf.GetDimension(dimnames[i], dim, -1);
rc = vdc.DefineDimension(dim.GetName(), dim.GetLength());
if (rc < 0) { return (1); }
}
//
// Define coordinate variables
//
vector<size_t> cratios(1, 1);
vector<string> coordnames = dccf.GetCoordVarNames();
for (int i = 0; i < coordnames.size(); i++) {
DC::CoordVar cvar;
dccf.GetCoordVarInfo(coordnames[i], cvar);
vector<string> sdimnames;
string time_dimname;
bool ok = dccf.GetVarDimNames(coordnames[i], sdimnames, time_dimname);
VAssert(ok);
rc = vdc.SetCompressionBlock(opt.wname, cratios);
if (rc < 0) return (1);
if (cvar.GetUniform()) {
rc = vdc.DefineCoordVarUniform(cvar.GetName(), sdimnames, time_dimname, cvar.GetUnits(), cvar.GetAxis(), cvar.GetXType(), false);
} else {
rc = vdc.DefineCoordVar(cvar.GetName(), sdimnames, time_dimname, cvar.GetUnits(), cvar.GetAxis(), cvar.GetXType(), false);
}
if (rc < 0) { return (1); }
rc = vdc.CopyAtt(dccf, cvar.GetName());
if (rc < 0) { return (1); }
}
DefineMaskVars(dccf, vdc);
defineMapProjection(dccf, vdc);
//
// Define data variables
//
for (int d = 0; d < 4; d++) {
vector<string> datanames = dccf.DC::GetDataVarNames(d);
//
// 1D coordinates are not blocked
//
string mywname;
bool compress;
if (d < 2) {
mywname.clear();
compress = false;
} else {
mywname = opt.wname;
compress = true;
}
// Try to compute "reasonable" 1D & 2D compression ratios from 3D
// compression ratios
//
vector<size_t> cratios = opt.cratios;
for (int i = 0; i < cratios.size(); i++) {
size_t c = (size_t)pow((double)cratios[i], (double)((float)d / 3.0));
cratios[i] = c;
}
rc = vdc.SetCompressionBlock(mywname, cratios);
if (rc < 0) return (1);
for (int i = 0; i < datanames.size(); i++) {
DC::DataVar dvar;
dccf.GetDataVarInfo(datanames[i], dvar);
vector<string> dimnames;
bool ok = dccf.GetVarDimNames(datanames[i], false, dimnames);
VAssert(ok);
vector<string> coordvars;
ok = dccf.GetVarCoordVars(datanames[i], false, coordvars);
VAssert(ok);
// Don't compress the variable if it is also a coordinate variable
// Compression errors in coordinate variables can lead to
// non-conformant meshes
//
bool doCompress = compress;
if (find(coordnames.begin(), coordnames.end(), datanames[i]) != coordnames.end()) { doCompress = false; }
if (dvar.GetHasMissing() && doCompress) {
vector<string> sdimnames;
bool ok = dccf.GetVarDimNames(datanames[i], true, sdimnames);
VAssert(ok);
string maskvar_name;
maskvar(sdimnames, maskvar_name);
rc = vdc.DefineDataVar(dvar.GetName(), dimnames, coordvars, dvar.GetUnits(), dvar.GetXType(), dvar.GetMissingValue(), maskvar_name);
} else if (dvar.GetHasMissing() && !doCompress) {
rc = vdc.DefineDataVar(dvar.GetName(), dimnames, coordvars, dvar.GetUnits(), dvar.GetXType(), dvar.GetMissingValue(), "");
} else {
rc = vdc.DefineDataVar(dvar.GetName(), dimnames, coordvars, dvar.GetUnits(), dvar.GetXType(), doCompress);
}
if (rc < 0) { return (1); }
rc = vdc.CopyAtt(dccf, dvar.GetName());
if (rc < 0) { return (1); }
}
}
rc = vdc.EndDefine();
if (rc < 0) {
MyBase::SetErrMsg("Failed to write VDC master file : %s", master.c_str());
return (1);
}
return (0);
}
================================================
FILE: apps/linuxlauncher/CMakeLists.txt
================================================
set (TARGETS
cf2vdc
ncdf2wasp
tiff2geotiff
vaporversion
vdccreate
wasp2raw
wrfvdccreate
cfvdccreate
raw2vdc
vapor
vdcdump
waspcreate
raw2wasp
vdc2raw
wasp2ncdf
wrf2vdc
vdccompare
vaporpychecker
vapor_check_udunits
)
append (LAUNCHER_TARGETS _launcher ${TARGETS})
set_property (GLOBAL PROPERTY LAUNCHER_TARGETS ${LAUNCHER_TARGETS})
foreach (target ${TARGETS})
set (TARGET_NAME ${target})
configure_file (launcher.c ${target}_launcher.c)
add_executable (
${target}_launcher
${target}_launcher.c
)
set_target_properties(
${target}_launcher PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/launchers
OUTPUT_NAME ${target}
)
install (
TARGETS ${target}_launcher
DESTINATION ${INSTALL_LAUNCHER_DIR}
COMPONENT Utilites
)
endforeach (target)
================================================
FILE: apps/linuxlauncher/launcher.c
================================================
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <limits.h>
#include <string.h>
int main(int argc, char **argv)
{
char path[PATH_MAX];
ssize_t rc = readlink("/proc/self/exe", path, PATH_MAX);
(void)(rc); // Remove warning
char *p = &path[strlen(path) - 1];
int up = 2;
while (p != path && up) {
if (*p == '/') {
*p = 0;
up--;
}
p--;
}
#ifndef NDEBUG
int debug = 0;
if (argc > 1 && !strcmp("--launcher-debug", argv[1])) {
debug = 1;
argc--;
int i;
for (i = 1; i < argc; i++) argv[i] = argv[i + 1];
argv[argc] = 0;
}
#endif
setenv("VAPOR_HOME", path, 1);
strcat(path, "/lib");
char *oldLibPath = getenv("LD_LIBRARY_PATH");
if (!oldLibPath) oldLibPath = "";
char *newLibPath = malloc(strlen(oldLibPath) + strlen(path) + 2);
strcpy(newLibPath, path);
strcat(newLibPath, ":");
strcat(newLibPath, oldLibPath);
setenv("LD_LIBRARY_PATH", newLibPath, 1);
#ifndef NDEBUG
if (debug) printf("LD_LIBRARY_PATH=%s\n", newLibPath);
#endif
free(newLibPath);
argv[0] = "@TARGET_NAME@";
strcat(path, "/@TARGET_NAME@");
if (access(path, X_OK) == -1) {
fprintf(stderr, "Failed to run \"%s\"\n", path);
exit(1);
}
execv(path, argv);
return 0;
}
================================================
FILE: apps/ncdf2wasp/CMakeLists.txt
================================================
add_executable (ncdf2wasp ncdf2wasp.cpp)
target_link_libraries (ncdf2wasp common wasp)
OpenMPInstall (
TARGETS ncdf2wasp
DESTINATION ${INSTALL_BIN_DIR}
COMPONENT Utilites
)
================================================
FILE: apps/ncdf2wasp/ncdf2wasp.cpp
================================================
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <cerrno>
#include <cmath>
#include <vapor/CFuncs.h>
#include <vapor/OptionParser.h>
#include <vapor/WASP.h>
#include <vapor/FileUtils.h>
#include <vapor/SetHDF5PluginPath.h>
using namespace Wasp;
using namespace VAPoR;
//
// Command line argument stuff
//
struct opt_t {
string varname;
string wname;
int lod;
int nthreads;
std::vector<size_t> bs;
std::vector<size_t> bs2d;
std::vector<size_t> cratios;
std::vector<size_t> cratios2d;
std::vector<string> xvarnames;
std::vector<string> xdimnames;
OptionParser::Boolean_T debug;
OptionParser::Boolean_T quiet;
OptionParser::Boolean_T help;
} opt;
OptionParser::OptDescRec_T set_opts[] = {{"varname", 1, "var1", "Name of variable"},
{"wname", 1, "bior4.4",
"Wavelet family used for compression "
"Valid values are bior1.1, bior1.3, "
"bior1.5, bior2.2, bior2.4 ,bior2.6, bior2.8, bior3.1, bior3.3, "
"bior3.5, bior3.7, bior3.9, bior4.4"},
{"lod", 1, "-1",
"Compression levels saved. 0 => coarsest, 1 => "
"next refinement, etc. -1 => all levels defined by the netcdf file"},
{"nthreads", 1, "0",
"Specify number of execution threads "
"0 => use number of cores"},
{"bs", 1, "64:64:64",
"Internal storage blocking factor expressed in grid points (NZ:NY:NX) "
"for 3D variables"},
{"bs2d", 1, "",
"Internal storage blocking factor expressed in grid points (NZ:NY:NX) "
"for 2D variables. If empty the 2D blocking factor uses the fastest "
"varying dimensions of the 3D blocking factor"},
{"cratios", 1, "500:100:10:1",
"Colon delimited list of compression "
"ratios for 3D variables. The default is 500:100:10:1. The maximum "
"compression ratio is wavelet and block size dependent."},
{"cratios2d", 1, "",
"Colon delimited list of compression "
"ratios for 2D variables. If empty the 2D compression ratio vector "
"is calculated from the 3D compression vector."},
{"xvarnames", 1, "",
"Colon delimited list of variable names "
"to exclude from compression."},
{"xdimnames", 1, "",
"Colon delimited list of dimension names "
"to exclude from compression."},
{"debug", 0, "", "Enable diagnostic"},
{"quiet", 0, "", "Operate quietly"},
{"help", 0, "", "Print this message and exit"},
{NULL}};
OptionParser::Option_T get_options[] = {{"varname", Wasp::CvtToCPPStr, &opt.varname, sizeof(opt.varname)},
{"wname", Wasp::CvtToCPPStr, &opt.wname, sizeof(opt.wname)},
{"lod", Wasp::CvtToInt, &opt.lod, sizeof(opt.lod)},
{"nthreads", Wasp::CvtToInt, &opt.nthreads, sizeof(opt.nthreads)},
{"bs", Wasp::CvtToSize_tVec, &opt.bs, sizeof(opt.bs)},
{"bs2d", Wasp::CvtToSize_tVec, &opt.bs2d, sizeof(opt.bs2d)},
{"cratios", Wasp::CvtToSize_tVec, &opt.cratios, sizeof(opt.cratios)},
{"cratios2d", Wasp::CvtToSize_tVec, &opt.cratios2d, sizeof(opt.cratios2d)},
{"xvarnames", Wasp::CvtToStrVec, &opt.xvarnames, sizeof(opt.xvarnames)},
{"xdimnames", Wasp::CvtToStrVec, &opt.xdimnames, sizeof(opt.xdimnames)},
{"debug", Wasp::CvtToBoolean, &opt.debug, sizeof(opt.debug)},
{"quiet", Wasp::CvtToBoolean, &opt.quiet, sizeof(opt.quiet)},
{"help", Wasp::CvtToBoolean, &opt.help, sizeof(opt.help)},
{NULL}};
const char *ProgName;
// Return true if string 'name' contained in vector of strings, 'names'
//
bool name_in(string name, const vector<string> &names) { return (find(names.begin(), names.end(), name) != names.end()); }
// Given a list of dimemsion names and lengths (dimnames, dimlens) return
// an ordered subset of the inputs that contains only the dimension
// names and lenghts that will be compressed.
//
void get_compressed_dims(const vector<string> &dimnames, const vector<size_t> &dimlens, vector<string> &cdimnames, vector<size_t> &cdimlens)
{
VAssert(dimnames.size() == dimlens.size());
cdimnames = dimnames;
cdimlens = dimlens;
// if any excluded dimension names match the **slowest**
// varying variable dimension name remove the matched dimension
// name.
//
vector<string>::iterator itr1 = cdimnames.begin();
vector<size_t>::iterator itr2 = cdimlens.begin();
while (itr1 != cdimnames.end()) {
if (name_in(*itr1, opt.xdimnames)) {
cdimnames.erase(itr1);
itr1 = cdimnames.begin();
cdimlens.erase(itr2);
itr2 = cdimlens.begin();
} else {
break;
}
}
}
// Compute the block size from opt.bs and opt.bs2d based on the number
// of dimensions
//
vector<size_t> get_bs(const vector<string> &dimnames, const vector<size_t> &dims)
{
vector<string> cdimnames;
vector<size_t> cdims;
get_compressed_dims(dimnames, dims, cdimnames, cdims);
VAssert(cdims.size() == 2 || cdims.size() == 3);
if (cdims.size() == 3) return (opt.bs);
if (cdims.size() == 2 && opt.bs2d.size()) return (opt.bs2d);
// Compute 2D block sizes from 3D block sizes
//
vector<size_t> bs = opt.bs;
bs.erase(bs.begin());
return (bs);
}
// Compute the compression ratios from opt.cratios and opt.cratios2d
// based on the number of dimensions
//
vector<size_t> get_cratios(const vector<string> &dimnames, const vector<size_t> &dims)
{
vector<string> cdimnames;
vector<size_t> cdims;
get_compressed_dims(dimnames, dims, cdimnames, cdims);
VAssert(cdims.size() == 2 || cdims.size() == 3);
if (cdims.size() == 3) return (opt.cratios);
if (cdims.size() == 2 && opt.cratios2d.size()) return (opt.cratios2d);
// Compute 2D compression ratios from 3D compression ratios
//
vector<size_t> cratios = opt.cratios;
for (int i = 0; i < cratios.size(); i++) {
double v = cratios[i];
v = pow(v, 1.0 / 3.0);
cratios[i] = (size_t)(v * v);
}
return (cratios);
}
//
// Define the WASP output file using 'ncdf' as a template
//
int DefFile(const NetCDFCpp &ncdf, WASP &wasp)
{
vector<string> dimnames;
vector<size_t> dimlens;
int rc = ncdf.InqDims(dimnames, dimlens);
if (rc < 0) return (-1);
VAssert(dimnames.size() == dimlens.size());
for (int i = 0; i < dimnames.size(); i++) {
rc = wasp.DefDim(dimnames[i], dimlens[i]);
if (rc < 0) return (-1);
}
vector<string> attnames;
rc = ncdf.InqAttnames("", attnames);
if (rc < 0) return (-1);
for (int i = 0; i < attnames.size(); i++) {
rc = ncdf.CopyAtt("", attnames[i], wasp, "");
if (rc < 0) return (-1);
}
return (0);
}
// Get all of the variable names, and based on command line arguments parse
// the names into a vector of
// variable names that will be copied verbatim, and a vector of variable
// names that will be compressed.
//
int GetVarNames(const NetCDFCpp &ncdf, vector<string> &vars, vector<string> ©_vars, vector<string> &compress_vars)
{
vars.clear();
copy_vars.clear();
compress_vars.clear();
int rc = ncdf.InqVarnames(vars);
if (rc < 0) return (-1);
for (int i = 0; i < vars.size(); i++) {
vector<string> dimnames;
vector<size_t> dimlens;
nc_type xtype;
rc = ncdf.InqVarDims(vars[i], dimnames, dimlens);
if (rc < 0) return (-1);
rc = ncdf.InqVartype(vars[i], xtype);
if (rc < 0) return (-1);
// Can only compress 3 different data types
//
if (!((xtype == NC_FLOAT) || (xtype == NC_DOUBLE) || (xtype == NC_INT))) {
copy_vars.push_back(vars[i]);
continue;
}
// Excluded variable names requested via command line
//
if (name_in(vars[i], opt.xvarnames)) {
copy_vars.push_back(vars[i]);
continue;
}
// if any excluded dimension names match the **slowest**
// varying variable dimension name remove the matched dimension
// name.
//
get_compressed_dims(dimnames, dimlens, dimnames, dimlens);
if (!((dimnames.size() == 2) || (dimnames.size() == 3))) {
copy_vars.push_back(vars[i]);
continue;
}
// If we get this far the variable can be compressed
//
compress_vars.push_back(vars[i]);
}
return (0);
}
// Copy variables verbatim from 'ncdf' to 'wasp'
//
int CopyVars(const NetCDFCpp &ncdf, const vector<string> ©_vars, WASP &wasp)
{
for (int i = 0; i < copy_vars.size(); i++) {
if (!opt.quiet) { cout << "Copying variable " << copy_vars[i] << endl; }
int rc = ncdf.CopyVar(copy_vars[i], wasp);
if (rc < 0) return (-1);
}
return (0);
}
// Define a variable that will not be compressed (i.e copied verbatim)
//
int DefCopyVar(const NetCDFCpp &ncdf, string varname, NetCDFCpp &wasp)
{
vector<string> dimnames;
vector<size_t> dimlens;
int rc = ncdf.InqVarDims(varname, dimnames, dimlens);
if (rc < 0) return (-1);
nc_type xtype;
rc = ncdf.InqVartype(varname, xtype);
if (rc < 0) return (-1);
rc = wasp.DefVar(varname, xtype, dimnames);
if (rc < 0) return (-1);
return (0);
}
// Define a variable that will be compressed
//
int DefCompressVar(const NetCDFCpp &ncdf, string varname, WASP &wasp)
{
vector<string> dimnames;
vector<size_t> dimlens;
int rc = ncdf.InqVarDims(varname, dimnames, dimlens);
if (rc < 0) return (-1);
nc_type xtype;
rc = ncdf.InqVartype(varname, xtype);
if (rc < 0) return (-1);
vector<size_t> bs = get_bs(dimnames, dimlens);
vector<size_t> cratios = get_cratios(dimnames, dimlens);
rc = wasp.DefVar(varname, xtype, dimnames, opt.wname, bs, cratios);
if (rc < 0) return (-1);
return (0);
}
// Define all variables in 'wasp', preserving the variable order
// in 'ncdf'
//
int DefVars(const NetCDFCpp &ncdf, const vector<string> &vars, const vector<string> ©_vars, const vector<string> &comp_vars, WASP &wasp)
{
int rc;
for (int i = 0; i < vars.size(); i++) {
if (name_in(vars[i], copy_vars)) {
rc = DefCopyVar(ncdf, vars[i], wasp);
if (rc < 0) return (-1);
} else if (name_in(vars[i], comp_vars)) {
rc = DefCompressVar(ncdf, vars[i], wasp);
if (rc < 0) return (-1);
} else {
continue;
}
// Now copy variable attributes
//
vector<string> attnames;
rc = ncdf.InqAttnames(vars[i], attnames);
if (rc < 0) return (-1);
for (int j = 0; j < attnames.size(); j++) {
rc = ncdf.CopyAtt(vars[i], attnames[j], wasp, vars[i]);
if (rc < 0) return (-1);
}
}
return (0);
}
// Compress variables
//
int CompressVars(NetCDFCpp &ncdf, const vector<string> ©_vars, WASP &wasp)
{
for (int i = 0; i < copy_vars.size(); i++) {
if (!opt.quiet) { cout << "Compressing variable " << copy_vars[i] << endl; }
int rc = wasp.CopyVarFrom(copy_vars[i], ncdf);
if (rc < 0) return (-1);
}
return (0);
}
void Process(string ncdffile, string waspfile)
{
NetCDFCpp ncdf;
WASP wasp;
size_t chunksize = 1024 * 1024 * 4;
int rc = ncdf.Open(ncdffile, NC_NOWRITE);
if (rc < 0) {
MyBase::SetErrMsg("Error opening %s for reading", ncdffile.c_str());
exit(1);
}
rc = wasp.Create(waspfile, NC_64BIT_OFFSET, 0, chunksize, opt.cratios.size());
if (rc < 0) {
MyBase::SetErrMsg("Error opening %s for writing", waspfile.c_str());
exit(1);
}
rc = DefFile(ncdf, wasp);
if (rc < 0) exit(1);
vector<string> vars, copy_vars, compress_vars;
rc = GetVarNames(ncdf, vars, copy_vars, compress_vars);
if (rc < 0) exit(1);
rc = DefVars(ncdf, vars, copy_vars, compress_vars, wasp);
if (rc < 0) exit(1);
rc = wasp.EndDef();
if (rc < 0) exit(1);
rc = CopyVars(ncdf, copy_vars, wasp);
if (rc < 0) exit(1);
rc = CompressVars(ncdf, compress_vars, wasp);
if (rc < 0) exit(1);
(void)ncdf.Close();
rc = wasp.Close();
if (rc < 0) exit(1);
}
int main(int argc, char **argv)
{
VAPoR::SetHDF5PluginPath();
OptionParser op;
MyBase::SetErrMsgFilePtr(stderr);
//
// Parse command line arguments
//
ProgName = FileUtils::LegacyBasename(argv[0]);
if (op.AppendOptions(set_opts) < 0) { exit(1); }
if (op.ParseOptions(&argc, argv, get_options) < 0) { exit(1); }
if (opt.help) {
cerr << "Usage: " << ProgName << " [options] netcdffile waspfile" << endl;
op.PrintOptionHelp(stderr);
exit(0);
}
if (argc != 3) {
cerr << "Usage: " << ProgName << " [options] netcdffile waspfile" << endl;
op.PrintOptionHelp(stderr);
exit(1);
}
string ncdffile = argv[1]; // Path to a vdf file
string waspfile = argv[2]; // Path to wasp file
if (opt.debug) MyBase::SetDiagMsgFilePtr(stderr);
Process(ncdffile, waspfile);
return (0);
}
================================================
FILE: apps/pythonapi/CMakeLists.txt
================================================
message("Python Found: '${Python_VERSION}' (${Python_LIBRARIES})")
SET(PYTHON_API_DIR ${CMAKE_BINARY_DIR}/python)
# CMake does not have proper support for copying files and its scripting language does not make adding it easy.
function(COPY_HELPER FILE DESTINATION DEP_LIST)
get_filename_component(BASENAME "${FILE}" NAME)
if ("${BASENAME}" IN_LIST COPY_EXCLUDE)
return()
endif()
if (IS_DIRECTORY "${FILE}")
file(GLOB SUBFILES "${FILE}/*")
foreach (SUBFILE ${SUBFILES})
COPY_HELPER("${SUBFILE}" "${DESTINATION}/${BASENAME}" "${DEP_LIST}")
endforeach()
else()
set(OUTFILE "${DESTINATION}/${BASENAME}")
add_custom_command(
OUTPUT "${OUTFILE}"
COMMAND ${CMAKE_COMMAND} -E copy "${FILE}" "${OUTFILE}"
MAIN_DEPENDENCY "${FILE}"
)
list(APPEND DEP_LIST "${OUTFILE}")
# of course this does not work for custom targets
# add_dependencies(target ${OUTFILE})
endif()
set(DEP_LIST "${DEP_LIST}" PARENT_SCOPE)
endfunction()
set_property(GLOBAL PROPERTY COPY_HELPER_TARGET_COUNTER_PROPERTY "0")
function(COPY FILE DESTINATION)
include(CMakeParseArguments)
cmake_parse_arguments(PARSE_ARGV 2
"COPY"
""
""
"EXCLUDE"
)
get_filename_component(FILE "${FILE}" REALPATH)
list(APPEND DEP_LIST "")
COPY_HELPER("${FILE}" "${DESTINATION}" "${DEP_LIST}")
get_property(COPY_HELPER_TARGET_COUNTER GLOBAL PROPERTY COPY_HELPER_TARGET_COUNTER_PROPERTY)
math(EXPR COPY_HELPER_TARGET_COUNTER "${COPY_HELPER_TARGET_COUNTER}+1")
set_property(GLOBAL PROPERTY COPY_HELPER_TARGET_COUNTER_PROPERTY ${COPY_HELPER_TARGET_COUNTER})
add_custom_target(
copy_helper_${COPY_HELPER_TARGET_COUNTER}
ALL
DEPENDS ${DEP_LIST}
)
endfunction()
copy(vapor ${PYTHON_API_DIR} EXCLUDE cmake.py __pycache__ widget.js jquery.js)
copy(setup.py ${PYTHON_API_DIR})
copy(example_scripts ${PYTHON_API_DIR} EXCLUDE CMakeLists.txt)
add_subdirectory (example_scripts)
add_custom_command(
OUTPUT "${PYTHON_API_DIR}/vapor/widget.js"
COMMAND esbuild --log-level=warning --format=esm "${CMAKE_CURRENT_SOURCE_DIR}/vapor/widget.js" --bundle --outfile="${PYTHON_API_DIR}/vapor/widget.js"
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/vapor/widget.js"
)
add_custom_target(
widget_js
ALL
DEPENDS "${PYTHON_API_DIR}/vapor/widget.js"
)
# copy(bld.bat ${PYTHON_API_DIR})
# copy(build.sh ${PYTHON_API_DIR})
# configure_file (meta.yaml ${PYTHON_API_DIR}/meta.yaml)
# get_target_property(VAPI_PRIVATE_COMPILE_DEFS vapi COMPILE_DEFINITIONS)
get_target_property(VAPI_COMPILE_DEFS vapi INTERFACE_COMPILE_DEFINITIONS)
get_property(GLOBAL_COMPILE_DEFS DIRECTORY PROPERTY COMPILE_DEFINITIONS)
# These don't quite work
# get_target_property(VAPI_DEFS vapi COMPILE_DEFINITIONS)
# get_target_property(VAPI_INT_DEFS vapi INTERFACE_COMPILE_DEFINITIONS)
# get_property(DIR_DEFS DIRECTORY PROPERTY COMPILE_DEFINITIONS)
configure_file (cmake.py ${PYTHON_API_DIR}/cmake.py)
configure_file (vapor/cmake.py ${PYTHON_API_DIR}/vapor/cmake.py)
if (CONDA_BUILD)
set(CONDA_SITE_PACKAGE_DIR "$ENV{SP_DIR}")
install(
DIRECTORY "${PYTHON_API_DIR}/vapor"
DESTINATION "${CONDA_SITE_PACKAGE_DIR}"
COMPONENT Dependencies
)
endif()
# Fails to find either despite both being installed
# list(APPEND CMAKE_MODULE_PATH "/usr/local/Caskroom/miniconda/base/envs/test/lib/python3.9/site-packages/cppyy_backend/cmake")
# find_package (LibClang REQUIRED)
# find_package (Cppyy REQUIRED)
================================================
FILE: apps/pythonapi/cmake.py
================================================
from pathlib import Path
VERSION_RC = "@VERSION_RC@"
VERSION_DATE = "@VERSION_DATE@"
VERSION_COMMIT = "@VERSION_COMMIT@"
VERSION_STRING = "@VERSION_STRING@"
VERSION_STRING_FULL = "@VERSION_STRING_FULL@"
BUILD_TYPE = "@CMAKE_BUILD_TYPE@"
SOURCE_DIR = "@PROJECT_SOURCE_DIR@"
BINARY_DIR = "@CMAKE_BINARY_DIR@"
THIRD_PARTY_DIR = "@THIRD_PARTY_DIR@"
PYTHON_VERSION = "@PYTHONVERSION@"
PYTHON_DIR = "@PYTHONDIR@"
PYTHON_PATH = "@PYTHONPATH@"
SYSTEM_NAME = "@CMAKE_SYSTEM_NAME@"
PYTHON_API_SOURCE_DIR = "@CMAKE_CURRENT_SOURCE_DIR@"
#These do not work
CPACK_TOPLEVEL_DIR = "@CPACK_TOPLEVEL_DIRECTORY@"
CPACK_TEMPORARY_DIR = "@CPACK_TEMPORARY_DIRECTORY@"
CPACK_INSTALLER_NAME = "@PROJECT_NAME@-@VERSION_STRING@-@CMAKE_SYSTEM_NAME@"
CPACK_STAGING_DIR = f"{BINARY_DIR}/_CPack_Packages/{SYSTEM_NAME}/External/{CPACK_INSTALLER_NAME}"
pkg = "@CPACK_PACKAGE_NAME@"
pk2g = "@CPACK_PACKAGE_FILE_NAME@"
PROJECT_NAME = "@PROJECT_NAME@"
CPACK_PACKAGE_VERSION = "@CPACK_PACKAGE_VERSION@"
for n in ['BINARY_DIR', 'PYTHON_API_SOURCE_DIR', 'CPACK_STAGING_DIR']:
f = eval(n)
if Path(f).exists():
print(f"{n} OK {f}")
else:
print(f"{n} NOT FOUND {f}")
assert 0
================================================
FILE: apps/pythonapi/example_scripts/CMakeLists.txt
================================================
set(ALL_NOTEBOOKS "")
set(ALL_MARIMO_NOTEBOOKS "")
function(NOTEBOOK FILE OUT)
include(CMakeParseArguments)
cmake_parse_arguments(PARSE_ARGV 2
"NOTEBOOK"
""
""
""
)
get_filename_component(FILE "${FILE}" REALPATH)
add_custom_command(
OUTPUT "${OUT}"
DEPENDS "${FILE}"
COMMAND cat "${FILE}" | jupytext --to ipynb > "${OUT}"
)
list(APPEND ALL_NOTEBOOKS "${OUT}")
set(ALL_NOTEBOOKS "${ALL_NOTEBOOKS}" PARENT_SCOPE)
endfunction()
function(CONV_MARIMO FILE OUT)
include(CMakeParseArguments)
cmake_parse_arguments(PARSE_ARGV 2
"CONV_MARIMO"
""
""
""
)
get_filename_component(FILE "${FILE}" REALPATH)
add_custom_command(
OUTPUT "${OUT}"
DEPENDS "${FILE}"
COMMAND marimo -q -y convert "${FILE}" -o "${OUT}"
)
list(APPEND ALL_MARIMO_NOTEBOOKS "${OUT}")
set(ALL_MARIMO_NOTEBOOKS "${ALL_MARIMO_NOTEBOOKS}" PARENT_SCOPE)
endfunction()
# copy(vapor ${PYTHON_API_DIR} EXCLUDE cmake.py __pycache__)
# copy(setup.py ${PYTHON_API_DIR})
find_program(JUPYTEXT "jupytext")
if (JUPYTEXT)
set(EXAMPLE_NOTEBOOK_OUT_DIR "${PYTHON_API_DIR}/example_jupyter_notebooks")
file(MAKE_DIRECTORY ${EXAMPLE_NOTEBOOK_OUT_DIR})
copy(example_utils.py ${EXAMPLE_NOTEBOOK_OUT_DIR})
notebook(numpy_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/numpy_example.ipynb)
notebook(xarray_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/xarray_example.ipynb)
notebook(dataset_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/dataset_example.ipynb)
notebook(flow_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/flow_example.ipynb)
notebook(annotation_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/annotation_example.ipynb)
notebook(camera_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/camera_example.ipynb)
notebook(transfer_function_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/transfer_function_example.ipynb)
notebook(workflow_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/workflow_example.ipynb)
notebook(animation_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/animation_example.ipynb)
notebook(visualizer_widget_example.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/visualizer_widget_example.ipynb)
notebook(rotate_video.py ${EXAMPLE_NOTEBOOK_OUT_DIR}/rotate_video.ipynb)
add_custom_target(
example_notebooks
ALL
DEPENDS ${ALL_NOTEBOOKS}
)
else()
message(WARNING "jupytext not found")
message(WARNING "Skipping generation of jupyter notebooks")
endif()
find_program(MARIMO "marimo")
if (JUPYTEXT AND MARIMO)
set(EXAMPLE_MARIMO_OUT_DIR "${PYTHON_API_DIR}/example_marimo_notebooks")
file(MAKE_DIRECTORY ${EXAMPLE_MARIMO_OUT_DIR})
copy(example_utils.py ${EXAMPLE_MARIMO_OUT_DIR})
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/numpy_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/numpy_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/xarray_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/xarray_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/dataset_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/dataset_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/flow_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/flow_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/annotation_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/annotation_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/camera_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/camera_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/transfer_function_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/transfer_function_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/workflow_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/workflow_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/animation_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/animation_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/visualizer_widget_example.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/visualizer_widget_example.py)
conv_marimo(${EXAMPLE_NOTEBOOK_OUT_DIR}/rotate_video.ipynb ${EXAMPLE_MARIMO_OUT_DIR}/rotate_video.py)
add_custom_target(
example_marimo_notebooks
ALL
DEPENDS ${ALL_MARIMO_NOTEBOOKS}
)
else()
message(WARNING "marimo (or jupytext) not found")
message(WARNING "Skipping generation of marimo notebooks")
endif()
if (CONDA_BUILD)
set(CONDA_SITE_PACKAGE_DIR "$ENV{SP_DIR}")
install(
DIRECTORY "${PYTHON_API_DIR}/example_scripts"
DESTINATION "${CONDA_SITE_PACKAGE_DIR}/vapor"
COMPONENT Dependencies
)
if (JUPYTEXT)
install(
DIRECTORY "${EXAMPLE_NOTEBOOK_OUT_DIR}"
DESTINATION "${CONDA_SITE_PACKAGE_DIR}/vapor"
COMPONENT Dependencies
)
endif()
endif()
================================================
FILE: apps/pythonapi/example_scripts/animation_example.py
================================================
# %% [md]
#
# # Creating Animations
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera
from vapor.animation import Animation
# %%
ses = session.Session()
data = example_utils.OpenExampleDataset(ses)
dimension = 2
U,V = data.GetDataVarNames(dimension)[0:2]
ren:renderer.FlowRenderer = data.NewRenderer(renderer.FlowRenderer)
ren.SetFieldVariableNames([U, V])
ses.GetCamera().ViewAll()
ren.SetRenderType(ren.RenderType.RenderTypeStream)
ren.SetRenderRadiusScalar(3)
ren.SetRenderGeom3D(True)
ren.SetColorMapVariableName(U)
# ses.Show()
# %%
anim = Animation(ses)
for i in range(0, 200, 2):
ren.SetSteadyNumOfSteps(i)
anim.CaptureFrame()
print(f"Rendering Animation [{'#'*round(i/5)}{' '*round(40-i/5)}] {(i+1)/2:.0f}%", end="\r")
anim.Show()
# %%
anim.ShowInteractive()
# %%
anim.SaveMP4("test.mp4")
================================================
FILE: apps/pythonapi/example_scripts/annotation_example.py
================================================
# %% [md]
#
# # Annotations
#
# You can annotate your renderings using Vapor's build in annotations as well as MatPlotLib
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera
from vapor.utils import histogram
ses = session.Session()
data = example_utils.OpenExampleDataset(ses)
ren = data.NewRenderer(renderer.TwoDDataRenderer)
ren.SetVariableName(data.GetDataVarNames(2)[1])
ses.GetCamera().ViewAll()
# %% [md]
#
# ## Vapor Colorbars
#
# %%
# Show the basic colorbar annotation for a renderer
colorbar = ren.GetColorbarAnnotation()
colorbar.SetEnabled(True)
ses.Show()
# %%
# Customized colorbar annotation
colorbar.SetSize((0.2, 0.25))
colorbar.SetTitle("Colorbar Title")
colorbar.SetCornerPosition((0.95, 0.95))
ses.Show()
# %% [md]
#
# ## MatPlotLib Colorbars
#
# You can customize the histograms as you would MatPlotLib's `pylab.colorbar`
#
# %%
tf = ren.GetPrimaryTransferFunction()
tf.ShowMatPlotLibColorbar()
# %%
tf.ShowMatPlotLibColorbar(orientation="vertical", figsize=(1.5,4))
# %%
# The MatPlotLib Colorbars are automatically synced to Vapor's transfer functions
tf.LoadBuiltinColormap(tf.ListBuiltinColormaps()[7])
ses.Show()
tf.ShowMatPlotLibColorbar()
# %%
colorbar.SetEnabled(False)
# %% [md]
#
# ## MatPlotLib Histograms
#
# %%
histogram.ShowMatPlotLibHistogram(ses, ren)
# %% [md]
# ---
# You can customize the histograms as you would `matplotlib.pyplot.hist`
#
# %%
plt = histogram.GetMatPlotLibHistogram(ses, ren, color ="red")
plt.xlabel("X-Axis")
plt.ylabel("Y-Axis")
plt.title("Title\n", fontweight="bold")
plt.show()
# %% [md]
#
# ## Axis Annotations
#
# %%
axis = ses.GetAxisAnnotations()
axis.SetAxisAnnotationEnabled(True)
ses.Show()
# %%
axis.SetNumTics((5,5))
axis.SetAxisFontSize(24)
ses.Show()
# This example dataset is not geo-referenced
# axis.SetLatLonAxesEnabled(True)
# %%
axis.SetAxisAnnotationEnabled(False)
# %% [md]
#
# ## Scene Annotations
#
# Scene annotations are other annotations and rendering options that apply to the entire rendering such as background color.
#
# %%
scene = ses.GetSceneAnnotations()
scene.SetBackgroundColor((1,1,1))
scene.SetUseDomainFrame(False)
ses.Show()
# %%
scene.SetAxisArrowEnabled(True)
scene.SetAxisArrowSize(0.4)
scene.SetTimeType(scene.TimeAnnotationType.Timestep)
scene.SetTimeColor((0,0,0))
scene.SetTimeLLX(0.7)
ses.Show()
================================================
FILE: apps/pythonapi/example_scripts/camera_example.py
================================================
# %% [md]
#
# # Controlling the Camera
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera
ses = session.Session()
data = example_utils.OpenExampleDataset(ses)
ren = data.NewRenderer(renderer.VolumeIsoRenderer)
ren.SetIsoValues([-0.10, 0.2])
# Show 3D orientation arrows.
ses.GetSceneAnnotations().SetAxisArrowEnabled(True)
# %%
cam = ses.GetCamera()
# %%
help(cam.ViewAll)
cam.ViewAll()
ses.Show()
# %%
help(cam.AlignView)
cam.AlignView("-X")
ses.Show()
# %%
help(cam.Zoom)
cam.Zoom(-0.4)
ses.Show()
# %%
help(cam.LookAt)
cam.LookAt((32, -100, 100), ren.GetTransform().GetOrigin())
ses.Show()
================================================
FILE: apps/pythonapi/example_scripts/dataset_example.py
================================================
# %% [md]
#
# # Opening Datasets
#
# Vapor supports a variety of scientific data formats.
# This notebook shows how to open a dataset and query its metadata.
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera
# %%
print("Supported dataset types:", dataset.Dataset.GetDatasetTypes())
# %%
ses = session.Session()
data = example_utils.OpenExampleDataset(ses)
# Examples of opening real data
#
# data = ses.OpenDataset(dataset.WRF, ["data/wrf_out.0001", "data/wrf_out.0002"])
# data = ses.OpenDataset(dataset.VDC, ["master.vdc"])
# data = ses.OpenDataset(dataset.MPAS, ["x1.static.nc", "diag.2021-03-04_10.30.00.nc"])
# %% [md]
#
# ## Dump the dataset metadata
#
# %%
print("Time Coordinate Variable Name:", data.GetTimeCoordVarName())
print("Coordinate Variable Names:", data.GetCoordVarNames())
print("Dimensions:")
for dim in data.GetDimensionNames():
print(f" {dim}:", data.GetDimensionLength(dim, 0))
print("Data Variables:")
for var in data.GetDataVarNames():
print(f" {var}")
print(f" Time Varying:", bool(data.IsTimeVarying(var)))
print(f" Dimensionality:", data.GetVarGeometryDim(var))
print(f" Coordinates:", data.GetVarCoordVars(var, True))
print(" Data Range:", data.GetDataRange(var))
# %% [md]
#
# ## Render the first 2D variable as a wireframe
#
# %%
ren = data.NewRenderer(renderer.WireFrameRenderer)
ren.SetVariableName(data.GetDataVarNames(2)[0]) # Set to first 2D data variable
ses.GetCamera().ViewAll()
ses.Show()
================================================
FILE: apps/pythonapi/example_scripts/example_utils.py
================================================
###########################################################
# NOTICE
#
# This is a utility file for running tests from source and
# can be ignored when normally using vapor
#
###########################################################
try:
import vapor
except ImportError:
import sys
sys.path.append('..')
from inspect import signature
import numpy as np
from math import sin
def SampleFunctionOnRegularGrid(f, ext=None, shape=None):
if not shape: shape = [64]*len(signature(f).parameters)
if not ext: ext = [(0,1)]*len(signature(f).parameters)
assert len(signature(f).parameters) == len(shape) and len(shape) == len(ext)
d = []
for i in np.ndindex(*(shape)):
d.append(f(*[v/s*(t-f)+f for v,s,(f,t) in zip(reversed(i), shape, ext)]))
return np.asarray(d, dtype=np.float32).reshape(shape)
def OpenExampleDataset(session):
data = session.CreatePythonDataset()
data.AddNumpyData("U10", SampleFunctionOnRegularGrid(lambda x, y: sin(6 * x) + sin(6 * y)))
data.AddNumpyData("V10", SampleFunctionOnRegularGrid(lambda x, y: (x + y) * np.exp(-5.0 * (x ** 2 + y ** 2)), ext=[(-1, 1)] * 2))
data.AddNumpyData("V", SampleFunctionOnRegularGrid(lambda x, y, z: (x + y + z) * np.exp(-5.0 * (x ** 2 + y ** 2 + z ** 2)), ext=[(-1, 1)] * 3))
return data
================================================
FILE: apps/pythonapi/example_scripts/flow_example.py
================================================
# %% [md]
#
# # Advecting Flow Paths
#
# Vapor can advect and render flow paths through your data.
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera
ses = session.Session()
data = example_utils.OpenExampleDataset(ses)
# %% [md]
#
# ## Default advection
#
# When you create a Flow renderer, the default advection will create a regularly dispersed grid of seed points and simulate a streamline advection in 2D or 3D, depending on the provided variables.
#
# %%
# Use first 2 2D variables as our U,V for the flow advection
dimension = 2
U,V = data.GetDataVarNames(dimension)[0:2]
ren:renderer.FlowRenderer = data.NewRenderer(renderer.FlowRenderer)
ren.SetFieldVariableNames([U, V])
ses.GetCamera().ViewAll()
ses.Show()
# %% [md]
#
# ## Rendering techniques
#
# The rendering of the flow paths can be configured. A few examples are shown below.
# Call help(renderer.FlowRenderer) to see additional options.
#
# %%
ren.SetRenderType(ren.RenderType.RenderTypeStream)
ren.SetRenderRadiusScalar(3)
ren.SetRenderGeom3D(True)
ren.SetColorMapVariableName(U)
ses.Show()
# %% [md]
#
# Rather than rendering the flow lines, you can also render the sample points that are taken along the flow path individually.
#
# %%
ren.SetRenderType(ren.RenderType.RenderTypeSamples)
ses.Show()
# %%
ren.SetRenderGlyphType(ren.GlpyhType.GlpyhTypeArrow)
ren.SetRenderRadiusScalar(7)
ses.Show()
# %%
# Reset the rendering style for the next section
ren.SetRenderRadiusScalar(3)
ren.SetRenderType(ren.RenderType.RenderTypeStream)
# %% [md]
#
# ## Seeding the advection
#
# The seeds from which the advected particles start can be configured in a variety of manners.
# Call help(renderer.FlowRenderer) to see additional options.
#
# %% [md]
#
# ### Uniform Distribution
#
# This is the default. It creates a uniformly distributed grid of seed points over the area/volume of the advected region.
#
# %%
ren.SetSeedGenMode(ren.FlowSeedMode.UNIFORM)
rake = ren.GetRakeRegion()
defaultRakeExtents = rake.GetExtents()
rake.SetExtents((20, 20), (40, 40))
print(f"Seeding a {ren.GetGridNumOfSeeds()} grid over {rake.GetExtents()}")
ses.Show()
rake.SetExtents(*defaultRakeExtents)
# %% [md]
#
# ### Random Distribution
#
# %%
ren.SetSeedGenMode(ren.FlowSeedMode.RANDOM)
print(f"Seeding {ren.GetRandomNumOfSeeds()} random points over {rake.GetExtents()}")
ses.Show()
# %% [md]
#
# ### Biased Distribution
#
# This generates a random list of seed points however they are biased by a given variable.
# The number of seed points can be higher or lower based on the value of the `RakeBiasVariable`.
# You can set the `RakeBiasStrength` to a negative value to invert the bias.
#
# %%
ren.SetSeedGenMode(ren.FlowSeedMode.RANDOM_BIAS)
ren.SetRakeBiasVariable(V)
ren.SetRakeBiasStrength(1)
print(f"Seeding {ren.GetRandomNumOfSeeds()} random points biased by {ren.GetRakeBiasVariable()} over {rake.GetExtents()}")
ses.Show()
# %% [md]
#
# ### Manual List
#
# You can pass in a manually created list of seeds using a basic text file format.
# The code below generates an example seed file and passes it to Vapor.
# The full documentation for the seed file format can be found on Vapor's website.
#
# %%
with open("flow_seeds.txt", "w") as f:
print("# X, Y, Z, T (optional)", file=f)
print("10, 10, 0", file=f)
print("20, 20, 0", file=f)
ren.SetSeedGenMode(ren.FlowSeedMode.LIST)
ren.SetSeedInputFilename("flow_seeds.txt")
ses.Show()
# %% [md]
#
# ### Outputting Flow Lines
#
# The advected flow lines can be saved to a .csv file
#
# %%
ren.SetFlowlineOutputFilename("flow_output.csv") # Needs to be set once per renderer
ren.SetFlowOutputMoreVariables([U, V]) # Optionally specify additional variables to sample at each point
ren.SetNeedFlowlineOutput(True) # Needs to be called before each render call that should output the computed flow in a .csv file
_ = ses.RenderToImage() # This returns a PIL image variable that is not displayed by default and can be ignored if only saving flow output
# %%
import pandas as pd
pd.read_csv("flow_output.csv", sep=",").head(10)
================================================
FILE: apps/pythonapi/example_scripts/numpy_example.py
================================================
# %% [md]
#
# # Rendering Numpy data with Vapor
#
# Vapor supports rendering 2D and 3D numpy data.
# In order to pass Numpy data to Vapor, create a data set of the type `vapor.dataset.PYTHON`
# This can also be done with the convenience function `Session.CreatePythonDataset()`.
# You can add numpy arrays as variables to that dataset by using `Dataset.AddNumpyData`.
#
# These variables can then be rendered normally using any of Vapor's renderers.
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera
import numpy as np
from math import sqrt
ses = session.Session()
data = ses.CreatePythonDataset()
# %%
# Create a 2D numpy array and add it to vapor's dataset
np_array = example_utils.SampleFunctionOnRegularGrid(
lambda x,y: abs(sqrt((x-0.5)**2+(y-0.5)**2)-0.4)<0.02 or y,
shape=(64,65)
)
data.AddNumpyData("variable_name", np_array)
print(np_array)
# %%
# Create a renderer for the data
ren = data.NewRenderer(renderer.TwoDDataRenderer)
ren.SetVariableName("variable_name")
# %%
# Show the rendering
ses.GetCamera().ViewAll()
ses.Show()
================================================
FILE: apps/pythonapi/example_scripts/rotate_video.py
================================================
# %% [md]
#
# # Rotate Video
#
# This script will render an animated rotating view of your session file.
#
# Also requires the `scipy` package.
#
# %%
import example_utils
import cv2, os
from vapor import session, animation
from numpy import cross, eye, dot, radians, asarray, array
from scipy.linalg import expm, norm
UseValueFromSessionFile = None
# %% [md]
#
# ## Configuration
#
# %%
session_path = "/path/to/session.vs3"
output = "animation.mp4"
video_framerate = 30
video_resolution = (640, 480)
data_timestep_framerate = 6 # set to zero to disable
duration = 4 # seconds
rotate_speed = 90 # deg/s
rotation_axis = [0,0,1] # Z (up)
rotation_center = UseValueFromSessionFile # Can be replaced with [x,y,z] coordinates here
save_individual_frames = False
# %% ---------------------------------------------------------------------------------------
session_path, output = [os.path.expanduser(p) for p in (session_path, output)]
n_frames = video_framerate * duration
ses = session.Session()
ses.Load(session_path)
ses.SetResolution(*video_resolution)
cam = ses.GetCamera()
pos, dir, up, tgt = [asarray(x) for x in [cam.GetPosition(), cam.GetDirection(), cam.GetUp(), cam.GetTarget()]]
if rotation_center:
tgt = asarray(rotation_center)
def rotation_matrix(axis, theta):
return expm(cross(eye(3), axis / norm(axis) * theta))
anim = animation.Animation(ses)
for i in range(0, n_frames):
print(f"Rendering... [{'#'*round(40*i/(n_frames-1))}{' '*round(40*(1-i/(n_frames-1)))}] {100*(i+1)/n_frames:.0f}%", end="\r" if i < n_frames-1 else "\n")
ses.SetTimestep(int(data_timestep_framerate * i / video_framerate))
M = rotation_matrix(rotation_axis, radians(rotate_speed) * i / video_framerate)
cam.SetPosition(dot(M, pos - tgt) + tgt)
cam.SetDirection(dot(M, dir))
cam.SetUp(dot(M, up))
anim.CaptureFrame()
if save_individual_frames:
ses.Render(f"{output}_{i:04}.png")
anim.SaveMP4(output, video_framerate)
================================================
FILE: apps/pythonapi/example_scripts/transfer_function_example.py
================================================
# %% [md]
#
# # Transfer Functions
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera, transferfunction
from vapor.utils import histogram
ses = session.Session()
data = example_utils.OpenExampleDataset(ses)
ren = data.NewRenderer(renderer.VolumeRenderer)
ses.GetCamera().LookAt((32, 120, 120), (32, 32, 32))
ses.Show()
# %% [md]
#
# We created a volume rendering however it is fully opaque.
# We can use a transfer function to adjust the visible portions.
# Before we adjust the opacity map of the TF, we get a histogram to help us determine what we want to hide.
#
# %%
histogram.ShowMatPlotLibHistogram(ses, ren)
# %% [md]
#
# Usually we want to hide the most common value so below we construct an opacity map that accomplishes this.
#
# %%
# List of x,y pairs where x is the data value and y is the opacity for that data value
opacities = [(-0.3, 1), (-0.1, 0), (0.1, 0), (0.3, 1)]
# %% [md]
#
# We can get the matplotlib histogram plot and add our opacity map to it to compare.
#
# %%
plt = histogram.GetMatPlotLibHistogram(ses, ren)
plt.plot(*zip(*opacities))
plt.show()
# %% [md]
#
# Now we apply the map to the transfer function
#
# %%
# Renderers can have multiple transfer functions.
# GetPrimaryTransferFunction returns the one that is usually the most useful.
# You can use `tf.GetTransferFunction(var_name)` to get other transfer functions.
tf = ren.GetPrimaryTransferFunction()
tf.SetOpacityControlPoints(opacities)
ses.Show()
# %% [md]
#
# You can adjust the colormap in a similar fashion. Use `help(tf)` for more information.
# Vapor includes a list of built-in colormaps and these can be applied with `tf.LoadBuiltinColormap(name)`
#
# ## Builtin Colormaps
#
# %%
tf.LoadBuiltinColormap("Sequential/BlackBodyExtended")
ses.Show()
# %% [md]
#
# ## List of All Builtin Colormaps
#
# %%
ses.DeleteRenderer(ren)
ren = data.NewRenderer(renderer.TwoDDataRenderer)
tf = ren.GetPrimaryTransferFunction()
for cmap in transferfunction.TransferFunction.ListBuiltinColormaps():
tf.LoadBuiltinColormap(cmap)
print(cmap)
tf.ShowMatPlotLibColorbar()
================================================
FILE: apps/pythonapi/example_scripts/visualizer_widget_example.py
================================================
# %% [md]
#
# # Visualizer Widgets
#
# Visualizer widgets allow you to interactively explore a session as you would in a Vapor GUI visualizer.
# This notebook shows how to use visualizer widgets and how to add additional dynamic parameter inputs.
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera
ses = session.Session()
data = example_utils.OpenExampleDataset(ses)
# %% [md]
#
# ## Render an Iso Surface
#
# %%
ren = data.NewRenderer(renderer.VolumeIsoRenderer)
ren.SetVariableName(data.GetDataVarNames(3)[0]) # Set to first 2D data variable
ren.SetIsoValues([ren.GetIsoValues()[0]+0.1])
ses.GetCamera().ViewAll()
ses.Show()
# %% [md]
#
# ## Create a visualizer to explore the scene
#
# Try dragging the image to rotate the view.
# Hover over the visualizer to see the full controls.
#
# %%
from vapor import widget
viz = widget.VaporVisualizerWidget(ses)
viz
# %% [md]
#
# ## Add an interactive iso value slider using **ipywidgets**
#
# %%
import ipywidgets
tf = ren.GetPrimaryTransferFunction()
dataRange = tf.GetMinMaxMapValue()
def sliderChanged(change):
ren.SetIsoValues([change.new])
viz.Render(fast=True)
slider = ipywidgets.FloatSlider(value=ren.GetIsoValues()[0], min=dataRange[0], max=dataRange[1], step=(dataRange[1]-dataRange[0])/100)
slider.observe(sliderChanged, names='value')
ipywidgets.VBox([
viz,
ipywidgets.HBox([ipywidgets.Label("Iso value:"), slider])
])
================================================
FILE: apps/pythonapi/example_scripts/workflow_example.py
================================================
# %% [md]
#
# # Vapor Python Tutorial
#
# This shows an example workflow with vapor.
# We begin by creating a session and opening a dataset.
# You can have multiple sessions open at the same time.
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera
# %%
ses = session.Session()
data = example_utils.OpenExampleDataset(ses)
# %% [md]
#
# ## Dump the dataset metadata
#
# %%
print("Time Coordinate Variable Name:", data.GetTimeCoordVarName())
print("Coordinate Variable Names:", data.GetCoordVarNames())
print("Dimensions:")
for dim in data.GetDimensionNames():
print(f" {dim}:", data.GetDimensionLength(dim, 0))
print("Data Variables:")
for var in data.GetDataVarNames():
print(f" {var}")
print(f" Time Varying:", bool(data.IsTimeVarying(var)))
print(f" Dimensionality:", data.GetVarGeometryDim(var))
print(f" Coordinates:", data.GetVarCoordVars(var, True))
print(" Data Range:", data.GetDataRange(var))
# %% [md]
#
# ## Render the first 2D variable as a pseudocolor
#
# %%
first_2d_var = data.GetDataVarNames(2)[0]
print(f"Rendering 2D variable {first_2d_var}")
ren = data.NewRenderer(renderer.TwoDDataRenderer)
ren.SetVariableName(first_2d_var)
ren.GetPrimaryTransferFunction().SetMinMapValue(-1)
ren.GetPrimaryTransferFunction().SetMaxMapValue(1)
ses.GetCamera().ViewAll()
ses.Show()
ses.DeleteRenderer(ren)
# %% [md]
#
# ## Render U10 and V10 as barbs over a map
#
# %%
# If your dataset is geo-referenced, this will automatically render a geographically correct map.
# map_ren = data.NewRenderer(renderer.ImageRenderer)
barbs = data.NewRenderer(renderer.BarbRenderer)
barbs.SetDimensions(2)
barbs.SetFieldVariableNames(['U10', 'V10'])
barbs.SetLineThickness(2)
ses.Show()
ses.DeleteRenderer(barbs)
# %% [md]
#
# ## Simulate and render a flow advection
#
# %%
flow = data.NewRenderer(renderer.FlowRenderer)
flow.SetFieldVariableNames(['U10', 'V10'])
ses.Show()
ses.DeleteRenderer(flow)
# %% [md]
#
# ## Volume render a 3D variable
#
# %%
volume = data.NewRenderer(renderer.VolumeRenderer)
volume.SetVariableName("V")
tf = volume.GetPrimaryTransferFunction()
tf.SetOpacityList([1, 0, 0, 1])
ses.GetCamera().ViewAll()
ses.Show()
# Show a colorbar for the volume rendering
tf.ShowMatPlotLibColorbar(label="V")
# %% [md]
#
# ## Scale the dataset Z axis
#
# Vapor will automatically scale the Z axis of a dataset to produce reasonable results.
# This can be manually adjusted as shown below.
#
# %%
scales = data.GetTransform().GetScales()
print("Default dataset scaling =", scales);
scales[2] *= 0.3
data.GetTransform().SetScales(scales)
print("New dataset scaling =", data.GetTransform().GetScales());
ses.Show()
# %% [md]
#
# ## Add axis annotations to the rendering
#
# %%
annotations = ses.GetAxisAnnotations()
annotations.SetAxisAnnotationEnabled(True)
ses.Show()
# %% [md]
#
# ## Saving figures
#
# %%
ses.Render("figure.png")
ses.Render("figure.jpg")
ses.Render("figure.tif")
# %% [md]
#
# ## Export the session for use in the Vapor GUI application
#
# Sessions created in Python can be saved as a .vs3 file.
# These files can then be opened in the Vapor GUI application and explored interactively.
# Conversely, sessions created in the Vapor GUI can be loaded into Python with `Session.Load(path)`
#
# Since this example uses a dynamically generated dataset, the session cannot be saved as
# it would point to a dataset that does not exist on disk. If you were using a physical dataset,
# this would work.
#
# %%
ses.Save("tutorial.vs3")
================================================
FILE: apps/pythonapi/example_scripts/xarray_example.py
================================================
# %% [md]
#
# # Rendering XArray data with Vapor
#
# Vapor supports render XArray data in a similar fashion to Numpy data
# In order to pass XArray data to Vapor, create a data set of the type `vapor.dataset.PYTHON`
# This can also be done with the convenience function `Session.CreatePythonDataset()`.
# You can add XArray variables as vapor variables to that dataset by using `Dataset.AddXArrayData`.
#
# These variables can then be rendered normally using any of Vapor's renderers.
#
# %%
import example_utils
from vapor import session, renderer, dataset, camera
import xarray as xr
import numpy as np
from math import cos, sin, pi
ses = session.Session()
data = ses.CreatePythonDataset()
# %% [md]
#
# Below we generate an XArray variable that consists of a curvilinear 2D grid.
# You can also open an existing dataset with `xarray.open_dataset` and use variables in that dataset.
#
# %%
def gen2d(w,h,f):
"""Generate a 2D grid of size (w,h) by evaluating f(x,y) for every x,y coordinate"""
ay = []
for y in range(0,h):
ax = []
for x in range(0,w):
ax += [f(x,y)]
ay += [ax]
return ay
w = h = 8
curveVar = xr.DataArray(
np.random.randn(8, 8),
dims=("x", "y"),
coords={
"x_coord": xr.DataArray(gen2d(8,8,lambda x,y: cos(y/(h-1)*pi) * (x+(w+1))), dims=("x", "y")),
"y_coord": xr.DataArray(gen2d(8,8,lambda x,y: sin(y/(h-1)*pi) * (x+(w+1))), dims=("x", "y"))
})
data.AddXArrayData("variable_name", curveVar)
# %%
# Create a renderer for the data
ren = data.NewRenderer(renderer.WireFrameRenderer)
ren.SetVariableName("variable_name")
# %%
# Show the rendering
ses.GetCamera().ViewAll()
ses.Show()
# %%
ses.DeleteRenderer(ren)
# %% [md]
#
# Below we generate an XArray variable that consists of a curvilinear 3D grid.
#
# %%
def gen3d(w,h,d,f):
"""Generate a 3D grid of size (w,h,d) by evaluating f(x,y,z) for every x,y,z coordinate"""
az = []
for z in range(0,d):
ay = []
for y in range(0,h):
ax = []
for x in range(0,w):
ax += [f(x,y,z)]
ay += [ax]
az += [ay]
return az
w = h = d = 8
curveVar = xr.DataArray(
gen3d(w,h,d,lambda x,y,z: z*w*h + y*w + x),
dims=("x", "y", "z"),
coords={
"x_coord": xr.DataArray(gen2d(w,h,lambda x,y: x), dims=("x", "y")),
"y_coord": xr.DataArray(gen2d(w,h,lambda x,y: y), dims=("x", "y")),
"z_coord": xr.DataArray(gen3d(w,h,d,lambda x,y,z: z), dims=("x", "y", "z")),
})
data.AddXArrayData("variable_3d", curveVar)
# %%
# Create a renderer for the data
ren = data.NewRenderer(renderer.WireFrameRenderer)
ren.SetVariableName("variable_3d")
# %%
# Show the rendering
ses.GetCamera().ViewAll()
ses.Show()
================================================
FILE: apps/pythonapi/setup.py
================================================
from distutils.core import setup
from pathlib import Path
import itertools
import sys, os
import cmake
print("========================================================================")
import sys; print(f"Python Version = {sys.version.split(' ')[0]} ({sys.prefix})")
if cmake.BUILD_TYPE.lower() != "release":
print("WARNING building wheel with non-release build")
print("========================================================================")
def GenerateSetupDataFilesFormattedListForDir(root, prefix=""):
root = Path(root)
prefix = Path(prefix)
files = filter(Path.is_file, root.glob('**/*'))
files = sorted(files, key=lambda f:f.parent)
ret = [(str(prefix / g.relative_to(root)), [str(p) for p in f]) for g, f in itertools.groupby(files, lambda f:f.parent)]
return ret
def PrintSetupDataFilesFormattedList(l):
for target, files in l:
print(target)
for f in files:
print(f"\t{f}")
cpackComponents = list(Path(cmake.CPACK_STAGING_DIR).iterdir())
cpackFormattedFiles = [GenerateSetupDataFilesFormattedListForDir(c, prefix='vapor') for c in cpackComponents]
cpackFormattedFiles = list(itertools.chain(*cpackFormattedFiles))
def IsCondaBuild():
if os.environ.get('CONDA_BUILD', None) == '1': return True
# if 'conda-bld' in sys.executable.lower(): return True
# if 'conda-bld' in os.environ.get('PIP_CACHE_DIR', None).lower(): return True
return False
install_requires=[
'cppyy',
'xarray',
'scipy', # Required for NetCDF support in xarray
'matplotlib',
'ipython',
'jupyter',
]
# Disable pip requirements for conda build
# Otherwise, conda needs to have these packages in its build requirements
# and they need to be installed during build-time otherwise pip will try to
# install them and break
if IsCondaBuild():
install_requires = []
setup(name='vapor',
version=cmake.VERSION_STRING,
description='NCAR Vapor Python Interface',
long_description=f"Detailed Version: {cmake.VERSION_STRING_FULL}.{cmake.BUILD_TYPE}",
author='Vapor Team',
author_email='vapor@ucar.edu',
url='https://www.vapor.ucar.edu',
packages=['vapor'],
install_requires=install_requires,
# Duplicates symlinked libraries (adds ~200MB to install)
# Based on python mailing lists, this is intentional and currently the only option (https://discuss.python.org/t/symbolic-links-in-wheels/1945/12)
data_files=cpackFormattedFiles,
# data_files=[
# ('vapor/lib', list(map(str, chain(cmake_lib_dir.glob("*.dylib"), cmake_lib_dir.glob("*.so"))))),
# ('vapor/doc', [str(cmake_doc_dir)]),
# ('vapor', cmakeInstallFiles),
# ],
# package_data = {'vapor': [f"{cmake_lib_dir}/*.dylib"]},
# package_data = {'': ["/Users/stasj/Work/vapor-xcode/lib/Debug/libvdc.dylib"]},
# package_data = {'': ["*.dat", "test_folder/*.dat"]},
)
================================================
FILE: apps/pythonapi/tests/CanvasStreamTest.ipynb
================================================
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "1fccf099",
"metadata": {},
"outputs": [],
"source": [
"import example_utils\n",
"from vapor import widget\n",
"\n",
"w = widget.CanvasStreamWidget(debug=True)\n",
"w"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a525e1bd",
"metadata": {},
"outputs": [],
"source": [
"w"
]
}
],
"metadata": {
"jupytext": {
"cell_metadata_filter": "region_name,-all",
"main_language": "python",
"notebook_metadata_filter": "-all"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
================================================
FILE: apps/pythonapi/tests/bld.bat
================================================
"%PYTHON%" setup.py install
if errorlevel 1 exit 1
================================================
FILE: apps/pythonapi/tests/build.sh
================================================
$PYTHON setup.py install
================================================
FILE: apps/pythonapi/tests/cppyy-syntax-test.py
================================================
import cppyy
from ctypes import c_int
cppyy.cppdef("""
#include <string>
using std::string;
void p(string s) {
printf("CPP %s\\n", s.c_str());
}
void testVoid(void (*cb)(void)) {
printf("TEST VOID\\n");
cb();
}
void testRet(string (*cb)(void)) {
string s = cb();
printf("TEST RET = %s\\n", s.c_str());
}
void testIn(string (*cb)(string)) {
string s = cb("CPP STR");
printf("TEST RET = %s\\n", s.c_str());
}
void testInConstRef(string (*cb)(const string &)) {
string s = cb("CPP STR");
printf("CONST TEST RET = %s\\n", s.c_str());
}
""")
# cppyy.gbl.p("hello")
def cb():
print("Python Callback")
return "<Python Return Value>"
def cb2(s):
print(f"Python Callback({s})")
# s = "d"
return f"<Python Return Value={s}>"
# raise FileNotFoundError
return None
cppyy.gbl.testVoid(cb)
cppyy.gbl.testRet(cb)
cppyy.gbl.testIn(cb2)
cppyy.gbl.testInConstRef(cb2)
exit()
cppyy.cppdef("""
void ref_int(int &a) {
a = 42;
}
#include <string>
using std::string;
void ref_str(string &s) {
s = "hello";
}
""")
a = c_int(3)
cppyy.gbl.ref_int(a)
print(a)
# does not work
# s = "bye"
# cppyy.gbl.ref_str(s)
# print(s)
s = cppyy.gbl.std.string("bye")
cppyy.gbl.ref_str(s)
print(s)
================================================
FILE: apps/pythonapi/tests/cppyy-test.py
================================================
import cppyy
cppyy.add_include_path('/Users/stasj/Work/vapor/apps/vapi')
cppyy.add_include_path('/Users/stasj/Work/vapor/include')
cppyy.add_include_path('/usr/local/VAPOR-Deps/2019-Aug/include/')
cppyy.load_library('/Users/stasj/Work/vapor-xcode/lib/Debug/libcommon.dylib')
# class Session:
# def __init__(self):
# print("New Session")
cppyy.include('vapor/Version.h')
vaporVersion = cppyy.gbl.Wasp.Version()
print(type(vaporVersion).__cpp_name__, "=", vaporVersion.GetVersionString())
cppyy.load_library('/Users/stasj/Work/vapor-xcode/lib/Debug/libvapi.dylib')
cppyy.include('vapor/MyPython.h')
cppyy.gbl.Wasp.MyPython.IsRunningFromPython = True
cppyy.include('GLContextProvider.h')
ctx = cppyy.gbl.GLContextProvider.CreateContext()
print("GL Version =", ctx.GetVersion())
cppyy.include('Session.h')
session = cppyy.gbl.Session()
session.Load("/Users/stasj/Work/sessions/time.vs3")
session.Render("/Users/stasj/Work/out-python-cppyy.png")
print("HERERRER ====")
exit(0)
================================================
FILE: apps/pythonapi/tests/meta.yaml
================================================
package:
name: vapor
version: "@VERSION_STRING@"
source:
path: .
requirements:
build:
- python
run:
- python=@Python_VERSION@
- numpy=@Python_NumPy_VERSION@
- cppyy
- xarray
- scipy # Required for NetCDF support in xarray
- matplotlib
- ipython
- jupyter
# Conda will try to compile every python file in the proejct by default
# Vapor has some misc python2 files left over which fail to compile
build:
skip_compile_pyc:
- "*.py"
about:
home: "https://www.vapor.ucar.edu"
================================================
FILE: apps/pythonapi/tests/module-data-test.py
================================================
import numpy as np
arr = np.arange(32**3, dtype=np.float32).reshape(32, 32, 32)
print("Type =", arr.dtype)
print(type(arr))
# exit(0)
from vapor import session, renderer, dataset, camera
ses = session.Session()
data = ses.OpenDataset(dataset.PYTHON, "dataset_name")
data.AddNumpyData("data_1", arr)
ren = data.NewRenderer(renderer.WireFrameRenderer)
ren.SetVariableName("data_1")
cam = ses.GetCamera()
# cam.ViewAll()
cam.LookAt((50, 50, 40), (16, 16, 16))
# cam.LookAt((3, 3, 2), (0.5, 0.5, 0.5))
ses.Render("out-data-test-1.png")
arr = np.arange(32**3*2, dtype=np.float32).reshape(32, 32*2, 32)
data.AddNumpyData("data_1", arr)
ren.SetVariableName("data_1")
ses.Render("out-data-test-2.png")
ren.SetEnabled(False)
arr = np.arange(32**2, dtype=np.float32).reshape(32, 32)
data.AddNumpyData("data_2d_1", arr)
ren = data.NewRenderer(renderer.TwoDDataRenderer)
ren.SetVariableName("data_2d_1")
ses.Render("out-data-test-3.png")
import xarray as xr
xrd = xr.open_dataset("/Users/stasj/Work/data/time/time_01.nc")
data.AddXArrayData("XR_Sphere", xrd.sphere)
ren.SetVariableName("XR_Sphere")
cam.ViewAll()
ses.Render("out-data-test-4.png")
def gen2d(w,h,f):
ay = []
for y in range(0,h):
ax = []
for x in range(0,w):
ax += [f(x,y)]
ay += [ax]
return ay
from math import cos, sin, pi
w = h = 8
curveVar = xr.DataArray(
np.random.randn(8, 8),
dims=("x", "y"),
coords={
"x_coord": xr.DataArray(gen2d(8,8,lambda x,y: cos(y/h*pi) * (x+(w+1))), dims=("x", "y")),
"y_coord": xr.DataArray(gen2d(8,8,lambda x,y: sin(y/h*pi) * (x+(w+1))), dims=("x", "y"))
})
data.AddXArrayData("XR_Curve", curveVar)
ren.SetVariableName("XR_Curve")
cam.ViewAll()
ses.Render("out-data-test-5.png")
================================================
FILE: apps/pythonapi/tests/module-test.py
================================================
from vapor import session, renderer, dataset, camera
ses = session.Session()
data = ses.OpenDataset(dataset.VDC, "/not/found/data.vdc")
print(f"Not found data = '{data}'")
# ses.Load("/Users/stasj/Work/sessions/time-empty.vs3")
# data = ses.GetDatasets()[0]
data = ses.OpenDataset(dataset.VDC, "/Users/stasj/Work/data/time/time.vdc")
ren = data.NewRenderer(renderer.TwoDDataRenderer)
# ren = ses.NewRenderer(renderer.TwoDDataRenderer, "time.vdc")
ren.SetEnabled(True)
ses.Render("out-python-cppyy.png")
ses.Show()
ren.SetRefinementLevel(3)
ren.SetCompressionLevel(3)
tf:renderer.TransferFunction = ren.GetPrimaryTransferFunction()
tf.LoadBuiltinColormap('Sequential/amp')
tf.SetOpacityList([1, 0, 1])
print(f"TF Mapping Range for {ren.GetVariableName()} is {tf.GetMinMapValue()} - {tf.GetMaxMapValue()}")
ses.SetTimestep(1)
ses.Render("out-python-cppyy-2.png")
ses.SetResolution(300,300)
ses.Save("out-session-time.vs3")
ses.Show()
#################################
# Another session
ses2 = session.Session()
maycontrol = ses2.OpenDataset(dataset.VDC, "/Users/stasj/Work/data/24Maycontrol.01/24Maycontrol.01.vdc")
vol = maycontrol.NewRenderer(renderer.VolumeRenderer)
print(f"Volume var name = '{vol.GetVariableName()}'")
cam = ses2.GetCamera()
cam.LookAt((-2.5, -2.5, 20), (-2.5,-2.5, 2.5))
ses2.Render("out-python-cppyy-maycontrol.png")
ses2.Save("out-session-dbz.vs3")
================================================
FILE: apps/pythonapi/tests/syntax-test.py
================================================
# import functools
#
# class Inner():
# def __init__(self):
# self.x = 0
#
# def SetX(self, x):
# self.x = x
#
# def GetX(self):
# return self.x
#
# class Outer():
# def __init__(self):
# self.inner = Inner()
#
# expose = ["SetX", "GetX"]
# for f in expose:
#
# def wrapper(func):
# @functools.wraps(func)
# def wrapper_do_twice(*args, **kwargs):
# return func(*args, **kwargs)
# return wrapper_do_twice
# # return func(*args, **kwargs)
#
# func = getattr(Inner, f)
#
# setattr(Outer, f, wrapper(func))
# print("setattr(Outer, {}, {}".format(f, wrapper))
# # setattr(Outer, "SetX", lambda self, x: self.inner.SetX(x))
# # setattr(Outer, "GetX", lambda self: self.inner.GetX())
# # setattr(self, f, getattr(self.inner, f))
#
# out = Outer()
# help(out)
#
# out.inner.SetX(3)
# print(out.inner.GetX())
#
# out.SetX(5)
# print(out.GetX())
#############################################################
import functools
print("============ Define Classes ============")
def log(func):
@functools.wraps(func)
def wrapper_debug(*args, **kwargs):
args_repr = [repr(a) for a in args] # 1
kwargs_repr = [f"{k}={v!r}" for k, v in kwargs.items()] # 2
signature = ", ".join(args_repr + kwargs_repr) # 3
value = func(*args, **kwargs)
print(f"Call {func.__name__}({signature}) = {value!r}")
return value
return wrapper_debug
# class Params():
# def Other(self):
# print("Other")
#
# class SubParams(Params):
# def __init__(self):
# self.en = False
# def SetEnabled(self, e):
# self.en = e
# def IsEnabled(self):
# return self.en
#
# def funcWrapper(func):
# @functools.wraps(func)
# def f(self, *args, **kwargs):
# ret = func(self._params, *args, **kwargs)
# print(f"Call {func.__name__}({', '.join([repr(a) for a in args[1:]])}) = {ret!r}", )
# return ret
# return f
#
# class ParamsWrapperMeta(type):
# def __init__(cls, *args, **kwargs):
# super().__init__(*args, **kwargs)
#
# for f in cls._wrap:
# print("wrap", f)
# func = getattr(Params, f)
# setattr(cls, f, funcWrapper(func))
#
# class ParamsWrapperMeta2(type):
# @log
# def __new__(cls, clsname, bases, clsdict):
# wrapped = {f:funcWrapper(getattr(Params, f)) for f in clsdict['_wrap']}
# clsdict.update(wrapped)
#
# # for f in clsdict['_wrap']:
# # print("wrap", f)
# # func = getattr(Params, f)
# # clsdict.update({f:funcWrapper(func)})
#
# return type.__new__(cls, clsname, bases, dict(clsdict))
#
# @log
# def __init__(cls, *args, **kwargs):
# super().__init__(*args, **kwargs)
#
# class ParamsWrapper(object, metaclass=ParamsWrapperMeta2):
# _paramsCls = Params
# _wrap = []
#
# def __init__(self, p:Params):
# self._params = p
# class Renderer(ParamsWrapper):
# _paramsCls = SubParams
# _wrap = ["SetEnabled", "IsEnabled"]
# print("============ Test Script ============")
# help(Renderer)
# print([f for f in dir(Renderer) if not f.startswith('__')])
# r = Renderer(Params())
# r.SetEnabled(True)
# r.IsEnabled()
# print("r._params.en =", r._params.en)
import re
class ParentClass():
def printTest(self):
"""Prints test"""
print(f"Test from {self.__class__.__name__}")
class ChildClass(ParentClass):
def printTest(self):
"""Overloaded prints test"""
print(f"Overloaded test from {self.__class__.__name__}")
def printTest2(self):
"""Prints test 2"""
print(f"Test 2 from {self.__class__.__name__}")
from vapor.smartwrapper import *
class ParentWrapped(SmartWrapper, wrap=ParentClass):
printTest = FuncWrapper()
# a, b = [FuncWrapper]*2
# c, d, *_ = FuncWrappers()
pass
class ChildWrapped(ParentWrapped, wrap=ChildClass):
_ = FuncWrapperWrapAll()
printTestRenamed = FuncWrapperRename("printTest")
# printTest2 = FuncWrapper()
print()
print("============ Test Script ============")
pc = ParentClass()
cc = ChildClass()
pw = ParentWrapped(pc)
cw = ChildWrapped(cc)
pc.printTest()
cc.printTest()
pw.printTest()
cw.printTest()
cw.printTestRenamed()
# help(ChildWrapped)
================================================
FILE: apps/pythonapi/tests/test.py
================================================
# jupytext --to notebook test.py
# jupyter nbconvert --to notebook --inplace --execute test.ipynb
#
# cat test.py | jupytext --to ipynb | jupyter nbconvert --stdin --execute --no-input --to html --output notebook.html
# jupyter nbconvert --to html --no-input --execute annotation_example.ipynb
# jupyter nbconvert --to pdf --execute annotation_example.ipynb
import numpy as np
from math import *
from vapor import session, renderer, dataset, camera, transferfunction, utils
# help(renderer.VolumeRenderer)
ses = session.Session()
data = ses.CreatePythonDataset()
from inspect import signature
def sample(f, ext=None, shape=None):
if not shape: shape = [64]*len(signature(f).parameters)
if not ext: ext = [(0,1)]*len(signature(f).parameters)
assert len(signature(f).parameters) == len(shape) and len(shape) == len(ext)
d = []
for i in np.ndindex(*reversed(shape)):
d.append(f(*[v/s*(t-f)+f for v,s,(f,t) in zip(reversed(i), shape, ext)]))
return np.asarray(d, dtype=np.float32).reshape(shape)
# arr = sample(lambda x,y: sin(6*x)+sin(6*y))
arr = sample(lambda x,y: (x+y)*np.exp(-5.0*(x**2+y**2)), ext=[(-1,1)]*2)
data.AddNumpyData("data_2d_1", arr)
ren = data.NewRenderer(renderer.TwoDDataRenderer)
ren.SetVariableName("data_2d_1")
ren.GetColorbarAnnotation().SetEnabled(True)
# utils.ShowHistogram(ses, ren)
# utils.ShowHistogram(ses, ren, bins=5)
cam = ses.GetCamera()
cam.ViewAll()
tf = ren.GetPrimaryTransferFunction()
# tf.SetColorNormalizedHSVControlPoints([(0, (0,1,1)), (1, (0.5,1,1))])
# tf.SetColorNormalizedHSVControlPoints([(h/20, (h/20,1,1)) for h in range(0,20)])
# tf.SetColorNormalizedRGBControlPoints([(0, (1,0,0)), (1, (0,1,0))])
tf.SetColorRGBList([(1,0,0), (0,1,0), (0,0,1)])
tf.LoadBuiltinColormap("Sequential/matter")
# tf.ShowMatPlotLibColorbar()
# exit()
ses.Show()
ren.SetEnabled(False)
# ses.Render("out-data-test-3.png")
# ren = data.NewRenderer(renderer.ImageRenderer)
# for map in ren.ListBuiltinMaps():
# ren.SetBuiltinMap(map)
# ses.Show()
# ses.DeleteRenderer(ren)
ren = data.NewRenderer(renderer.FlowRenderer)
ren.SetFieldVariableNames(["data_2d_1"]*2)
ren.SetRenderType(ren.RenderType.RenderTypeSamples)
ren.SetRenderRadiusScalar(5)
ren.SetRenderGeom3D(True)
ren.SetGridNumOfSeeds([5,5])
ses.Show()
ses.DeleteRenderer(ren)
ren = data.NewRenderer(renderer.BarbRenderer)
ren.SetFieldVariableNames(["data_2d_1"]*2)
ren.GetRenderRegion().SetExtents([5,5],[40,40])
ren.SetXBarbsCount(3)
ses.Show()
ses.DeleteRenderer(ren)
ren = data.NewRenderer(renderer.ContourRenderer)
ren.SetVariableName("data_2d_1")
dmin = ren.GetPrimaryTransferFunction().GetMinMapValue()
dmax = ren.GetPrimaryTransferFunction().GetMaxMapValue()
isos = [dmin + (dmax-dmin)*i/40 for i in range(40)]
ren.SetIsoValues(isos)
ses.Show()
# ses.DeleteRenderer(ren)
# arr = sample(lambda x,y,z: sin(10*x)+sin(10*y)+sin(10*z))
arr = sample(lambda x,y,z: (x+y+z)*np.exp(-5.0*(x**2+y**2+z**2)), ext=[(-1,1)]*3)
data.AddNumpyData("data_3d_1", arr)
ren = data.NewRenderer(renderer.VolumeRenderer)
ren.SetVariableName("data_3d_1")
tf = ren.GetPrimaryTransferFunction()
# tf.SetOpacityList([0,0,1])
tf.SetOpacityList([1,0,1])
# cam.ViewAll()
cam.LookAt((-120,120,120), (32,32,32))
ses.Show()
ren.SetEnabled(False)
ren:renderer.VolumeIsoRenderer = data.NewRenderer(renderer.VolumeIsoRenderer)
print("Iso Algo=", ren.GetAlgorithm())
# ren.SetIsoValues([1.8])
ren.SetIsoValues([-0.1, 0.1])
ses.Show()
ses.DeleteRenderer(ren)
sa = ses.GetAxisAnnotations()
sa.SetAxisAnnotationEnabled(True)
ren:renderer.SliceRenderer = data.NewRenderer(renderer.SliceRenderer)
ses.Show()
ses.DeleteRenderer(ren)
================================================
FILE: apps/pythonapi/vapor/__init__.py
================================================
from . import link
import sys
import hdf5plugin
link.include('vapor/Version.h')
vaporVersion = link.Wasp.Version()
print("Vapor", vaporVersion.GetVersionString())
print(f"Python {sys.version.split(' ')[0]} ({sys.prefix})")
link.include('vapor/Log.h')
link.Log.InfoLevelEnabled = False
link.include('vapor/Session.h')
link.Session.SetWaspMyBaseErrMsgFilePtrToSTDERR()
from . import config
link.include('vapor/ResourcePath.h')
link.Wasp.RegisterResourceFinder(config.GetResourceSafe)
link.include('vapor/MyPython.h')
link.Wasp.MyPython.IsRunningFromPython = True
link.include('vapor/RenderManager.h')
ctx = link.RenderManager.GetOSGLContext()
print("OpenGL", ctx.GetVersion())
================================================
FILE: apps/pythonapi/vapor/animation.py
================================================
import os
import cv2
import tempfile
from base64 import b64encode
from io import BytesIO
from .session import *
class Animation:
def __init__(self, ses:Session):
self._ses = ses
self._frames = []
def CaptureFrame(self):
frame = self._ses.RenderToImage()
if self._frames and frame.size != self._frames[0].size:
raise ValueError(f"Frame resolution {frame.size} is different from animation resolution {self._frames[0].size}")
self._frames.append(frame)
def ShowInteractive(self):
self.__requireIPython()
from IPython.display import display
import ipywidgets as widgets
# displayHandle = display(None, display_id=True)
# def callback(frame):
# displayHandle.update(self._frames[frame])
play = widgets.Play(
value=0,
min=0,
max=len(self._frames) - 1,
step=1,
interval=80,
# _repeat=True,
)
def PILtoJPG(img):
buf = BytesIO()
img.save(buf, format="jpeg")
return buf.getvalue()
imageWidget = widgets.Image(
value=PILtoJPG(self._frames[0]),
format='jpg',
width=self._frames[0].size[0],
height=self._frames[0].size[1]
)
# def callback(frame):
# imageWidget.value = frame
# return imageWidget
frameSlider = widgets.IntSlider(0, 0, len(self._frames) - 1)
widgets.jslink((play, 'value'), (frameSlider, 'value'))
intervalSlider = widgets.IntSlider(80, 30, 1000)
widgets.jslink((intervalSlider, 'value'), (play, 'interval'))
intervalWidget = widgets.HBox([widgets.Label("Animation Interval"), intervalSlider])
# output = widgets.interactive_output(callback, {'frame': frameSlider})
def frameChanged(change):
imageWidget.value = PILtoJPG(self._frames[change.new])
frameSlider.observe(frameChanged, names='value')
w = widgets.VBox([imageWidget, widgets.HBox([play, frameSlider]), intervalWidget])
display(w)
def Show(self, framerate=15):
self.__requireIPython()
import IPython.display
f = tempfile.NamedTemporaryFile(suffix='.mp4', delete=False)
path = f.name
f.close()
self.SaveMP4(path, framerate)
with open(path, "rb") as f:
data = f.read()
IPython.display.display(IPython.display.Video(data=data, embed=True, mimetype="video/mp4"))
os.unlink(path)
def SaveMP4(self, path:str, framerate=15):
fourcc = cv2.VideoWriter_fourcc(*'avc1')
video = cv2.VideoWriter(path, fourcc, framerate, self._frames[0].size)
for i in self._frames:
video.write(cv2.cvtColor(np.array(i), cv2.COLOR_RGB2BGR))
video.release()
if config.IsRunningFromIPython():
import IPython.display
return IPython.display.FileLink(path)
def __requireIPython(self):
if not config.IsRunningFromIPython():
raise RuntimeError(f"{self.__class__}.Show() only supported within an IPython environment")
================================================
FILE: apps/pythonapi/vapor/annotations.py
================================================
from . import link
from .params import *
link.include('vapor/ColorbarPbase.h')
class ColorbarAnnotation(ParamsWrapper, wrap=link.VAPoR.ColorbarPbase):
_wrap = FuncWrapperStrList("""
GetCornerPosition
SetCornerPosition
GetSize
SetSize
GetTitle
SetTitle
IsEnabled
SetEnabled
GetFontSize
SetFontSize
GetNumTicks
SetNumTicks
GetNumDigits
SetNumDigits
GetBackgroundColor
SetBackgroundColor
""")
_tags = ParamsTagWrapperList("""
bool UseScientificNotationTag
""")
link.include('vapor/AnnotationParams.h')
class SceneAnnotation(ParamsWrapper, wrap=link.VAPoR.AnnotationParams):
_wrap = FuncWrapperStrList("""
GetDomainColor
SetDomainColor
GetUseDomainFrame
SetUseDomainFrame
GetUseRegionFrame
SetUseRegionFrame
GetRegionColor
GetRegionColor
GetBackgroundColor
SetBackgroundColor
GetCurrentAxisDataMgrName
SetCurrentAxisDataMgrName
SetAxisFontSize
GetAxisFontSize
GetTimeLLX
SetTimeLLX
GetTimeLLY
SetTimeLLY
GetTimeColor
SetTimeColor
GetTimeType
SetTimeType
GetTimeSize
SetTimeSize
GetAxisArrowEnabled
GetAxisArrowSize
GetAxisArrowXPos
GetAxisArrowYPos
SetAxisArrowEnabled
SetAxisArrowSize
SetAxisArrowXPos
SetAxisArrowYPos
""")
_tags = ParamsTagWrapperList("""
""")
class TimeAnnotationType:
NoAnnotation = 0
Timestep = 1
User = 2
Formatted = 3
link.include('vapor/AxisAnnotation.h')
class AxisAnnotation(ParamsWrapper, wrap=link.VAPoR.AxisAnnotation):
_wrap = FuncWrapperStrList("""
SetAxisAnnotationEnabled
GetAxisAnnotationEnabled
GetAxisBackgroundColor
GetAxisBackgroundColor
SetAxisBackgroundColor
GetAxisColor
SetAxisColor
SetNumTics
GetNumTics
SetAxisOrigin
GetAxisOrigin
SetMinTics
GetMinTics
SetMaxTics
GetMaxTics
SetTicSize
GetTicSize
SetXTicDir
GetXTicDir
SetYTicDir
GetYTicDir
SetZTicDir
GetZTicDir
SetTicDirs
GetTicDirs
GetTicWidth
SetTicWidth
GetAxisTextHeight
SetAxisTextHeight
GetAxisDigits
SetAxisDigits
SetLatLonAxesEnabled
GetLatLonAxesEnabled
GetShowAxisArrows
SetShowAxisArrows
SetAxisFontSize
GetAxisFontSize
""")
_tags = ParamsTagWrapperList("""
""")
================================================
FILE: apps/pythonapi/vapor/camera.py
================================================
from . import link
from .common import *
import numpy as np
link.include('vapor/ControlExecutive.h')
link.include("vapor/NavigationUtils.h")
NavigationUtils = link.NavigationUtils
ViewpointParams = link.ViewpointParams
class Camera():
__axisDict = {
'+X': 2,
'+Y': 3,
'+Z': 4,
'-X': 5,
'-Y': 6,
'-Z': 7
}
def __init__(self, ce):
self.ce: link.VAPoR.ControlExec = ce
def LoadFromFile(self, path:str):
"""Save camera settings to file"""
ViewpointParams.SetCameraFromFile(NavigationUtils.GetActiveViewpointParams(self.ce), path)
def SaveToFile(self, path:str):
"""Load camera settings from file"""
ViewpointParams.SaveCameraToFile(NavigationUtils.GetActiveViewpointParams(self.ce), path)
def AlignView(self, axis:str):
"""
Align camera looking down an axis
Axis format: [+-][XYZ]
"""
viewNum = self.__axisDict[axis.upper()]
NavigationUtils.AlignView(self.ce, viewNum)
def ViewAll(self):
"""Places the camera above the dataset looking down so that it is visible in its entirety.
This is the default view when opening a new dataset."""
NavigationUtils.ViewAll(self.ce)
def LookAt(self, camera_position:Vec3, target:Vec3, up:Vec3 = (0, 0, 1)):
"""Moves the camera to camera_position facing target. up can be used to adjust the camera roll."""
NavigationUtils.LookAt(self.ce, camera_position, target, up)
def Zoom(self, fractionOfDistanceToTarget:float):
"""Moves the camera a fractionOfDistanceToTarget with positive zooming in and negative zooming out."""
tgt = self.GetTarget()
pos = self.GetPosition()
dist = np.linalg.norm(tgt - pos)
newDist = dist * (1 - fractionOfDistanceToTarget)
newPos = tgt + ((pos-tgt)/dist * newDist)
self.SetPosition(newPos)
def GetPosition (self): return np.array(NavigationUtils.GetCameraPosition(self.ce))
def GetDirection(self): return np.array(NavigationUtils.GetCameraDirection(self.ce))
def GetUp (self): return np.array(NavigationUtils.GetCameraUp(self.ce))
def GetTarget (self): return np.array(NavigationUtils.GetCameraTarget(self.ce))
def SetPosition (self, v:Vec3): NavigationUtils.SetCameraPosition(self.ce, v)
def SetDirection(self, v:Vec3): NavigationUtils.SetCameraDirection(self.ce, v)
def SetUp (self, v:Vec3): NavigationUtils.SetCameraUp(self.ce, v)
def SetTarget (self, v:Vec3): NavigationUtils.SetCameraTarget(self.ce, v)
def __GUIStateParams(self) -> link.GUIStateParams:
pm = self.ce.GetParamsMgr()
gsp = pm.GetParams(link.GUIStateParams.GetClassType())
return gsp
def TrackMovingDomain(self, on=True):
"""Camera should follows the moving domain"""
gsp = self.__GUIStateParams()
gsp.SetValueLong(gsp.MovingDomainTrackCameraTag, "", on)
print(f"{gsp.MovingDomainTrackCameraTag} = {bool(gsp.GetValueLong(gsp.MovingDomainTrackCameraTag, 0))}")
def TrackMovingDomainRenderRegions(self, on=True):
"""Renderer regions will be tracked relative to the moving domain"""
gsp = self.__GUIStateParams()
gsp.SetValueLong(gsp.MovingDomainTrackRenderRegionsTag, "", on)
================================================
FILE: apps/pythonapi/vapor/cmake.py
================================================
from pathlib import Path
SOURCE_DIR = "@PROJECT_SOURCE_DIR@"
BINARY_DIR = "@CMAKE_BINARY_DIR@"
THIRD_PARTY_DIR = "@THIRD_PARTY_DIR@"
RELEASE = "@CMAKE_BUILD_TYPE@".lower() == "release"
VAPI_COMPILE_DEFS = """@VAPI_COMPILE_DEFS@"""
GLOBAL_COMPILE_DEFS = """@GLOBAL_COMPILE_DEFS@"""
================================================
FILE: apps/pythonapi/vapor/common.py
================================================
Vec3 = tuple[float, float, float]
================================================
FILE: apps/pythonapi/vapor/config.py
================================================
import sys, os
import site
import re
from pathlib import Path
from . import cmake
sourcePaths = [
cmake.SOURCE_DIR,
cmake.SOURCE_DIR + "/lib/osgl",
cmake.SOURCE_DIR + "/lib/osgl/glad",
cmake.BINARY_DIR,
cmake.THIRD_PARTY_DIR,
]
# Files installed using setup(data_files) are placed in one of the following two locations:
# sys.prefix for system installations
# site.USER_BASE for user installations
# Conda installs files using setup(data_files) in a different location than pip.
# Conda installs them in the module root like package_data
installPaths = [
site.USER_BASE,
sys.prefix,
]
installPaths = [Path(p)/'vapor' for p in installPaths]
modulePaths = [Path(__file__).parent]
condaPaths = [os.getenv('CONDA_PREFIX', "/")]
def PathExists(path):
try:
return path.exists()
except PermissionError:
return False
roots = sourcePaths + installPaths + modulePaths + condaPaths
allRoots = roots.copy()
roots = map(Path, roots)
roots = filter(PathExists, roots)
roots = [*roots]
# print("Resource Roots:\n\t" + "\n\t".join(map(str, roots)))
if not roots:
print("Error: Could not find any valid resource paths from", allRoots)
quit(1)
def GetAllResources(relPath):
"""For source builds where there can be, for example, multiple lib dirs"""
ret = []
for root in roots:
if (root / relPath).exists():
ret.append(str(root / relPath))
if ret:
return ret
raise FileNotFoundError
def GetResource(relPath):
for root in roots:
if (root / relPath).exists():
return str(root / relPath)
raise FileNotFoundError
return None
def GetResourceSafe(relPath):
relPath = str(relPath) # If called from C++ this may be something other than a python str
ret = ""
try: ret = GetResource(relPath)
except Exception: ret = ""
if ret == None: ret = ""
return ret
def GetDoxygenRoot():
try: return GetResource('share/doc/xml')
except FileNotFoundError: pass
try: return GetResource('doc/xml')
except FileNotFoundError: pass
return None
def GetLibraryDirs():
return GetAllResources('lib')
def GetIncludeDirs():
return GetAllResources('include')
def GetCompileDefinitions(debug=False):
cmakeDefLists = [
cmake.VAPI_COMPILE_DEFS,
cmake.GLOBAL_COMPILE_DEFS,
]
cmakeDefLists = filter(lambda x: x and not x.endswith('-NOTFOUND'), cmakeDefLists)
cmakeDefList = ';'.join(cmakeDefLists)
defs = cmakeDefList.split(';')
defs = filter(None, defs)
cmds = ['#define ' + ' '.join(filter(bool, re.match(r'(\w+)=?(.*)', d).groups())) for d in defs]
if debug:
print('\n'.join([f"{d} -> '{s}'" for d,s in zip(defs, cmds)]))
code = '\n'.join(cmds)
return code
def IsRunningFromIPython():
try:
__IPYTHON__
return True
except NameError:
return False
def IsRunningFromMarimo():
try:
import marimo as mo
return mo.app_meta().mode in ("edit", "run")
except:
return False
def IsRunningFromNotebook():
return IsRunningFromIPython() or IsRunningFromMarimo()
================================================
FILE: apps/pythonapi/vapor/cppyyDoxygenWrapper.py
================================================
import xml.etree.ElementTree as ET
import functools
from . import config
class CPPYYDoxygenWrapperMeta(type):
__doxygenRootPath = config.GetDoxygenRoot()
@classmethod
@functools.cache
def __GetDoxgenRoot(cls) -> ET.Element:
if not cls.__doxygenRootPath:
print("WARNING DOxygen not found")
return None
root = ET.parse(cls.__doxygenRootPath+'/index.xml').getroot()
return root
@classmethod
@functools.cache
def __GetClassIndexNode(cls, name:str) -> ET.Element:
root: ET.Element = cls.__GetDoxgenRoot()
if not root: return None
return root.find(f"./compound/name[.='{name}']/..")
@classmethod
@functools.cache
def __GetClassRoot(cls, name:str) -> ET.Element:
classIndexNode = cls.__GetClassIndexNode(name)
if not classIndexNode: return None
relPath = classIndexNode.get('refid') + '.xml'
absPath = f"{cls.__doxygenRootPath}/{relPath}"
try:
root = ET.parse(absPath).getroot()
except IOError:
return None
return root
@classmethod
def __GetMemberNodes(cls, className:str, memberName:str) -> list[ET.Element]:
"""Returns list for overloaded functions"""
root: ET.Element = cls.__GetClassRoot(className)
if not root: return None
return root.findall(f"./compounddef/sectiondef/memberdef/name[.='{memberName}']/..")
@classmethod
def __ParseDescriptionParameterList(cls, plist: ET.Element) -> str:
return " ".join([t.strip() for t in plist.itertext() if t.strip()]).replace("\n","")
@classmethod
def __RenderParameterListSection(cls, title:str, kind:str, allLists:list[ET.Element]):
ret = ""
kindLists = [pl for pl in allLists if pl.get("kind") == kind]
if kindLists:
ret += f"\n{title}\n"
for l in kindLists:
ret += " " + cls.__ParseDescriptionParameterList(l)
return ret
@classmethod
def __ParseDescriptionParagraph(cls, para: ET.Element, parameterLists: list[ET.Element] = []) -> str:
if para.tag == "parameterlist" or (para.tag == "simplesect" and para.get("kind")):
parameterLists.append(para)
return ""
text = ""
if para.text:
text += para.text.strip()
for e in para:
ret = cls.__ParseDescriptionParagraph(e, parameterLists)
if ret.strip():
text += " " + ret
if para.tail and para.tail.strip():
text += " " + para.tail.strip()
return text
@classmethod
def __ParseMemberDetailedDescription(cls, member: ET.Element) -> str:
ddNode = member.find('detaileddescription')
paragraphs = ddNode.findall('para')
parameterLists: list[ET.Element] = []
parsedParas = [cls.__ParseDescriptionParagraph(p, parameterLists) for p in paragraphs]
ret = "\n".join([" "+p for p in parsedParas if p])
if parameterLists:
ret += cls.__RenderParameterListSection("Parameters", "param", parameterLists)
ret += cls.__RenderParameterListSection("Returns", "retval", parameterLists)
ret += cls.__RenderParameterListSection("See Also", "see", parameterLists)
return ret
@classmethod
def __CleanFunctionDefinition(cls, ds: str) -> str:
ds = ds.removeprefix("virtual ")
ds = ds.removesuffix(" const")
return ds
@classmethod
def __GetDocumentationForMemberNode(cls, node: ET.Element) -> str:
if node.get("kind") == "function":
return cls.__GetDocumentationForFunctionNode(node)
elif node.get("kind") == "variable":
return cls.__GetDocumentationForVariableNode(node)
@classmethod
def __GetDocumentationForFunctionNode(cls, node: ET.Element) -> str:
name = node.find('name').text
definition = node.find('definition').text
args = node.find('argsstring').text
fullDefinition = cls.__CleanFunctionDefinition(definition+args)
detailedDescription = cls.__ParseMemberDetailedDescription(node)
return f"""
{fullDefinition}
{detailedDescription}
""".strip()
@classmethod
def __GetDocumentationForVariableNode(cls, node: ET.Element) -> str:
briefdescription = cls.__ParseClassDescription(node.find('briefdescription'))
detaileddescription = cls.__ParseClassDescription(node.find('detaileddescription'))
return f"""
{briefdescription}
{detaileddescription}
""".strip()
@classmethod
def __GetFunctionDocumentation(cls, pCls:type, func) -> str:
name = getattr(func, "__doxygen_name__",func.__name__)
# if hasattr(func, "__doxygen_name__"):
nodes = cls.__GetMemberNodes(pCls.__cpp_name__, name)
if not nodes:
# DOxygen does not inherit documentation so base classes need to be recursively queried
if pCls.__base__ and cls.__GetClassRoot(pCls.__base__.__cpp_name__):
return cls.__GetFunctionDocumentation(pCls.__base__, func)
return func.__doc__
return "\n\n".join([cls.__GetDocumentationForMemberNode(node) for node in nodes])
@classmethod
def __ParseClassDescription(cls, ddNode: ET.Element) -> str:
paragraphs = ddNode.findall('para')
parameterLists: list[ET.Element] = []
parsedParas = [cls.__ParseDescriptionParagraph(p, parameterLists) for p in paragraphs]
ret = "\n".join([" " + p for p in parsedParas if p])
return ret
@classmethod
def __GetClassDocumentation(cls, pCls) -> str:
className = pCls.__cpp_name__
root: ET.Element = cls.__GetClassRoot(className)
if not root: return None
root = root.find('compounddef')
if not root: return None
briefdescription = cls.__ParseClassDescription(root.find('briefdescription'))
detaileddescription = cls.__ParseClassDescription(root.find('detaileddescription'))
return f"""
Wraps {className}
{briefdescription}
{detaileddescription}
""".strip()
@classmethod
def _MakeFunctionWrapper(cls, pCls, func):
@functools.wraps(func)
def f(self, *args, **kwargs):
ret = func(self, *args, **kwargs)
return ret
f.__doc__ = cls.__GetFunctionDocumentation(pCls, func)
return f
def __new__(cls, clsname, bases, clsdict:dict, wrap:type=None):
if wrap:
clsdict['__doc__'] = cls.__GetClassDocumentation(wrap)
return super(CPPYYDoxygenWrapperMeta, cls).__new__(cls, clsname, bases, clsdict)
================================================
FILE: apps/pythonapi/vapor/dataset.py
================================================
from . import link
from .smartwrapper import *
from .renderer import *
from .transform import *
import numpy as np
import xarray as xr
link.include('vapor/PythonDataMgr.h')
link.include('vapor/DCRAM.h')
link.include('vapor/XmlNode.h')
link.include('vapor/GUIStateParams.h')
VDC = "vdc"
WRF = "wrf"
CF = "cf"
MPAS = "mpas"
BOV = "bov"
DCP = "dcp"
UGRID = "ugrid"
PYTHON = "ram"
class Dataset(SmartWrapper, wrap=link.VAPoR.DataMgr):
_wrap = FuncWrapperStrList("""
GetDimensionNames
GetDimensionLength
GetDataVarNames
GetCoordVarNames
GetTimeCoordVarName
GetVarGeometryDim
GetVarTopologyDim
GetVarCoordVars
GetNumTimeSteps
IsTimeVarying
GetMeshNames
GetMesh
GetDimLens
""")
def __init__(self, dataMgr:link.VAPoR.DataMgr, id:str, ses):
super().__init__(dataMgr)
self.id = id
self.ses = ses
def NewRenderer(self, Class: Renderer) -> Renderer:
return self.ses.NewRenderer(Class, self.id)
def GetName(self):
return str(self.id)
def __str__(self):
output = []
# Dataset Name
output.append(f"Dataset: {self.GetName()}")
# Dimensions
output.append("Dimensions:")
for dim in self.GetDimensionNames():
output.append(f" {dim}: {self.GetDimensionLength(dim, 0)}")
# Coordinates
coord_var_names = self.GetCoordVarNames()
if len(coord_var_names) > 0:
output.append(f"Coordinate Variable Names: {coord_var_names}")
# Variables
output.append("Data Variables:")
for var in self.GetDataVarNames():
output.extend([
f" {var}",
f"
gitextract__3medrpc/
├── .circleci/
│ ├── config.yml
│ └── downloadWin3rdParty.py
├── .clang-format
├── .editorconfig
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── documentation-request.md
│ │ └── enhancement-request.md
│ └── workflows/
│ └── release.yml
├── .gitignore
├── .readthedocs.yml
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── Contributing.md
├── LICENSE.txt
├── README.md
├── apps/
│ ├── CMakeLists.txt
│ ├── asciitf2vtf/
│ │ └── asciitf2vtf.cpp
│ ├── cf2vdc/
│ │ ├── CMakeLists.txt
│ │ └── cf2vdc.cpp
│ ├── cfvdccreate/
│ │ ├── CMakeLists.txt
│ │ └── cfvdccreate.cpp
│ ├── linuxlauncher/
│ │ ├── CMakeLists.txt
│ │ └── launcher.c
│ ├── ncdf2wasp/
│ │ ├── CMakeLists.txt
│ │ └── ncdf2wasp.cpp
│ ├── pythonapi/
│ │ ├── CMakeLists.txt
│ │ ├── cmake.py
│ │ ├── example_scripts/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── animation_example.py
│ │ │ ├── annotation_example.py
│ │ │ ├── camera_example.py
│ │ │ ├── dataset_example.py
│ │ │ ├── example_utils.py
│ │ │ ├── flow_example.py
│ │ │ ├── numpy_example.py
│ │ │ ├── rotate_video.py
│ │ │ ├── transfer_function_example.py
│ │ │ ├── visualizer_widget_example.py
│ │ │ ├── workflow_example.py
│ │ │ └── xarray_example.py
│ │ ├── setup.py
│ │ ├── tests/
│ │ │ ├── CanvasStreamTest.ipynb
│ │ │ ├── bld.bat
│ │ │ ├── build.sh
│ │ │ ├── cppyy-syntax-test.py
│ │ │ ├── cppyy-test.py
│ │ │ ├── meta.yaml
│ │ │ ├── module-data-test.py
│ │ │ ├── module-test.py
│ │ │ ├── syntax-test.py
│ │ │ └── test.py
│ │ └── vapor/
│ │ ├── __init__.py
│ │ ├── animation.py
│ │ ├── annotations.py
│ │ ├── camera.py
│ │ ├── cmake.py
│ │ ├── common.py
│ │ ├── config.py
│ │ ├── cppyyDoxygenWrapper.py
│ │ ├── dataset.py
│ │ ├── link.py
│ │ ├── params.py
│ │ ├── renderer.py
│ │ ├── session.py
│ │ ├── smartwrapper.py
│ │ ├── transferfunction.py
│ │ ├── transform.py
│ │ ├── utils/
│ │ │ ├── __init__.py
│ │ │ ├── histogram.py
│ │ │ └── keyframing.py
│ │ ├── widget-jquery.js
│ │ ├── widget.css
│ │ ├── widget.js
│ │ └── widget.py
│ ├── raw2vdc/
│ │ ├── CMakeLists.txt
│ │ └── raw2vdc.cpp
│ ├── raw2wasp/
│ │ ├── CMakeLists.txt
│ │ └── raw2wasp.cpp
│ ├── tiff2geotiff/
│ │ ├── CMakeLists.txt
│ │ ├── geotiff_proj4.cpp
│ │ ├── getopt.cpp
│ │ └── tiff2geotiff.cpp
│ ├── vapor_check_udunits/
│ │ ├── CMakeLists.txt
│ │ └── vapor_check_udunits.cpp
│ ├── vaporgui/
│ │ ├── .gitignore
│ │ ├── AbstractWidgetGroup.cpp
│ │ ├── AbstractWidgetGroup.h
│ │ ├── AnimationController.cpp
│ │ ├── AnimationController.h
│ │ ├── AnnotationEventRouter.cpp
│ │ ├── AnnotationEventRouter.h
│ │ ├── AppSettingsMenu.cpp
│ │ ├── AppSettingsMenu.h
│ │ ├── AppSettingsParams.cpp
│ │ ├── AppSettingsParams.h
│ │ ├── BannerGUI.cpp
│ │ ├── BannerGUI.h
│ │ ├── BarbEventRouter.cpp
│ │ ├── BarbEventRouter.h
│ │ ├── BookmarkManager.cpp
│ │ ├── BookmarkManager.h
│ │ ├── CLIToolInstaller.cpp
│ │ ├── CLIToolInstaller.h
│ │ ├── CMakeLists.txt
│ │ ├── CaptureController.cpp
│ │ ├── CaptureController.h
│ │ ├── CheckForNotices.cpp
│ │ ├── CheckForNotices.h
│ │ ├── CheckForUpdate.cpp
│ │ ├── CheckForUpdate.h
│ │ ├── CheckForUpdateUI.cpp
│ │ ├── CheckForUpdateUI.h
│ │ ├── CitationReminder.h
│ │ ├── Combo.cpp
│ │ ├── Combo.h
│ │ ├── ContourEventRouter.cpp
│ │ ├── ContourEventRouter.h
│ │ ├── CopyRegionAnnotationWidget.cpp
│ │ ├── CopyRegionAnnotationWidget.h
│ │ ├── CopyRegionWidget.cpp
│ │ ├── CopyRegionWidget.h
│ │ ├── Core3_2_context.h
│ │ ├── DatasetImportController.cpp
│ │ ├── DatasetImportController.h
│ │ ├── DatasetInspector.cpp
│ │ ├── DatasetInspector.h
│ │ ├── DatasetTypeLookup.cpp
│ │ ├── DatasetTypeLookup.h
│ │ ├── ErrorReporter.cpp
│ │ ├── ErrorReporter.h
│ │ ├── ExportTab.cpp
│ │ ├── ExportTab.h
│ │ ├── FidelityWidget.cpp
│ │ ├── FidelityWidget.h
│ │ ├── FidelityWidgetGUI.ui
│ │ ├── FileOperationChecker.cpp
│ │ ├── FileOperationChecker.h
│ │ ├── Flags.h
│ │ ├── FlowEventRouter.cpp
│ │ ├── FlowEventRouter.h
│ │ ├── GLWidget.cpp
│ │ ├── GLWidget.h
│ │ ├── ImageEventRouter.cpp
│ │ ├── ImageEventRouter.h
│ │ ├── ImportTab.cpp
│ │ ├── ImportTab.h
│ │ ├── LeftPanel.cpp
│ │ ├── LeftPanel.h
│ │ ├── MainForm.cpp
│ │ ├── MainForm.h
│ │ ├── MainForm_isOpenGLContextActive.cpp
│ │ ├── Manip.cpp
│ │ ├── Manip.h
│ │ ├── ModelEventRouter.cpp
│ │ ├── ModelEventRouter.h
│ │ ├── NcarCasperUtils.cpp
│ │ ├── NcarCasperUtils.h
│ │ ├── NewRendererDialog.ui
│ │ ├── NewRendererDialogManager.cpp
│ │ ├── NewRendererDialogManager.h
│ │ ├── NoticeBoard.cpp
│ │ ├── NoticeBoard.h
│ │ ├── PAnnotationColorbarWidget.cpp
│ │ ├── PAnnotationColorbarWidget.h
│ │ ├── PAxisAnnotationWidget.cpp
│ │ ├── PAxisAnnotationWidget.h
│ │ ├── PButton.cpp
│ │ ├── PButton.h
│ │ ├── PCameraControlsSection.cpp
│ │ ├── PCameraControlsSection.h
│ │ ├── PCaptureWidget.cpp
│ │ ├── PCaptureWidget.h
│ │ ├── PCheckbox.cpp
│ │ ├── PCheckbox.h
│ │ ├── PCheckboxHLI.h
│ │ ├── PColorSelector.cpp
│ │ ├── PColorSelector.h
│ │ ├── PConstantColorWidget.cpp
│ │ ├── PConstantColorWidget.h
│ │ ├── PCopyRegionAnnotationWidget.cpp
│ │ ├── PCopyRegionAnnotationWidget.h
│ │ ├── PCopyRegionWidget.cpp
│ │ ├── PCopyRegionWidget.h
│ │ ├── PCornerSelector.cpp
│ │ ├── PCornerSelector.h
│ │ ├── PDatasetTransformWidget.cpp
│ │ ├── PDatasetTransformWidget.h
│ │ ├── PDimensionSelector.cpp
│ │ ├── PDimensionSelector.h
│ │ ├── PDisplay.cpp
│ │ ├── PDisplay.h
│ │ ├── PDisplayHLI.h
│ │ ├── PDoubleInput.cpp
│ │ ├── PDoubleInput.h
│ │ ├── PDoubleInputHLI.h
│ │ ├── PDynamicMixin.cpp
│ │ ├── PDynamicMixin.h
│ │ ├── PEnumDropdown.cpp
│ │ ├── PEnumDropdown.h
│ │ ├── PEnumDropdownHLI.h
│ │ ├── PFidelitySection.cpp
│ │ ├── PFidelitySection.h
│ │ ├── PFileButton.cpp
│ │ ├── PFileButton.h
│ │ ├── PFileSelector.cpp
│ │ ├── PFileSelector.h
│ │ ├── PFileSelectorHLI.h
│ │ ├── PFlowIntegrationRegionSelector.cpp
│ │ ├── PFlowIntegrationRegionSelector.h
│ │ ├── PFlowRakeRegionSelector.cpp
│ │ ├── PFlowRakeRegionSelector.h
│ │ ├── PGeometrySubtab.cpp
│ │ ├── PGeometrySubtab.h
│ │ ├── PGroup.cpp
│ │ ├── PGroup.h
│ │ ├── PImportDataButton.cpp
│ │ ├── PImportDataButton.h
│ │ ├── PImportDataWidget.cpp
│ │ ├── PImportDataWidget.h
│ │ ├── PIntegerInput.cpp
│ │ ├── PIntegerInput.h
│ │ ├── PIntegerInputHLI.h
│ │ ├── PLabel.cpp
│ │ ├── PLabel.h
│ │ ├── PLineItem.cpp
│ │ ├── PLineItem.h
│ │ ├── PMetadataClasses.cpp
│ │ ├── PMetadataClasses.h
│ │ ├── PMovingDomainSettings.cpp
│ │ ├── PMovingDomainSettings.h
│ │ ├── PMultiVarSelector.cpp
│ │ ├── PMultiVarSelector.h
│ │ ├── POrientationSelector.cpp
│ │ ├── POrientationSelector.h
│ │ ├── POutputResolutionSection.cpp
│ │ ├── POutputResolutionSection.h
│ │ ├── PProjectionStringWidget.cpp
│ │ ├── PProjectionStringWidget.h
│ │ ├── PRadioButtons.cpp
│ │ ├── PRadioButtons.h
│ │ ├── PRegionSelector.cpp
│ │ ├── PRegionSelector.h
│ │ ├── PSection.cpp
│ │ ├── PSection.h
│ │ ├── PShowIf.cpp
│ │ ├── PShowIf.h
│ │ ├── PSliceController.cpp
│ │ ├── PSliceController.h
│ │ ├── PSliderEdit.cpp
│ │ ├── PSliderEdit.h
│ │ ├── PSliderEditHLI.h
│ │ ├── PStringDropdown.cpp
│ │ ├── PStringDropdown.h
│ │ ├── PStringDropdownHLI.h
│ │ ├── PStringInput.cpp
│ │ ├── PStringInput.h
│ │ ├── PTFEditor.cpp
│ │ ├── PTFEditor.h
│ │ ├── PTMSLODInput.h
│ │ ├── PTimeRangeSelector.cpp
│ │ ├── PTimeRangeSelector.h
│ │ ├── PTimestepInput.cpp
│ │ ├── PTimestepInput.h
│ │ ├── PTimestepSliderEdit.cpp
│ │ ├── PTimestepSliderEdit.h
│ │ ├── PTotalTimestepsDisplay.cpp
│ │ ├── PTotalTimestepsDisplay.h
│ │ ├── PTransformWidget.cpp
│ │ ├── PTransformWidget.h
│ │ ├── PVariableSelector.cpp
│ │ ├── PVariableSelector.h
│ │ ├── PVisualizerSelector.cpp
│ │ ├── PVisualizerSelector.h
│ │ ├── PWidget.cpp
│ │ ├── PWidget.h
│ │ ├── PWidgetHLI.h
│ │ ├── PWidgetWrapper.cpp
│ │ ├── PWidgetWrapper.h
│ │ ├── PWidgets.h
│ │ ├── PWidgetsFwd.h
│ │ ├── ParamsMenuItems.cpp
│ │ ├── ParamsMenuItems.h
│ │ ├── ParamsUpdatable.cpp
│ │ ├── ParamsUpdatable.h
│ │ ├── ParamsWidgetDemo.cpp
│ │ ├── ParamsWidgetDemo.h
│ │ ├── ParticleEventRouter.cpp
│ │ ├── ParticleEventRouter.h
│ │ ├── Plot.cpp
│ │ ├── Plot.h
│ │ ├── PlotParams.cpp
│ │ ├── PlotParams.h
│ │ ├── ProgressStatusBar.h
│ │ ├── PythonVariables.cpp
│ │ ├── PythonVariables.h
│ │ ├── PythonVariablesGUI.ui
│ │ ├── PythonVariablesParams.cpp
│ │ ├── PythonVariablesParams.h
│ │ ├── QColorWidget.cpp
│ │ ├── QColorWidget.h
│ │ ├── QCustomIconSizeProxyStyle.h
│ │ ├── QEnableable.h
│ │ ├── QIntValidatorWithFixup.cpp
│ │ ├── QIntValidatorWithFixup.h
│ │ ├── QMontereySlider.h
│ │ ├── QPaintUtils.cpp
│ │ ├── QPaintUtils.h
│ │ ├── QPushButtonWithDoubleClick.h
│ │ ├── QRange.cpp
│ │ ├── QRange.h
│ │ ├── QRange.ui
│ │ ├── QRangeSlider.cpp
│ │ ├── QRangeSlider.h
│ │ ├── QRangeSliderTextCombo.cpp
│ │ ├── QRangeSliderTextCombo.h
│ │ ├── QSinglePoint.cpp
│ │ ├── QSinglePoint.h
│ │ ├── QSinglePoint.ui
│ │ ├── QSliderEdit.cpp
│ │ ├── QSliderEdit.h
│ │ ├── QSliderEdit.ui
│ │ ├── QtVizWinGLContextManager.cpp
│ │ ├── QtVizWinGLContextManager.h
│ │ ├── RangeCombos.cpp
│ │ ├── RangeCombos.h
│ │ ├── RenderEventRouter.cpp
│ │ ├── RenderEventRouter.h
│ │ ├── RenderEventRouterGUI.cpp
│ │ ├── RenderEventRouterGUI.h
│ │ ├── RenderHolder.cpp
│ │ ├── RenderHolder.h
│ │ ├── RendererInspector.cpp
│ │ ├── RendererInspector.h
│ │ ├── RendererList.cpp
│ │ ├── RendererList.h
│ │ ├── RenderersPanel.cpp
│ │ ├── RenderersPanel.h
│ │ ├── SliceEventRouter.cpp
│ │ ├── SliceEventRouter.h
│ │ ├── Statistics.cpp
│ │ ├── Statistics.h
│ │ ├── StatisticsParams.cpp
│ │ ├── StatisticsParams.h
│ │ ├── TFColorInfoWidget.cpp
│ │ ├── TFColorInfoWidget.h
│ │ ├── TFColorWidget.cpp
│ │ ├── TFColorWidget.h
│ │ ├── TFHistogramInfoWidget.cpp
│ │ ├── TFHistogramInfoWidget.h
│ │ ├── TFHistogramWidget.cpp
│ │ ├── TFHistogramWidget.h
│ │ ├── TFInfoWidget.cpp
│ │ ├── TFInfoWidget.h
│ │ ├── TFIsoValueInfoWidget.cpp
│ │ ├── TFIsoValueInfoWidget.h
│ │ ├── TFIsoValueWidget.cpp
│ │ ├── TFIsoValueWidget.h
│ │ ├── TFMapGroupWidget.cpp
│ │ ├── TFMapGroupWidget.h
│ │ ├── TFMapWidget.cpp
│ │ ├── TFMapWidget.h
│ │ ├── TFMappingRangeSelector.cpp
│ │ ├── TFMappingRangeSelector.h
│ │ ├── TFOpacityInfoWidget.cpp
│ │ ├── TFOpacityInfoWidget.h
│ │ ├── TFOpacityWidget.cpp
│ │ ├── TFOpacityWidget.h
│ │ ├── TFUtils.cpp
│ │ ├── TFUtils.h
│ │ ├── TwoDDataEventRouter.cpp
│ │ ├── TwoDDataEventRouter.h
│ │ ├── UCloseVDCMenu.cpp
│ │ ├── UCloseVDCMenu.h
│ │ ├── UWidget.cpp
│ │ ├── UWidget.h
│ │ ├── Updatable.h
│ │ ├── V3DInput.cpp
│ │ ├── V3DInput.h
│ │ ├── V3DIntInput.cpp
│ │ ├── V3DIntInput.h
│ │ ├── VActions.cpp
│ │ ├── VActions.h
│ │ ├── VCheckBox.cpp
│ │ ├── VCheckBox.h
│ │ ├── VComboBox.cpp
│ │ ├── VComboBox.h
│ │ ├── VContainer.cpp
│ │ ├── VContainer.h
│ │ ├── VDoubleLineEdit.cpp
│ │ ├── VDoubleLineEdit.h
│ │ ├── VDoubleRangeMenu.cpp
│ │ ├── VDoubleRangeMenu.h
│ │ ├── VDoubleSliderEdit.cpp
│ │ ├── VDoubleSliderEdit.h
│ │ ├── VDoubleSliderEditMenu.cpp
│ │ ├── VDoubleSliderEditMenu.h
│ │ ├── VDoubleValidator.cpp
│ │ ├── VDoubleValidator.h
│ │ ├── VFileSelector.cpp
│ │ ├── VFileSelector.h
│ │ ├── VFrame.cpp
│ │ ├── VFrame.h
│ │ ├── VGroup.cpp
│ │ ├── VGroup.h
│ │ ├── VHBoxWidget.cpp
│ │ ├── VHBoxWidget.h
│ │ ├── VHyperlink.cpp
│ │ ├── VHyperlink.h
│ │ ├── VIntLineEdit.cpp
│ │ ├── VIntLineEdit.h
│ │ ├── VIntRangeMenu.cpp
│ │ ├── VIntRangeMenu.h
│ │ ├── VIntSliderEdit.cpp
│ │ ├── VIntSliderEdit.h
│ │ ├── VIntSliderEditMenu.cpp
│ │ ├── VIntSliderEditMenu.h
│ │ ├── VIntSpinBox.cpp
│ │ ├── VIntSpinBox.h
│ │ ├── VLabel.cpp
│ │ ├── VLabel.h
│ │ ├── VLabelPair.cpp
│ │ ├── VLabelPair.h
│ │ ├── VLineEdit_Deprecated.cpp
│ │ ├── VLineEdit_Deprecated.h
│ │ ├── VLineItem.cpp
│ │ ├── VLineItem.h
│ │ ├── VNumericFormatMenu.cpp
│ │ ├── VNumericFormatMenu.h
│ │ ├── VNumericLineEdit.cpp
│ │ ├── VNumericLineEdit.h
│ │ ├── VProjectionStringFrame.cpp
│ │ ├── VProjectionStringFrame.h
│ │ ├── VPushButton.cpp
│ │ ├── VPushButton.h
│ │ ├── VRadioButton.cpp
│ │ ├── VRadioButton.h
│ │ ├── VRouter.cpp
│ │ ├── VRouter.h
│ │ ├── VScrollArea.cpp
│ │ ├── VScrollArea.h
│ │ ├── VScrollGroup.h
│ │ ├── VSection.cpp
│ │ ├── VSection.h
│ │ ├── VSlider.cpp
│ │ ├── VSlider.h
│ │ ├── VSliderEdit.cpp
│ │ ├── VSliderEdit.h
│ │ ├── VSliderEditInterface.cpp
│ │ ├── VSliderEditInterface.h
│ │ ├── VStringLineEdit.cpp
│ │ ├── VStringLineEdit.h
│ │ ├── VVisibilityCheckbox.cpp
│ │ ├── VVisibilityCheckbox.h
│ │ ├── VaporFwd.h
│ │ ├── VaporTable.cpp
│ │ ├── VaporTable.h
│ │ ├── VaporTableGUI.ui
│ │ ├── VaporWidgetsFwd.h
│ │ ├── ViewpointToolbar.cpp
│ │ ├── ViewpointToolbar.h
│ │ ├── VizWin.cpp
│ │ ├── VizWin.h
│ │ ├── VizWinMgr.cpp
│ │ ├── VizWinMgr.h
│ │ ├── VolumeEventRouter.cpp
│ │ ├── VolumeEventRouter.h
│ │ ├── VolumeIsoEventRouter.cpp
│ │ ├── VolumeIsoEventRouter.h
│ │ ├── WireFrameEventRouter.cpp
│ │ ├── WireFrameEventRouter.h
│ │ ├── common.cpp
│ │ ├── common.h
│ │ ├── core_profile_attributes.mm
│ │ ├── hide_std_error_util.cpp
│ │ ├── hide_std_error_util.h
│ │ ├── images/
│ │ │ ├── arrowrake.xpm
│ │ │ ├── back.xpm
│ │ │ ├── capture-off.xpm
│ │ │ ├── capture-on.xpm
│ │ │ ├── cascade.xpm
│ │ │ ├── cube.xpm
│ │ │ ├── eye.xpm
│ │ │ ├── fileopen.xpm
│ │ │ ├── forward.xpm
│ │ │ ├── home.xpm
│ │ │ ├── home2.xpm
│ │ │ ├── isoline.xpm
│ │ │ ├── lightbulb.xpm
│ │ │ ├── magnify.xpm
│ │ │ ├── pauseA.xpm
│ │ │ ├── pauseimage.xpm
│ │ │ ├── planes.xpm
│ │ │ ├── playforward.xpm
│ │ │ ├── playforwardA.xpm
│ │ │ ├── playreverse.xpm
│ │ │ ├── playreverseA.xpm
│ │ │ ├── probe.xpm
│ │ │ ├── rake.xpm
│ │ │ ├── replayA.xpm
│ │ │ ├── sethome.xpm
│ │ │ ├── sphere.xpm
│ │ │ ├── spherecolored.xpm
│ │ │ ├── step-back-off.xpm
│ │ │ ├── step-fwd-off.xpm
│ │ │ ├── stepback.xpm
│ │ │ ├── stepbackA.xpm
│ │ │ ├── stepfwd.xpm
│ │ │ ├── stepfwdA.xpm
│ │ │ ├── tiles.xpm
│ │ │ ├── tobeginA.xpm
│ │ │ ├── toendA.xpm
│ │ │ ├── twoDData.xpm
│ │ │ ├── twoDImage.xpm
│ │ │ ├── vapor-icon-32.xpm
│ │ │ └── wheel.xpm
│ │ ├── mac_helpers.h
│ │ ├── mac_helpers.mm
│ │ ├── main.cpp
│ │ ├── plotWindow.ui
│ │ ├── statsWindow.ui
│ │ ├── vapor.rc.in
│ │ ├── windowsUtils.cpp
│ │ └── windowsUtils.h
│ ├── vaporpychecker/
│ │ ├── CMakeLists.txt
│ │ └── vaporpychecker.cpp
│ ├── vaporversion/
│ │ ├── CMakeLists.txt
│ │ └── vaporversion.cpp
│ ├── vdc2raw/
│ │ ├── CMakeLists.txt
│ │ └── vdc2raw.cpp
│ ├── vdccompare/
│ │ ├── CMakeLists.txt
│ │ └── vdccompare.cpp
│ ├── vdccreate/
│ │ ├── CMakeLists.txt
│ │ └── vdccreate.cpp
│ ├── vdcdump/
│ │ ├── CMakeLists.txt
│ │ └── vdcdump.cpp
│ ├── vdcerr/
│ │ └── vdcerr.cpp
│ ├── wasp2ncdf/
│ │ ├── CMakeLists.txt
│ │ └── wasp2ncdf.cpp
│ ├── wasp2raw/
│ │ ├── CMakeLists.txt
│ │ └── wasp2raw.cpp
│ ├── waspcreate/
│ │ ├── CMakeLists.txt
│ │ └── waspcreate.cpp
│ ├── wrf2vdc/
│ │ ├── CMakeLists.txt
│ │ └── wrf2vdc.cpp
│ └── wrfvdccreate/
│ ├── CMakeLists.txt
│ └── wrfvdccreate.cpp
├── buildutils/
│ ├── AppRun
│ ├── GetGitRevisionDescription.cmake
│ ├── GetGitRevisionDescription.cmake.in
│ ├── NSIS.preInstall.ini.in
│ ├── NSIS.preUnInstall.ini.in
│ ├── NSIS.template.in
│ ├── OpenMPInstaller.cmake
│ ├── UtilityFunctions.cmake
│ ├── codesignMacOS.sh
│ ├── copylibdeps.pl
│ ├── exports.awk
│ ├── fastdep.pl
│ ├── genAppImage.sh
│ ├── gen_linux_shared_libs.pl
│ ├── install-sh
│ ├── install_name.pl
│ ├── mklinks.pl
│ ├── patchelf/
│ │ ├── COPYING
│ │ ├── elf.h
│ │ └── patchelf.cpp
│ ├── postflight
│ ├── postinstall
│ ├── postupgrade
│ ├── renameomp.sh
│ ├── sgiinstall.sh
│ └── vapor.desktop
├── conda/
│ ├── vapor/
│ │ ├── build.sh
│ │ ├── jupyter_installer_fix.py
│ │ ├── make_installer.sh
│ │ └── meta.yaml
│ ├── vapor-maps/
│ │ └── meta.yaml
│ └── vapor-maps-extra/
│ └── meta.yaml
├── include/
│ ├── CMakeLists.txt
│ └── vapor/
│ ├── Advection.h
│ ├── AdvectionIO.h
│ ├── AnimationParams.h
│ ├── AnnotationParams.h
│ ├── AnnotationRenderer.h
│ ├── AnnotationsParams.h
│ ├── ArbitrarilyOrientedRegularGrid.h
│ ├── AxisAnnotation.h
│ ├── BOVCollection.h
│ ├── BarbParams.h
│ ├── BarbRenderer.h
│ ├── Base16StringStream.h
│ ├── BlkMemMgr.h
│ ├── BookmarkParams.h
│ ├── Box.h
│ ├── CFuncs.h
│ ├── CMakeConfig.h
│ ├── CalcEngineMgr.h
│ ├── ColorMap.h
│ ├── ColorbarPbase.h
│ ├── ColorbarRenderer.h
│ ├── Compressor.h
│ ├── ConstantGrid.h
│ ├── ContourParams.h
│ ├── ContourRenderer.h
│ ├── ControlExecutive.h
│ ├── CurvilinearGrid.h
│ ├── DC.h
│ ├── DCBOV.h
│ ├── DCCF.h
│ ├── DCMPAS.h
│ ├── DCMelanie.h
│ ├── DCP.h
│ ├── DCRAM.h
│ ├── DCUGRID.h
│ ├── DCUtils.h
│ ├── DCWRF.h
│ ├── DataMgr.h
│ ├── DataMgrFactory.h
│ ├── DataMgrUtils.h
│ ├── DataStatus.h
│ ├── DatasetsParams.h
│ ├── DerivedParticleDensity.h
│ ├── DerivedVar.h
│ ├── DerivedVarMgr.h
│ ├── EasyThreads.h
│ ├── Field.h
│ ├── FileUtils.h
│ ├── FlowParams.h
│ ├── FlowRenderer.h
│ ├── Font.h
│ ├── FontManager.h
│ ├── Framebuffer.h
│ ├── GLManager.h
│ ├── GUIStateParams.h
│ ├── GeoImage.h
│ ├── GeoImageGeoTiff.h
│ ├── GeoImageTMS.h
│ ├── GeoTIFWriter.h
│ ├── GeoTile.h
│ ├── GeoTileEquirectangular.h
│ ├── GeoTileMercator.h
│ ├── GeoUtil.h
│ ├── GetAppPath.h
│ ├── Grid.h
│ ├── GridHelper.h
│ ├── HelloParams.h
│ ├── HelloRenderer.h
│ ├── Histo.h
│ ├── IResourceManager.h
│ ├── ImageParams.h
│ ├── ImageRenderer.h
│ ├── ImageWriter.h
│ ├── ImpExp.h
│ ├── JPGWriter.h
│ ├── KDTreeRG.h
│ ├── LayeredGrid.h
│ ├── LegacyGL.h
│ ├── LegacyVectorMath.h
│ ├── MapperFunction.h
│ ├── MatWaveBase.h
│ ├── MatWaveDwt.h
│ ├── MatWaveWavedec.h
│ ├── MatrixManager.h
│ ├── ModelParams.h
│ ├── ModelRenderer.h
│ ├── MouseModeParams.h
│ ├── MyBase.h
│ ├── MyPython.h
│ ├── NavigationUtils.h
│ ├── NetCDFCFCollection.h
│ ├── NetCDFCollection.h
│ ├── NetCDFCpp.h
│ ├── NetCDFSimple.h
│ ├── NonCopyableMixin.h
│ ├── OSPRay.h
│ ├── OpacityMap.h
│ ├── OpenMPSupport.h
│ ├── OptionParser.h
│ ├── PNGWriter.h
│ ├── PVTime.h
│ ├── ParamsBase.h
│ ├── ParamsMgr.h
│ ├── Particle.h
│ ├── ParticleParams.h
│ ├── ParticleRenderer.h
│ ├── Progress.h
│ ├── Proj4API.h
│ ├── Proj4StringParser.h
│ ├── PyEngine.h
│ ├── PythonDataMgr.h
│ ├── QuadTreeRectangle.hpp
│ ├── QuadTreeRectangleP.h
│ ├── RayCaster.h
│ ├── RayCasterParams.h
│ ├── RegularGrid.h
│ ├── RenderParams.h
│ ├── Renderer.h
│ ├── ResourcePath.h
│ ├── STLUtils.h
│ ├── SetHDF5PluginPath.h
│ ├── SettingsParams.h
│ ├── Shader.h
│ ├── ShaderManager.h
│ ├── ShaderProgram.h
│ ├── SignificanceMap.h
│ ├── SliceParams.h
│ ├── SliceRenderer.h
│ ├── SphericalGrid.h
│ ├── StretchedGrid.h
│ ├── StructuredGrid.h
│ ├── TFInterpolator.h
│ ├── TIFWriter.h
│ ├── TMSUtils.h
│ ├── TextLabel.h
│ ├── Texture.h
│ ├── TrackBall.h
│ ├── Transform.h
│ ├── TwoDDataParams.h
│ ├── TwoDDataRenderer.h
│ ├── TwoDRenderer.h
│ ├── UDUnitsClass.h
│ ├── UnstructuredGrid.h
│ ├── UnstructuredGrid2D.h
│ ├── UnstructuredGrid3D.h
│ ├── UnstructuredGridCoordless.h
│ ├── UnstructuredGridLayered.h
│ ├── VAssert.h
│ ├── VDC.h
│ ├── VDCNetCDF.h
│ ├── VDC_c.h
│ ├── VaporField.h
│ ├── Version.h
│ ├── Viewpoint.h
│ ├── ViewpointParams.h
│ ├── Visualizer.h
│ ├── VisualizerGLContextManager.h
│ ├── VolumeAlgorithm.h
│ ├── VolumeCellTraversal.h
│ ├── VolumeGLSL.h
│ ├── VolumeIsoParams.h
│ ├── VolumeIsoRenderer.h
│ ├── VolumeOSPRay.h
│ ├── VolumeParams.h
│ ├── VolumeRectilinear.h
│ ├── VolumeRegular.h
│ ├── VolumeRenderer.h
│ ├── VolumeResampled.h
│ ├── VolumeTest.h
│ ├── VolumeTest2.h
│ ├── WASP.h
│ ├── WaveCodecIO.h
│ ├── WaveFiltBase.h
│ ├── WaveFiltBior.h
│ ├── WaveFiltCoif.h
│ ├── WaveFiltDaub.h
│ ├── WaveFiltHaar.h
│ ├── WaveFiltInt.h
│ ├── WireFrameParams.h
│ ├── WireFrameRenderer.h
│ ├── XmlNode.h
│ ├── common.h
│ ├── converter.h
│ ├── debug.h
│ ├── direntWin32.h
│ ├── errorcodes.h
│ ├── glutil.h
│ ├── jpegapi.h
│ ├── nanoflann.hpp
│ ├── ptr_cache.hpp
│ ├── regionparams.h
│ ├── udunits2.h
│ ├── utils.h
│ └── vizutil.h
├── lib/
│ ├── CMakeLists.txt
│ ├── common/
│ │ ├── Base16StringStream.cpp
│ │ ├── CFuncs.cpp
│ │ ├── CMakeConfig.cpp.in
│ │ ├── CMakeLists.txt
│ │ ├── EasyThreads.cpp
│ │ ├── FileUtils.cpp
│ │ ├── GetAppPath.cpp
│ │ ├── LegacyVectorMath.cpp
│ │ ├── MyBase.cpp
│ │ ├── OptionParser.cpp
│ │ ├── PVTime.cpp
│ │ ├── Progress.cpp
│ │ ├── ResourcePath.cpp
│ │ ├── STLUtils.cpp
│ │ ├── TMSUtils.cpp
│ │ ├── VAssert.cpp
│ │ ├── Version.cpp
│ │ ├── common.cpp
│ │ └── utils.cpp
│ ├── flow/
│ │ ├── Advection.cpp
│ │ ├── AdvectionIO.cpp
│ │ ├── CMakeLists.txt
│ │ ├── Field.cpp
│ │ ├── Particle.cpp
│ │ └── VaporField.cpp
│ ├── osgl/
│ │ ├── CMakeCopy.cmake
│ │ ├── CMakeLists.txt
│ │ ├── GLContext.cpp
│ │ ├── GLContextProvider.cpp
│ │ ├── GLContextProviderEGL.cpp
│ │ ├── GLContextProviderMacOS.mm
│ │ ├── GLContextProviderMesa.cpp
│ │ ├── GLContextProviderNvidia.cpp
│ │ ├── GLContextProviderUtil.cpp
│ │ ├── Log.cpp
│ │ ├── build.sh
│ │ ├── glad/
│ │ │ ├── include/
│ │ │ │ ├── EGL/
│ │ │ │ │ └── eglplatform.h
│ │ │ │ ├── KHR/
│ │ │ │ │ └── khrplatform.h
│ │ │ │ └── glad/
│ │ │ │ ├── egl.h
│ │ │ │ └── gl.h
│ │ │ └── src/
│ │ │ ├── egl.c
│ │ │ └── gl.c
│ │ ├── include/
│ │ │ └── vapor/
│ │ │ ├── GLAD.h
│ │ │ ├── GLContext.h
│ │ │ ├── GLContextProvider.h
│ │ │ ├── GLContextProviderCommon.h
│ │ │ ├── GLContextProviderEGL.h
│ │ │ ├── GLContextProviderMacOS.h
│ │ │ ├── GLContextProviderMesa.h
│ │ │ ├── GLContextProviderNvidia.h
│ │ │ ├── GLContextProviderUtil.h
│ │ │ ├── GLInclude.h
│ │ │ └── Log.h
│ │ ├── meta.yaml
│ │ ├── stb_image_write.h
│ │ ├── test_framebuffer_glad.cpp
│ │ └── test_version.cpp
│ ├── params/
│ │ ├── AnimationParams.cpp
│ │ ├── AnnotationParams.cpp
│ │ ├── AxisAnnotation.cpp
│ │ ├── BarbParams.cpp
│ │ ├── BookmarkParams.cpp
│ │ ├── Box.cpp
│ │ ├── CMakeLists.txt
│ │ ├── ColorMap.cpp
│ │ ├── ColorbarPbase.cpp
│ │ ├── ContourParams.cpp
│ │ ├── DataStatus.cpp
│ │ ├── DatasetsParams.cpp
│ │ ├── FlowParams.cpp
│ │ ├── GUIStateParams.cpp
│ │ ├── HelloParams.cpp
│ │ ├── ImageParams.cpp
│ │ ├── MapperFunction.cpp
│ │ ├── ModelParams.cpp
│ │ ├── MouseModeParams.cpp
│ │ ├── OpacityMap.cpp
│ │ ├── ParamsBase.cpp
│ │ ├── ParamsMgr.cpp
│ │ ├── ParticleParams.cpp
│ │ ├── RayCasterParams.cpp
│ │ ├── RenderParams.cpp
│ │ ├── SettingsParams.cpp
│ │ ├── SliceParams.cpp
│ │ ├── TFInterpolator.cpp
│ │ ├── TODO.txt
│ │ ├── Transform.cpp
│ │ ├── TwoDDataParams.cpp
│ │ ├── Viewpoint.cpp
│ │ ├── ViewpointParams.cpp
│ │ ├── VolumeIsoParams.cpp
│ │ ├── VolumeParams.cpp
│ │ ├── WireFrameParams.cpp
│ │ ├── XmlNode.cpp
│ │ └── regionparams.cpp
│ ├── render/
│ │ ├── AnnotationRenderer.cpp
│ │ ├── BarbRenderer.cpp
│ │ ├── CMakeLists.txt
│ │ ├── CalcEngineMgr.cpp
│ │ ├── ColorbarRenderer.cpp
│ │ ├── ContourRenderer.cpp
│ │ ├── ControlExecutive.cpp
│ │ ├── FlowRenderer.cpp
│ │ ├── Font.cpp
│ │ ├── FontManager.cpp
│ │ ├── Framebuffer.cpp
│ │ ├── GLManager.cpp
│ │ ├── GeoImage.cpp
│ │ ├── GeoImageGeoTiff.cpp
│ │ ├── GeoImageTMS.cpp
│ │ ├── GeoTIFWriter.cpp
│ │ ├── GeoTile.cpp
│ │ ├── GeoTileEquirectangular.cpp
│ │ ├── GeoTileMercator.cpp
│ │ ├── HelloRenderer.cpp
│ │ ├── Histo.cpp
│ │ ├── ImageRenderer.cpp
│ │ ├── ImageWriter.cpp
│ │ ├── JPGWriter.cpp
│ │ ├── LegacyGL.cpp
│ │ ├── MatrixManager.cpp
│ │ ├── ModelRenderer.cpp
│ │ ├── MyPython.cpp
│ │ ├── NavigationUtils.cpp
│ │ ├── OSPRay.cpp
│ │ ├── PNGWriter.cpp
│ │ ├── ParticleRenderer.cpp
│ │ ├── Proj4StringParser.cpp
│ │ ├── PyEngine.cpp
│ │ ├── RayCaster.cpp
│ │ ├── Renderer.cpp
│ │ ├── Shader.cpp
│ │ ├── ShaderManager.cpp
│ │ ├── ShaderProgram.cpp
│ │ ├── SliceRenderer.cpp
│ │ ├── TIFWriter.cpp
│ │ ├── TODO.txt
│ │ ├── TextLabel.cpp
│ │ ├── Texture.cpp
│ │ ├── TrackBall.cpp
│ │ ├── TwoDDataRenderer.cpp
│ │ ├── TwoDRenderer.cpp
│ │ ├── Visualizer.cpp
│ │ ├── VolumeAlgorithm.cpp
│ │ ├── VolumeCellTraversal.cpp
│ │ ├── VolumeGLSL.cpp
│ │ ├── VolumeIsoRenderer.cpp
│ │ ├── VolumeOSPRay.cpp
│ │ ├── VolumeRectilinear.cpp
│ │ ├── VolumeRegular.cpp
│ │ ├── VolumeRenderer.cpp
│ │ ├── VolumeResampled.cpp
│ │ ├── VolumeTest.cpp
│ │ ├── VolumeTest2.cpp
│ │ ├── WireFrameRenderer.cpp
│ │ ├── glutil.cpp
│ │ └── jfilewrite.cpp
│ ├── vapi/
│ │ ├── CMakeLists.txt
│ │ ├── RenderManager.cpp
│ │ ├── RenderManager.h
│ │ ├── Session.cpp
│ │ ├── Session.h
│ │ ├── VPCommon.h
│ │ └── main.cpp
│ ├── vdc/
│ │ ├── ArbitrarilyOrientedRegularGrid.cpp
│ │ ├── BOVCollection.cpp
│ │ ├── BlkMemMgr.cpp
│ │ ├── CMakeLists.txt
│ │ ├── ConstantGrid.cpp
│ │ ├── CurvilinearGrid.cpp
│ │ ├── DC.cpp
│ │ ├── DCBOV.cpp
│ │ ├── DCCF.cpp
│ │ ├── DCMPAS.cpp
│ │ ├── DCMelanie.cpp
│ │ ├── DCP.cpp
│ │ ├── DCRAM.cpp
│ │ ├── DCUGRID.cpp
│ │ ├── DCUtils.cpp
│ │ ├── DCWRF.cpp
│ │ ├── DataMgr.cpp
│ │ ├── DataMgrUtils.cpp
│ │ ├── DerivedParticleDensity.cpp
│ │ ├── DerivedVar.cpp
│ │ ├── DerivedVarMgr.cpp
│ │ ├── GeoUtil.cpp
│ │ ├── Grid.cpp
│ │ ├── GridHelper.cpp
│ │ ├── KDTreeRG.cpp
│ │ ├── LayeredGrid.cpp
│ │ ├── NetCDFCFCollection.cpp
│ │ ├── NetCDFCollection.cpp
│ │ ├── NetCDFSimple.cpp
│ │ ├── Proj4API.cpp
│ │ ├── PythonDataMgr.cpp
│ │ ├── QuadTreeRectangleP.cpp
│ │ ├── RegularGrid.cpp
│ │ ├── StretchedGrid.cpp
│ │ ├── StructuredGrid.cpp
│ │ ├── TODO.txt
│ │ ├── UDUnitsClass.cpp
│ │ ├── UnstructuredGrid.cpp
│ │ ├── UnstructuredGrid2D.cpp
│ │ ├── UnstructuredGrid3D.cpp
│ │ ├── UnstructuredGridLayered.cpp
│ │ ├── VDC.cpp
│ │ ├── VDCNetCDF.cpp
│ │ ├── VDC_c.cpp
│ │ ├── kdtree.c
│ │ ├── kdtree.h
│ │ └── vizutil.cpp
│ └── wasp/
│ ├── CMakeLists.txt
│ ├── Compressor.cpp
│ ├── MatWaveBase.cpp
│ ├── MatWaveDwt.cpp
│ ├── MatWaveWavedec.cpp
│ ├── NOTES
│ ├── NetCDFCpp.cpp
│ ├── SignificanceMap.cpp
│ ├── TODO
│ ├── WASP.cpp
│ ├── WaveFiltBase.cpp
│ ├── WaveFiltBior.cpp
│ ├── WaveFiltCoif.cpp
│ ├── WaveFiltDaub.cpp
│ ├── WaveFiltHaar.cpp
│ └── WaveFiltInt.cpp
├── plugins/
│ ├── paraview/
│ │ ├── CMakeLists.txt
│ │ ├── README
│ │ ├── VDFReader.xml
│ │ ├── VDFReaderGUI.xml
│ │ ├── vtkVDFReader.cxx
│ │ └── vtkVDFReader.h
│ └── visit/
│ ├── VDC/
│ │ ├── README
│ │ ├── avtvdfFileFormat.C
│ │ ├── avtvdfFileFormat.h
│ │ ├── avtvdfOptions.C
│ │ ├── avtvdfOptions.h
│ │ ├── vdf.xml
│ │ ├── vdf2.xml
│ │ ├── vdfCommonPluginInfo.C
│ │ ├── vdfEnginePluginInfo.C
│ │ ├── vdfMDServerPluginInfo.C
│ │ ├── vdfPluginInfo.C
│ │ └── vdfPluginInfo.h
│ └── WASP/
│ ├── README
│ ├── WASP.xml
│ ├── WASPCommonPluginInfo.C
│ ├── WASPEnginePluginInfo.C
│ ├── WASPMDServerPluginInfo.C
│ ├── WASPPluginInfo.C
│ ├── WASPPluginInfo.h
│ ├── avtWASPFileFormat.C
│ └── avtWASPFileFormat.h
├── scripts/
│ ├── CMakeLists.txt
│ ├── build3rdParty.sh
│ ├── getWMSImage.sh
│ ├── ptcl2vms.py
│ ├── vapor-setup-win32.csh
│ ├── vapor-setup-win32.sh
│ ├── vapor-setup.bat
│ ├── vapor-setup.csh.sed
│ ├── vapor-setup.sh.sed
│ ├── vaporBatchFuncs.py
│ ├── vaporLSF.py
│ ├── vaporSGE.py
│ ├── vdccp
│ ├── vdfbkup.pl
│ └── wrf2vdfbatch
├── share/
│ ├── CMakeLists.txt
│ ├── Doxygen/
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── Doxyfile.in
│ │ ├── TODO
│ │ └── mainpage.dox
│ ├── doc/
│ │ ├── DCP_Format.md
│ │ ├── VaporPythonGuide.doc
│ │ ├── help/
│ │ │ ├── FieldLineAdvectionHelp.html
│ │ │ └── UnsteadyHelp.html
│ │ └── man/
│ │ ├── asciitf2vtf.pod
│ │ ├── getWMSImage.pod
│ │ ├── ptcl2vms.pod
│ │ ├── raw2wasp.pod
│ │ ├── tiff2geotiff.pod
│ │ ├── vdccp.py.pod
│ │ ├── vdcdump.pod
│ │ ├── wasp2raw.pod
│ │ └── waspcreate.pod
│ ├── docker/
│ │ ├── centos7/
│ │ │ └── Dockerfile
│ │ └── ubuntu18/
│ │ └── Dockerfile
│ ├── examples/
│ │ ├── .vapor3_prefs
│ │ ├── .vapor_prefs
│ │ ├── NCL/
│ │ │ ├── USFilled.ncl
│ │ │ ├── USOutline.ncl
│ │ │ ├── WrfTestScripts.Notes
│ │ │ ├── worldFilled.ncl
│ │ │ ├── worldOutline.ncl
│ │ │ ├── wrf2geotiff.ncl
│ │ │ ├── wrf_CrossSection2.ncl
│ │ │ ├── wrf_CrossSection2_Final.ncl
│ │ │ ├── wrf_CrossSection2_FirstMod.ncl
│ │ │ ├── wrf_EtaLevels.ncl
│ │ │ ├── wrf_Height.ncl
│ │ │ ├── wrf_Height_Final.ncl
│ │ │ ├── wrf_Height_FirstMod.ncl
│ │ │ ├── wrf_Precip.ncl
│ │ │ ├── wrf_Precip_Final.ncl
│ │ │ ├── wrf_Precip_FirstMod.ncl
│ │ │ ├── wrf_Surface1.ncl
│ │ │ ├── wrf_cloud.ncl
│ │ │ ├── wrf_crossSection4.ncl
│ │ │ └── wrf_pv.ncl
│ │ ├── VDC/
│ │ │ └── amr_ex.cpp
│ │ ├── generateExampleDCP.py
│ │ ├── idl/
│ │ │ ├── AddCurlVDF.pro
│ │ │ ├── AddDivVDF.pro
│ │ │ ├── AddMagVDF.pro
│ │ │ ├── AddWRFCurl.pro
│ │ │ ├── AddWRFDiv.pro
│ │ │ ├── AddWRFETH.pro
│ │ │ ├── MakeCmbo.pro
│ │ │ ├── MakeLinCmb.pro
│ │ │ ├── PrintMetaVDF.pro
│ │ │ ├── QuickStartEx1.pro
│ │ │ ├── README.txt
│ │ │ ├── ReadRegionVDF.pro
│ │ │ ├── ReadVDF.pro
│ │ │ ├── WRFVortMagEx.pro
│ │ │ ├── WriteTimeVaryVDF.pro
│ │ │ ├── WriteVDF.pro
│ │ │ ├── curl_findiff.pro
│ │ │ ├── deriv_findiff.pro
│ │ │ ├── div_findiff.pro
│ │ │ ├── elev_deriv.pro
│ │ │ ├── expregion.pro
│ │ │ ├── impexp.pro
│ │ │ ├── impregion.pro
│ │ │ ├── marschner_lobb.pro
│ │ │ ├── myderiv.pro
│ │ │ ├── pencil2vapor.pro
│ │ │ ├── wrf_curl_findiff.pro
│ │ │ └── wrf_div_findiff.pro
│ │ └── listOfSeeds.txt
│ ├── gitHooks/
│ │ ├── pre-push
│ │ └── setupHooks.sh
│ ├── images/
│ │ └── VAPOR.icns
│ ├── notices/
│ │ └── __example-notice.json
│ ├── palettes/
│ │ ├── Diverging/
│ │ │ ├── BlueWhiteGold.tf3
│ │ │ ├── CoolWarm.tf3
│ │ │ ├── CoolWarmBent.tf3
│ │ │ ├── CoolWarmSmooth.tf3
│ │ │ ├── GreenWhitePurple.tf3
│ │ │ ├── GreenWhiteRed.tf3
│ │ │ ├── PurpleWhiteOrange.tf3
│ │ │ ├── balance.tf3
│ │ │ ├── curl.tf3
│ │ │ ├── delta.tf3
│ │ │ ├── diff.tf3
│ │ │ └── tarn.tf3
│ │ ├── Highlighting/
│ │ │ ├── oxy.tf3
│ │ │ └── topo.tf3
│ │ └── Sequential/
│ │ ├── BlackBody.tf3
│ │ ├── BlackBodyExtended.tf3
│ │ ├── BlackWhite.tf3
│ │ ├── Kindlmann.tf3
│ │ ├── KindlmannExtended.tf3
│ │ ├── Rainbow.tf3
│ │ ├── algae.tf3
│ │ ├── amp.tf3
│ │ ├── deep.tf3
│ │ ├── dense.tf3
│ │ ├── haline.tf3
│ │ ├── ice.tf3
│ │ ├── matter.tf3
│ │ ├── phase.tf3
│ │ ├── rain.tf3
│ │ ├── solar.tf3
│ │ ├── speed.tf3
│ │ ├── tempo.tf3
│ │ ├── thermal.tf3
│ │ └── turbid.tf3
│ ├── python/
│ │ ├── imagewriter.py
│ │ ├── plot.py
│ │ ├── plot1D.py
│ │ ├── pythonSystemStartup.py
│ │ ├── vapor_utils.py
│ │ └── vapor_wrf.py
│ ├── shaders/
│ │ ├── .gitattributes
│ │ ├── 2DData.frag
│ │ ├── 2DData.vert
│ │ ├── BBTraversalAlgorithms.frag
│ │ ├── BBTraversalAlgorithmsNV.frag
│ │ ├── Contour.frag
│ │ ├── Contour.vert
│ │ ├── DepthBuffer.frag
│ │ ├── DepthBuffer.vert
│ │ ├── FlowGlyphsArrow.frag
│ │ ├── FlowGlyphsArrow.geom
│ │ ├── FlowGlyphsArrow.vert
│ │ ├── FlowGlyphsArrow2D.frag
│ │ ├── FlowGlyphsArrow2D.geom
│ │ ├── FlowGlyphsArrow2D.vert
│ │ ├── FlowGlyphsLineDirArrow2D.frag
│ │ ├── FlowGlyphsLineDirArrow2D.geom
│ │ ├── FlowGlyphsLineDirArrow2D.vert
│ │ ├── FlowGlyphsSphere2D.frag
│ │ ├── FlowGlyphsSphere2D.geom
│ │ ├── FlowGlyphsSphere2D.vert
│ │ ├── FlowGlyphsSphereSplat.frag
│ │ ├── FlowGlyphsSphereSplat.geom
│ │ ├── FlowGlyphsSphereSplat.vert
│ │ ├── FlowGlyphsTubeDirArrow.frag
│ │ ├── FlowGlyphsTubeDirArrow.geom
│ │ ├── FlowGlyphsTubeDirArrow.vert
│ │ ├── FlowInclude.geom
│ │ ├── FlowLine.frag
│ │ ├── FlowLine.vert
│ │ ├── FlowLines.frag
│ │ ├── FlowLines.geom
│ │ ├── FlowLines.vert
│ │ ├── FlowTubes.frag
│ │ ├── FlowTubes.geom
│ │ ├── FlowTubes.vert
│ │ ├── Framebuffer.frag
│ │ ├── Framebuffer.vert
│ │ ├── FramebufferND.frag
│ │ ├── FramebufferND.vert
│ │ ├── GenerateBBTraversals.pl
│ │ ├── GenerateBBTraversalsNvidia.pl
│ │ ├── GenerateUniversalBBTraversal.pl
│ │ ├── Image.frag
│ │ ├── Image.vert
│ │ ├── Legacy.frag
│ │ ├── Legacy.vert
│ │ ├── ParticleDirection.frag
│ │ ├── ParticleDirection.geom
│ │ ├── ParticleDirection.vert
│ │ ├── ParticlePoint.frag
│ │ ├── ParticlePoint.geom
│ │ ├── ParticlePoint.vert
│ │ ├── ProgTexture.efc
│ │ ├── Slice.frag
│ │ ├── Slice.vert
│ │ ├── VolumeBase.frag
│ │ ├── VolumeCellBase.frag
│ │ ├── VolumeCellDVR.frag
│ │ ├── VolumeCellDVR.vert
│ │ ├── VolumeCellIso.frag
│ │ ├── VolumeCellIso.vert
│ │ ├── VolumeDVR.frag
│ │ ├── VolumeDVR.vert
│ │ ├── VolumeIso.frag
│ │ ├── VolumeIso.vert
│ │ ├── VolumeIsoInclude.frag
│ │ ├── VolumeRayMath.frag
│ │ ├── VolumeRectilinearDVR.frag
│ │ ├── VolumeRectilinearDVR.vert
│ │ ├── VolumeRectilinearIso.frag
│ │ ├── VolumeRectilinearIso.vert
│ │ ├── White.frag
│ │ ├── White.vert
│ │ ├── Wireframe.frag
│ │ ├── Wireframe.vert
│ │ ├── depthpeeling.efc
│ │ ├── font.frag
│ │ ├── font.vert
│ │ ├── includes/
│ │ │ ├── alphagradient.hgl
│ │ │ ├── cart2sph.hgl
│ │ │ ├── datagradient.hgl
│ │ │ ├── depthpeeling.hgl
│ │ │ ├── gradient.hgl
│ │ │ ├── gradient2.hgl
│ │ │ ├── invpermute.hgl
│ │ │ ├── permute.hgl
│ │ │ └── tex2lay.hgl
│ │ ├── main/
│ │ │ ├── 2DData.fgl
│ │ │ ├── 2DData.vgl
│ │ │ ├── Iso.fgl
│ │ │ ├── Iso.vgl
│ │ │ ├── ProgTexture.fgl
│ │ │ ├── ProgTexture.vgl
│ │ │ ├── SphericalDVR.fgl
│ │ │ ├── SphericalDVR.vgl
│ │ │ ├── depthpeeling.fgl
│ │ │ ├── depthpeeling.vgl
│ │ │ ├── texSampler.fgl
│ │ │ └── texSampler.vgl
│ │ └── texSampler.efc
│ └── udunits/
│ ├── udunits2-accepted.xml
│ ├── udunits2-base.xml
│ ├── udunits2-common.xml
│ ├── udunits2-derived.xml
│ ├── udunits2-prefixes.xml
│ └── udunits2.xml
├── site_files/
│ └── site.NCAR
└── test_apps/
├── CMakeLists.txt
├── OpenMP/
│ ├── CMakeLists.txt
│ └── GetRange.cpp
├── ParamsMgr/
│ ├── CMakeLists.txt
│ ├── file.xml
│ └── test_ParamsMgr.cpp
├── TransferFunction/
│ └── test_TransferFunction.cpp
├── base64/
│ ├── CMakeLists.txt
│ └── test_base64.cpp
├── controlExec/
│ ├── CMakeLists.txt
│ ├── file.xml
│ ├── moc_test_vizwin.cpp
│ ├── test_CE.cpp
│ ├── test_vizwin.cpp
│ └── test_vizwin.h
├── datamgr/
│ ├── CMakeLists.txt
│ └── test_datamgr.cpp
├── grid_iter/
│ ├── CMakeLists.txt
│ └── test_grid_iter.cpp
├── params/
│ ├── file.xml
│ └── test_params.cpp
├── params2/
│ ├── CMakeLists.txt
│ └── test_params2.cpp
├── pyengine/
│ ├── CMakeLists.txt
│ └── test_pyengine.cpp
├── quadtreerectangle/
│ ├── CMakeLists.txt
│ └── test_quadtreerectangle.cpp
├── render_regression_tests/
│ ├── README.md
│ ├── config.yaml
│ ├── run_config.py
│ └── run_test.py
├── smokeTests/
│ ├── CMakeLists.txt
│ ├── dataMgrTools.cpp
│ ├── dataMgrTools.h
│ ├── gridTools.cpp
│ ├── gridTools.h
│ ├── smokeTests.py
│ ├── testDataMgr.cpp
│ ├── testGrid.cpp
│ └── testResults/
│ ├── cf_baseline.txt
│ ├── vdc_baseline.txt
│ └── wrf_baseline.txt
├── udunits/
│ ├── CMakeLists.txt
│ └── test_udunits.cpp
├── vdc3test/
│ ├── test.csh
│ └── vdc3test.csh
└── xmlnode/
└── test_xmlnode.cpp
Showing preview only (285K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3115 symbols across 665 files)
FILE: apps/asciitf2vtf/asciitf2vtf.cpp
type opt_t (line 29) | struct opt_t {
function Usage (line 50) | void Usage(OptionParser &op, const char *msg)
function ErrMsgCBHandler (line 57) | void ErrMsgCBHandler(const char *msg, int) { cerr << ProgName << " : " <...
function ProcessVAPORCMAP (line 63) | int ProcessVAPORCMAP(TransferFunctionLite *transFunct)
function ProcessNCLCMAP (line 132) | int ProcessNCLCMAP(TransferFunctionLite *transFunct)
function ProcessCMAP (line 287) | int ProcessCMAP(TransferFunctionLite *transFunct, char *cmapType)
function main (line 307) | int main(int argc, char **argv)
FILE: apps/cf2vdc/cf2vdc.cpp
type opt_t (line 17) | struct opt_t {
function vproduct (line 49) | size_t vproduct(vector<size_t> a)
function gcd (line 57) | size_t gcd(size_t n1, size_t n2)
function lcm (line 68) | size_t lcm(size_t n1, size_t n2) { return ((n1 * n2) / gcd(n1, n2)); }
function copyVarHelper (line 70) | int copyVarHelper(DC &dc, VDCNetCDF &vdc, int fdr, int fdw, vector<size_...
function CopyVar2d3dMask (line 120) | int CopyVar2d3dMask(DC &dc, VDCNetCDF &vdc, size_t ts, string varname, i...
function remove_vector (line 216) | vector<string> remove_vector(vector<string> v1, vector<string> v2)
function main (line 225) | int main(int argc, char **argv)
FILE: apps/cfvdccreate/cfvdccreate.cpp
type opt_t (line 17) | struct opt_t {
function maskvar (line 69) | void maskvar(vector<string> dimnames, string &name)
function DefineMaskVars (line 78) | void DefineMaskVars(const DCCF &dccf, VDCNetCDF &vdc)
function defineMapProjection (line 144) | void defineMapProjection(const DCCF &dc, VDCNetCDF &vdc) { vdc.SetMapPro...
function main (line 146) | int main(int argc, char **argv)
FILE: apps/linuxlauncher/launcher.c
function main (line 7) | int main(int argc, char **argv)
FILE: apps/ncdf2wasp/ncdf2wasp.cpp
type opt_t (line 19) | struct opt_t {
function name_in (line 92) | bool name_in(string name, const vector<string> &names) { return (find(na...
function get_compressed_dims (line 98) | void get_compressed_dims(const vector<string> &dimnames, const vector<si...
function get_bs (line 126) | vector<size_t> get_bs(const vector<string> &dimnames, const vector<size_...
function get_cratios (line 148) | vector<size_t> get_cratios(const vector<string> &dimnames, const vector<...
function DefFile (line 174) | int DefFile(const NetCDFCpp &ncdf, WASP &wasp)
function GetVarNames (line 207) | int GetVarNames(const NetCDFCpp &ncdf, vector<string> &vars, vector<stri...
function CopyVars (line 262) | int CopyVars(const NetCDFCpp &ncdf, const vector<string> ©_vars, WAS...
function DefCopyVar (line 274) | int DefCopyVar(const NetCDFCpp &ncdf, string varname, NetCDFCpp &wasp)
function DefCompressVar (line 293) | int DefCompressVar(const NetCDFCpp &ncdf, string varname, WASP &wasp)
function DefVars (line 315) | int DefVars(const NetCDFCpp &ncdf, const vector<string> &vars, const vec...
function CompressVars (line 344) | int CompressVars(NetCDFCpp &ncdf, const vector<string> ©_vars, WASP ...
function Process (line 354) | void Process(string ncdffile, string waspfile)
function main (line 396) | int main(int argc, char **argv)
FILE: apps/pythonapi/example_scripts/example_utils.py
function SampleFunctionOnRegularGrid (line 21) | def SampleFunctionOnRegularGrid(f, ext=None, shape=None):
function OpenExampleDataset (line 31) | def OpenExampleDataset(session):
FILE: apps/pythonapi/example_scripts/rotate_video.py
function rotation_matrix (line 45) | def rotation_matrix(axis, theta):
FILE: apps/pythonapi/example_scripts/visualizer_widget_example.py
function sliderChanged (line 50) | def sliderChanged(change):
FILE: apps/pythonapi/example_scripts/xarray_example.py
function gen2d (line 29) | def gen2d(w,h,f):
function gen3d (line 75) | def gen3d(w,h,d,f):
FILE: apps/pythonapi/setup.py
function GenerateSetupDataFilesFormattedListForDir (line 15) | def GenerateSetupDataFilesFormattedListForDir(root, prefix=""):
function PrintSetupDataFilesFormattedList (line 24) | def PrintSetupDataFilesFormattedList(l):
function IsCondaBuild (line 36) | def IsCondaBuild():
FILE: apps/pythonapi/tests/cppyy-syntax-test.py
function cb (line 37) | def cb():
function cb2 (line 41) | def cb2(s):
FILE: apps/pythonapi/tests/module-data-test.py
function gen2d (line 44) | def gen2d(w,h,f):
FILE: apps/pythonapi/tests/syntax-test.py
function log (line 49) | def log(func):
class ParentClass (line 133) | class ParentClass():
method printTest (line 134) | def printTest(self):
class ChildClass (line 138) | class ChildClass(ParentClass):
method printTest (line 139) | def printTest(self):
method printTest2 (line 143) | def printTest2(self):
class ParentWrapped (line 150) | class ParentWrapped(SmartWrapper, wrap=ParentClass):
class ChildWrapped (line 156) | class ChildWrapped(ParentWrapped, wrap=ChildClass):
FILE: apps/pythonapi/tests/test.py
function sample (line 18) | def sample(f, ext=None, shape=None):
FILE: apps/pythonapi/vapor/animation.py
class Animation (line 10) | class Animation:
method __init__ (line 11) | def __init__(self, ses:Session):
method CaptureFrame (line 16) | def CaptureFrame(self):
method ShowInteractive (line 25) | def ShowInteractive(self):
method Show (line 79) | def Show(self, framerate=15):
method SaveMP4 (line 97) | def SaveMP4(self, path:str, framerate=15):
method __requireIPython (line 109) | def __requireIPython(self):
FILE: apps/pythonapi/vapor/annotations.py
class ColorbarAnnotation (line 6) | class ColorbarAnnotation(ParamsWrapper, wrap=link.VAPoR.ColorbarPbase):
class SceneAnnotation (line 32) | class SceneAnnotation(ParamsWrapper, wrap=link.VAPoR.AnnotationParams):
class TimeAnnotationType (line 70) | class TimeAnnotationType:
class AxisAnnotation (line 79) | class AxisAnnotation(ParamsWrapper, wrap=link.VAPoR.AxisAnnotation):
FILE: apps/pythonapi/vapor/camera.py
class Camera (line 11) | class Camera():
method __init__ (line 22) | def __init__(self, ce):
method LoadFromFile (line 25) | def LoadFromFile(self, path:str):
method SaveToFile (line 29) | def SaveToFile(self, path:str):
method AlignView (line 33) | def AlignView(self, axis:str):
method ViewAll (line 41) | def ViewAll(self):
method LookAt (line 46) | def LookAt(self, camera_position:Vec3, target:Vec3, up:Vec3 = (0, 0, 1)):
method Zoom (line 50) | def Zoom(self, fractionOfDistanceToTarget:float):
method GetPosition (line 59) | def GetPosition (self): return np.array(NavigationUtils.GetCameraPosit...
method GetDirection (line 60) | def GetDirection(self): return np.array(NavigationUtils.GetCameraDirec...
method GetUp (line 61) | def GetUp (self): return np.array(NavigationUtils.GetCameraUp(se...
method GetTarget (line 62) | def GetTarget (self): return np.array(NavigationUtils.GetCameraTarge...
method SetPosition (line 63) | def SetPosition (self, v:Vec3): NavigationUtils.SetCameraPosition(self...
method SetDirection (line 64) | def SetDirection(self, v:Vec3): NavigationUtils.SetCameraDirection(sel...
method SetUp (line 65) | def SetUp (self, v:Vec3): NavigationUtils.SetCameraUp(self.ce, v)
method SetTarget (line 66) | def SetTarget (self, v:Vec3): NavigationUtils.SetCameraTarget(self.c...
method __GUIStateParams (line 68) | def __GUIStateParams(self) -> link.GUIStateParams:
method TrackMovingDomain (line 74) | def TrackMovingDomain(self, on=True):
method TrackMovingDomainRenderRegions (line 80) | def TrackMovingDomainRenderRegions(self, on=True):
FILE: apps/pythonapi/vapor/config.py
function PathExists (line 31) | def PathExists(path):
function GetAllResources (line 49) | def GetAllResources(relPath):
function GetResource (line 59) | def GetResource(relPath):
function GetResourceSafe (line 66) | def GetResourceSafe(relPath):
function GetDoxygenRoot (line 74) | def GetDoxygenRoot():
function GetLibraryDirs (line 81) | def GetLibraryDirs():
function GetIncludeDirs (line 84) | def GetIncludeDirs():
function GetCompileDefinitions (line 87) | def GetCompileDefinitions(debug=False):
function IsRunningFromIPython (line 103) | def IsRunningFromIPython():
function IsRunningFromMarimo (line 111) | def IsRunningFromMarimo():
function IsRunningFromNotebook (line 119) | def IsRunningFromNotebook():
FILE: apps/pythonapi/vapor/cppyyDoxygenWrapper.py
class CPPYYDoxygenWrapperMeta (line 6) | class CPPYYDoxygenWrapperMeta(type):
method __GetDoxgenRoot (line 11) | def __GetDoxgenRoot(cls) -> ET.Element:
method __GetClassIndexNode (line 20) | def __GetClassIndexNode(cls, name:str) -> ET.Element:
method __GetClassRoot (line 27) | def __GetClassRoot(cls, name:str) -> ET.Element:
method __GetMemberNodes (line 39) | def __GetMemberNodes(cls, className:str, memberName:str) -> list[ET.El...
method __ParseDescriptionParameterList (line 46) | def __ParseDescriptionParameterList(cls, plist: ET.Element) -> str:
method __RenderParameterListSection (line 50) | def __RenderParameterListSection(cls, title:str, kind:str, allLists:li...
method __ParseDescriptionParagraph (line 60) | def __ParseDescriptionParagraph(cls, para: ET.Element, parameterLists:...
method __ParseMemberDetailedDescription (line 79) | def __ParseMemberDetailedDescription(cls, member: ET.Element) -> str:
method __CleanFunctionDefinition (line 94) | def __CleanFunctionDefinition(cls, ds: str) -> str:
method __GetDocumentationForMemberNode (line 100) | def __GetDocumentationForMemberNode(cls, node: ET.Element) -> str:
method __GetDocumentationForFunctionNode (line 107) | def __GetDocumentationForFunctionNode(cls, node: ET.Element) -> str:
method __GetDocumentationForVariableNode (line 120) | def __GetDocumentationForVariableNode(cls, node: ET.Element) -> str:
method __GetFunctionDocumentation (line 129) | def __GetFunctionDocumentation(cls, pCls:type, func) -> str:
method __ParseClassDescription (line 142) | def __ParseClassDescription(cls, ddNode: ET.Element) -> str:
method __GetClassDocumentation (line 151) | def __GetClassDocumentation(cls, pCls) -> str:
method _MakeFunctionWrapper (line 166) | def _MakeFunctionWrapper(cls, pCls, func):
method __new__ (line 176) | def __new__(cls, clsname, bases, clsdict:dict, wrap:type=None):
FILE: apps/pythonapi/vapor/dataset.py
class Dataset (line 22) | class Dataset(SmartWrapper, wrap=link.VAPoR.DataMgr):
method __init__ (line 40) | def __init__(self, dataMgr:link.VAPoR.DataMgr, id:str, ses):
method NewRenderer (line 45) | def NewRenderer(self, Class: Renderer) -> Renderer:
method GetName (line 48) | def GetName(self):
method __str__ (line 51) | def __str__(self):
method __repr__ (line 76) | def __repr__(self):
method GetTransform (line 79) | def GetTransform(self):
method GetDataRange (line 85) | def GetDataRange(self, varname: str, atTimestep: int = 0):
method GetDatasetTypes (line 91) | def GetDatasetTypes():
class PythonDataset (line 97) | class PythonDataset(Dataset, wrap=link.VAPoR.PythonDataMgr):
method __checkNameValid (line 98) | def __checkNameValid(self, name):
method AddNumpyData (line 103) | def AddNumpyData(self, name:str, arr:np.ndarray):
method AddXArrayData (line 117) | def AddXArrayData(self, varName:str, arr:xr.DataArray):
FILE: apps/pythonapi/vapor/link.py
class Link (line 26) | class Link:
method include (line 29) | def include(self, path):
method FixModuleOwnership (line 34) | def FixModuleOwnership(Class):
method __getattr__ (line 43) | def __getattr__(self, name):
FILE: apps/pythonapi/vapor/params.py
class ParamsWrapper (line 7) | class ParamsWrapper(SmartWrapper):
method __init__ (line 8) | def __init__(self, p:ParamsBase):
class ParamsTagWrapper (line 13) | class ParamsTagWrapper(FuncWrapper):
method __init__ (line 14) | def __init__(self, tag:str):
method __getAccessorRootName (line 17) | def __getAccessorRootName(self):
method _getSetter (line 24) | def _getSetter(wself, cls):
method _getGetter (line 27) | def _getGetter(wself, cls):
method GetFunctionsToWrap (line 30) | def GetFunctionsToWrap(self, cls, name:str):
class ParamsTagWrapperLong (line 41) | class ParamsTagWrapperLong(ParamsTagWrapper):
method __init__ (line 42) | def __init__(self, tag:str):
method _getSetter (line 45) | def _getSetter(wself, cls):
method _getGetter (line 51) | def _getGetter(wself, cls):
class ParamsTagWrapperBool (line 58) | class ParamsTagWrapperBool(ParamsTagWrapper):
method __init__ (line 59) | def __init__(self, tag:str):
method _getSetter (line 62) | def _getSetter(wself, cls):
method _getGetter (line 68) | def _getGetter(wself, cls):
class ParamsTagWrapperDouble (line 75) | class ParamsTagWrapperDouble(ParamsTagWrapper):
method __init__ (line 76) | def __init__(self, tag:str):
method _getSetter (line 79) | def _getSetter(wself, cls):
method _getGetter (line 85) | def _getGetter(wself, cls):
class ParamsTagWrapperString (line 92) | class ParamsTagWrapperString(ParamsTagWrapper):
method __init__ (line 93) | def __init__(self, tag:str):
method _getSetter (line 96) | def _getSetter(wself, cls):
method _getGetter (line 102) | def _getGetter(wself, cls):
class ParamsTagWrapperList (line 109) | class ParamsTagWrapperList(FuncWrapper):
method __init__ (line 116) | def __init__(self, slist:str):
method MakeList (line 119) | def MakeList(self, s: str):
method __makeWrapper (line 122) | def __makeWrapper(self, typ, tag):
method GetFunctionsToWrap (line 134) | def GetFunctionsToWrap(self, cls, name:str):
FILE: apps/pythonapi/vapor/renderer.py
class BoundingBox (line 12) | class BoundingBox():
method __init__ (line 13) | def __init__(self, toWrap:link.VAPoR.Box):
method SetExtents (line 16) | def SetExtents(self, min, max):
method GetExtents (line 20) | def GetExtents(self):
class Renderer (line 32) | class Renderer(ParamsWrapper, wrap=RenderParams):
method __init__ (line 68) | def __init__(self, renderParams:link.VAPoR.RenderParams, id:str):
method GetTransferFunction (line 72) | def GetTransferFunction(self, varname:str=None) -> TransferFunction:
method GetPrimaryTransferFunction (line 77) | def GetPrimaryTransferFunction(self) -> TransferFunction:
method SetVariableName (line 83) | def SetVariableName(self, name:str):
method GetRenderRegion (line 91) | def GetRenderRegion(self) -> BoundingBox:
method GetColorbarAnnotation (line 94) | def GetColorbarAnnotation(self) -> ColorbarAnnotation:
method SetDimensions (line 97) | def SetDimensions(self, dim:int):
class BarbRenderer (line 112) | class BarbRenderer(Renderer, wrap=link.VAPoR.BarbParams):
class TwoDDataRenderer (line 129) | class TwoDDataRenderer(Renderer, wrap=link.VAPoR.TwoDDataParams):
class ContourRenderer (line 134) | class ContourRenderer(Renderer, wrap=link.VAPoR.ContourParams):
method GetIsoValues (line 135) | def GetIsoValues(self) -> list[float]:
method SetIsoValues (line 138) | def SetIsoValues(self, values: list[float]):
class VolumeRenderer (line 144) | class VolumeRenderer(Renderer, wrap=link.VAPoR.VolumeParams):
method SetAlgorithm (line 167) | def SetAlgorithm(self, algorithm: str):
method GetAlgorithmNames (line 173) | def GetAlgorithmNames(self, types=link.VAPoR.VolumeParams.Type.DVR):
class VolumeIsoRenderer (line 179) | class VolumeIsoRenderer(VolumeRenderer, wrap=link.VAPoR.VolumeIsoParams):
method GetAlgorithmNames (line 184) | def GetAlgorithmNames(self):
method GetIsoValues (line 187) | def GetIsoValues(self) -> list[float]:
method SetIsoValues (line 190) | def SetIsoValues(self, values: list[float]):
class FlowRenderer (line 197) | class FlowRenderer(Renderer, wrap=link.VAPoR.FlowParams):
method GetRakeRegion (line 259) | def GetRakeRegion(self) -> BoundingBox:
method GetIntegrationRegion (line 262) | def GetIntegrationRegion(self) -> BoundingBox:
class ParticleRenderer (line 268) | class ParticleRenderer(Renderer, wrap=link.VAPoR.ParticleParams):
class WireFrameRenderer (line 285) | class WireFrameRenderer(Renderer, wrap=link.VAPoR.WireFrameParams):
class ImageRenderer (line 291) | class ImageRenderer(Renderer, wrap=link.VAPoR.ImageParams):
method ListBuiltinMaps (line 301) | def ListBuiltinMaps(self) -> list[str]:
method SetBuiltinMap (line 308) | def SetBuiltinMap(self, name: str):
class SliceRenderer (line 315) | class SliceRenderer(Renderer, wrap=link.VAPoR.SliceParams):
class ModelRenderer (line 340) | class ModelRenderer(Renderer, wrap=link.VAPoR.ModelParams):
FILE: apps/pythonapi/vapor/session.py
class Session (line 14) | class Session(link.Session):
method __init__ (line 15) | def __init__(self):
method NewRenderer (line 19) | def NewRenderer(self, Class:Renderer, datasetName:str) -> Renderer:
method DeleteRenderer (line 26) | def DeleteRenderer(self, renderer:Renderer):
method GetRenderer (line 29) | def GetRenderer(self, name):
method GetRenderers (line 38) | def GetRenderers(self) -> list[Renderer]:
method OpenDataset (line 41) | def OpenDataset(self, datasetType:str, files:list[str]):
method CreatePythonDataset (line 52) | def CreatePythonDataset(self):
method GetDataset (line 61) | def GetDataset(self, name) -> Dataset:
method GetDatasets (line 66) | def GetDatasets(self):
method GetCamera (line 69) | def GetCamera(self):
method RenderToImage (line 72) | def RenderToImage(self, fast=False) -> PIL.Image:
method Show (line 83) | def Show(self):
method SetResolution (line 93) | def SetResolution(self, width, height):
method GetSceneAnnotations (line 96) | def GetSceneAnnotations(self) -> SceneAnnotation:
method GetAxisAnnotations (line 101) | def GetAxisAnnotations(self) -> AxisAnnotation:
FILE: apps/pythonapi/vapor/smartwrapper.py
class FuncWrapper (line 7) | class FuncWrapper():
method GetFunctionsToWrap (line 8) | def GetFunctionsToWrap(self, cls, name):
method GetFunctionNamesToWrap (line 12) | def GetFunctionNamesToWrap(self, cls, name) -> list[str]:
method GetWrappedFunctionName (line 16) | def GetWrappedFunctionName(self, memberName, func) -> str:
class FuncWrapperRename (line 20) | class FuncWrapperRename(FuncWrapper):
method __init__ (line 21) | def __init__(self, toWrapName:str):
method GetFunctionNamesToWrap (line 24) | def GetFunctionNamesToWrap(self, cls, name) -> list[str]:
method GetWrappedFunctionName (line 28) | def GetWrappedFunctionName(self, memberName, func) -> str:
class FuncWrapperWrapAll (line 32) | class FuncWrapperWrapAll(FuncWrapper):
method GetFunctionNamesToWrap (line 33) | def GetFunctionNamesToWrap(self, cls, name):
class FuncWrapperRegex (line 37) | class FuncWrapperRegex(FuncWrapper):
method __init__ (line 38) | def __init__(self, regex):
method GetFunctionNamesToWrap (line 41) | def GetFunctionNamesToWrap(self, cls, name):
class FuncWrapperStrList (line 45) | class FuncWrapperStrList(FuncWrapper):
method __init__ (line 46) | def __init__(self, slist:str):
method MakeList (line 50) | def MakeList(self, s: str):
method GetFunctionNamesToWrap (line 53) | def GetFunctionNamesToWrap(self, cls, name):
method GetWrappedFunctionName (line 58) | def GetWrappedFunctionName(self, memberName, func):
method EnsureNamesStartUppercase (line 64) | def EnsureNamesStartUppercase(self):
function FuncWrappers (line 69) | def FuncWrappers(n: int = 32):
class SmartWrapperMeta (line 74) | class SmartWrapperMeta(cppyyDoxygenWrapper.CPPYYDoxygenWrapperMeta):
method __new__ (line 84) | def __new__(cls, clsname, bases, clsdict:dict, wrap:type=None):
method __init__ (line 99) | def __init__(cls, *args, **kwargs):
method AutoWrap (line 104) | def AutoWrap(cls, toWrap, *args, **kwargs):
method _MakeFunctionWrapper (line 110) | def _MakeFunctionWrapper(cls, pCls, func):
class SmartWrapper (line 121) | class SmartWrapper(metaclass=SmartWrapperMeta):
method __init__ (line 122) | def __init__(self, toWrap):
method __subclasses_rec__ (line 128) | def __subclasses_rec__(cls):
class EnumWrapperMeta (line 132) | class EnumWrapperMeta(type):
method __repr__ (line 133) | def __repr__(self):
function EnumWrapper (line 136) | def EnumWrapper(Class:type):
FILE: apps/pythonapi/vapor/transferfunction.py
class TransferFunction (line 13) | class TransferFunction(ParamsWrapper, wrap=link.VAPoR.MapperFunction):
method LoadBuiltinColormap (line 27) | def LoadBuiltinColormap(self, name:str) -> None:
method ListBuiltinColormaps (line 32) | def ListBuiltinColormaps(cls) -> list[str]:
method __normalizeControlPoints (line 36) | def __normalizeControlPoints(self, cp: list[tuple[float, Any]]):
method __enumerateNormDist (line 43) | def __enumerateNormDist(l: list[float]):
method __swapEachXY (line 49) | def __swapEachXY(l: list):
method __flatten (line 53) | def __flatten(l: list):
method __rgbToHsv (line 63) | def __rgbToHsv(self, rgb):
method SetOpacityNormalizedControlPoints (line 68) | def SetOpacityNormalizedControlPoints(self, cp: list[tuple[float, floa...
method SetOpacityList (line 74) | def SetOpacityList(self, opacities: list[float]):
method SetOpacityControlPoints (line 78) | def SetOpacityControlPoints(self, cp: list[tuple[float, float]]):
method GetOpacityControlPoints (line 87) | def GetOpacityControlPoints(self):
method SetColorNormalizedHSVControlPoints (line 99) | def SetColorNormalizedHSVControlPoints(self, cp: list[tuple[float, Vec...
method SetColorHSVList (line 105) | def SetColorHSVList(self, colors: list[Vec3]):
method ReverseColormap (line 109) | def ReverseColormap(self):
method SetColorHSVControlPoints (line 113) | def SetColorHSVControlPoints(self, cp: list[tuple[float, Vec3]]):
method __rgbEquivalent (line 121) | def __rgbEquivalent(func):
method SetColorRGBList (line 133) | def SetColorRGBList(self): pass
method SetColorNormalizedRGBControlPoints (line 136) | def SetColorNormalizedRGBControlPoints(self): pass
method SetColorRGBControlPoints (line 139) | def SetColorRGBControlPoints(self):pass
method GetMatPlotLibColormap (line 141) | def GetMatPlotLibColormap(self):
method GetMatPlotLibColorbar (line 147) | def GetMatPlotLibColorbar(self, axes="auto", figsize=(9,1.5), **kwargs):
method ShowMatPlotLibColorbar (line 179) | def ShowMatPlotLibColorbar(self, axes="auto", figsize=(9, 1.5), **kwar...
FILE: apps/pythonapi/vapor/transform.py
class Transform (line 6) | class Transform(ParamsWrapper, wrap=link.VAPoR.Transform):
FILE: apps/pythonapi/vapor/utils/histogram.py
function GetSamples (line 11) | def GetSamples(session: Session, renderer: Renderer, varName: str):
function GetMatPlotLibHistogram (line 20) | def GetMatPlotLibHistogram(session: Session, renderer: Renderer, **kwargs):
function ShowMatPlotLibHistogram (line 37) | def ShowMatPlotLibHistogram(session: Session, renderer: Renderer, **kwar...
function transferFunctionWidget (line 41) | def transferFunctionWidget(ses, ren, preserveOpacities = True, nControlP...
FILE: apps/pythonapi/vapor/utils/keyframing.py
function animate_camera_keyframes (line 4) | def animate_camera_keyframes(session_paths, steps = None, time_interpola...
function animate_camera_keyframes_camerafiles (line 141) | def animate_camera_keyframes_camerafiles(primary_session, camera_paths, ...
FILE: apps/pythonapi/vapor/widget-jquery.js
function m (line 2) | function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e...
function x (line 2) | function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof...
function c (line 2) | function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e...
function fe (line 2) | function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLower...
function p (line 2) | function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCode...
function I (line 2) | function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeTyp...
function W (line 2) | function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cach...
function F (line 2) | function F(e){return e[S]=!0,e}
function $ (line 2) | function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e...
function B (line 2) | function B(t){return function(e){return fe(e,"input")&&e.type===t}}
function _ (line 2) | function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&...
function z (line 2) | function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.d...
function X (line 2) | function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a...
function U (line 2) | function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
function V (line 2) | function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeTyp...
function G (line 2) | function G(){}
function Y (line 2) | function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);...
function Q (line 2) | function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
function J (line 2) | function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n+...
function K (line 2) | function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--...
function Z (line 2) | function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o...
function ee (line 2) | function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)...
function te (line 2) | function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.r...
function ne (line 2) | function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e))...
function re (line 2) | function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(e=l...
function T (line 2) | function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t...
function A (line 2) | function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}
function N (line 2) | function N(e){return e}
function q (line 2) | function q(e){throw e}
function L (line 2) | function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n...
function l (line 2) | function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(...
function P (line 2) | function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventL...
function W (line 2) | function W(e,t){return t.toUpperCase()}
function F (line 2) | function F(e){return e.replace(R,"ms-").replace(I,W)}
function B (line 2) | function B(){this.expando=ce.expando+B.uid++}
function V (line 2) | function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.r...
function te (line 2) | function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:functio...
function re (line 2) | function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[...
function Se (line 2) | function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagNa...
function Ee (line 2) | function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",...
function Ae (line 2) | function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),...
function Ne (line 2) | function Ne(){return!0}
function qe (line 2) | function qe(){return!1}
function Le (line 2) | function Le(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"...
function He (line 2) | function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handl...
function o (line 2) | function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.f...
function Re (line 2) | function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild...
function Ie (line 2) | function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}
function We (line 2) | function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.sli...
function Fe (line 2) | function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=...
function $e (line 2) | function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],...
function Be (line 2) | function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++...
function Ge (line 2) | function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))...
function Ye (line 2) | function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(...
function e (line 2) | function e(){if(l){u.style.cssText="position:absolute;left:-11111px;widt...
function t (line 2) | function t(e){return Math.round(parseFloat(e))}
function Ze (line 2) | function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=fu...
function rt (line 2) | function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3...
function it (line 2) | function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"bo...
function ot (line 2) | function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&"border-b...
function at (line 2) | function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}
function dt (line 2) | function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAni...
function ht (line 2) | function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}
function gt (line 2) | function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin...
function vt (line 2) | function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["...
function yt (line 2) | function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().al...
function Tt (line 2) | function Tt(e){return(e.match(D)||[]).join(" ")}
function Ct (line 2) | function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}
function kt (line 2) | function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)|...
function Pt (line 2) | function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r...
function Ut (line 2) | function Ut(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var ...
function Vt (line 2) | function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!...
function Gt (line 2) | function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)vo...
function l (line 2) | function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=v...
FILE: apps/pythonapi/vapor/widget.js
function render (line 3) | function render({ model, el }) {
FILE: apps/pythonapi/vapor/widget.py
class CanvasStreamWidget (line 29) | class CanvasStreamWidget(anywidget.AnyWidget):
method __init__ (line 44) | def __init__(self, *args, **kwargs):
method test (line 51) | def test(self):
method valueChanged (line 55) | def valueChanged(self):
method SetImage (line 60) | def SetImage(self, img: Image):
method _DebugShowMousePos (line 66) | def _DebugShowMousePos(self):
class VaporVisualizerWidget (line 109) | class VaporVisualizerWidget(CanvasStreamWidget):
class TrackballButton (line 114) | class TrackballButton:
method __init__ (line 119) | def __init__(self, ses:session.Session, *args, **kwargs):
method Render (line 135) | def Render(self, fast=False):
method mouseDownChanged (line 143) | def mouseDownChanged(self):
method mousePosChanged (line 159) | def mousePosChanged(self):
FILE: apps/raw2vdc/raw2vdc.cpp
type opt_t (line 18) | struct opt_t {
function size_of_type (line 53) | size_t size_of_type(string type)
function swapbytes (line 62) | void swapbytes(void *vptr, size_t size, size_t n)
function read_data (line 78) | int read_data(FILE * fp,
function main (line 118) | int main(int argc, char **argv)
FILE: apps/raw2wasp/raw2wasp.cpp
type opt_t (line 18) | struct opt_t {
function CopyVar (line 49) | void CopyVar(string datafile, string ncdffile, T dummy)
function main (line 93) | int main(int argc, char **argv)
FILE: apps/tiff2geotiff/geotiff_proj4.cpp
function OSR_GDV (line 238) | static double OSR_GDV(char **papszNV, const char *pszField, double dfDef...
function OSRFreeStringList (line 256) | static void OSRFreeStringList(char **list)
function GTIFSetFromProj4_WRF (line 272) | int GTIFSetFromProj4_WRF(GTIF *gtif, const char *proj4)
function GTIFProj4ToLatLong (line 986) | int GTIFProj4ToLatLong(GTIFDefn *psDefn, int nPoints, double *padfX, dou...
function GTIFProj4FromLatLong (line 998) | int GTIFProj4FromLatLong(GTIFDefn *psDefn, int nPoints, double *padfX, d...
function GTIFProj4FromLatLong (line 1024) | int GTIFProj4FromLatLong(GTIFDefn *psDefn, int nPoints, double *padfX, d...
function GTIFProj4ToLatLong (line 1078) | int GTIFProj4ToLatLong(GTIFDefn *psDefn, int nPoints, double *padfX, dou...
FILE: apps/tiff2geotiff/getopt.cpp
function getopt (line 54) | int getopt(int nargc, char **nargv, const char *ostr)
FILE: apps/tiff2geotiff/tiff2geotiff.cpp
function main (line 101) | int main(int argc, char *argv[])
function ApplyWorldFile (line 214) | static void ApplyWorldFile(const char *worldfilename, TIFF *out)
function InstallGeoTIFF (line 277) | static void InstallGeoTIFF(TIFF *out)
function applyCorners (line 373) | static int applyCorners(float lonlat[4], float relPos[4], TIFF *out)
function CopyGeoTIFF (line 438) | static void CopyGeoTIFF(TIFF *in, TIFF *out)
function processG3Options (line 464) | static void processG3Options(const char *cp)
function processCompressOptions (line 482) | static int processCompressOptions(const char *opt)
function usage (line 571) | static void usage(void)
function CheckAndCorrectColormap (line 581) | static void CheckAndCorrectColormap(TIFF *tif, int n, uint16_t *r, uint1...
type cpTag (line 606) | struct cpTag {
function cpOtherTags (line 653) | static void cpOtherTags(TIFF *in, TIFF *out)
function tiffcp (line 707) | static int tiffcp(TIFF *in, TIFF *out)
function DECLAREcpFunc (line 825) | DECLAREcpFunc(cpContig2ContigByRow)
function DECLAREcpFunc (line 847) | DECLAREcpFunc(cpContig2ContigByRow_8_to_4)
function DECLAREcpFunc (line 879) | DECLAREcpFunc(cpDecodedStrips)
function DECLAREcpFunc (line 907) | DECLAREcpFunc(cpSeparate2SeparateByRow)
function DECLAREcpFunc (line 931) | DECLAREcpFunc(cpContig2SeparateByRow)
function DECLAREcpFunc (line 966) | DECLAREcpFunc(cpSeparate2ContigByRow)
function cpStripToTile (line 998) | static void cpStripToTile(unsigned char *out, unsigned char *in, uint32_...
function cpContigBufToSeparateBuf (line 1008) | static void cpContigBufToSeparateBuf(unsigned char *out, unsigned char *...
function cpSeparateBufToContigBuf (line 1018) | static void cpSeparateBufToContigBuf(unsigned char *out, unsigned char *...
function cpImage (line 1028) | static int cpImage(TIFF *in, TIFF *out, readFunc fin, writeFunc fout, ui...
function DECLAREreadFunc (line 1040) | DECLAREreadFunc(readContigStripsIntoBuffer)
function DECLAREreadFunc (line 1054) | DECLAREreadFunc(readSeparateStripsIntoBuffer)
function DECLAREreadFunc (line 1082) | DECLAREreadFunc(readContigTilesIntoBuffer)
function DECLAREreadFunc (line 1117) | DECLAREreadFunc(readSeparateTilesIntoBuffer)
function DECLAREwriteFunc (line 1159) | DECLAREwriteFunc(writeBufferToContigStrips)
function DECLAREwriteFunc (line 1173) | DECLAREwriteFunc(writeBufferToSeparateStrips)
function DECLAREwriteFunc (line 1197) | DECLAREwriteFunc(writeBufferToContigTiles)
function DECLAREwriteFunc (line 1239) | DECLAREwriteFunc(writeBufferToSeparateTiles)
function DECLAREcpFunc (line 1287) | DECLAREcpFunc(cpContigStrips2ContigTiles) { return cpImage(in, out, read...
function DECLAREcpFunc (line 1292) | DECLAREcpFunc(cpContigStrips2SeparateTiles) { return cpImage(in, out, re...
function DECLAREcpFunc (line 1297) | DECLAREcpFunc(cpSeparateStrips2ContigTiles) { return cpImage(in, out, re...
function DECLAREcpFunc (line 1302) | DECLAREcpFunc(cpSeparateStrips2SeparateTiles) { return cpImage(in, out, ...
function DECLAREcpFunc (line 1307) | DECLAREcpFunc(cpContigTiles2ContigTiles) { return cpImage(in, out, readC...
function DECLAREcpFunc (line 1312) | DECLAREcpFunc(cpContigTiles2SeparateTiles) { return cpImage(in, out, rea...
function DECLAREcpFunc (line 1317) | DECLAREcpFunc(cpSeparateTiles2ContigTiles) { return cpImage(in, out, rea...
function DECLAREcpFunc (line 1322) | DECLAREcpFunc(cpSeparateTiles2SeparateTiles) { return cpImage(in, out, r...
function DECLAREcpFunc (line 1327) | DECLAREcpFunc(cpContigTiles2ContigStrips) { return cpImage(in, out, read...
function DECLAREcpFunc (line 1332) | DECLAREcpFunc(cpContigTiles2SeparateStrips) { return cpImage(in, out, re...
function DECLAREcpFunc (line 1337) | DECLAREcpFunc(cpSeparateTiles2ContigStrips) { return cpImage(in, out, re...
function DECLAREcpFunc (line 1342) | DECLAREcpFunc(cpSeparateTiles2SeparateStrips) { return cpImage(in, out, ...
function copyFunc (line 1347) | static copyFunc pickCopyFunc(TIFF *in, TIFF *out, uint16_t bitspersample...
FILE: apps/vapor_check_udunits/vapor_check_udunits.cpp
type opt_t (line 11) | struct opt_t {
function main (line 22) | int main(int argc, char **argv)
FILE: apps/vaporgui/AbstractWidgetGroup.h
function virtual (line 18) | virtual This *Add(Widget *w)
function This (line 25) | This *AddM(const List &list)
FILE: apps/vaporgui/AnimationController.cpp
function AnimationParams (line 188) | AnimationParams *AnimationController::GetActiveParams() const { return N...
FILE: apps/vaporgui/AnimationController.h
function namespace (line 7) | namespace VAPoR {
function class (line 15) | class AnimationController : public QObject {
FILE: apps/vaporgui/AppSettingsMenu.cpp
class PUpdateChecker (line 19) | class PUpdateChecker : public PWidget {
method updateGUI (line 26) | void updateGUI() const override {}
method openURL (line 27) | void openURL()
method checkForUpdate (line 31) | void checkForUpdate()
method PUpdateChecker (line 50) | PUpdateChecker() : PWidget("", _group = new VGroup())
method DisplayUpToDate (line 66) | void DisplayUpToDate()
method DisplayUpdateAvailable (line 74) | void DisplayUpdateAvailable(UpdateInfo info)
method DisplayError (line 83) | void DisplayError()
FILE: apps/vaporgui/AppSettingsParams.h
function class (line 41) | class AppSettingsParams : public VAPoR::ParamsBase {
FILE: apps/vaporgui/BannerGUI.h
function class (line 9) | class BannerGUI : QMainWindow {
FILE: apps/vaporgui/BarbEventRouter.cpp
function string (line 49) | string BarbEventRouter::_getDescription() const
FILE: apps/vaporgui/BarbEventRouter.h
function class (line 11) | class BarbEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/CLIToolInstaller.h
function class (line 3) | class CLIToolInstaller {
FILE: apps/vaporgui/CaptureController.h
function namespace (line 6) | namespace VAPoR {
type TiffStrings (line 10) | struct TiffStrings {
type PngStrings (line 14) | struct PngStrings {
function class (line 19) | class CaptureController : public QObject {
FILE: apps/vaporgui/CheckForNotices.h
type Notice (line 8) | struct Notice {
FILE: apps/vaporgui/CheckForUpdate.cpp
function CheckForUpdate (line 19) | void CheckForUpdate(function<void(bool updateAvailable, UpdateInfo info)...
FILE: apps/vaporgui/CheckForUpdate.h
type UpdateInfo (line 8) | struct UpdateInfo {
FILE: apps/vaporgui/CheckForUpdateUI.cpp
function CheckForAndShowUpdate (line 10) | void CheckForAndShowUpdate(ControlExec *ce)
FILE: apps/vaporgui/CitationReminder.h
function class (line 5) | class CitationReminder {
FILE: apps/vaporgui/Combo.h
function class (line 22) | class Combo : public QWidget {
FILE: apps/vaporgui/ContourEventRouter.cpp
function string (line 78) | string ContourEventRouter::_getDescription() const
FILE: apps/vaporgui/ContourEventRouter.h
function class (line 13) | class ContourEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/CopyRegionAnnotationWidget.cpp
function split (line 20) | void split(const std::string &s, char delim, Out result)
function split (line 28) | std::vector<std::string> split(const std::string &s, char delim)
FILE: apps/vaporgui/CopyRegionAnnotationWidget.h
function namespace (line 5) | namespace VAPoR {
function class (line 12) | class CopyRegionAnnotationWidget : public CopyRegionWidget {
FILE: apps/vaporgui/CopyRegionWidget.cpp
function split (line 37) | void split(const std::string &s, char delim, Out result)
function split (line 45) | std::vector<std::string> split(const std::string &s, char delim)
FILE: apps/vaporgui/CopyRegionWidget.h
function namespace (line 9) | namespace VAPoR {
function class (line 15) | class CopyRegionWidget : public VSectionGroup {
FILE: apps/vaporgui/Core3_2_context.h
function QGLContext (line 11) | struct Core3_2_context : public QGLContext {
FILE: apps/vaporgui/DatasetImportController.h
function namespace (line 7) | namespace VAPoR {
function class (line 12) | class DatasetImportController : public QObject {
FILE: apps/vaporgui/DatasetInspector.h
function namespace (line 5) | namespace VAPoR {
function class (line 13) | class DatasetInspector : public QTabWidget {
FILE: apps/vaporgui/DatasetTypeLookup.cpp
function GetDatasetTypeDescriptions (line 21) | std::vector<std::string> GetDatasetTypeDescriptions() {
function DatasetTypeDescriptiveName (line 27) | std::string DatasetTypeDescriptiveName(const std::string& type) {
function DatasetTypeShortName (line 34) | std::string DatasetTypeShortName(const std::string& descriptiveName) {
FILE: apps/vaporgui/ErrorReporter.cpp
function _segFaultHandler (line 56) | void _segFaultHandler(int sig)
function _myBaseErrorCallback (line 77) | void _myBaseErrorCallback(const char *msg, int err_code)
function _myBaseDiagCallback (line 86) | void _myBaseDiagCallback(const char *msg)
function string (line 185) | string ErrorReporter::GetSystemInformation()
function ErrorReporter (line 243) | ErrorReporter *ErrorReporter::GetInstance()
FILE: apps/vaporgui/ErrorReporter.h
function class (line 42) | class ErrorReporterPopup : public QMessageBox {
type Type (line 80) | enum Type { Diagnostic = 0, Info = 1, Warning = 2, Error = 3, Fatal = 4 }
type Message (line 82) | struct Message {
FILE: apps/vaporgui/FidelityWidget.cpp
function QButtonGroup (line 89) | QButtonGroup *FidelityWidget::GetFidelityButtons() { return _fidelityBut...
FILE: apps/vaporgui/FidelityWidget.h
function QT_USE_NAMESPACE (line 9) | QT_USE_NAMESPACE
function Reinit (line 34) | void Reinit(VariableFlags variableFlags) { _variableFlags = variableFlag...
FILE: apps/vaporgui/FileOperationChecker.cpp
function QString (line 141) | QString FileOperationChecker::GetLastErrorMessage() { return _message; }
FILE: apps/vaporgui/FileOperationChecker.h
function class (line 15) | class FileOperationChecker {
FILE: apps/vaporgui/Flags.h
type VariableFlags (line 14) | enum VariableFlags {
type DimFlags (line 25) | enum DimFlags {
type GeometryFlags (line 35) | enum GeometryFlags {
FILE: apps/vaporgui/FlowEventRouter.cpp
function string (line 204) | string FlowEventRouter::_getDescription() const { return "Computes and d...
FILE: apps/vaporgui/FlowEventRouter.h
function class (line 14) | class FlowEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/GLWidget.h
function class (line 20) | class GLWidget : public QObject {
FILE: apps/vaporgui/ImageEventRouter.cpp
function string (line 38) | string ImageEventRouter::_getDescription() const
FILE: apps/vaporgui/ImageEventRouter.h
function class (line 11) | class ImageEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/MainForm.h
function class (line 57) | class MainForm : public QMainWindow {
function QApplication (line 139) | QApplication *getApp() { return _App; }
function setPause (line 141) | void setPause()
function GUIStateParams (line 150) | GUIStateParams *GetStateParams() const { return ((GUIStateParams *)_para...
function SettingsParams (line 151) | SettingsParams *GetSettingsParams() const { return ((SettingsParams *)_p...
function AnimationParams (line 152) | AnimationParams *GetAnimationParams() const { return ((AnimationParams *...
FILE: apps/vaporgui/Manip.h
function namespace (line 33) | namespace VAPoR {
FILE: apps/vaporgui/ModelEventRouter.cpp
function string (line 24) | string ModelEventRouter::_getDescription() const
FILE: apps/vaporgui/ModelEventRouter.h
function class (line 11) | class ModelEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/NcarCasperUtils.h
function class (line 4) | class NcarCasperUtils {
FILE: apps/vaporgui/NewRendererDialogManager.cpp
function NewRendererDialog (line 20) | NewRendererDialog* NewRendererDialogManager::ConstructNewRendererDialog(...
function NewRendererDialog (line 46) | NewRendererDialog *NewRendererDialogManager::ConstructNewRendererDialog(...
FILE: apps/vaporgui/NewRendererDialogManager.h
function namespace (line 6) | namespace VAPoR {class ControlExec;}
function class (line 9) | class NewRendererDialogManager : public QObject {
FILE: apps/vaporgui/NoticeBoard.h
type Notice (line 6) | struct Notice
function class (line 10) | class NoticeBoard : public QDialog {
FILE: apps/vaporgui/PAnnotationColorbarWidget.h
function class (line 11) | class PAnnotationColorbarWidget : public PWidget {
FILE: apps/vaporgui/PAxisAnnotationWidget.h
function namespace (line 10) | namespace VAPoR {
function class (line 14) | class PAxisAnnotationWidget : public PWidget {
FILE: apps/vaporgui/PButton.cpp
function PButton (line 7) | PButton *PButton::DisableUndo()
FILE: apps/vaporgui/PButton.h
function class (line 15) | class PButton : public PWidget {
FILE: apps/vaporgui/PCameraControlsSection.h
function class (line 16) | class PTrackballWidget : public PWidget {
function class (line 40) | class PCameraProjectionWidget : public PWidget {
function class (line 55) | class PCameraFileGroup : public PGroup {
function class (line 72) | class PCameraControlsSection : public PSection {
FILE: apps/vaporgui/PCaptureWidget.h
function namespace (line 5) | namespace VAPoR {
function class (line 18) | class PCaptureHBox : public PWidget {
function class (line 42) | class PCaptureWidget : public PWidget {
FILE: apps/vaporgui/PCheckbox.h
function class (line 11) | class PCheckbox : public PLineItem {
FILE: apps/vaporgui/PColorSelector.cpp
function PColorSelector (line 11) | PColorSelector *PColorSelector::ShowAlpha()
function QColor (line 17) | QColor PColorSelector::VectorToQColor(const std::vector<double> &v)
FILE: apps/vaporgui/PColorSelector.h
function class (line 11) | class PColorSelector : public PLineItem {
FILE: apps/vaporgui/PConstantColorWidget.h
function class (line 5) | class PConstantColorWidget : public PGroup {
FILE: apps/vaporgui/PCopyRegionAnnotationWidget.h
function namespace (line 5) | namespace VAPoR {
function class (line 14) | class PCopyRegionAnnotationWidget : public PWidget {
FILE: apps/vaporgui/PCopyRegionWidget.h
function class (line 11) | class PCopyRegionWidget : public PWidget {
FILE: apps/vaporgui/PCornerSelector.cpp
class PCornerSelector::Check (line 12) | class PCornerSelector::Check : public VCheckBox {
method Check (line 15) | Check(float x, float y) : x(x), y(y) { setSizePolicy(QSizePolicy::Maxi...
class Line (line 19) | class Line : public QFrame {
method Line (line 21) | Line()
FILE: apps/vaporgui/PCornerSelector.h
function class (line 13) | class PCornerSelector : public PLineItem {
function updateGUI (line 25) | void updateGUI() const override;
FILE: apps/vaporgui/PDatasetTransformWidget.h
function namespace (line 5) | namespace VAPoR {
function class (line 13) | class PDatasetTransformWidget : public PWidget {
FILE: apps/vaporgui/PDimensionSelector.h
function class (line 7) | class PDimensionSelector : public PLineItem {
FILE: apps/vaporgui/PDisplay.cpp
function PDisplay (line 9) | PDisplay *PDisplay::Selectable()
FILE: apps/vaporgui/PDisplay.h
function class (line 11) | class PDisplay : public PWidget {
function class (line 27) | class PStringDisplay : public PDisplay {
function class (line 40) | class PIntegerDisplay : public PDisplay {
function class (line 53) | class PDoubleDisplay : public PDisplay {
function class (line 66) | class PBooleanDisplay : public PDisplay {
FILE: apps/vaporgui/PDoubleInput.h
function class (line 12) | class PDoubleInput : public PLineItem {
FILE: apps/vaporgui/PDynamicMixin.cpp
function PWidget (line 6) | PWidget *PDynamicMixin::EnableDynamicUpdate(bool enabled)
function PWidget (line 43) | PWidget *PDynamicMixin::getPWidget()
FILE: apps/vaporgui/PDynamicMixin.h
function class (line 10) | class PDynamicMixin {
FILE: apps/vaporgui/PEnumDropdown.h
function class (line 13) | class PEnumDropdownStandalone : public PWidget {
function class (line 33) | class PEnumDropdown : public PLineItem {
FILE: apps/vaporgui/PFidelitySection.h
function class (line 11) | class PFidelitySection : public PSection {
function class (line 16) | class PQuickFidelitySelector : public PLineItem {
function class (line 34) | class PLODSelector : public PLineItem {
function class (line 49) | class PRefinementSelector : public PLineItem {
FILE: apps/vaporgui/PFileButton.cpp
function PFileButton (line 14) | PFileButton *PFileButton::SetFileTypeFilter(const std::string &filter)
function QString (line 32) | QString PFileWriter::selectPath(const std::string &defaultPath) const { ...
function QString (line 34) | QString PFileReader::selectPath(const std::string &defaultPath) const { ...
FILE: apps/vaporgui/PFileButton.h
function class (line 13) | class PFileButton : public PWidget {
function class (line 42) | class PFileReader : public PFileButton {
function class (line 55) | class PFileWriter : public PFileButton {
FILE: apps/vaporgui/PFileSelector.cpp
function PFileSelector (line 23) | PFileSelector *PFileSelector::SetFileTypeFilter(const std::string &filter)
function QString (line 58) | QString PFileOpenSelector::selectPath(const std::string &defaultPath) co...
function QString (line 60) | QString PFileSaveSelector::selectPath(const std::string &defaultPath) co...
function QString (line 62) | QString PDirectorySelector::selectPath(const std::string &defaultPath) c...
FILE: apps/vaporgui/PFileSelector.h
function class (line 13) | class PFileSelector : public PLineItem {
function class (line 43) | class PFileOpenSelector : public PFileSelector {
function class (line 56) | class PFileSaveSelector : public PFileSelector {
function class (line 69) | class PDirectorySelector : public PFileSelector {
FILE: apps/vaporgui/PFlowIntegrationRegionSelector.h
function class (line 5) | class PFlowIntegrationRegionSelector1D : public PRegionSelector1D {
FILE: apps/vaporgui/PFlowRakeRegionSelector.h
function class (line 5) | class PFlowRakeRegionSelector1D : public PRegionSelector1D {
FILE: apps/vaporgui/PGeometrySubtab.h
function class (line 5) | class PGeometrySubtab : public PGroup {
FILE: apps/vaporgui/PImportDataButton.h
function namespace (line 5) | namespace VAPoR {
function class (line 14) | class PImportDataButton : public PWidget {
FILE: apps/vaporgui/PImportDataWidget.h
function namespace (line 7) | namespace VAPoR {
function class (line 13) | class PImportDataWidget : public PGroup {
FILE: apps/vaporgui/PIntegerInput.cpp
function PIntegerInput (line 13) | PIntegerInput *PIntegerInput::SetRange(int min, int max)
FILE: apps/vaporgui/PLabel.h
function class (line 11) | class PLabel : public PWidget {
FILE: apps/vaporgui/PLineItem.h
function class (line 9) | class PLineItem : public PWidget {
FILE: apps/vaporgui/PMetadataClasses.h
function namespace (line 18) | namespace VAPoR {
function class (line 27) | class POpenVariableMetadataWidget : public PWidget {
function class (line 45) | class PMetadataSection : public PWidget {
function class (line 96) | class VVariableMetadataTree : public VMetadataTree {
function class (line 112) | class VOpenVariableMetadataTree : public VVariableMetadataTree {
function class (line 124) | class VCoordinateVariableMetadataTree : public VVariableMetadataTree {
function class (line 137) | class VDimensionMetadataTree : public VMetadataTree {
function class (line 151) | class VGlobalAttributeMetadataTree : public VMetadataTree {
FILE: apps/vaporgui/PMovingDomainSettings.h
function class (line 9) | class PMovingDomainSettings : public PSection {
FILE: apps/vaporgui/PMultiVarSelector.cpp
function PMultiVarSelector (line 14) | PMultiVarSelector *PMultiVarSelector::DisplayVars(Mode mode)
function QSize (line 54) | QSize PMultiVarSelector::minimumSizeHint() const
function QListWidgetItem (line 64) | QListWidgetItem *PMultiVarSelector::_addVarToList(const std::string &var...
FILE: apps/vaporgui/PMultiVarSelector.h
function class (line 14) | class PMultiVarSelector : public PWidget {
FILE: apps/vaporgui/POrientationSelector.h
function class (line 11) | class POrientationSelector : public PWidget {
FILE: apps/vaporgui/POutputResolutionSection.h
function namespace (line 6) | namespace VAPoR {
function class (line 11) | class POutputResolutionSection : public PWidgetWrapper {
FILE: apps/vaporgui/PProjectionStringWidget.h
function namespace (line 8) | namespace VAPoR {
function class (line 18) | class PProjectionStringWidget : public PWidget {
FILE: apps/vaporgui/PRadioButtons.h
function class (line 12) | class PRadioButtons : public PWidget {
FILE: apps/vaporgui/PRegionSelector.h
function namespace (line 8) | namespace VAPoR {
function class (line 13) | class PRegionSelector : public PSection {
function class (line 18) | class PRegionSelector1D : public PLineItem {
type __PRegionSelector1D (line 39) | typedef __PRegionSelector1D<0> PRegionSelectorX;
type __PRegionSelector1D (line 40) | typedef __PRegionSelector1D<1> PRegionSelectorY;
type __PRegionSelector1D (line 41) | typedef __PRegionSelector1D<2> PRegionSelectorZ;
FILE: apps/vaporgui/PSection.cpp
function PSection (line 15) | PSection *PSection::Add(PWidget *pw)
function PSection (line 21) | PSection *PSection::Add(const PGroup::List &widgets)
FILE: apps/vaporgui/PSection.h
function class (line 13) | class PSection : public PWidget {
FILE: apps/vaporgui/PShowIf.cpp
function PShowIf (line 8) | PShowIf *PShowIf::Equals(long l)
function PShowIf (line 14) | PShowIf *PShowIf::Equals(std::string s)
function PShowIf (line 20) | PShowIf *PShowIf::DimensionEquals(unsigned int dim)
function PShowIf (line 26) | PShowIf *PShowIf::Not()
function PShowIf (line 32) | PShowIf *PShowIf::Then(PWidget *p)
function PShowIf (line 39) | PShowIf *PShowIf::Else(PWidget *p)
function PShowIf (line 46) | PShowIf *PShowIf::Then(const PGroup::List &list) { return Then(new PGrou...
function PShowIf (line 48) | PShowIf *PShowIf::Else(const PGroup::List &list) { return Else(new PGrou...
FILE: apps/vaporgui/PShowIf.h
function class (line 18) | class PShowIf : public PWidgetWrapper {
FILE: apps/vaporgui/PSliceController.h
function class (line 10) | class PSliceController : public PGroup {
function class (line 15) | class PSliceOrientationSelector : public PSection {
function class (line 20) | class PSliceOriginSelector : public PSection {
function class (line 35) | class PSliceOffsetSelector : public PSection {
FILE: apps/vaporgui/PSliderEdit.cpp
function PDoubleSliderEdit (line 24) | PDoubleSliderEdit *PDoubleSliderEdit::SetRange(double min, double max)
function PDoubleSliderEdit (line 33) | PDoubleSliderEdit *PDoubleSliderEdit::AllowUserRange(bool allowed)
function PDoubleSliderEdit (line 39) | PDoubleSliderEdit* PDoubleSliderEdit::AllowDynamicUpdate() {
function PIntegerSliderEdit (line 85) | PIntegerSliderEdit *PIntegerSliderEdit::SetRange(int min, int max)
function PIntegerSliderEdit (line 94) | PIntegerSliderEdit *PIntegerSliderEdit::AllowUserRange(bool allowed)
function PIntegerSliderEdit (line 100) | PIntegerSliderEdit* PIntegerSliderEdit::AllowDynamicUpdate() {
FILE: apps/vaporgui/PStringDropdown.h
function class (line 13) | class PStringDropdown : public PLineItem {
FILE: apps/vaporgui/PStringInput.h
function class (line 12) | class PStringInput : public PLineItem {
FILE: apps/vaporgui/PTFEditor.cpp
class PTFMapWidget<TFColorWidget> (line 26) | class PTFMapWidget<TFColorWidget>
class PTFMapWidget<TFOpacityWidget> (line 27) | class PTFMapWidget<TFOpacityWidget>
class PTFMapWidget<TFHistogramWidget> (line 28) | class PTFMapWidget<TFHistogramWidget>
class PTFMapWidget<TFIsoValueWidget> (line 29) | class PTFMapWidget<TFIsoValueWidget>
function PTFEditor (line 100) | PTFEditor *PTFEditor::ShowOpacityBasedOnParam(const std::string &tag, in...
function PTFEditor (line 108) | PTFEditor *PTFEditor::ShowColormapBasedOnParam(const std::string &tag, i...
FILE: apps/vaporgui/PTFEditor.h
type PTFMapWidget (line 33) | typedef PTFMapWidget<TFColorWidget> PTFColorWidget;
type PTFMapWidget (line 34) | typedef PTFMapWidget<TFOpacityWidget> PTFOpacityWidget;
type PTFMapWidget (line 35) | typedef PTFMapWidget<TFHistogramWidget> PTFHistogramWidget;
type PTFMapWidget (line 36) | typedef PTFMapWidget<TFIsoValueWidget> PTFIsoValueWidget;
type Element (line 74) | enum Element { Opacity, Histogram, Colormap, IsoValues, RegularIsoArray,...
function updateGUI (line 90) | void updateGUI() const override;
function class (line 108) | class ExpandedPTFEditor : public PTFEditor {
FILE: apps/vaporgui/PTMSLODInput.h
function class (line 14) | class PTMSLODInput : public PLineItem {
FILE: apps/vaporgui/PTimeRangeSelector.h
function namespace (line 8) | namespace VAPoR {
function class (line 18) | class PTimeRangeSelector : public PWidget {
FILE: apps/vaporgui/PTimestepInput.h
function namespace (line 5) | namespace VAPoR {
function class (line 11) | class PTimestepInput : public PWidget {
FILE: apps/vaporgui/PTimestepSliderEdit.h
function namespace (line 7) | namespace VAPoR {
function class (line 14) | class PTimestepSliderEdit : public PLineItem {
FILE: apps/vaporgui/PTotalTimestepsDisplay.h
function namespace (line 5) | namespace VAPoR {
function class (line 11) | class PTotalTimestepsDisplay : public PWidget {
FILE: apps/vaporgui/PTransformWidget.h
function namespace (line 8) | namespace VAPoR {
function class (line 12) | class PTransformWidget : public PWidget {
function class (line 30) | class PRendererTransformWidget : public PWidget {
function class (line 44) | class PRendererTransformSection : public PWidgetWrapper {
FILE: apps/vaporgui/PVariableSelector.h
function class (line 12) | class PVariableSelector : public PStringDropdown {
function class (line 63) | class PVariableSelector3D : public PVariableSelector {
function class (line 71) | class PScalarVariableSelector : public PVariableSelector {
function class (line 75) | class PColorMapVariableSelector : public PVariableSelector {
function class (line 79) | class PHeightVariableSelector : public PVariableSelector2D {
function class (line 83) | class PXFieldVariableSelector : public PVariableSelector {
function class (line 87) | class PYFieldVariableSelector : public PVariableSelector {
function class (line 91) | class PZFieldVariableSelector : public PVariableSelector {
FILE: apps/vaporgui/PVisualizerSelector.h
function class (line 6) | class PVisualizerSelector : public PWidget {
FILE: apps/vaporgui/PWidget.cpp
function PWidget (line 45) | PWidget *PWidget::ShowBasedOnParam(const std::string &tag, int whenEqualTo)
function PWidget (line 53) | PWidget *PWidget::EnableBasedOnParam(const std::string &tag, int whenEqu...
function PWidget (line 61) | PWidget *PWidget::SetTooltip(const std::string &text)
function SettingsParams (line 71) | SettingsParams *PWidget::getSettingsParams() const
FILE: apps/vaporgui/PWidget.h
function class (line 15) | class PWidget : public UWidget {
FILE: apps/vaporgui/PWidgetHLI.h
type std (line 51) | typedef std::function<void(P *, T)> SetterType;
function virtual (line 76) | virtual void _setParamsLong(long v) override
FILE: apps/vaporgui/PWidgetWrapper.h
function class (line 9) | class PWidgetWrapper : public PWidget {
FILE: apps/vaporgui/ParamsMenuItems.h
function namespace (line 7) | namespace VAPoR {
function class (line 18) | class ParamsMenuItem : public QAction {
function class (line 35) | class ParamsCheckboxMenuItem : public ParamsMenuItem {
function class (line 50) | class ParamsDropdownMenuItem : public ParamsMenuItem {
FILE: apps/vaporgui/ParamsUpdatable.h
function namespace (line 3) | namespace VAPoR {
function class (line 13) | class ParamsUpdatable {
FILE: apps/vaporgui/ParamsWidgetDemo.h
function namespace (line 6) | namespace VAPoR {
FILE: apps/vaporgui/ParticleEventRouter.cpp
type PParticleRadiusVariableSelector (line 11) | struct PParticleRadiusVariableSelector : public PVariableSelector {
method PParticleRadiusVariableSelector (line 12) | PParticleRadiusVariableSelector()
function string (line 69) | string ParticleEventRouter::_getDescription() const { return ("Render pa...
FILE: apps/vaporgui/ParticleEventRouter.h
function class (line 11) | class ParticleEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/PlotParams.h
function namespace (line 25) | namespace VAPoR {
FILE: apps/vaporgui/ProgressStatusBar.h
function class (line 10) | class ProgressStatusBar : public QWidget {
FILE: apps/vaporgui/PythonVariables.cpp
function printVector (line 27) | static void printVector(std::vector<T> v)
function string (line 875) | string NewItemDialog::GetItemName() const { return _itemName; }
function string (line 877) | string NewItemDialog::GetOptionName() const { return _optionName; }
function string (line 989) | string OpenAndDeleteDialog::GetDataMgrName() const { return _dataMgrName; }
function string (line 991) | string OpenAndDeleteDialog::GetScriptName() const { return _scriptName; }
FILE: apps/vaporgui/PythonVariables.h
function namespace (line 20) | namespace PythonVariables_ {
function string (line 119) | string GetItemName() const;
FILE: apps/vaporgui/PythonVariablesParams.cpp
function string (line 37) | string PythonScript::GetScript() const
function string (line 45) | string PythonScript::GetScriptName() const
function string (line 71) | string GetDataMgr() const { return GetValueString(_dataMgrNameTag, ""); }
FILE: apps/vaporgui/PythonVariablesParams.h
function namespace (line 6) | namespace VAPoR {
FILE: apps/vaporgui/QColorWidget.cpp
function QSize (line 13) | QSize QColorWidget::minimumSizeHint() const
function QColor (line 34) | QColor QColorWidget::getColor() const { return _color; }
FILE: apps/vaporgui/QColorWidget.h
function class (line 12) | class QColorWidget : public QLineEdit {
FILE: apps/vaporgui/QCustomIconSizeProxyStyle.h
function class (line 5) | class QCustomIconSizeProxyStyle : public QProxyStyle {
FILE: apps/vaporgui/QEnableable.h
function class (line 4) | class QEnableableI {
function setEnabled (line 17) | void setEnabled(bool enabled) override { _o->setEnabled(enabled); }
FILE: apps/vaporgui/QIntValidatorWithFixup.h
function class (line 10) | class QIntValidatorWithFixup : public QIntValidator {
FILE: apps/vaporgui/QMontereySlider.h
function class (line 10) | class QMontereySlider : public QSlider {
FILE: apps/vaporgui/QPaintUtils.cpp
function QT_END_NAMESPACE (line 9) | QT_END_NAMESPACE
FILE: apps/vaporgui/QPaintUtils.h
function namespace (line 11) | namespace QPaintUtils {
FILE: apps/vaporgui/QPushButtonWithDoubleClick.h
function class (line 3) | class QPushButtonWithDoubleClick : public QPushButton {
FILE: apps/vaporgui/QRange.h
function namespace (line 6) | namespace Ui {
function class (line 17) | class QRange : public QWidget {
FILE: apps/vaporgui/QRangeSlider.cpp
class QForceAbsoluteSetButtonsEnabledStyle (line 13) | class QForceAbsoluteSetButtonsEnabledStyle : public QProxyStyle {
method styleHint (line 17) | int styleHint(QStyle::StyleHint hint, const QStyleOption *option = 0, ...
function QSize (line 56) | QSize QRangeSlider::minimumSizeHint() const { return QSlider::minimumSiz...
FILE: apps/vaporgui/QRangeSlider.h
function class (line 9) | class QRangeSlider : public QSlider {
FILE: apps/vaporgui/QRangeSliderTextCombo.h
function class (line 14) | class QRangeSliderTextCombo : public QWidget {
FILE: apps/vaporgui/QSinglePoint.h
function namespace (line 6) | namespace Ui {
function class (line 10) | class QSinglePoint : public QWidget {
FILE: apps/vaporgui/QSliderEdit.h
function namespace (line 9) | namespace Ui {
function class (line 13) | class QSliderEdit : public QWidget {
FILE: apps/vaporgui/QtVizWinGLContextManager.h
function class (line 7) | class QtVizWinGLContextManager : public VAPoR::VisualizerGLContextManager {
FILE: apps/vaporgui/RangeCombos.h
function QSlider (line 50) | QSlider * GetSliderMin() const { return (_minWidget->GetSlider()); }
function QLineEdit (line 51) | QLineEdit *GetLineEditMin() const { return (_minWidget->GetLineEdit()); }
function QSlider (line 53) | QSlider * GetSliderMax() const { return (_maxWidget->GetSlider()); }
function QLineEdit (line 54) | QLineEdit *GetLineEditMax() const { return (_maxWidget->GetLineEdit()); }
FILE: apps/vaporgui/RenderEventRouter.cpp
function RenderParams (line 12) | RenderParams *RenderEventRouter::GetActiveParams() const
function DataMgr (line 28) | DataMgr *RenderEventRouter::GetActiveDataMgr() const
function string (line 46) | string RenderEventRouter::GetSmallIconImagePath() const
function string (line 54) | string RenderEventRouter::GetIconImagePath() const
function RenderEventRouter (line 70) | RenderEventRouter *RenderEventRouterFactory::CreateInstance(string class...
FILE: apps/vaporgui/RenderEventRouter.h
function class (line 14) | class RenderEventRouter : public Updatable {
FILE: apps/vaporgui/RenderEventRouterGUI.cpp
function QWidget (line 19) | QWidget *RenderEventRouterGUI::AddSubtab(string title, UWidget *subtab)
function GUIStateParams (line 70) | GUIStateParams *RenderEventRouterGUI::getGUIStateParams() const { return...
FILE: apps/vaporgui/RenderEventRouterGUI.h
function QWidget (line 28) | QWidget *AddVariablesSubtab(UWidget *subtab) { return AddSubtab(Variable...
function QWidget (line 29) | QWidget *AddAppearanceSubtab(UWidget *subtab) { return AddSubtab(Appeara...
function QWidget (line 30) | QWidget *AddGeometrySubtab(UWidget *subtab) { return AddSubtab(GeometryT...
function QWidget (line 31) | QWidget *AddColorbarSubtab(UWidget *subtab) { return AddSubtab(ColorbarT...
FILE: apps/vaporgui/RenderHolder.cpp
function QPushButton (line 92) | QPushButton *NewRendererDialog::_createButton(QIcon icon, QString name, ...
FILE: apps/vaporgui/RenderHolder.h
function namespace (line 18) | namespace VAPoR {
function class (line 79) | class RenderHolder {
FILE: apps/vaporgui/RendererInspector.h
function namespace (line 5) | namespace VAPoR {
function class (line 10) | class RendererInspector : public VRouter {
FILE: apps/vaporgui/RendererList.cpp
class DisableDatasetClickEventFilter (line 20) | class DisableDatasetClickEventFilter: public QObject {
method DisableDatasetClickEventFilter (line 23) | DisableDatasetClickEventFilter(QListWidget *w) : _w(w) {}
method eventFilter (line 25) | bool eventFilter(QObject* object, QEvent* event)
class DisableDragFilter (line 42) | class DisableDragFilter: public QObject {
method DisableDragFilter (line 45) | DisableDragFilter(QListWidget *w)
method eventFilter (line 49) | bool eventFilter(QObject* object, QEvent* event)
function string (line 193) | string RendererList::getCurrentViz()
function string (line 199) | string RendererList::getClassName(string instName)
FILE: apps/vaporgui/RendererList.h
function namespace (line 6) | namespace VAPoR{
function class (line 17) | class RendererList : public VContainer {
FILE: apps/vaporgui/SliceEventRouter.cpp
function string (line 39) | string SliceEventRouter::_getDescription() const
FILE: apps/vaporgui/SliceEventRouter.h
function class (line 12) | class SliceEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/Statistics.h
function namespace (line 37) | namespace VAPoR {
FILE: apps/vaporgui/StatisticsParams.h
function namespace (line 25) | namespace VAPoR {
FILE: apps/vaporgui/TFColorInfoWidget.h
function namespace (line 7) | namespace VAPoR {
function class (line 11) | class TFColorInfoWidget : public TFInfoWidget {
FILE: apps/vaporgui/TFColorWidget.cpp
function vec2 (line 17) | static vec2 qvec2(const QPoint &qp) { return vec2(qp.x(), qp.y()); }
function QSize (line 29) | QSize TFColorMap::minimumSizeHint() const { return QSize(100, 30); }
function QSizePolicy (line 31) | QSizePolicy TFColorMap::GetSizePolicy() const { return QSizePolicy(QSize...
function TFInfoWidget (line 118) | TFInfoWidget *TFColorMap::createInfoWidget()
function ColorMap (line 239) | ColorMap *TFColorMap::getColormap() const { return getRenderParams()->Ge...
function QPointF (line 321) | QPointF TFColorMap::controlQPositionForValue(float value) const
function QColor (line 333) | QColor TFColorMap::VColorToQColor(const ColorMap::Color &c)
function QIcon (line 352) | QIcon ColorMapMenuItem::getCachedIcon(const std::string &path)
function QSize (line 380) | QSize ColorMapMenuItem::getIconSize() { return QSize(50, 15); }
function QSize (line 382) | QSize ColorMapMenuItem::getIconPadding() { return QSize(10, 10); }
FILE: apps/vaporgui/TFColorWidget.h
function class (line 13) | class TFColorMap : public TFMap {
FILE: apps/vaporgui/TFHistogramInfoWidget.h
function namespace (line 6) | namespace VAPoR {
function class (line 10) | class TFHistogramInfoWidget : public TFInfoWidget {
FILE: apps/vaporgui/TFHistogramWidget.cpp
function QSize (line 28) | QSize TFHistogramMap::minimumSizeHint() const
function TFInfoWidget (line 63) | TFInfoWidget *TFHistogramMap::createInfoWidget()
FILE: apps/vaporgui/TFHistogramWidget.h
function LostFocus (line 20) | void LostFocus() {}
function ScalingType (line 39) | ScalingType _getScalingType() const;
FILE: apps/vaporgui/TFInfoWidget.h
function namespace (line 8) | namespace VAPoR {
function class (line 16) | class TFInfoWidget : public QWidget {
FILE: apps/vaporgui/TFIsoValueInfoWidget.h
function namespace (line 6) | namespace VAPoR {
function class (line 10) | class TFIsoValueInfoWidget : public TFInfoWidget {
FILE: apps/vaporgui/TFIsoValueWidget.cpp
function vec2 (line 13) | static vec2 qvec2(const QPoint &qp) { return vec2(qp.x(), qp.y()); }
function QSizePolicy (line 30) | QSizePolicy TFIsoValueMap::GetSizePolicy() const { return QSizePolicy(QS...
function QSize (line 49) | QSize TFIsoValueMap::minimumSizeHint() const
function TFInfoWidget (line 58) | TFInfoWidget *TFIsoValueMap::createInfoWidget()
function QRect (line 127) | QRect TFIsoValueMap::GetControlPointArea(const QPoint &p) const
function QMargins (line 199) | QMargins TFIsoValueMap::GetPadding() const
function QPoint (line 329) | QPoint TFIsoValueMap::controlQPositionForValue(float value) const
FILE: apps/vaporgui/TFIsoValueWidget.h
function class (line 11) | class TFIsoValueMap : public TFMap {
FILE: apps/vaporgui/TFMapGroupWidget.cpp
function TFMapInfoGroupWidget (line 19) | TFMapInfoGroupWidget *TFMapGroupWidget::CreateInfoGroup()
FILE: apps/vaporgui/TFMapGroupWidget.h
function namespace (line 12) | namespace VAPoR {
function class (line 22) | class TFMapGroupWidget : public QWidget {
function class (line 44) | class TFMapInfoGroupWidget : public QStackedWidget {
FILE: apps/vaporgui/TFMapWidget.cpp
function TFInfoWidget (line 17) | TFInfoWidget *TFMap::GetInfoWidget()
function QSizePolicy (line 93) | QSizePolicy TFMap::GetSizePolicy() const { return QSizePolicy(QSizePolic...
function QRect (line 138) | QRect TFMap::paddedRect() const
function QRect (line 144) | QRect TFMap::rect() const { return QRect(0, 0, width(), height()); }
function QFont (line 146) | const QFont TFMap::getFont() const
function QPointF (line 158) | QPointF TFMap::NDCToQPixel(const glm::vec2 &v) const
function QPointF (line 164) | QPointF TFMap::NDCToQPixel(float x, float y) const { return NDCToQPixel(...
function QMargins (line 177) | QMargins TFMap::GetPadding() const { return QMargins(PADDING, PADDING, P...
function TFInfoWidget (line 225) | TFInfoWidget *TFMapWidget::GetInfoWidget()
function QSize (line 242) | QSize TFMapWidget::minimumSizeHint() const
FILE: apps/vaporgui/TFMapWidget.h
function namespace (line 10) | namespace VAPoR {
function class (line 26) | class TFMap : public QObject {
FILE: apps/vaporgui/TFMappingRangeSelector.h
function namespace (line 6) | namespace VAPoR {
function class (line 13) | class TFMappingRangeSelector : public QRangeSliderTextCombo {
FILE: apps/vaporgui/TFOpacityInfoWidget.h
function namespace (line 6) | namespace VAPoR {
function class (line 10) | class TFOpacityInfoWidget : public TFInfoWidget {
FILE: apps/vaporgui/TFOpacityWidget.cpp
function vec2 (line 16) | static vec2 qvec2(const QPoint &qp) { return vec2(qp.x(), qp.y()); }
function vec2 (line 17) | static vec2 qvec2(const QPointF &qp) { return vec2(qp.x(), qp.y()); }
function QPointF (line 18) | static QPointF qvec2(const vec2 &v) { return QPointF(v.x, v.y); }
function vec2 (line 20) | static vec2 Project(vec2 a, vec2 b, vec2 p)
function DistanceToLine (line 28) | static float DistanceToLine(vec2 a, vec2 b, vec2 p)
function QSize (line 45) | QSize TFOpacityMap::minimumSizeHint() const { return QSize(100, 75); }
function TFInfoWidget (line 88) | TFInfoWidget *TFOpacityMap::createInfoWidget()
FILE: apps/vaporgui/TFOpacityWidget.h
function glm (line 51) | const glm::vec2 a()
function glm (line 56) | const glm::vec2 b()
function setA (line 61) | void setA(const glm::vec2 &v)
function setB (line 65) | void setB(const glm::vec2 &v)
function Add (line 82) | int Add(const glm::vec2 &v)
function Add (line 90) | int Add(const glm::vec2 &v, const int i)
function Add (line 98) | int Add(const glm::vec2 &v, const LineIterator &line)
function Remove (line 105) | void Remove(const PointIterator &point)
function Resize (line 113) | void Resize(int n) { _points.resize(n); }
function PointIterator (line 115) | PointIterator BeginPoints() { return PointIterator(this, 0); }
function PointIterator (line 116) | PointIterator EndPoints() { return PointIterator(this, Size()); }
function LineIterator (line 117) | LineIterator BeginLines() { return LineIterator(this, 0); }
function LineIterator (line 118) | LineIterator EndLines() { return LineIterator(this, SizeLines()); }
function QSize (line 127) | QSize minimumSizeHint() const override;
FILE: apps/vaporgui/TFUtils.h
function namespace (line 5) | namespace VAPoR {
function namespace (line 10) | namespace TFUtils {
FILE: apps/vaporgui/TwoDDataEventRouter.cpp
function string (line 33) | string TwoDDataEventRouter::_getDescription() const
FILE: apps/vaporgui/TwoDDataEventRouter.h
function class (line 11) | class TwoDDataEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/Updatable.h
function class (line 5) | class Updatable {
FILE: apps/vaporgui/V3DInput.h
function class (line 12) | class V3DInput : public QWidget {
FILE: apps/vaporgui/V3DIntInput.h
function class (line 12) | class V3DIntInput : public QWidget {
FILE: apps/vaporgui/VActions.h
function class (line 15) | class VLineAction : public QWidgetAction {
function class (line 33) | class VSpinBoxAction : public VLineAction {
function class (line 64) | class VCheckBoxAction : public VLineAction {
function class (line 95) | class VStringLineEditAction : public VLineAction {
function class (line 126) | class VIntLineEditAction : public VLineAction {
function class (line 157) | class VDoubleLineEditAction : public VLineAction {
FILE: apps/vaporgui/VCheckBox.h
function class (line 15) | class VCheckBox : public VHBoxWidget {
FILE: apps/vaporgui/VComboBox.h
function class (line 12) | class VComboBox : public VContainer {
FILE: apps/vaporgui/VContainer.h
function class (line 5) | class VContainer : public QWidget {
FILE: apps/vaporgui/VDoubleLineEdit.h
function class (line 18) | class VDoubleLineEdit : public VNumericLineEdit {
FILE: apps/vaporgui/VDoubleRangeMenu.h
function class (line 13) | class VDoubleRangeMenu : public VNumericFormatMenu {
FILE: apps/vaporgui/VDoubleSliderEdit.h
function class (line 18) | class VDoubleSliderEdit : public VSliderEditInterface {
FILE: apps/vaporgui/VDoubleSliderEditMenu.h
function class (line 16) | class VDoubleSliderEditMenu : public VDoubleRangeMenu {
FILE: apps/vaporgui/VDoubleValidator.h
function class (line 15) | class VDoubleValidator : public QDoubleValidator {
FILE: apps/vaporgui/VFileSelector.h
function class (line 18) | class VFileSelector : public VHBoxWidget {
FILE: apps/vaporgui/VFrame.h
function class (line 11) | class VFrame : public QFrame {
FILE: apps/vaporgui/VGroup.cpp
function VGroup (line 15) | VGroup *VGroup::Add(QWidget *w)
FILE: apps/vaporgui/VGroup.h
function class (line 21) | class VHGroup : public VGroup {
function class (line 31) | class VSubGroup : public VGroup {
FILE: apps/vaporgui/VHBoxWidget.h
function class (line 16) | class VHBoxWidget : public QFrame {
function class (line 35) | class MouseWheelWidgetAdjustmentGuard : public QObject {
FILE: apps/vaporgui/VHyperlink.h
function class (line 8) | class VHyperlink : public VLabel {
FILE: apps/vaporgui/VIntLineEdit.h
function class (line 18) | class VIntLineEdit : public VNumericLineEdit {
FILE: apps/vaporgui/VIntRangeMenu.h
function class (line 13) | class VIntRangeMenu : public VNumericFormatMenu {
FILE: apps/vaporgui/VIntSliderEdit.h
function class (line 17) | class VIntSliderEdit : public VSliderEditInterface {
FILE: apps/vaporgui/VIntSliderEditMenu.h
function class (line 16) | class VIntSliderEditMenu : public VIntRangeMenu {
FILE: apps/vaporgui/VIntSpinBox.h
function class (line 15) | class VIntSpinBox : public VHBoxWidget {
FILE: apps/vaporgui/VLabel.h
function class (line 8) | class VLabel : public VContainer {
FILE: apps/vaporgui/VLabelPair.h
function class (line 8) | class VLabelPair : public VHBoxWidget {
FILE: apps/vaporgui/VLineEdit_Deprecated.h
function class (line 20) | class VLineEdit_Deprecated : public VHBoxWidget {
function class (line 60) | class SpinBoxAction : public QWidgetAction {
function class (line 98) | class CheckBoxAction : public QWidgetAction {
FILE: apps/vaporgui/VLineItem.h
function class (line 11) | class VLineItem : public QWidget {
FILE: apps/vaporgui/VNumericFormatMenu.h
function class (line 13) | class VNumericFormatMenu : public QMenu {
FILE: apps/vaporgui/VNumericLineEdit.h
function class (line 21) | class VNumericLineEdit : public VStringLineEdit {
FILE: apps/vaporgui/VPushButton.h
function class (line 15) | class VPushButton : public VHBoxWidget {
FILE: apps/vaporgui/VRadioButton.h
function class (line 14) | class VRadioButton : public VHBoxWidget {
FILE: apps/vaporgui/VRouter.cpp
function VRouter (line 15) | VRouter *VRouter::Add(QWidget *w)
function QWidget (line 30) | QWidget *VRouter::emptyWidget()
FILE: apps/vaporgui/VScrollArea.h
function class (line 5) | class VScrollArea : public QScrollArea {
FILE: apps/vaporgui/VSection.cpp
function QVBoxLayout (line 14) | QVBoxLayout *VSection::layout() const { return (QVBoxLayout *)_tab()->la...
function QWidget (line 42) | QWidget *VSection::_tab() const { return QTabWidget::widget(0); }
function QString (line 44) | QString VSection::_createStylesheet() const
FILE: apps/vaporgui/VSection.h
function class (line 18) | class VSection : public QTabWidget {
function class (line 62) | class VSection::AbstractButton : public QToolButton {
function class (line 73) | class VSection::SettingsMenuButton : public AbstractButton {
function class (line 82) | class VSection::ExpandSectionButton: public AbstractButton {
FILE: apps/vaporgui/VSlider.h
function class (line 22) | class VSlider : public VHBoxWidget {
FILE: apps/vaporgui/VSliderEdit.h
function class (line 14) | class VSliderEdit : public VHBoxWidget {
FILE: apps/vaporgui/VSliderEditInterface.cpp
function QSize (line 22) | QSize VSliderEditInterface::sizeHint() const
FILE: apps/vaporgui/VSliderEditInterface.h
function class (line 15) | class VSliderEditInterface : public VHBoxWidget {
FILE: apps/vaporgui/VStringLineEdit.h
function class (line 19) | class VStringLineEdit : public VHBoxWidget {
FILE: apps/vaporgui/VVisibilityCheckbox.h
function class (line 5) | class VVisibilityCheckbox : public VCheckBox {
FILE: apps/vaporgui/VaporFwd.h
function namespace (line 3) | namespace VAPoR {
FILE: apps/vaporgui/VaporTable.cpp
function Value (line 365) | Value VaporTable::GetValue(int row, int col)
FILE: apps/vaporgui/VaporTable.h
type Value (line 9) | struct Value
function class (line 13) | class VaporTable : public QWidget {
FILE: apps/vaporgui/VaporWidgetsFwd.h
type QLineEdit (line 7) | typedef QLineEdit VDoubleInput;
type QLineEdit (line 8) | typedef QLineEdit VIntegerInput;
type QComboBox (line 11) | typedef QComboBox VDropdown;
FILE: apps/vaporgui/VizWin.cpp
function string (line 544) | string VizWin::_getCurrentMouseMode() const
function string (line 735) | string VizWin::_getCurrentDataMgrName() const
FILE: apps/vaporgui/VizWin.h
function namespace (line 37) | namespace VAPoR {
function class (line 60) | class VizWin : public QGLWidget {
FILE: apps/vaporgui/VizWinMgr.cpp
class DisableFocusFilter (line 70) | class DisableFocusFilter: public QObject {
method eventFilter (line 72) | bool eventFilter(QObject* object, QEvent* event)
class UserFocusEventFilter (line 86) | class UserFocusEventFilter: public QObject {
method UserFocusEventFilter (line 90) | UserFocusEventFilter(const function<void(void)> &callback): _callback(...
method eventFilter (line 92) | bool eventFilter(QObject* object, QEvent* event)
function OnMDISubwindowUserFocus (line 99) | void OnMDISubwindowUserFocus(QMdiSubWindow *w, const function<void(void)...
class CancelCloseEventFilter (line 106) | class CancelCloseEventFilter: public QObject {
method CancelCloseEventFilter (line 109) | CancelCloseEventFilter(const function<void(void)> &callback): _callbac...
method eventFilter (line 111) | bool eventFilter(QObject* object, QEvent* event)
FILE: apps/vaporgui/VizWinMgr.h
function class (line 13) | class VizWinMgr : public QMdiArea {
FILE: apps/vaporgui/VolumeEventRouter.cpp
function string (line 59) | string VolumeEventRouter::_getDescription() const
FILE: apps/vaporgui/VolumeEventRouter.h
function class (line 11) | class VolumeEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/VolumeIsoEventRouter.cpp
function string (line 61) | string VolumeIsoEventRouter::_getDescription() const
FILE: apps/vaporgui/VolumeIsoEventRouter.h
function class (line 11) | class VolumeIsoEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/WireFrameEventRouter.cpp
function string (line 38) | string WireFrameEventRouter::_getDescription() const { return ("Displays...
FILE: apps/vaporgui/WireFrameEventRouter.h
function class (line 11) | class WireFrameEventRouter : public RenderEventRouterGUI {
FILE: apps/vaporgui/common.h
function namespace (line 6) | namespace VAPoR {
FILE: apps/vaporgui/hide_std_error_util.cpp
function HideSTDERR (line 10) | void HideSTDERR()
function RestoreSTDERR (line 26) | void RestoreSTDERR()
FILE: apps/vaporgui/main.cpp
function myMessageOutput (line 43) | void myMessageOutput(QtMsgType type, const char *msg)
function FILE (line 57) | FILE *OpenLog(string path_var)
type opt_t (line 74) | struct opt_t {
function main (line 99) | int main(int argc, char **argv)
FILE: apps/vaporgui/windowsUtils.cpp
function LONG (line 9) | LONG Windows_OpenRegistry(HKEY root, std::string keyName, HKEY &key) { r...
function LONG (line 11) | LONG Windows_CloseRegistry(HKEY key) { return RegCloseKey(key); }
function LONG (line 13) | LONG Windows_GetRegistryString(HKEY hKey, const std::string &strValueNam...
function LONG (line 24) | LONG Windows_SetRegistryString(HKEY hKey, const std::string &strValueNam...
function Windows_GetErrorString (line 32) | std::string Windows_GetErrorString(LONG errorCode)
FILE: apps/vaporpychecker/vaporpychecker.cpp
type opt_t (line 11) | struct opt_t {
function string (line 24) | string pyErr()
function main (line 45) | int main(int argc, char **argv)
FILE: apps/vaporversion/vaporversion.cpp
type opt_t (line 46) | struct opt_t {
function main (line 59) | int main(int argc, char **argv)
FILE: apps/vdc2raw/vdc2raw.cpp
type opt_t (line 17) | struct opt_t {
function size_of_type (line 60) | size_t size_of_type(string type)
function write_data (line 68) | int write_data(FILE * fp,
function process_volume (line 98) | void process_volume(size_t ts, string varname, int level, int lod, VDCNe...
function process_region (line 136) | void process_region(size_t ts, string varname, int level, int lod, VDCNe...
function main (line 181) | int main(int argc, char **argv)
FILE: apps/vdccompare/vdccompare.cpp
type opt_t (line 19) | struct opt_t {
function DC (line 55) | DC *DCCreate(string ftype)
function computeLMax (line 76) | void computeLMax(const float *buf1, const float *buf2, size_t nelements,...
function get_var (line 101) | int get_var(DC *dc, size_t ts, string varname, float *Buffer) { return (...
function get_var (line 103) | int get_var(DataMgr *data_mgr, size_t ts, string varname, float *Buffer)
function compare (line 116) | bool compare(S *dc1, T *dc2, size_t nts, string varname, double &nlmax_all)
function process (line 165) | int process(S *dc1, const vector<string> &files1, T *dc2, const vector<s...
function main (line 204) | int main(int argc, char **argv)
FILE: apps/vdccreate/vdccreate.cpp
type opt_t (line 15) | struct opt_t {
function set_coord_uniform (line 142) | void set_coord_uniform(VDCNetCDF &vdc, string dimname, size_t dimlen, fl...
function set_coord_stretched (line 156) | void set_coord_stretched(VDCNetCDF &vdc, string dimname, const vector<fl...
function set_coords_uniform (line 162) | void set_coords_uniform(VDCNetCDF &vdc, const vector<float> &extents, co...
function parseXType (line 175) | DC::XType parseXType(string xTypeStr)
function string_to_float (line 190) | bool string_to_float(string s, float &f)
function read_float_vec (line 203) | int read_float_vec(string path, size_t n, vector<float> &vec, string &unit)
function main (line 259) | int main(int argc, char **argv)
FILE: apps/vdcdump/vdcdump.cpp
type Attribute (line 19) | struct Attribute
method Attribute (line 168) | Attribute(string name, XType type) : _name(name), _type(type) {}
method isInt (line 169) | bool isInt() { return _type == XType::INT32 || _type == XType::INT64; }
method isFloat (line 170) | bool isFloat() { return _type == XType::FLOAT || _type == XType::DOUBL...
method isText (line 171) | bool isText() { return _type == XType::TEXT; }
method print (line 172) | void print(OutFormat *out, string parentName)
type Variable (line 20) | struct Variable
method Variable (line 189) | Variable(string name, VDCNetCDF &vdc) : _name(name), _data(0)
method printName (line 208) | void printName(OutFormat *out, Verbosity V, bool reversedCoordOrder)
method print (line 221) | virtual void print(OutFormat *out, Verbosity V, bool reversedCoordOrder)
type DataVariable (line 21) | struct DataVariable
method DataVariable (line 250) | DataVariable(string name, VDCNetCDF &vdc) : Variable(name, vdc)
method printChild (line 261) | void printChild(OutFormat *out, Verbosity V, bool reversedCoordOrder)
type CoordVariable (line 22) | struct CoordVariable
method CoordVariable (line 275) | CoordVariable(string name, VDCNetCDF &vdc) : Variable(name, vdc)
method printChild (line 285) | void printChild(OutFormat *out, Verbosity V, bool reversedCoordOrder)
class OutFormat (line 23) | class OutFormat
method OutFormat (line 62) | OutFormat() : _depth(0) {}
method push (line 63) | void push() { _depth++; }
method pop (line 64) | void pop()
method pre (line 69) | void pre()
method post (line 73) | void post()
method header (line 79) | void header(string name)
method stringProperty (line 85) | void stringProperty(string owner, string name, string value)
method boolProperty (line 91) | void boolProperty(string owner, string name, bool value)
method intProperty (line 97) | void intProperty(string owner, string name, long value)
method floatProperty (line 103) | void floatProperty(string owner, string name, double value)
method typeProperty (line 109) | void typeProperty(string owner, XType type)
method vectorProperty (line 115) | void vectorProperty(string owner, string name, vector<T> array, bool r...
method category (line 125) | void category(string name)
method string (line 131) | static string GetAxisString(int axis)
method string (line 141) | static string GetTypeString(XType type)
type opt_t (line 29) | struct opt_t {
class OutFormat (line 55) | class OutFormat {
method OutFormat (line 62) | OutFormat() : _depth(0) {}
method push (line 63) | void push() { _depth++; }
method pop (line 64) | void pop()
method pre (line 69) | void pre()
method post (line 73) | void post()
method header (line 79) | void header(string name)
method stringProperty (line 85) | void stringProperty(string owner, string name, string value)
method boolProperty (line 91) | void boolProperty(string owner, string name, bool value)
method intProperty (line 97) | void intProperty(string owner, string name, long value)
method floatProperty (line 103) | void floatProperty(string owner, string name, double value)
method typeProperty (line 109) | void typeProperty(string owner, XType type)
method vectorProperty (line 115) | void vectorProperty(string owner, string name, vector<T> array, bool r...
method category (line 125) | void category(string name)
method string (line 131) | static string GetAxisString(int axis)
method string (line 141) | static string GetTypeString(XType type)
type Attribute (line 161) | struct Attribute {
method Attribute (line 168) | Attribute(string name, XType type) : _name(name), _type(type) {}
method isInt (line 169) | bool isInt() { return _type == XType::INT32 || _type == XType::INT64; }
method isFloat (line 170) | bool isFloat() { return _type == XType::FLOAT || _type == XType::DOUBL...
method isText (line 171) | bool isText() { return _type == XType::TEXT; }
method print (line 172) | void print(OutFormat *out, string parentName)
type Variable (line 183) | struct Variable {
method Variable (line 189) | Variable(string name, VDCNetCDF &vdc) : _name(name), _data(0)
method printName (line 208) | void printName(OutFormat *out, Verbosity V, bool reversedCoordOrder)
method print (line 221) | virtual void print(OutFormat *out, Verbosity V, bool reversedCoordOrder)
type DataVariable (line 247) | struct DataVariable : public Variable {
method DataVariable (line 250) | DataVariable(string name, VDCNetCDF &vdc) : Variable(name, vdc)
method printChild (line 261) | void printChild(OutFormat *out, Verbosity V, bool reversedCoordOrder)
type CoordVariable (line 274) | struct CoordVariable : public Variable {
method CoordVariable (line 275) | CoordVariable(string name, VDCNetCDF &vdc) : Variable(name, vdc)
method printChild (line 285) | void printChild(OutFormat *out, Verbosity V, bool reversedCoordOrder)
type GlobalData (line 294) | struct GlobalData : public Variable {
method GlobalData (line 297) | GlobalData(VDCNetCDF &vdc) : Variable("", vdc)
method printChild (line 304) | void printChild(OutFormat *out, Verbosity V, bool reversedCoordOrder) {}
method print (line 305) | void print(OutFormat *out, Verbosity V, bool reversedCoordOrder)
function main (line 328) | int main(int argc, char **argv)
FILE: apps/vdcerr/vdcerr.cpp
type opt_t (line 16) | struct opt_t {
function compute_error (line 128) | void compute_error(const float *odata, const float *cdata, size_t neleme...
function main (line 161) | int main(int argc, char **argv)
FILE: apps/wasp2ncdf/wasp2ncdf.cpp
type opt_t (line 18) | struct opt_t {
function name_in (line 52) | bool name_in(string name, const vector<string> &names) { return (find(na...
function GetDims (line 54) | int GetDims(const WASP &wasp, vector<string> &dimnames, vector<size_t> &...
function DefFile (line 107) | int DefFile(const WASP &wasp, NetCDFCpp &ncdf)
function GetVarNames (line 142) | int GetVarNames(const WASP &wasp, vector<string> &vars, vector<string> &...
function CopyVars (line 168) | int CopyVars(NetCDFCpp &wasp, const vector<string> ©_vars, NetCDFCpp...
function DefCopyVar (line 180) | int DefCopyVar(const WASP &wasp, string varname, NetCDFCpp &ncdf)
function DefVars (line 200) | int DefVars(const WASP &wasp, const vector<string> &vars, NetCDFCpp &ncdf)
function DeCompressVars (line 225) | int DeCompressVars(WASP &wasp, const vector<string> ©_vars, NetCDFCp...
function Process (line 235) | void Process(string waspfile, string ncdffile)
function main (line 277) | int main(int argc, char **argv)
FILE: apps/wasp2raw/wasp2raw.cpp
type opt_t (line 18) | struct opt_t {
function CopyVar (line 58) | void CopyVar(string ncdffile, string datafile, T dummy)
function main (line 117) | int main(int argc, char **argv)
FILE: apps/waspcreate/waspcreate.cpp
type opt_t (line 15) | struct opt_t {
function split (line 49) | vector<string> split(string s, string delim)
function nc_type (line 62) | nc_type parsextype(string xtypestr)
function main (line 78) | int main(int argc, char **argv)
FILE: apps/wrf2vdc/wrf2vdc.cpp
type opt_t (line 17) | struct opt_t {
function remove_vector (line 45) | vector<string> remove_vector(vector<string> v1, vector<string> v2)
function main (line 56) | int main(int argc, char **argv)
FILE: apps/wrfvdccreate/wrfvdccreate.cpp
type opt_t (line 17) | struct opt_t {
function defineMapProjection (line 58) | void defineMapProjection(const DCWRF &dcwrf, VDCNetCDF &vdc) { vdc.SetMa...
function main (line 60) | int main(int argc, char **argv)
FILE: buildutils/patchelf/elf.h
type Elf32_Half (line 29) | typedef uint16_t Elf32_Half;
type Elf64_Half (line 30) | typedef uint16_t Elf64_Half;
type Elf32_Word (line 33) | typedef uint32_t Elf32_Word;
type Elf32_Sword (line 34) | typedef int32_t Elf32_Sword;
type Elf64_Word (line 35) | typedef uint32_t Elf64_Word;
type Elf64_Sword (line 36) | typedef int32_t Elf64_Sword;
type Elf32_Xword (line 39) | typedef uint64_t Elf32_Xword;
type Elf32_Sxword (line 40) | typedef int64_t Elf32_Sxword;
type Elf64_Xword (line 41) | typedef uint64_t Elf64_Xword;
type Elf64_Sxword (line 42) | typedef int64_t Elf64_Sxword;
type Elf32_Addr (line 45) | typedef uint32_t Elf32_Addr;
type Elf64_Addr (line 46) | typedef uint64_t Elf64_Addr;
type Elf32_Off (line 49) | typedef uint32_t Elf32_Off;
type Elf64_Off (line 50) | typedef uint64_t Elf64_Off;
type Elf32_Section (line 53) | typedef uint16_t Elf32_Section;
type Elf64_Section (line 54) | typedef uint16_t Elf64_Section;
type Elf32_Half (line 57) | typedef Elf32_Half Elf32_Versym;
type Elf64_Half (line 58) | typedef Elf64_Half Elf64_Versym;
type Elf32_Ehdr (line 64) | typedef struct {
type Elf64_Ehdr (line 81) | typedef struct {
type Elf32_Shdr (line 261) | typedef struct {
type Elf64_Shdr (line 274) | typedef struct {
type Elf32_Sym (line 373) | typedef struct {
type Elf64_Sym (line 382) | typedef struct {
type Elf32_Syminfo (line 394) | typedef struct {
type Elf64_Syminfo (line 399) | typedef struct {
type Elf32_Rel (line 479) | typedef struct {
type Elf64_Rel (line 489) | typedef struct {
type Elf32_Rela (line 496) | typedef struct {
type Elf64_Rela (line 502) | typedef struct {
type Elf32_Phdr (line 520) | typedef struct {
type Elf64_Phdr (line 531) | typedef struct {
type Elf32_Dyn (line 602) | typedef struct {
type Elf64_Dyn (line 610) | typedef struct {
type Elf32_Verdef (line 769) | typedef struct {
type Elf64_Verdef (line 780) | typedef struct {
type Elf32_Verdaux (line 808) | typedef struct {
type Elf64_Verdaux (line 814) | typedef struct {
type Elf32_Verneed (line 822) | typedef struct {
type Elf64_Verneed (line 832) | typedef struct {
type Elf32_Vernaux (line 849) | typedef struct {
type Elf64_Vernaux (line 858) | typedef struct {
type Elf32_auxv_t (line 879) | typedef struct {
type Elf64_auxv_t (line 889) | typedef struct {
type Elf32_Nhdr (line 956) | typedef struct {
type Elf64_Nhdr (line 962) | typedef struct {
type Elf32_Move (line 1012) | typedef struct {
type Elf64_Move (line 1020) | typedef struct {
type Elf32_gptab (line 1378) | typedef union {
type Elf32_RegInfo (line 1391) | typedef struct {
type Elf_Options (line 1399) | typedef struct {
type Elf_Options_Hw (line 1449) | typedef struct {
type Elf32_Lib (line 1618) | typedef struct {
type Elf64_Lib (line 1626) | typedef struct {
type Elf32_Addr (line 1646) | typedef Elf32_Addr Elf32_Conflict;
FILE: buildutils/patchelf/patchelf.cpp
class ElfFile (line 43) | class ElfFile {
method ElfFile (line 68) | ElfFile()
method isChanged (line 74) | bool isChanged() { return changed; }
type CompPhdr (line 79) | struct CompPhdr {
type CompShdr (line 93) | struct CompShdr {
method I (line 142) | I wri(I &t, unsigned long long i)
function I (line 151) | I ElfFile<ElfFileParamNames>::rdi(I i)
function debug (line 165) | static void debug(const char *format, ...)
function error (line 175) | static void error(string msg)
function growFile (line 184) | static void growFile(off_t newSize)
function readFile (line 192) | static void readFile(string fileName, mode_t *fileMode)
function checkPointer (line 211) | static void checkPointer(void *p, unsigned int size)
function writeFile (line 305) | static void writeFile(string fileName, mode_t fileMode)
function roundUp (line 321) | static unsigned int roundUp(unsigned int n, unsigned int m) { return ((n...
function string (line 362) | string ElfFile<ElfFileParamNames>::getSectionName(const Elf_Shdr &shdr) ...
function Elf_Shdr (line 364) | Elf_Shdr &ElfFile<ElfFileParamNames>::findSection(const SectionName &sec...
function Elf_Shdr (line 371) | Elf_Shdr *ElfFile<ElfFileParamNames>::findSection2(const SectionName &se...
function string (line 384) | string &ElfFile<ElfFileParamNames>::replaceSection(const SectionName &se...
function setSubstr (line 730) | static void setSubstr(string &s, unsigned int pos, const string &t)
function string (line 736) | string ElfFile<ElfFileParamNames>::getInterpreter()
function concatToRPath (line 749) | static void concatToRPath(string &rpath, const string &path)
type stat (line 841) | struct stat
function patchElf2 (line 953) | static void patchElf2(ElfFile &elfFile, mode_t fileMode)
function patchElf (line 976) | static void patchElf()
function showHelp (line 1000) | void showHelp(const string &progName)
function main (line 1016) | int main(int argc, char **argv)
FILE: conda/vapor/jupyter_installer_fix.py
function nullFunc (line 18) | def nullFunc(ret=None):
FILE: include/vapor/Advection.h
function namespace (line 15) | namespace flow {
FILE: include/vapor/AdvectionIO.h
function namespace (line 13) | namespace flow {
FILE: include/vapor/AnimationParams.h
type CaptureMode (line 39) | enum CaptureMode { SingleImage, TimeSeries }
type CaptureType (line 40) | enum CaptureType { TIFF, PNG }
function SetCurrentTimestep (line 57) | void SetCurrentTimestep(size_t ts)
function SetStartTimestep (line 71) | void SetStartTimestep(size_t ts) {
function SetEndTimestep (line 85) | void SetEndTimestep(size_t val) {
function SetPlayBackwards (line 98) | void SetPlayBackwards(bool val) { SetValueLong(_playBackwardsTag, "Set p...
function GetMaxFrameRate (line 103) | double GetMaxFrameRate() { return GetValueDouble(_maxRateTag, 1.0); }
function SetMaxFrameRate (line 109) | void SetMaxFrameRate(double rate) { SetValueDouble(_maxRateTag, "Set max...
function string (line 113) | static string GetClassType() { return ("AnimationParams"); }
FILE: include/vapor/AnnotationParams.h
function namespace (line 33) | namespace VAPoR {
FILE: include/vapor/AnnotationRenderer.h
function namespace (line 29) | namespace VAPoR {
FILE: include/vapor/AnnotationsParams.h
function namespace (line 32) | namespace VAPoR {
FILE: include/vapor/ArbitrarilyOrientedRegularGrid.h
type planeDescription (line 15) | struct planeDescription {
function namespace (line 23) | namespace VAPoR {
FILE: include/vapor/AxisAnnotation.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/BOVCollection.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/BarbParams.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/BarbRenderer.h
function namespace (line 19) | namespace VAPoR {
FILE: include/vapor/Base16StringStream.h
function std (line 35) | const std::string &ToString() { return _buf._string; }
type MemBuf (line 47) | struct MemBuf
FILE: include/vapor/BlkMemMgr.h
function namespace (line 10) | namespace VAPoR {
FILE: include/vapor/BookmarkParams.h
function string (line 27) | static string GetClassType() { return ("BookmarkParams"); }
function SetName (line 34) | void SetName(const string &name) { SetValueString(NameTag, "", name); }
function SetData (line 37) | void SetData(const string &data) { SetValueString(DataTag, "", data); }
function GetIconDataSize (line 43) | size_t GetIconDataSize() const
function DefaultIconSize (line 55) | static int DefaultIconSize() { return 32; }
function SetIconSize (line 59) | void SetIconSize(int size) { SetValueLong(IconSizeTag, "", size); }
FILE: include/vapor/Box.h
function namespace (line 27) | namespace VAPoR {
function GetAngles (line 197) | void GetAngles(double ang[3]){
function GetAngles (line 205) | void GetAngles(float ang[3]){
function SetAngles (line 214) | void SetAngles(const double angles[3])
function SetAngles (line 224) | void SetAngles(const float angles[3])
function SetAngles (line 233) | void SetAngles(const vector<double> &vals) { SetValueDoubleVec(m_anglesT...
function GetTimes (line 241) | const vector<long> GetTimes() {
function SetTimes (line 249) | void SetTimes(const vector<long>& times) {
function string (line 261) | static string GetClassType() { return ("BoxParams"); }
FILE: include/vapor/CFuncs.h
function namespace (line 31) | namespace Wasp {
FILE: include/vapor/CalcEngineMgr.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/ColorMap.h
function namespace (line 15) | namespace VAPoR {
FILE: include/vapor/ColorbarPbase.h
function namespace (line 25) | namespace VAPoR {
FILE: include/vapor/ColorbarRenderer.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/Compressor.h
function namespace (line 12) | namespace VAPoR {
FILE: include/vapor/ConstantGrid.h
function namespace (line 17) | namespace VAPoR {
FILE: include/vapor/ContourParams.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/ContourRenderer.h
function namespace (line 32) | namespace VAPoR {
FILE: include/vapor/ControlExecutive.h
function namespace (line 14) | namespace VAPoR {
FILE: include/vapor/CurvilinearGrid.h
function namespace (line 8) | namespace VAPoR {
function class (line 206) | class ConstCoordItrCG : public Grid::ConstCoordItrAbstract {
function virtual (line 217) | virtual const void * address() const { return this; }
function virtual (line 219) | virtual bool equal(const void *rhs) const
function virtual (line 226) | virtual std::unique_ptr<ConstCoordItrAbstract> clone() const { return st...
FILE: include/vapor/DC.h
function namespace (line 10) | namespace VAPoR {
function class (line 754) | class BaseVar {
function virtual (line 810) | virtual ~BaseVar(){}
function SetName (line 815) | void SetName(string name) { _name = name; }
function SetUnits (line 820) | void SetUnits(string units) { _units = units; }
function SetXType (line 825) | void SetXType(XType type) { _type = type; }
function SetWName (line 830) | void SetWName(string wname) { _wname = wname; }
function SetCRatios (line 836) | void SetCRatios(std::vector<size_t> cratios)
function SetPeriodic (line 845) | void SetPeriodic(std::vector<bool> periodic) { _periodic = ...
function SetAttributes (line 850) | void SetAttributes(std::map<string, Attrib...
function GetAttribute (line 852) | bool GetAttribute(string name, Attribute &att) const
function SetAttribute (line 860) | void SetAttribute(const Attribute &att) { _atts[att.GetName()] = att; }
function class (line 881) | class CoordVar : public BaseVar {
function SetDimNames (line 955) | void SetDimNames(std::vector<string> dim_names) { _dim_na...
function SetTimeDimName (line 961) | void SetTimeDimName(string time_dim_name) { _time_dim_name = time_dim_...
function SetAxis (line 966) | void SetAxis(int axis) { _axis = axis; }
function SetUniform (line 971) | void SetUniform(bool uniform) { _uniform = uniform; }
function class (line 987) | class DataVar : public BaseVar {
function class (line 1230) | class AuxVar : public BaseVar {
function SetDimNames (line 1262) | void SetDimNames(std::vector<string> dim_names) { _dim_na...
function SetOffset (line 1269) | void SetOffset(long offset) { _offset = offset; }
function virtual (line 1283) | virtual ~DC(){}
function virtual (line 1302) | virtual int Initialize(const std::vector<string> &paths, const std::vect...
function virtual (line 1315) | virtual bool GetDimension(string dimname, DC::Dimension &dimension, long...
function virtual (line 1340) | virtual bool GetMesh(string mesh_name, DC::Mesh &mesh) const { return (g...
function virtual (line 1374) | virtual bool GetCoordVarInfo(string varname, DC::CoordVar &cvar) const {...
function virtual (line 1388) | virtual bool GetDataVarInfo(string varname, DC::DataVar &datavar) const ...
function virtual (line 1401) | virtual bool GetAuxVarInfo(string varname, DC::AuxVar &var) const { retu...
function virtual (line 1414) | virtual bool GetBaseVarInfo(string varname, DC::BaseVar &var) const { re...
function virtual (line 1455) | virtual size_t GetNumRefLevels(string varname) const { return (getNumRef...
function virtual (line 1476) | virtual bool GetAtt(string varname, string attname, vector<double> &valu...
function virtual (line 1478) | virtual bool GetAtt(string varname, string attname, vector<long> &values...
function virtual (line 1480) | virtual bool GetAtt(string varname, string attname, string &values) cons...
function virtual (line 1495) | virtual std::vector<string> GetAttNames(string varname) const { return (...
function virtual (line 1508) | virtual XType GetAttType(string varname, string attname) const { return ...
function virtual (line 1615) | virtual int CloseVariable(int fd) { return (_closeVariable(fd)); }
function Read (line 1634) | int virtual Read(int fd, float *data) { return (_readTemplate(fd, data)); }
function Read (line 1635) | int virtual Read(int fd, double *data) { return (_readTemplate(fd, data)...
function Read (line 1636) | int virtual Read(int fd, int *data) { return (_readTemplate(fd, data)); }
function virtual (line 1659) | virtual int ReadSlice(int fd, float *slice) { return (_readSliceTemplate...
function virtual (line 1660) | virtual int ReadSlice(int fd, double *slice) { return (_readSliceTemplat...
function virtual (line 1661) | virtual int ReadSlice(int fd, int *slice) { return (_readSliceTemplate(f...
function virtual (line 1687) | virtual int ReadRegion(int fd, const vector<size_t> &min, const vector<s...
function virtual (line 1688) | virtual int ReadRegion(int fd, const vector<size_t> &min, const vector<s...
function virtual (line 1689) | virtual int ReadRegion(int fd, const vector<size_t> &min, const vector<s...
function virtual (line 1716) | virtual int GetVar(string varname, int level, int lod, float *data) { re...
function virtual (line 1717) | virtual int GetVar(string varname, int level, int lod, double *data) { r...
function virtual (line 1718) | virtual int GetVar(string varname, int level, int lod, int *data) { retu...
function virtual (line 1747) | virtual int GetVar(size_t ts, string varname, int level, int lod, float ...
function virtual (line 1748) | virtual int GetVar(size_t ts, string varname, int level, int lod, double...
function virtual (line 1749) | virtual int GetVar(size_t ts, string varname, int level, int lod, int *d...
function virtual (line 1977) | virtual bool IsDataVar(string varname) const
function virtual (line 1991) | virtual bool IsCoordVar(string varname) const
function virtual (line 2006) | virtual bool IsAuxVar(string varname) const
function class (line 2060) | class VDF_API FileTable {
function virtual (line 2110) | virtual bool getDimension(string dimname, DC::Dimension &dimension, long...
function virtual (line 2114) | virtual std::vector<string> getDimensionNames() const = 0;
function virtual (line 2186) | virtual int getDimLensAtLevel(string varname, int level, std::vector<siz...
FILE: include/vapor/DCBOV.h
function namespace (line 15) | namespace VAPoR {
FILE: include/vapor/DCCF.h
function namespace (line 16) | namespace VAPoR {
FILE: include/vapor/DCMPAS.h
function namespace (line 16) | namespace VAPoR {
function class (line 248) | class DerivedZonalMeridonal : public DerivedDataVar {
FILE: include/vapor/DCMelanie.h
function namespace (line 18) | namespace VAPoR {
FILE: include/vapor/DCP.h
function namespace (line 21) | namespace VAPoR {
FILE: include/vapor/DCRAM.h
function namespace (line 15) | namespace VAPoR {
FILE: include/vapor/DCUGRID.h
function namespace (line 15) | namespace VAPoR {
FILE: include/vapor/DCUtils.h
function namespace (line 29) | namespace VAPoR {
FILE: include/vapor/DCWRF.h
function namespace (line 15) | namespace VAPoR {
FILE: include/vapor/DataMgr.h
function namespace (line 22) | namespace VAPoR {
function class (line 654) | class BlkExts {
function Set (line 682) | void Set(size_t ts, string varname, int level, int lod, string key, cons...
function Get (line 691) | bool Get(size_t ts, string varname, int level, int lod, string key, std:...
function Purge (line 699) | void Purge(size_t ts, string varname, int level, int lod, string key)
function Clear (line 707) | void Clear() { _cache.clear(); }
type region_t (line 737) | typedef struct {
FILE: include/vapor/DataMgrFactory.h
function namespace (line 12) | namespace VAPoR {
FILE: include/vapor/DataMgrUtils.h
function namespace (line 29) | namespace VAPoR {
FILE: include/vapor/DataStatus.h
function namespace (line 30) | namespace VAPoR {
function SetNumThreads (line 145) | void SetNumThreads(size_t nthreads) { _nThreads = nthreads; }
function SetCacheSize (line 157) | void SetCacheSize(size_t sizeMB) { _cacheSize = sizeMB; }
function getMinTimestep (line 164) | size_t getMinTimestep() { return 0; }
function getMaxTimestep (line 168) | size_t getMaxTimestep() { return _timeCoords.size() ? _timeCoords.size()...
FILE: include/vapor/DatasetsParams.h
function namespace (line 7) | namespace VAPoR {
FILE: include/vapor/DerivedParticleDensity.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/DerivedVar.h
function namespace (line 11) | namespace VAPoR {
function virtual (line 66) | virtual DC::XType GetAttType(string attname) const { return (DC::INVALID...
function virtual (line 68) | virtual std::vector<string> GetInputs() const = 0;
function class (line 176) | class VDF_API DerivedCFVertCoordVarFactory {
function virtual (line 308) | virtual ~DerivedCoordVar_CF1D() {}
function virtual (line 348) | virtual ~DerivedCoordVar_CF2D() {}
function virtual (line 387) | virtual ~DerivedCoordVar_WRFTime() {}
function TimeLookup (line 409) | size_t TimeLookup(size_t ts) const { return (ts < _timePerm.size() ? _ti...
function virtual (line 435) | virtual ~DerivedCoordVar_TimeInSeconds() {}
function virtual (line 480) | virtual ~DerivedCoordVar_Time() {}
function virtual (line 510) | virtual ~DerivedCoordVar_Staggered() {}
function virtual (line 542) | virtual ~DerivedCoordVar_UnStaggered() {}
function virtual (line 574) | virtual ~DerivedCoordVarStandardWRF_Terrain() {}
function virtual (line 620) | virtual ~DerivedCoordVarStandardOceanSCoordinate() {}
function virtual (line 628) | virtual std::vector<string> GetInputs() const;
function virtual (line 681) | virtual ~DerivedCoordVarStandardAHSPC() {}
function virtual (line 689) | virtual std::vector<string> GetInputs() const;
FILE: include/vapor/DerivedVarMgr.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/EasyThreads.h
function namespace (line 15) | namespace Wasp {
FILE: include/vapor/Field.h
function namespace (line 13) | namespace flow {
FILE: include/vapor/FileUtils.h
function namespace (line 8) | namespace Wasp {
FILE: include/vapor/FlowParams.h
type class (line 15) | enum class
type class (line 16) | enum class
type RenderType (line 40) | enum RenderType { RenderTypeStream, RenderTypeSamples, RenderTypeDensity }
type GlpyhType (line 41) | enum GlpyhType { GlpyhTypeSphere, GlpyhTypeArrow }
function virtual (line 52) | virtual int Initialize() override;
function GetUseFixedAdvectionSteps (line 89) | bool GetUseFixedAdvectionSteps() const;
FILE: include/vapor/FlowRenderer.h
function std (line 26) | static std::string GetClassType() { return ("Flow"); }
type class (line 33) | enum class
function _initializeGL (line 40) | int _initializeGL() override;
FILE: include/vapor/Font.h
function namespace (line 11) | namespace VAPoR {
FILE: include/vapor/FontManager.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/Framebuffer.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/GLManager.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/GUIStateParams.h
function string (line 39) | string GetActiveVizName() const;
function RemoveOpenDataSet (line 71) | void RemoveOpenDataSet(string dataSetName) { m_openDataSets->Remove(data...
function string (line 81) | string GetCurrentImagePath() const;
function string (line 139) | string GetProjectionString() const
function string (line 175) | static string GetClassType() { return ("GUIStateParams"); }
function GetNumBookmarks (line 183) | int GetNumBookmarks() const;
FILE: include/vapor/GeoImage.h
function namespace (line 13) | namespace VAPoR {
FILE: include/vapor/GeoImageGeoTiff.h
function namespace (line 16) | namespace VAPoR {
FILE: include/vapor/GeoImageTMS.h
function namespace (line 20) | namespace VAPoR {
FILE: include/vapor/GeoTIFWriter.h
function namespace (line 10) | namespace VAPoR {
FILE: include/vapor/GeoTile.h
function namespace (line 46) | namespace VAPoR {
FILE: include/vapor/GeoTileEquirectangular.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/GeoTileMercator.h
function namespace (line 32) | namespace VAPoR {
FILE: include/vapor/GeoUtil.h
function namespace (line 11) | namespace VAPoR {
FILE: include/vapor/GetAppPath.h
function namespace (line 13) | namespace Wasp {
FILE: include/vapor/Grid.h
function namespace (line 20) | namespace VAPoR {
function virtual (line 469) | virtual void GetUserCoordinates(const size_t indices[], double coords[])...
function virtual (line 478) | virtual void GetUserCoordinates(const std::vector<size_t> &indices, std:...
function virtual (line 511) | virtual bool GetIndicesCell(const double coords[3], size_t indices[3]) c...
function virtual (line 523) | virtual bool GetIndicesCell(const std::vector<double> &coords, std::vect...
function GetRange (line 549) | void GetRange(std::vector<size_t> min, std::vector<size_t> max, float ra...
function virtual (line 571) | virtual bool InsideGrid(const double coords[3]) const
function virtual (line 580) | virtual bool InsideGrid(const std::vector<double> &coords) const
function virtual (line 609) | virtual bool GetCellNodes(const size_t cindices[], std::vector<DimsType>...
function virtual (line 646) | virtual size_t GetMaxVertexPerFace() const = 0;
function virtual (line 688) | virtual void ClampIndex(const DimsType &indices, DimsType &cIndices) con...
function virtual (line 696) | virtual void ClampCellIndex(const DimsType &indices, DimsType &cIndices)...
function virtual (line 707) | virtual void SetPeriodic(const std::vector<bool> &periodic)
function virtual (line 736) | virtual void SetNodeOffset(long offset) { _nodeIDOffset = offset; }
function virtual (line 743) | virtual void SetCellOffset(long offset) { _cellIDOffset = offset; }
function virtual (line 764) | virtual void SetMinAbs(const DimsType &minAbs) { _minAbs = minAbs; }
function PointInsideBoundingRectangle (line 781) | static bool PointInsideBoundingRectangle(const double pt[], const double...
function class (line 814) | class InsideBox {
function virtual (line 856) | virtual T & deref() const = 0;
function _impl (line 888) | _impl(nullptr) {}
type CoordType (line 936) | typedef const CoordType ConstCoordType;
type Grid (line 937) | typedef Grid::PolyIterator<ConstCoordType> ConstCoordItr;
type Grid (line 938) | typedef Grid::AbstractIterator<ConstCoordType> ConstCoordItrAbstract;
function virtual (line 942) | virtual ConstCoordItr ConstCoordBegin() const = 0;
function virtual (line 979) | virtual const void * address() const { return this; }
function virtual (line 981) | virtual bool equal(const void *rhs) const
function virtual (line 987) | virtual std::unique_ptr<ConstNodeIteratorAbstract> clone() const { retur...
function virtual (line 1021) | virtual ConstNodeIterator ConstNodeBegin() const { return ConstNodeItera...
function virtual (line 1036) | virtual ConstNodeIterator ConstNodeEnd() const { return ConstNodeIterato...
function virtual (line 1052) | virtual const void * address() const { return this; }
function virtual (line 1054) | virtual bool equal(const void *rhs) const
function virtual (line 1061) | virtual std::unique_ptr<ConstCellIteratorAbstract> clone() const { retur...
function virtual (line 1096) | virtual ConstCellIterator ConstCellBegin() const { return ConstCellItera...
function virtual (line 1111) | virtual ConstCellIterator ConstCellEnd() const { return ConstCellIterato...
function ConstCoordItr (line 1152) | const ConstCoordItr &GetCoordItr() { return (_coordItr); }
function friend (line 1154) | friend void swap(Grid::ForwardIterator<T> &a, Grid::ForwardIterator<T> &b)
type Grid (line 1183) | typedef Grid::ForwardIterator<Grid> Iterator;
type Grid (line 1184) | typedef Grid::ForwardIterator<Grid const> ConstIterator;
function Iterator (line 1189) | Iterator begin(const CoordType &minu, const CoordType &maxu) { return (I...
function Iterator (line 1191) | Iterator begin(const std::vector<double> &minu, const std::vector<double...
function Iterator (line 1199) | Iterator begin() { return (Iterator(this, true)); }
function Iterator (line 1201) | Iterator end() { return (Iterator(this, false)); }
function ConstIterator (line 1203) | ConstIterator cbegin(const CoordType &minu, const CoordType &maxu) const...
function ConstIterator (line 1205) | ConstIterator cbegin(const std::vector<double> &minu, const std::vector<...
function CopyToArr3 (line 1216) | void CopyToArr3(const std::vector<T> &src, std::array<T, 3> &dst)
function CopyToArr3 (line 1221) | void CopyToArr3(const T *src, size_t n, std::array<T, 3> &dst)
function CopyFromArr3 (line 1225) | void CopyFromArr3(const std::array<T, 3> &src, std::vector<T> &dst)
function CopyFromArr3 (line 1230) | void CopyFromArr3(const std::array<T, 3> &src, T *dst)
function virtual (line 1245) | virtual void ClampIndex(const std::vector<size_t> &dims, const DimsType ...
function virtual (line 1255) | virtual void ClampIndex(const DimsType &dims, const DimsType indices, Di...
FILE: include/vapor/GridHelper.h
function namespace (line 18) | namespace VAPoR {
FILE: include/vapor/HelloParams.h
function namespace (line 7) | namespace VAPoR {
FILE: include/vapor/HelloRenderer.h
function namespace (line 27) | namespace VAPoR {
FILE: include/vapor/Histo.h
function class (line 31) | class RENDER_API Histo {
FILE: include/vapor/IResourceManager.h
function namespace (line 16) | namespace VAPoR {
FILE: include/vapor/ImageParams.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/ImageRenderer.h
function namespace (line 12) | namespace VAPoR {
FILE: include/vapor/ImageWriter.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/ImpExp.h
function namespace (line 17) | namespace VAPoR {
FILE: include/vapor/JPGWriter.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/KDTreeRG.h
type kdtree (line 10) | struct kdtree
function namespace (line 12) | namespace VAPoR {
FILE: include/vapor/LayeredGrid.h
function namespace (line 7) | namespace VAPoR {
function virtual (line 157) | virtual ConstCoordItr ConstCoordBegin() const override { return ConstCoo...
FILE: include/vapor/LegacyGL.h
function namespace (line 13) | namespace VAPoR {
FILE: include/vapor/LegacyVectorMath.h
function namespace (line 12) | namespace VAPoR {
FILE: include/vapor/MapperFunction.h
function namespace (line 31) | namespace VAPoR {
FILE: include/vapor/MatWaveBase.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/MatWaveDwt.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/MatWaveWavedec.h
function namespace (line 7) | namespace VAPoR {
FILE: include/vapor/MatrixManager.h
function namespace (line 14) | namespace VAPoR {
FILE: include/vapor/ModelParams.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/ModelRenderer.h
function namespace (line 35) | namespace VAPoR {
FILE: include/vapor/MouseModeParams.h
type MouseMode (line 37) | struct MouseMode {
function GetNumMouseModes (line 74) | int GetNumMouseModes() { return _modes.size(); }
function string (line 87) | static string GetClassType() { return ("MouseModeParamsTag"); }
function string (line 89) | static string GetNavigateModeName() { return ("Navigate"); }
function string (line 91) | static string GetRegionModeName() { return ("Region"); }
FILE: include/vapor/MyBase.h
function namespace (line 46) | namespace Wasp {
function COMMON_API (line 268) | COMMON_API inline int IsOdd(int x) { return (x % 2); }
function COMMON_API (line 277) | COMMON_API inline int Min(int a, int b) { return (a < b ? a : b); }
function COMMON_API (line 278) | COMMON_API inline int Max(int a, int b) { return (a > b ? a : b); }
function COMMON_API (line 280) | COMMON_API inline size_t Min(size_t a, size_t b) { return (a < b ? a : b...
function COMMON_API (line 281) | COMMON_API inline size_t Max(size_t a, size_t b) { return (a > b ? a : b...
function COMMON_API (line 283) | COMMON_API inline float Min(float a, float b) { return (a < b ? a : b); }
function COMMON_API (line 284) | COMMON_API inline float Max(float a, float b) { return (a > b ? a : b); }
function COMMON_API (line 286) | COMMON_API inline double Min(double a, double b) { return (a < b ? a : b...
function COMMON_API (line 287) | COMMON_API inline double Max(double a, double b) { return (a > b ? a : b...
function COMMON_API (line 289) | COMMON_API inline double LogBaseN(double x, double n) { return (log(x) /...
FILE: include/vapor/MyPython.h
function namespace (line 34) | namespace Wasp {
FILE: include/vapor/NavigationUtils.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/NetCDFCFCollection.h
type ut_system (line 18) | struct ut_system
function namespace (line 20) | namespace VAPoR {
function UDUnits (line 262) | const UDUnits *GetUDUnits() const { return (_udunit); }
FILE: include/vapor/NetCDFCollection.h
function namespace (line 16) | namespace VAPoR {
function virtual (line 393) | virtual size_t GetNumTimeSteps(string varname) const { return (NetCDFCol...
function virtual (line 591) | virtual void SetMissingValueAttName(string attname) { _missingValAttName...
function class (line 603) | class TimeVaryingVar {
function class (line 661) | class fileHandle {
FILE: include/vapor/NetCDFCpp.h
function namespace (line 11) | namespace VAPoR {
FILE: include/vapor/NetCDFSimple.h
function namespace (line 14) | namespace VAPoR {
FILE: include/vapor/NonCopyableMixin.h
function namespace (line 3) | namespace VAPoR {
FILE: include/vapor/OSPRay.h
function namespace (line 12) | namespace VOSP {
FILE: include/vapor/OpacityMap.h
function namespace (line 20) | namespace VAPoR {
FILE: include/vapor/OptionParser.h
function namespace (line 43) | namespace Wasp {
FILE: include/vapor/PNGWriter.h
function namespace (line 5) | namespace VAPoR {
FILE: include/vapor/PVTime.h
function namespace (line 33) | namespace Wasp {
FILE: include/vapor/ParamsBase.h
function namespace (line 33) | namespace VAPoR {
function SetParent (line 350) | void SetParent(ParamsBase *parent) { GetNode()->SetParent(parent->GetNod...
function Remove (line 358) | void Remove(const ParamsBase *pb) { Remove(GetParamsName(pb)); }
function XmlNode (line 368) | XmlNode *GetNode() const { return _separator->GetNode(); }
FILE: include/vapor/ParamsMgr.h
function namespace (line 38) | namespace VAPoR {
FILE: include/vapor/Particle.h
function namespace (line 12) | namespace flow {
FILE: include/vapor/ParticleParams.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/ParticleRenderer.h
function namespace (line 32) | namespace VAPoR {
FILE: include/vapor/Progress.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/Proj4API.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/Proj4StringParser.h
function namespace (line 7) | namespace VAPoR {
FILE: include/vapor/PyEngine.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/PythonDataMgr.h
function namespace (line 5) | namespace VAPoR {
FILE: include/vapor/QuadTreeRectangle.hpp
type VAPoR (line 11) | namespace VAPoR {
class QuadTreeRectangle (line 23) | class QuadTreeRectangle {
class rectangle_t (line 25) | class rectangle_t {
method rectangle_t (line 27) | rectangle_t() : _left(0.0f), _top(0.0f), _right(0.0f), _bottom(0.0...
method rectangle_t (line 28) | rectangle_t(T x1, T y1, T x2, T y2) : _left(x1), _top(y1), _right(...
method intersects (line 32) | bool intersects(rectangle_t const &other) const
method contains (line 42) | bool contains(rectangle_t const &other) const { return ((_left <= ...
method contains (line 46) | bool contains(T x, T y) const { return ((_left <= x) && (_right >=...
method touches (line 48) | bool touches(rectangle_t const &other) const { return ((_left == o...
method T (line 50) | T width() const { return (_right - _left); }
method T (line 51) | T height() const { return (_bottom - _top); }
method rectangle_t (line 55) | rectangle_t quadrant(uint32_t n)
method hAspectRatio (line 71) | float hAspectRatio() const {
method QuadTreeRectangle (line 105) | QuadTreeRectangle(T left, T top, T right, T bottom, size_t max_depth...
method QuadTreeRectangle (line 120) | QuadTreeRectangle(size_t max_depth = 12, size_t reserve_size = 1000)
method QuadTreeRectangle (line 128) | QuadTreeRectangle(const QuadTreeRectangle &rhs)
method QuadTreeRectangle (line 136) | QuadTreeRectangle &operator=(const QuadTreeRectangle &rhs)
method Insert (line 164) | bool Insert(const rectangle_t &rectangle, const S &payload)
method Insert (line 206) | bool Insert(T left, T top, T right, T bottom, S payload) { return (I...
method GetPayloadContained (line 219) | void GetPayloadContained(T x, T y, std::vector<S> &payloads) const
method GetStats (line 238) | void GetStats(std::vector<size_t> &payload_histo, std::vector<size_t...
class node_t (line 263) | class node_t {
method node_t (line 265) | node_t(int level = 0) : _level(level), _is_leaf(true), _child0(0),...
method node_t (line 267) | node_t(T left, T top, T right, T bottom, int level = 0) : _level(l...
method node_t (line 269) | node_t(const rectangle_t &rec, int level = 0) : _level(level), _is...
method rectangle_t (line 271) | rectangle_t & bounds() { return (_rectangle); }
method rectangle_t (line 272) | rectangle_t const &bounds() const { return (_rectangle); }
method intersects (line 274) | bool intersects(rectangle_t const &other) const { return (_rectang...
method contains (line 275) | bool contains(rectangle_t const &other) const { return (_rectangle...
method contains (line 276) | bool contains(T x, T y) const { return (_rectangle.contains(x, y)); }
method touches (line 277) | bool touches(rectangle_t const &other) const { return (_rectangle....
method subdivide (line 279) | static void subdivide(std::vector<node_t> &nodes, size_t nidx)
method quadrant (line 299) | static size_t quadrant(const std::vector<node_t> &nodes, size_t ni...
method quadrant (line 311) | static size_t quadrant(std::vector<node_t> &nodes, size_t nidx, ui...
method insert (line 325) | static bool insert(std::vector<node_t> &nodes, size_t nidx, const ...
method get_payload_contains (line 355) | static void get_payload_contains(const std::vector<node_t> &nodes,...
method print (line 370) | static void print(const std::vector<node_t> &nodes, size_t nidx, s...
method get_level (line 388) | size_t get_level() const { return (_level); }
FILE: include/vapor/QuadTreeRectangleP.h
function namespace (line 15) | namespace VAPoR {
FILE: include/vapor/RayCaster.h
function namespace (line 15) | namespace VAPoR {
FILE: include/vapor/RayCasterParams.h
function namespace (line 7) | namespace VAPoR {
FILE: include/vapor/RegularGrid.h
function namespace (line 9) | namespace VAPoR {
function virtual (line 107) | virtual ConstCoordItr ConstCoordBegin() const override { return ConstCoo...
FILE: include/vapor/RenderParams.h
function namespace (line 34) | namespace VAPoR {
function virtual (line 389) | virtual void SetIsoValues(const string &variable, const vector<double> &...
function SetIsoValues (line 392) | void SetIsoValues(const vector<double> &values) { SetIsoValues...
function GetXSlicePlaneOrigin (line 415) | double GetXSlicePlaneOrigin() const;
function SlicePlaneOrientationMode (line 604) | enum class SlicePlaneOrientationMode {
function class (line 616) | class PARAMS_API RenParamsFactory {
FILE: include/vapor/Renderer.h
function namespace (line 29) | namespace VAPoR {
function ClearCache (line 149) | void ClearCache() { _clearCache(); }
function setBypass (line 158) | void setBypass(int timestep)
function setPartialBypass (line 167) | void setPartialBypass(int timestep)
function setAllBypass (line 176) | void setAllBypass(bool val)
function doBypass (line 184) | bool doBypass(int timestep) { return (_currentRenderParams && _currentRe...
function doAlwaysBypass (line 190) | bool doAlwaysBypass(int timestep) { return (_currentRenderParams && _cur...
function virtual (line 196) | virtual void setAllDataDirty() { return; }
function SetControlExec (line 202) | static void SetControlExec(ControlExec *ce) { _controlExec = ce; }
function RenderParams (line 251) | RenderParams *GetActiveParams() const { return (_paramsMgr->GetRenderPar...
function ViewpointParams (line 253) | ViewpointParams *GetViewpointParams() const { return _paramsMgr->GetView...
function AnnotationParams (line 255) | AnnotationParams *GetAnnotationParams() const { return _paramsMgr->GetAn...
function Transform (line 257) | Transform *GetDatasetTransform() const { return GetViewpointParams()->Ge...
function virtual (line 267) | virtual std::string _getColorbarVariableName() const;
function RENDER_API (line 359) | RENDER_API RendererRegistrar {
FILE: include/vapor/ResourcePath.h
function namespace (line 6) | namespace Wasp {
FILE: include/vapor/STLUtils.h
function namespace (line 11) | namespace STLUtils {
FILE: include/vapor/SetHDF5PluginPath.h
function namespace (line 7) | namespace VAPoR {
FILE: include/vapor/SettingsParams.h
function GetNumThreads (line 51) | int GetNumThreads() const;
FILE: include/vapor/Shader.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/ShaderManager.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/ShaderProgram.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/SignificanceMap.h
function namespace (line 21) | namespace VAPoR {
FILE: include/vapor/SliceParams.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/SliceRenderer.h
function namespace (line 13) | namespace VAPoR {
FILE: include/vapor/SphericalGrid.h
function namespace (line 10) | namespace VAPoR {
FILE: include/vapor/StretchedGrid.h
function namespace (line 7) | namespace VAPoR {
function class (line 117) | class ConstCoordItrSG : public Grid::ConstCoordItrAbstract {
function virtual (line 128) | virtual const void * address() const { return this; }
function virtual (line 130) | virtual bool equal(const void *rhs) const
function virtual (line 137) | virtual std::unique_ptr<ConstCoordItrAbstract> clone() const { return st...
FILE: include/vapor/StructuredGrid.h
function namespace (line 14) | namespace VAPoR {
FILE: include/vapor/TFInterpolator.h
function namespace (line 28) | namespace VAPoR {
FILE: include/vapor/TIFWriter.h
function namespace (line 10) | namespace VAPoR {
FILE: include/vapor/TMSUtils.h
function namespace (line 7) | namespace Wasp {
FILE: include/vapor/TextLabel.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/Texture.h
function namespace (line 5) | namespace VAPoR {
FILE: include/vapor/TrackBall.h
function class (line 59) | class RENDER_API Trackball {
FILE: include/vapor/Transform.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/TwoDDataParams.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/TwoDDataRenderer.h
function namespace (line 30) | namespace VAPoR {
function _gridStateDirty (line 139) | bool _gridStateDirty() const;
FILE: include/vapor/TwoDRenderer.h
function namespace (line 17) | namespace VAPoR {
FILE: include/vapor/UDUnitsClass.h
type ut_system (line 15) | struct ut_system
function namespace (line 17) | namespace VAPoR {
FILE: include/vapor/UnstructuredGrid.h
function namespace (line 14) | namespace VAPoR {
FILE: include/vapor/UnstructuredGrid2D.h
function namespace (line 16) | namespace VAPoR {
function virtual (line 122) | virtual ConstCoordItr ConstCoordBegin() const override { return ConstCoo...
FILE: include/vapor/UnstructuredGrid3D.h
function namespace (line 15) | namespace VAPoR {
FILE: include/vapor/UnstructuredGridCoordless.h
function namespace (line 14) | namespace VAPoR {
function virtual (line 96) | virtual ConstCoordItr ConstCoordBegin() const override { return ConstCoo...
FILE: include/vapor/UnstructuredGridLayered.h
function namespace (line 15) | namespace VAPoR {
function virtual (line 102) | virtual ConstCoordItr ConstCoordBegin() const override { return ConstCoo...
FILE: include/vapor/VAssert.h
function namespace (line 5) | namespace Wasp {
FILE: include/vapor/VDC.h
function namespace (line 11) | namespace VAPoR {
FILE: include/vapor/VDCNetCDF.h
function namespace (line 11) | namespace VAPoR {
FILE: include/vapor/VDC_c.h
type VAPoR (line 24) | typedef VAPoR::VDCNetCDF VDC;
type VAPoR (line 25) | typedef VAPoR::VDC::Dimension VDCDimension;
type VAPoR (line 26) | typedef VAPoR::VDC::BaseVar VDCBaseVar;
type VAPoR (line 27) | typedef VAPoR::VDC::AuxVar VDCAuxVar;
type VAPoR (line 28) | typedef VAPoR::VDC::DataVar VDCDataVar;
type VAPoR (line 29) | typedef VAPoR::VDC::CoordVar VDCCoordVar;
type VDC (line 34) | typedef struct VDCNetCDF VDC;
type VDCDimension (line 35) | typedef struct VDCDimension VDCDimension;
type VDCBaseVar (line 36) | typedef struct VDCBaseVar VDCBaseVar;
type VDCAuxVar (line 37) | typedef struct VDCAuxVar VDCAuxVar;
type VDCDataVar (line 38) | typedef struct VDCDataVar VDCDataVar;
type VDCCoordVar (line 39) | typedef struct VDCCoordVar VDCCoordVar;
FILE: include/vapor/VaporField.h
function emptyVar (line 28) | bool emptyVar() const;
FILE: include/vapor/Version.h
function namespace (line 39) | namespace Wasp {
FILE: include/vapor/Viewpoint.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/ViewpointParams.h
function getNumLights (line 63) | int getNumLights() const
function setNumLights (line 79) | void setNumLights(size_t nlights)
function setExponent (line 128) | void setExponent(double val) { SetValueDouble(_specularExpTag, "Set spec...
function setAmbientCoeff (line 133) | void setAmbientCoeff(double val) { SetValueDouble(_ambientCoeffTag, "Set...
function GetFOV (line 156) | double GetFOV() const;
function GetModelViewMatrix (line 183) | void GetModelViewMatrix(double m[16]) const { getCurrentV...
function SetModelViewMatrix (line 191) | void SetModelViewMatrix(const double matrix[16]) { getCurrentViewpoint()...
function SetModelViewMatrix (line 192) | void SetModelViewMatrix(const std::vector<double> mvec)
function GetProjectionMatrix (line 200) | void GetProjectionMatrix(double m[16]) const { getCurrentViewpoint()->Ge...
function SetProjectionMatrix (line 201) | void SetProjectionMatrix(const double m[16]) { getCurrentViewpoint()->Se...
function ReconstructCamera (line 203) | bool ReconstructCamera(const double m[16], double position[3], double up...
function GetRotationCenter (line 207) | void GetRotationCenter(double c[3]) const
function SetRotationCenter (line 214) | void SetRotationCenter(vector<double> c) { getCurrentViewpoint()->SetRot...
function SetRotationCenter (line 215) | void SetRotationCenter(const double c[3])
FILE: include/vapor/Visualizer.h
function namespace (line 32) | namespace VAPoR {
function SetAnimationCaptureEnabled (line 144) | int SetAnimationCaptureEnabled(bool onOff, string filename)
function ClearText (line 168) | void ClearText() { _vizFeatures->ClearText(); }
type GLVendorType (line 192) | enum GLVendorType { UNKNOWN = 0, MESA, NVIDIA, ATI, INTEL }
FILE: include/vapor/VisualizerGLContextManager.h
function namespace (line 4) | namespace VAPoR {
FILE: include/vapor/VolumeAlgorithm.h
function namespace (line 10) | namespace VAPoR {
FILE: include/vapor/VolumeCellTraversal.h
function namespace (line 5) | namespace VAPoR {
FILE: include/vapor/VolumeGLSL.h
function namespace (line 7) | namespace VAPoR {
FILE: include/vapor/VolumeIsoParams.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/VolumeIsoRenderer.h
function namespace (line 10) | namespace VAPoR {
FILE: include/vapor/VolumeOSPRay.h
function namespace (line 7) | namespace VAPoR {
FILE: include/vapor/VolumeParams.h
function namespace (line 7) | namespace VAPoR {
FILE: include/vapor/VolumeRectilinear.h
function namespace (line 5) | namespace VAPoR {
FILE: include/vapor/VolumeRegular.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/VolumeRenderer.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/VolumeResampled.h
function namespace (line 5) | namespace VAPoR {
FILE: include/vapor/VolumeTest.h
function namespace (line 5) | namespace VAPoR {
FILE: include/vapor/VolumeTest2.h
function namespace (line 5) | namespace VAPoR {
FILE: include/vapor/WASP.h
function namespace (line 14) | namespace VAPoR {
function namespace (line 704) | namespace Wasp {
FILE: include/vapor/WaveCodecIO.h
function namespace (line 17) | namespace VAPoR {
FILE: include/vapor/WaveFiltBase.h
function namespace (line 6) | namespace VAPoR {
FILE: include/vapor/WaveFiltBior.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/WaveFiltCoif.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/WaveFiltDaub.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/WaveFiltHaar.h
function namespace (line 5) | namespace VAPoR {
FILE: include/vapor/WaveFiltInt.h
function namespace (line 9) | namespace VAPoR {
FILE: include/vapor/WireFrameParams.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/WireFrameRenderer.h
function namespace (line 19) | namespace VAPoR {
FILE: include/vapor/XmlNode.h
function namespace (line 18) | namespace VAPoR {
function virtual (line 441) | virtual XmlNode *GetParent() const { return (_parent); }
function operator (line 467) | bool operator!=(const XmlNode &rhs) const { return (!(*this == rhs)); }
function std (line 498) | static const std::vector<XmlNode *> &GetAllocatedNodes() { return (_allo...
type type (line 537) | enum type { UNKNOWN, PARENT, LONG_DATA, DOUBLE_DATA, STRING_DATA }
FILE: include/vapor/converter.h
type cv_converter (line 22) | typedef union cv_converter cv_converter;
FILE: include/vapor/debug.h
function PRINTARG (line 96) | inline void PRINTARG() {}
function PRINTARG (line 97) | inline void PRINTARG(int x) { printf("%i", x); }
function PRINTARG (line 98) | inline void PRINTARG(long x) { printf("%li", x); }
function PRINTARG (line 99) | inline void PRINTARG(size_t x) { printf("%li", x); }
function PRINTARG (line 100) | inline void PRINTARG(float x) { printf("%g", x); }
function PRINTARG (line 101) | inline void PRINTARG(double x) { printf("%g", x); }
function PRINTARG (line 102) | inline void PRINTARG(bool x) { printf("%s", x ? "true" : "false"); }
function PRINTARG (line 103) | inline void PRINTARG(const std::string x) { printf("\"%s\"", x.c_str()); }
function PRINTARG (line 104) | inline void PRINTARG(const char *x) { printf("\"%s\"", x); }
function PRINTARG (line 106) | inline void PRINTARG(const int *i) { printf("(int[]){%i}", *i); }
function PRINTARG (line 107) | inline void PRINTARG(const float *f) { printf("(float[]){%f}", *f); }
function PRINTARG (line 108) | inline void PRINTARG(const double *d) { printf("(double[]){%d}", *d); }
function PRINTARG (line 109) | inline void PRINTARG(const size_t *li) { printf("(size_t[]){%li}", *li); }
function PRINTARG (line 110) | inline void PRINTARG(const long *li) { printf("(long[]){%li}", *li); }
function PRINTARG (line 112) | inline void PRINTARG(const int *i) { printf("*[%i]", *i); }
function PRINTARG (line 113) | inline void PRINTARG(const float *f) { printf("*[%f]", *f); }
function PRINTARG (line 114) | inline void PRINTARG(const double *d) { printf("*[%f]", *d); }
function PRINTARG (line 115) | inline void PRINTARG(const size_t *li) { printf("*[%li]", *li); }
function PRINTARG (line 116) | inline void PRINTARG(const long *li) { printf("*[%li]", *li); }
function PRINTARG (line 118) | inline void PRINTARG(const void *x) { printf("%s", x ? "<ptr>" : "NULL"); }
function std (line 157) | inline std::string classScopeFromPrettyFunc(const std::string &pretty)
FILE: include/vapor/direntWin32.h
type _wdirent (line 165) | struct _wdirent {
type _wdirent (line 172) | typedef struct _wdirent _wdirent;
type _WDIR (line 174) | struct _WDIR {
type _WDIR (line 181) | typedef struct _WDIR _WDIR;
type _wdirent (line 184) | struct _wdirent
type dirent (line 197) | struct dirent {
type dirent (line 204) | typedef struct dirent dirent;
type DIR (line 206) | struct DIR {
type DIR (line 210) | typedef struct DIR DIR;
type dirent (line 213) | struct dirent
function _WDIR (line 232) | static _WDIR *_wopendir(const wchar_t *dirname)
type _wdirent (line 328) | struct _wdirent
type _wdirent (line 331) | struct _wdirent
type _wdirent (line 369) | struct _wdirent
function _wclosedir (line 384) | static int _wclosedir(_WDIR *dirp)
function _wrewinddir (line 416) | static void _wrewinddir(_WDIR *dirp)
function WIN32_FIND_DATAW (line 428) | static WIN32_FIND_DATAW *dirent_first(_WDIR *dirp)
function WIN32_FIND_DATAW (line 448) | static WIN32_FIND_DATAW *dirent_next(_WDIR *dirp)
function DIR (line 481) | static DIR *opendir(const char *dirname)
type dirent (line 548) | struct dirent
type dirent (line 551) | struct dirent
type dirent (line 595) | struct dirent
function closedir (line 624) | static int closedir(DIR *dirp)
function rewinddir (line 646) | static void rewinddir(DIR *dirp)
function dirent_mbstowcs_s (line 653) | static int dirent_mbstowcs_s(size_t *pReturnValue, wchar_t *wcstr, size_...
function dirent_wcstombs_s (line 693) | static int dirent_wcstombs_s(size_t *pReturnValue, char *mbstr, size_t s...
function dirent_set_errno (line 734) | static void dirent_set_errno(int error)
FILE: include/vapor/errorcodes.h
function namespace (line 28) | namespace VAPoR {
FILE: include/vapor/glutil.h
function namespace (line 80) | namespace VAPoR {
FILE: include/vapor/jpegapi.h
function namespace (line 8) | namespace VAPoR {
FILE: include/vapor/nanoflann.hpp
class KNNResultSet (line 77) | class KNNResultSet {
method KNNResultSet (line 84) | inline KNNResultSet(CountType capacity_) : indices(0), dists(0), capac...
method init (line 86) | inline void init(IndexType *indices_, DistanceType *dists_)
method CountType (line 94) | inline CountType size() const { return count; }
method full (line 96) | inline bool full() const { return count == capacity; }
method addPoint (line 102) | inline bool addPoint(DistanceType dist, IndexType index)
type IndexDist_Sorter (line 132) | struct IndexDist_Sorter {
class RadiusResultSet (line 140) | class RadiusResultSet {
method RadiusResultSet (line 146) | inline RadiusResultSet(DistanceType radius_, std::vector<std::pair<I...
method init (line 148) | inline void init() { clear(); }
method clear (line 149) | inline void clear() { m_indices_dists.clear(); }
method size (line 151) | inline size_t size() const { return m_indices_dists.size(); }
method full (line 153) | inline bool full() const { return true; }
method addPoint (line 159) | inline bool addPoint(DistanceType dist, IndexType index)
method DistanceType (line 165) | inline DistanceType worstDist() const { return radius; }
method worst_item (line 171) | std::pair<IndexType, DistanceType> worst_item() const
method save_value (line 184) | void save_value(FILE *stream, const T &value, size_t count = 1) { fwri...
method save_value (line 186) | void save_value(FILE *stream, const std::vector<T> &value)
method load_value (line 193) | void load_value(FILE *stream, T &value, size_t count = 1)
method load_value (line 199) | void load_value(FILE *stream, std::vector<T> &value)
type Metric (line 213) | struct Metric {
type L1_Adaptor (line 221) | struct L1_Adaptor {
method L1_Adaptor (line 227) | L1_Adaptor(const DataSource &_data_source) : data_source(_data_sourc...
method DistanceType (line 229) | inline DistanceType evalMetric(const T *a, const size_t b_idx, size_...
method DistanceType (line 251) | inline DistanceType accum_dist(const U a, const V b, int) const { re...
type L2_Adaptor (line 259) | struct L2_Adaptor {
method L2_Adaptor (line 265) | L2_Adaptor(const DataSource &_data_source) : data_source(_data_sourc...
method DistanceType (line 267) | inline DistanceType evalMetric(const T *a, const size_t b_idx, size_...
method DistanceType (line 292) | inline DistanceType accum_dist(const U a, const V b, int) const { re...
type L2_Simple_Adaptor (line 300) | struct L2_Simple_Adaptor {
method L2_Simple_Adaptor (line 306) | L2_Simple_Adaptor(const DataSource &_data_source) : data_source(_dat...
method DistanceType (line 308) | inline DistanceType evalMetric(const T *a, const size_t b_idx, size_...
method DistanceType (line 318) | inline DistanceType accum_dist(const U a, const V b, int) const { re...
type SO2_Adaptor (line 327) | struct SO2_Adaptor {
method SO2_Adaptor (line 333) | SO2_Adaptor(const DataSource &_data_source) : data_source(_data_sour...
method DistanceType (line 335) | inline DistanceType evalMetric(const T *a, const size_t b_idx, size_...
method DistanceType (line 337) | inline DistanceType accum_dist(const U a, const V b, int) const
type SO3_Adaptor (line 354) | struct SO3_Adaptor {
method SO3_Adaptor (line 360) | SO3_Adaptor(const DataSource &_data_source) : distance_L2_Simple(_da...
method DistanceType (line 362) | inline DistanceType evalMetric(const T *a, const size_t b_idx, size_...
method DistanceType (line 364) | inline DistanceType accum_dist(const U a, const V b, int idx) const ...
type metric_L1 (line 368) | struct metric_L1 : public Metric {
type traits (line 369) | struct traits {
type metric_L2 (line 374) | struct metric_L2 : public Metric {
type traits (line 375) | struct traits {
type metric_L2_Simple (line 380) | struct metric_L2_Simple : public Metric {
type traits (line 381) | struct traits {
type metric_SO2 (line 386) | struct metric_SO2 : public Metric {
type traits (line 387) | struct traits {
type metric_SO3 (line 392) | struct metric_SO3 : public Metric {
type traits (line 393) | struct traits {
type KDTreeSingleIndexAdaptorParams (line 404) | struct KDTreeSingleIndexAdaptorParams {
method KDTreeSingleIndexAdaptorParams (line 405) | KDTreeSingleIndexAdaptorParams(size_t _leaf_max_size = 10) : leaf_ma...
type SearchParams (line 411) | struct SearchParams {
method SearchParams (line 413) | SearchParams(int checks_IGNORED_ = 32, float eps_ = 0, bool sorted_ ...
method T (line 431) | inline T *allocate(size_t count = 1)
class PooledAllocator (line 455) | class PooledAllocator {
method internal_init (line 465) | void internal_init()
method PooledAllocator (line 480) | PooledAllocator() { internal_init(); }
method free_all (line 488) | void free_all()
method T (line 552) | T *allocate(const size_t count = 1)
class CArray (line 589) | class CArray {
method iterator (line 604) | inline iterator begin() { return elems; }
method const_iterator (line 605) | inline const_iterator begin() const { return elems; }
method iterator (line 606) | inline iterator end() { return elems + N; }
method const_iterator (line 607) | inline const_iterator end() const { return elems + N; }
method reverse_iterator (line 623) | reverse_iterator rbegin() { return reverse_iterator(end()); }
method const_reverse_iterator (line 624) | const_reverse_iterator rbegin() const { return const_reverse_iterato...
method reverse_iterator (line 625) | reverse_iterator rend() { return reverse_iterator(begin()); }
method const_reverse_iterator (line 626) | const_reverse_iterator rend() const { return const_reverse_iterator(...
method reference (line 628) | inline reference operator[](size_type i) { return elems[i]; }
method const_reference (line 629) | inline const_reference operator[](size_type i) const { return elems[...
method reference (line 631) | reference at(size_type i)
method const_reference (line 636) | const_reference at(size_type i) const
method reference (line 642) | reference front() { return elems[0]; }
method const_reference (line 643) | const_reference front() const { return elems[0]; }
method reference (line 644) | reference back() { return elems[N - 1]; }
method const_reference (line 645) | const_reference back() const { return elems[N - 1]; }
method size_type (line 647) | static inline size_type size() { return N; }
method empty (line 648) | static bool empty() { return false; }
method size_type (line 649) | static size_type max_size() { return N; }
method resize (line 652) | inline void resize(const size_t nElements)
method swap (line 657) | void swap(CArray<T, N> &y) { std::swap_ranges(begin(), end(), y.begi...
method T (line 659) | const T *data() const { return elems; }
method T (line 661) | T *data() { return elems; }
method assign (line 669) | inline void assign(const T &value)
method assign (line 674) | void assign(const size_t n, const T &value)
method rangecheck (line 682) | static void rangecheck(size_type i)
type array_or_vector_selector (line 691) | struct array_or_vector_selector {
type array_or_vector_selector<-1, T> (line 695) | struct array_or_vector_selector<-1, T> {
class KDTreeBaseClass (line 712) | class KDTreeBaseClass {
method freeIndex (line 715) | void freeIndex(Derived &obj)
type Node (line 726) | struct Node {
type leaf (line 729) | struct leaf {
type nonleaf (line 732) | struct nonleaf {
type Interval (line 742) | struct Interval {
method size (line 779) | size_t size(const Derived &obj) const { return obj.m_size; }
method veclen (line 782) | size_t veclen(const Derived &obj) { return static_cast<size_t>(DIM >...
method ElementType (line 785) | inline ElementType dataset_get(const Derived &obj, size_t idx, int c...
method usedMemory (line 791) | size_t usedMemory(Derived &obj)
method computeMinMax (line 796) | void computeMinMax(const Derived &obj, IndexType *ind, IndexType cou...
method NodePtr (line 814) | NodePtr divideTree(Derived &obj, const IndexType left, const IndexTy...
method middleSplit_ (line 863) | void middleSplit_(Derived &obj, IndexType *ind, IndexType count, Ind...
method planeSplit (line 918) | void planeSplit(Derived &obj, IndexType *ind, const IndexType count,...
method DistanceType (line 947) | DistanceType computeInitialDistances(const Derived &obj, const Eleme...
method save_tree (line 965) | void save_tree(Derived &obj, FILE *stream, NodePtr tree)
method load_tree (line 972) | void load_tree(Derived &obj, FILE *stream, NodePtr &tree)
method saveIndex_ (line 984) | void saveIndex_(Derived &obj, FILE *stream)
method loadIndex_ (line 998) | void loadIndex_(Derived &obj, FILE *stream)
class KDTreeSingleIndexAdaptor (line 1047) | class KDTreeSingleIndexAdaptor : public KDTreeBaseClass<KDTreeSingleIn...
method KDTreeSingleIndexAdaptor (line 1050) | KDTreeSingleIndexAdaptor(const KDTreeSingleIndexAdaptor<Distance, Da...
method KDTreeSingleIndexAdaptor (line 1089) | KDTreeSingleIndexAdaptor(const int dimensionality, const DatasetAdap...
method buildIndex (line 1106) | void buildIndex()
method findNeighbors (line 1133) | bool findNeighbors(RESULTSET &result, const ElementType *vec, const ...
method knnSearch (line 1155) | size_t knnSearch(const ElementType *query_point, const size_t num_cl...
method radiusSearch (line 1175) | size_t radiusSearch(const ElementType *query_point, const DistanceTy...
method radiusSearchCustomCallback (line 1188) | size_t radiusSearchCustomCallback(const ElementType *query_point, SE...
method init_vind (line 1198) | void init_vind()
method computeBoundingBox (line 1206) | void computeBoundingBox(BoundingBox &bbox)
method searchLevel (line 1229) | bool searchLevel(RESULTSET &result_set, const ElementType *vec, cons...
method saveIndex (line 1291) | void saveIndex(FILE *stream) { this->saveIndex_(*this, stream); }
method loadIndex (line 1297) | void loadIndex(FILE *stream) { this->loadIndex_(*this, stream); }
class KDTreeSingleIndexDynamicAdaptor_ (line 1335) | class KDTreeSingleIndexDynamicAdaptor_ : public KDTreeBaseClass<KDTree...
method KDTreeSingleIndexDynamicAdaptor_ (line 1376) | KDTreeSingleIndexDynamicAdaptor_(const int dimensionality, const Dat...
method KDTreeSingleIndexDynamicAdaptor_ (line 1389) | KDTreeSingleIndexDynamicAdaptor_ operator=(const KDTreeSingleIndexDy...
method buildIndex (line 1407) | void buildIndex()
method findNeighbors (line 1432) | bool findNeighbors(RESULTSET &result, const ElementType *vec, const ...
method knnSearch (line 1454) | size_t knnSearch(const ElementType *query_point, const size_t num_cl...
method radiusSearch (line 1474) | size_t radiusSearch(const ElementType *query_point, const DistanceTy...
method radiusSearchCustomCallback (line 1487) | size_t radiusSearchCustomCallback(const ElementType *query_point, SE...
method computeBoundingBox (line 1496) | void computeBoundingBox(BoundingBox &bbox)
method searchLevel (line 1518) | void searchLevel(RESULTSET &result_set, const ElementType *vec, cons...
method saveIndex (line 1567) | void saveIndex(FILE *stream) { this->saveIndex_(*this, stream); }
method loadIndex (line 1573) | void loadIndex(FILE *stream) { this->loadIndex_(*this, stream); }
class KDTreeSingleIndexDynamicAdaptor (line 1588) | class KDTreeSingleIndexDynamicAdaptor {
method First0Bit (line 1619) | int First0Bit(IndexType num)
method init (line 1630) | void init()
method KDTreeSingleIndexDynamicAdaptor (line 1653) | KDTreeSingleIndexDynamicAdaptor(const int dimensionality, const Data...
method KDTreeSingleIndexDynamicAdaptor (line 1669) | KDTreeSingleIndexDynamicAdaptor(const KDTreeSingleIndexDynamicAdapto...
method addPoints (line 1672) | void addPoints(IndexType start, IndexType end)
method removePoint (line 1695) | void removePoint(size_t idx)
method findNeighbors (line 1713) | bool findNeighbors(RESULTSET &result, const ElementType *vec, const ...
type KDTreeEigenMatrixAdaptor (line 1738) | struct KDTreeEigenMatrixAdaptor {
method KDTreeEigenMatrixAdaptor (line 1748) | KDTreeEigenMatrixAdaptor(const MatrixType &mat, const int leaf_max_s...
method KDTreeEigenMatrixAdaptor (line 1757) | KDTreeEigenMatrixAdaptor(const self_t &) = delete;
method query (line 1768) | inline void query(const num_t *query_point, const size_t num_closest...
method self_t (line 1778) | const self_t &derived() const { return *this; }
method self_t (line 1779) | self_t & derived() { return *this; }
method kdtree_get_point_count (line 1782) | inline size_t kdtree_get_point_count() const { return m_data_matrix....
method num_t (line 1785) | inline num_t kdtree_get_pt(const IndexType idx, int dim) const { ret...
method kdtree_get_bbox (line 1790) | bool kdtree_get_bbox(BBOX & /*bb*/) const { return false; }
FILE: include/vapor/ptr_cache.hpp
type VAPoR (line 32) | namespace VAPoR {
class ptr_cache (line 38) | class ptr_cache {
method ptr_cache (line 43) | ptr_cache() = default;
method ptr_cache (line 44) | ptr_cache(const ptr_cache &) = delete;
method ptr_cache (line 45) | ptr_cache(const ptr_cache &&) = delete;
method ptr_cache (line 46) | ptr_cache &operator=(const ptr_cache &) = delete;
method ptr_cache (line 47) | ptr_cache &operator=(const ptr_cache &&) = delete;
method size (line 55) | auto size() const -> size_t { return _element_vector.size(); }
method query (line 62) | auto query(const Key &key) -> const BigObj *
method insert (line 84) | void insert(const Key &key, const BigObj *ptr)
FILE: include/vapor/regionparams.h
function namespace (line 27) | namespace VAPoR {
FILE: include/vapor/udunits2.h
type ut_system (line 16) | typedef struct ut_system ut_system;
type ut_unit (line 17) | typedef union ut_unit ut_unit;
type ut_status (line 19) | typedef enum {
type ut_encoding (line 38) | typedef enum { UT_ASCII = 0, UT_ISO_8859_1 = 1, UT_LATIN1 = UT_ISO_8859_...
type ut_visitor (line 46) | typedef struct {
FILE: include/vapor/utils.h
function namespace (line 9) | namespace Wasp {
FILE: include/vapor/vizutil.h
function namespace (line 4) | namespace VAPoR {
FILE: lib/common/CFuncs.cpp
type timespec (line 94) | struct timespec
FILE: lib/common/EasyThreads.cpp
function DWORD (line 18) | DWORD WINAPI runner(void *arg)
FILE: lib/common/FileUtils.cpp
function string (line 28) | string FileUtils::ReadFileToString(const string &path)
type passwd (line 60) | struct passwd
type STAT64 (line 204) | struct STAT64
function GetFileInode (line 231) | static unsigned long long GetFileInode(const std::string &path) {
function FileType (line 252) | FileType FileUtils::GetFileType(const std::string &path)
type STAT64 (line 268) | struct STAT64
type dirent (line 298) | struct dirent
FILE: lib/common/GetAppPath.cpp
function string (line 26) | string get_path_from_bundle(const string &app)
function pathExists (line 70) | bool pathExists(const string path)
FILE: lib/common/LegacyVectorMath.cpp
type VAPoR (line 24) | namespace VAPoR {
function vscale (line 26) | void vscale(float *v, float s)
function vscale (line 34) | void vscale(double *v, double s)
function vscale (line 42) | void vscale(vector<double> v, double s)
function vmult (line 52) | void vmult(const float *v, float s, float *w)
function vmult (line 60) | void vmult(const double *v, double s, double *w)
function vhalf (line 67) | void vhalf(const float *v1, const float *v2, float *half)
function vcross (line 82) | void vcross(const float *v1, const float *v2, float *cross)
function vcross (line 93) | void vcross(const double *v1, const double *v2, double *cross)
function vreflect (line 105) | void vreflect(const float *in, const float *mirror, float *out)
function vtransform (line 117) | void vtransform(const float *v, float mat[12], float *vt)
function vtransform (line 128) | void vtransform(const float *v, float mat[12], double *vt)
function vtransform (line 139) | void vtransform(const double *v, float mat[12], double *vt)
function vtransform (line 151) | void vtransform(const double *v, double mat[12], double *vt)
function vtransform4 (line 162) | void vtransform4(const float *v, float *mat, float *vt)
function vtransform3 (line 174) | void vtransform3(const float *v, float *mat, float *vt)
function vtransform3 (line 182) | void vtransform3(const double *v, double *mat, double *vt)
function vtransform3t (line 190) | void vtransform3t(const float *v, float *mat, float *vt)
function pointOnRight (line 200) | bool pointOnRight(double *pt1, double *pt2, const double *testPt)
function mcopy (line 207) | void mcopy(float *m1, float *m2)
function mcopy (line 215) | void mcopy(double *m1, double *m2)
function mmult (line 224) | void mmult(float *m1, float *m2, float *prod)
function mmult (line 244) | void mmult(double *m1, double *m2, double *prod)
function minvert (line 261) | int minvert(const float *mat, float *result)
function minvert (line 315) | int minvert(const double *mat, double *result)
function qnormal (line 370) | void qnormal(float *q)
function qinv (line 382) | void qinv(const float q1[4], float q2[4])
function qmult (line 393) | void qmult(const float *q1, const float *q2, float *dest)
function qmult (line 420) | void qmult(const double *q1, const double *q2, double *dest)
function qmatrix (line 446) | void qmatrix(const float *q, float *m)
function qmatrix (line 473) | void qmatrix(const double *q, double *m)
function rotmatrix2q (line 502) | void rotmatrix2q(float *m, float *q)
function rotmatrix2q (line 534) | void rotmatrix2q(double *m, double *q)
function rvec2q (line 566) | void rvec2q(const float rvec[3], float radians, float q[4])
function rvec2q (line 588) | void rvec2q(const double rvec[3], double radians, double q[4])
function ProjectToSphere (line 611) | float ProjectToSphere(float r, float x, float y)
function CalcRotation (line 631) | void CalcRotation(float *q, float newX, float newY, float oldX, float ...
function CalcRotation (line 660) | void CalcRotation(double *q, double newX, double newY, double oldX, do...
function ScalePoint (line 690) | float ScalePoint(long pt, long origin, long size)
function makeTransMatrix (line 705) | void makeTransMatrix(float *trans, float *mtrx)
function makeTransMatrix (line 714) | void makeTransMatrix(double *trans, double *mtrx)
function makeTransMatrix (line 723) | void makeTransMatrix(const std::vector<double> &trans, double *mtrx)
function makeScaleMatrix (line 733) | void makeScaleMatrix(const double *scale, double *mtrx)
function makeModelviewMatrix (line 747) | void makeModelviewMatrix(float *vpos, float *vdir, float *upvec, float...
function makeModelviewMatrixD (line 796) | void makeModelviewMatrixD(double *vpos, double *vdir, double *upvec, d...
function makeModelviewMatrixD (line 852) | void makeModelviewMatrixD(const std::vector<double> &vpos, const std::...
function matrix4x4_vec3_mult (line 903) | void matrix4x4_vec3_mult(const float m[16], const float a[4], float b[4])
function matrix4x4_inverse (line 935) | int matrix4x4_inverse(const float *in, float *out)
function adjoint (line 984) | void adjoint(const float *in, float *out)
function det4x4 (line 1040) | double det4x4(const float m[16])
function det3x3 (line 1086) | double det3x3(double a1, double a2, double a3, double b1, double b2, d...
function det2x2 (line 1101) | double det2x2(double a, double b, double c, double d)
function powerOf2 (line 1111) | bool powerOf2(size_t n) { return (n & (n - 1)) == 0; }
function nextPowerOf2 (line 1116) | size_t nextPowerOf2(size_t n)
function mmult33 (line 1136) | void mmult33(const double *m1, const double *m2, double *result)
function mmultt33 (line 1144) | void mmultt33(const double *m1Trans, const double *m2, double *result)
function getRotationMatrix (line 1155) | void getRotationMatrix(double theta, double phi, double psi, double *m...
function COMMON_API (line 1191) | COMMON_API void getAxisRotation(int axis, double rotation, double *mat...
function getRotAngles (line 1215) | void getRotAngles(double *theta, double *phi, double *psi, const doubl...
function rayBoxIntersect (line 1264) | int rayBoxIntersect(const float rayStart[3], const float rayDir[3], co...
function rayBoxIntersect (line 1306) | int rayBoxIntersect(const double rayStart[3], const double rayDir[3], ...
function rayBoxProject (line 1364) | void rayBoxProject(vector<double> rayStart, vector<double> rayDir, con...
function view2Quat (line 1388) | void view2Quat(float vdir[3], float upvec[3], float q[4])
function views2ImagQuats (line 1435) | void views2ImagQuats(float vdir1[3], float upvec1[3], float vdir2[3], ...
function imagQuat2View (line 1462) | void imagQuat2View(const float q[3], float vdir[3], float upvec[3])
function quat2View (line 1482) | void quat2View(float quat[4], float vdir[3], float upvec[3])
function slerp (line 1493) | void slerp(float quat0[4], float quat1[4], float t, float result[4])
function qlog (line 1526) | void qlog(float quat[4], float quatlog[4])
function squad (line 1543) | void squad(float quat1[4], float quat2[4], float s1[4], float s2[4], f...
function qconj (line 1550) | void qconj(float quat[4], float conj[4])
function doubleToString (line 1557) | void doubleToString(const double d, string &s, int digits)
function computeGradientData (line 1571) | void computeGradientData(int dim[3], int numChan, unsigned char *volum...
FILE: lib/common/OptionParser.cpp
type Wasp (line 18) | namespace Wasp {
function opt_cmp (line 19) | bool opt_cmp(OptionParser::_OptRec_T *a, OptionParser::_OptRec_T *b) {...
FILE: lib/common/PVTime.cpp
function TIME64_T (line 66) | TIME64_T pivot_time_t(const time_t *now, TIME64_T *_t)
type tm (line 79) | struct tm
type tm (line 79) | struct tm
type tm (line 132) | struct tm
type tm (line 132) | struct tm
type tm (line 136) | struct tm
type tm (line 142) | struct tm
type tm (line 160) | struct tm
type tm (line 160) | struct tm
function TIME64_T (line 167) | TIME64_T Wasp::MkTime64(struct tm *t)
type tm (line 195) | struct tm
type tm (line 195) | struct tm
FILE: lib/common/ResourcePath.cpp
function string (line 22) | string GetMacBundlePath()
function string (line 37) | string CallGetAppPathForResourceName(const string &name)
function string (line 54) | string GetInstalledResourceRoot()
function string (line 77) | string GetResourcePathFromCallback(const std::string &name)
FILE: lib/common/TMSUtils.cpp
type stat (line 41) | struct stat
FILE: lib/common/Version.cpp
function string (line 23) | const string &Version::GetVersionString()
function string (line 33) | const string &Version::GetFullVersionString()
function string (line 44) | const string Version::GetBuildHash()
function split (line 63) | vector<string> split(string s, string delim)
FILE: lib/common/common.cpp
function BOOL (line 8) | BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID l...
FILE: lib/osgl/GLContext.cpp
function String (line 4) | String GLContext::GetVersion()
FILE: lib/osgl/GLContextProvider.cpp
function GLContext (line 8) | GLContext *GLContextProvider::CreateContext()
FILE: lib/osgl/GLContextProviderEGL.cpp
function GLContext (line 24) | GLContext *GLContextProviderEGL::CreateContext()
function GLContext (line 47) | GLContext *GLContextProviderEGL::createContextForDisplay(void *display)
FILE: lib/osgl/GLContextProviderMesa.cpp
function GLContext (line 35) | GLContext *GLContextProviderMesa::CreateContext()
FILE: lib/osgl/GLContextProviderNvidia.cpp
function GLContext (line 17) | GLContext *GLContextProviderNvidia::CreateContext()
FILE: lib/osgl/GLContextProviderUtil.cpp
function String (line 4) | String GLContextProviderUtil::GetGLVersion() {
FILE: lib/osgl/Log.cpp
function String (line 23) | String Log::AddLocationToFormat(const String &fmt, const char *file, int...
FILE: lib/osgl/glad/include/EGL/eglplatform.h
type HDC (line 63) | typedef HDC EGLNativeDisplayType;
type HBITMAP (line 64) | typedef HBITMAP EGLNativePixmapType;
type HWND (line 65) | typedef HWND EGLNativeWindowType;
type EGLNativeDisplayType (line 69) | typedef int EGLNativeDisplayType;
type EGLNativePixmapType (line 70) | typedef int EGLNativePixmapType;
type EGLNativeWindowType (line 71) | typedef int EGLNativeWindowType;
type EGLNativeDisplayType (line 75) | typedef int EGLNativeDisplayType;
type wl_display (line 81) | struct wl_display
type wl_egl_pixmap (line 82) | struct wl_egl_pixmap
type wl_egl_window (line 83) | struct wl_egl_window
type gbm_device (line 87) | struct gbm_device
type gbm_bo (line 88) | struct gbm_bo
type ANativeWindow (line 93) | struct ANativeWindow
type egl_native_pixmap_t (line 94) | struct egl_native_pixmap_t
type egl_native_pixmap_t (line 97) | struct egl_native_pixmap_t
type ANativeWindow (line 98) | struct ANativeWindow
type EGLNativeDisplayType (line 102) | typedef intptr_t EGLNativeDisplayType;
type EGLNativePixmapType (line 103) | typedef intptr_t EGLNativePixmapType;
type EGLNativeWindowType (line 104) | typedef intptr_t EGLNativeWindowType;
type Display (line 112) | typedef Display *EGLNativeDisplayType;
type Pixmap (line 113) | typedef Pixmap EGLNativePixmapType;
type Window (line 114) | typedef Window EGLNativeWindowType;
type khronos_uintptr_t (line 119) | typedef khronos_uintptr_t EGLNativePixmapType;
type khronos_uintptr_t (line 120) | typedef khronos_uintptr_t EGLNativeWindowType;
type EGLNativeDisplayType (line 124) | typedef int EGLNativeDisplayType;
type khronos_uintptr_t (line 133) | typedef khronos_uintptr_t EGLNativePixmapType;
type khronos_uintptr_t (line 134) | typedef khronos_uintptr_t EGLNativeWindowType;
type khronos_uintptr_t (line 139) | typedef khronos_uintptr_t EGLNativePixmapType;
type khronos_uintptr_t (line 140) | typedef khronos_uintptr_t EGLNativeWindowType;
type EGLNativeDisplayType (line 147) | typedef EGLNativeDisplayType NativeDisplayType;
type EGLNativePixmapType (line 148) | typedef EGLNativePixmapType NativePixmapType;
type EGLNativeWindowType (line 149) | typedef EGLNativeWindowType NativeWindowType;
type khronos_int32_t (line 159) | typedef khronos_int32_t EGLint;
FILE: lib/osgl/glad/include/KHR/khrplatform.h
type khronos_int32_t (line 150) | typedef int32_t khronos_int32_t;
type khronos_uint32_t (line 151) | typedef uint32_t khronos_uint32_t;
type khronos_int64_t (line 152) | typedef int64_t khronos_int64_t;
type khronos_uint64_t (line 153) | typedef uint64_t khronos_uint64_t;
type khronos_int32_t (line 177) | typedef int32_t khronos_int32_t;
type khronos_uint32_t (line 178) | typedef uint32_t khronos_uint32_t;
type khronos_int64_t (line 179) | typedef int64_t khronos_int64_t;
type khronos_uint64_t (line 180) | typedef uint64_t khronos_uint64_t;
type __int32 (line 189) | typedef __int32 khronos_int32_t;
type khronos_uint32_t (line 190) | typedef unsigned __int32 khronos_uint32_t;
type __int64 (line 191) | typedef __int64 khronos_int64_t;
type khronos_uint64_t (line 192) | typedef unsigned __int64 khronos_uint64_t;
type khronos_int32_t (line 201) | typedef int khronos_int32_t;
type khronos_uint32_t (line 202) | typedef unsigned int khronos_uint32_t;
type khronos_int64_t (line 204) | typedef long int khronos_int64_t;
type khronos_uint64_t (line 205) | typedef unsigned long int khronos_uint64_t;
type khronos_int64_t (line 207) | typedef long long int khronos_int64_t;
type khronos_uint64_t (line 208) | typedef unsigned long long int khronos_uint64_t;
type khronos_int32_t (line 218) | typedef int khronos_int32_t;
type khronos_uint32_t (line 219) | typedef unsigned int khronos_uint32_t;
type khronos_int32_t (line 229) | typedef int32_t khronos_int32_t;
type khronos_uint32_t (line 230) | typedef uint32_t khronos_uint32_t;
type khronos_int64_t (line 231) | typedef int64_t khronos_int64_t;
type khronos_uint64_t (line 232) | typedef uint64_t khronos_uint64_t;
type khronos_int8_t (line 242) | typedef signed char khronos_int8_t;
type khronos_uint8_t (line 243) | typedef unsigned char khronos_uint8_t;
type khronos_int16_t (line 244) | typedef signed short int khronos_int16_t;
type khronos_uint16_t (line 245) | typedef unsigned short int khronos_uint16_t;
type khronos_intptr_t (line 253) | typedef intptr_t khronos_intptr_t;
type khronos_uintptr_t (line 254) | typedef uintptr_t khronos_uintptr_t;
type khronos_intptr_t (line 256) | typedef signed long long int khronos_intptr_t;
type khronos_uintptr_t (line 257) | typedef unsigned long long int khronos_uintptr_t;
type khronos_intptr_t (line 259) | typedef signed long int khronos_intptr_t;
type khronos_uintptr_t (line 260) | typedef unsigned long int khronos_uintptr_t;
type khronos_ssize_t (line 264) | typedef signed long long int khronos_ssize_t;
type khronos_usize_t (line 265) | typedef unsigned long long int khronos_usize_t;
type khronos_ssize_t (line 267) | typedef signed long int khronos_ssize_t;
type khronos_usize_t (line 268) | typedef unsigned long int khronos_usize_t;
type khronos_float_t (line 275) | typedef float khronos_float_t;
type khronos_uint64_t (line 288) | typedef khronos_uint64_t khronos_utime_nanoseconds_t;
type khronos_int64_t (line 289) | typedef khronos_int64_t khronos_stime_nanoseconds_t;
type khronos_boolean_enum_t (line 305) | typedef enum {
FILE: lib/osgl/glad/include/glad/egl.h
type GLADapiproc (line 145) | typedef GLADapiproc (*GLADloadfunc)(const char *name);
type GLADapiproc (line 146) | typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *na...
type AHardwareBuffer (line 338) | struct AHardwareBuffer
type wl_buffer (line 339) | struct wl_buffer
type wl_display (line 340) | struct wl_display
type wl_resource (line 341) | struct wl_resource
type EGLBoolean (line 343) | typedef unsigned int EGLBoolean;
type EGLenum (line 344) | typedef unsigned int EGLenum;
type EGLAttribKHR (line 345) | typedef intptr_t EGLAttribKHR;
type EGLAttrib (line 346) | typedef intptr_t EGLAttrib;
type khronos_utime_nanoseconds_t (line 364) | typedef khronos_utime_nanoseconds_t EGLTimeKHR;
type khronos_utime_nanoseconds_t (line 365) | typedef khronos_utime_nanoseconds_t EGLTime;
type khronos_utime_nanoseconds_t (line 366) | typedef khronos_utime_nanoseconds_t EGLTimeNV;
type khronos_utime_nanoseconds_t (line 367) | typedef khronos_utime_nanoseconds_t EGLuint64NV;
type khronos_uint64_t (line 368) | typedef khronos_uint64_t EGLuint64KHR;
type khronos_stime_nanoseconds_t (line 369) | typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
type EGLNativeFileDescriptorKHR (line 370) | typedef int EGLNativeFileDescriptorKHR;
type khronos_ssize_t (line 371) | typedef khronos_ssize_t EGLsizeiANDROID;
type EGLsizeiANDROID (line 373) | typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsi...
type EGLClientPixmapHI (line 374) | struct EGLClientPixmapHI {
type EGLint (line 415) | typedef EGLBoolean (GLAD_API_PTR *PFNEGLCHOOSECONFIGPROC)(EGLDisplay dpy...
type const (line 418) | typedef EGLContext (GLAD_API_PTR *PFNEGLCREATECONTEXTPROC)(EGLDisplay dp...
type const (line 423) | typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)...
type const (line 424) | typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPR...
type const (line 425) | typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)...
type const (line 426) | typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPR...
type const (line 440) | typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETPLATFORMDISPLAYPROC)(EGLenum ...
type const (line 441) | typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLen...
FILE: lib/osgl/glad/include/glad/gl.h
type GLADapiproc (line 168) | typedef GLADapiproc (*GLADloadfunc)(const char *name);
type GLADapiproc (line 169) | typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *na...
type GLenum (line 1110) | typedef unsigned int GLenum;
type GLboolean (line 1111) | typedef unsigned char GLboolean;
type GLbitfield (line 1112) | typedef unsigned int GLbitfield;
type GLvoid (line 1113) | typedef void GLvoid;
type khronos_int8_t (line 1114) | typedef khronos_int8_t GLbyte;
type khronos_uint8_t (line 1115) | typedef khronos_uint8_t GLubyte;
type khronos_int16_t (line 1116) | typedef khronos_int16_t GLshort;
type khronos_uint16_t (line 1117) | typedef khronos_uint16_t GLushort;
type GLint (line 1118) | typedef int GLint;
type GLuint (line 1119) | typedef unsigned int GLuint;
type khronos_int32_t (line 1120) | typedef khronos_int32_t GLclampx;
type GLsizei (line 1121) | typedef int GLsizei;
type khronos_float_t (line 1122) | typedef khronos_float_t GLfloat;
type khronos_float_t (line 1123) | typedef khronos_float_t GLclampf;
type GLdouble (line 1124) | typedef double GLdouble;
type GLclampd (line 1125) | typedef double GLclampd;
type GLchar (line 1128) | typedef char GLchar;
type GLcharARB (line 1129) | typedef char GLcharARB;
type GLhandleARB (line 1133) | typedef unsigned int GLhandleARB;
type khronos_uint16_t (line 1135) | typedef khronos_uint16_t GLhalf;
type khronos_uint16_t (line 1136) | typedef khronos_uint16_t GLhalfARB;
type khronos_int32_t (line 1137) | typedef khronos_int32_t GLfixed;
type khronos_intptr_t (line 1139) | typedef khronos_intptr_t GLintptr;
type khronos_intptr_t (line 1141) | typedef khronos_intptr_t GLintptr;
type khronos_intptr_t (line 1144) | typedef khronos_intptr_t GLintptrARB;
type khronos_intptr_t (line 1146) | typedef khronos_intptr_t GLintptrARB;
type khronos_ssize_t (line 1149) | typedef khronos_ssize_t GLsizeiptr;
type khronos_ssize_t (line 1151) | typedef khronos_ssize_t GLsizeiptr;
type khronos_ssize_t (line 1154) | typedef khronos_ssize_t GLsizeiptrARB;
type khronos_ssize_t (line 1156) | typedef khronos_ssize_t GLsizeiptrARB;
type khronos_int64_t (line 1158) | typedef khronos_int64_t GLint64;
type khronos_int64_t (line 1159) | typedef khronos_int64_t GLint64EXT;
type khronos_uint64_t (line 1160) | typedef khronos_uint64_t GLuint64;
type khronos_uint64_t (line 1161) | typedef khronos_uint64_t GLuint64EXT;
type __GLsync (line 1162) | struct __GLsync
type _cl_context (line 1163) | struct _cl_context
type _cl_event (line 1164) | struct _cl_event
type GLhalfNV (line 1169) | typedef unsigned short GLhalfNV;
type GLintptr (line 1170) | typedef GLintptr GLvdpauSurfaceNV;
type GLubyte (line 1383) | typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name);
type GLubyte (line 1384) | typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGIPROC)(GLenum name,...
type const (line 1385) | typedef GLuint (GLAD_API_PTR *PFNGLGETSUBROUTINEINDEXPROC)(GLuint progra...
type const (line 1386) | typedef GLint (GLAD_API_PTR *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLui...
FILE: lib/osgl/glad/src/egl.c
function glad_egl_load_EGL_VERSION_1_0 (line 91) | static void glad_egl_load_EGL_VERSION_1_0( GLADuserptrloadfunc load, voi...
function glad_egl_load_EGL_VERSION_1_1 (line 118) | static void glad_egl_load_EGL_VERSION_1_1( GLADuserptrloadfunc load, voi...
function glad_egl_load_EGL_VERSION_1_2 (line 125) | static void glad_egl_load_EGL_VERSION_1_2( GLADuserptrloadfunc load, voi...
function glad_egl_load_EGL_VERSION_1_4 (line 133) | static void glad_egl_load_EGL_VERSION_1_4( GLADuserptrloadfunc load, voi...
function glad_egl_load_EGL_VERSION_1_5 (line 137) | static void glad_egl_load_EGL_VERSION_1_5( GLADuserptrloadfunc load, voi...
function glad_egl_load_EGL_EXT_device_base (line 150) | static void glad_egl_load_EGL_EXT_device_base( GLADuserptrloadfunc load,...
function glad_egl_load_EGL_EXT_device_enumeration (line 157) | static void glad_egl_load_EGL_EXT_device_enumeration( GLADuserptrloadfun...
function glad_egl_load_EGL_EXT_device_query (line 161) | static void glad_egl_load_EGL_EXT_device_query( GLADuserptrloadfunc load...
function glad_egl_load_EGL_EXT_platform_base (line 167) | static void glad_egl_load_EGL_EXT_platform_base( GLADuserptrloadfunc loa...
function glad_egl_get_extensions (line 176) | static int glad_egl_get_extensions(EGLDisplay display, const char **exte...
function glad_egl_has_extension (line 182) | static int glad_egl_has_extension(const char *extensions, const char *ex...
function GLADapiproc (line 202) | static GLADapiproc glad_egl_get_proc_from_userptr(void *userptr, const c...
function glad_egl_find_extensions_egl (line 206) | static int glad_egl_find_extensions_egl(EGLDisplay display) {
function glad_egl_find_core_egl (line 220) | static int glad_egl_find_core_egl(EGLDisplay display) {
function gladLoadEGLUserPtr (line 264) | int gladLoadEGLUserPtr(EGLDisplay display, GLADuserptrloadfunc load, voi...
function gladLoadEGL (line 289) | int gladLoadEGL(EGLDisplay display, GLADloadfunc load) {
function glad_close_dlopen_handle (line 340) | static void glad_close_dlopen_handle(void* handle) {
function GLADapiproc (line 350) | static GLADapiproc glad_dlsym_handle(void* handle, const char *name) {
type _glad_egl_userptr (line 364) | struct _glad_egl_userptr {
function GLADapiproc (line 369) | static GLADapiproc glad_egl_get_proc(void *vuserptr, const char* name) {
function glad_egl_build_userptr (line 399) | static struct _glad_egl_userptr glad_egl_build_userptr(void *handle) {
function gladLoaderLoadEGL (line 406) | int gladLoaderLoadEGL(EGLDisplay display) {
function gladLoaderUnloadEGL (line 430) | void gladLoaderUnloadEGL() {
FILE: lib/osgl/glad/src/gl.c
function glad_gl_load_GL_VERSION_1_0 (line 520) | static void glad_gl_load_GL_VERSION_1_0( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_1_1 (line 571) | static void glad_gl_load_GL_VERSION_1_1( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_1_2 (line 587) | static void glad_gl_load_GL_VERSION_1_2( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_1_3 (line 594) | static void glad_gl_load_GL_VERSION_1_3( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_1_4 (line 606) | static void glad_gl_load_GL_VERSION_1_4( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_1_5 (line 618) | static void glad_gl_load_GL_VERSION_1_5( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_2_0 (line 640) | static void glad_gl_load_GL_VERSION_2_0( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_2_1 (line 736) | static void glad_gl_load_GL_VERSION_2_1( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_3_0 (line 745) | static void glad_gl_load_GL_VERSION_3_0( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_3_1 (line 832) | static void glad_gl_load_GL_VERSION_3_1( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_3_2 (line 850) | static void glad_gl_load_GL_VERSION_3_2( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_3_3 (line 872) | static void glad_gl_load_GL_VERSION_3_3( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_4_0 (line 903) | static void glad_gl_load_GL_VERSION_4_0( GLADuserptrloadfunc load, void*...
function glad_gl_load_GL_VERSION_4_1 (line 952) | static void glad_gl_load_GL_VERSION_4_1( GLADuserptrloadfunc load, void*...
function glad_gl_get_extensions (line 1052) | static int glad_gl_get_extensions( int version, const char **out_exts, u...
function glad_gl_free_extensions (line 1097) | static void glad_gl_free_extensions(char **exts_i, unsigned int num_exts...
function glad_gl_has_extension (line 1107) | static int glad_gl_has_extension(int version, const char *exts, unsigned...
function GLADapiproc (line 1140) | static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const ch...
function glad_gl_find_extensions_gl (line 1144) | static int glad_gl_find_extensions_gl( int version) {
function glad_gl_find_core_gl (line 1157) | static int glad_gl_find_core_gl(void) {
function gladLoadGLUserPtr (line 1199) | int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr) {
function gladLoadGL (line 1230) | int gladLoadGL( GLADloadfunc load) {
function glad_close_dlopen_handle (line 1283) | static void glad_close_dlopen_handle(void* handle) {
function GLADapiproc (line 1293) | static GLADapiproc glad_dlsym_handle(void* handle, const char *name) {
type _glad_gl_userptr (line 1308) | struct _glad_gl_userptr {
function GLADapiproc (line 1313) | static GLADapiproc glad_gl_get_proc(void *vuserptr, const char *name) {
function glad_gl_build_userptr (line 1356) | static struct _glad_gl_userptr glad_gl_build_userptr(void *handle) {
function gladLoaderLoadGL (line 1373) | int gladLoaderLoadGL(void) {
function gladLoaderUnloadGL (line 1396) | void gladLoaderUnloadGL(void) {
FILE: lib/osgl/include/vapor/GLContext.h
function class (line 10) | class OSGL_API GLContext {
FILE: lib/osgl/include/vapor/GLContextProvider.h
function class (line 10) | class OSGL_API GLContextProvider {
FILE: lib/osgl/include/vapor/GLContextProviderCommon.h
type std (line 8) | typedef std::string String;
FILE: lib/osgl/include/vapor/GLContextProviderEGL.h
function class (line 9) | class OSGL_API GLContextProviderEGL {
FILE: lib/osgl/include/vapor/GLContextProviderMacOS.h
function class (line 10) | class OSGL_API GLContextProviderMacOS {
FILE: lib/osgl/include/vapor/GLContextProviderMesa.h
function class (line 9) | class OSGL_API GLContextProviderMesa {
FILE: lib/osgl/include/vapor/GLContextProviderUtil.h
function class (line 5) | class OSGL_API GLContextProviderUtil {
FILE: lib/osgl/include/vapor/Log.h
function class (line 5) | class OSGL_API Log {
FILE: lib/osgl/stb_image_write.h
function STBIWDEF (line 262) | STBIWDEF void stbi_flip_vertically_on_write(int flag)
type stbi__write_context (line 267) | typedef struct
function stbi__start_write_callbacks (line 276) | static void stbi__start_write_callbacks(stbi__write_context *s, stbi_wri...
function stbi__stdio_write (line 284) | static void stbi__stdio_write(void *context, void *data, int size)
function STBIWDEF (line 298) | STBIWDEF int stbiw_convert_wchar_to_utf8(char *buffer, size_t bufferlen,...
function FILE (line 304) | static FILE *stbiw__fopen(char const *filename, char const *mode)
function stbi__start_write_file (line 332) | static int stbi__start_write_file(stbi__write_context *s, const char *fi...
function stbi__end_write_file (line 339) | static void stbi__end_write_file(stbi__write_context *s)
type stbiw_uint32 (line 346) | typedef unsigned int stbiw_uint32;
function stbiw__writefv (line 349) | static void stbiw__writefv(stbi__write_context *s, const char *fmt, va_l...
function stbiw__writef (line 378) | static void stbiw__writef(stbi__write_context *s, const char *fmt, ...)
function stbiw__write_flush (line 386) | static void stbiw__write_flush(stbi__write_context *s)
function stbiw__putc (line 394) | static void stbiw__putc(stbi__write_context *s, unsigned char c)
function stbiw__write1 (line 399) | static void stbiw__write1(stbi__write_context *s, unsigned char a)
function stbiw__write3 (line 406) | static void stbiw__write3(stbi__write_context *s, unsigned char a, unsig...
function stbiw__write_pixel (line 418) | static void stbiw__write_pixel(stbi__write_context *s, int rgb_dir, int ...
function stbiw__write_pixels (line 451) | static void stbiw__write_pixels(stbi__write_context *s, int rgb_dir, int...
function stbiw__outfile (line 478) | static int stbiw__outfile(stbi__write_context *s, int rgb_dir, int vdir,...
function stbi_write_bmp_core (line 492) | static int stbi_write_bmp_core(stbi__write_context *s, int x, int y, int...
function STBIWDEF (line 512) | STBIWDEF int stbi_write_bmp_to_func(stbi_write_func *func, void *context...
function STBIWDEF (line 520) | STBIWDEF int stbi_write_bmp(char const *filename, int x, int y, int comp...
function stbi_write_tga_core (line 532) | static int stbi_write_tga_core(stbi__write_context *s, int x, int y, int...
function STBIWDEF (line 611) | STBIWDEF int stbi_write_tga_to_func(stbi_write_func *func, void *context...
function STBIWDEF (line 619) | STBIWDEF int stbi_write_tga(char const *filename, int x, int y, int comp...
function stbiw__linear_to_rgbe (line 639) | static void stbiw__linear_to_rgbe(unsigned char *rgbe, float *linear)
function stbiw__write_run_data (line 656) | static void stbiw__write_run_data(stbi__write_context *s, int length, un...
function stbiw__write_dump_data (line 664) | static void stbiw__write_dump_data(stbi__write_context *s, int length, u...
function stbiw__write_hdr_scanline (line 672) | static void stbiw__write_hdr_scanline(stbi__write_context *s, int width,...
function stbi_write_hdr_core (line 761) | static int stbi_write_hdr_core(stbi__write_context *s, int x, int y, int...
function STBIWDEF (line 787) | STBIWDEF int stbi_write_hdr_to_func(stbi_write_func *func, void *context...
function STBIWDEF (line 794) | STBIWDEF int stbi_write_hdr(char const *filename, int x, int y, int comp...
function stbiw__zlib_bitrev (line 849) | static int stbiw__zlib_bitrev(int code, int codebits)
function stbiw__zlib_countm (line 859) | static unsigned int stbiw__zlib_countm(unsigned char *a, unsigned char *...
function stbiw__zhash (line 867) | static unsigned int stbiw__zhash(unsigned char *data)
function stbiw__crc32 (line 1024) | static unsigned int stbiw__crc32(unsigned char *buffer, int len)
function stbiw__wpcrc (line 1077) | static void stbiw__wpcrc(unsigned char **data, int len)
function stbiw__paeth (line 1083) | static unsigned char stbiw__paeth(int a, int b, int c)
function stbiw__encode_png_line (line 1092) | static void stbiw__encode_png_line(unsigned char *pixels, int stride_byt...
function STBIWDEF (line 1215) | STBIWDEF int stbi_write_png(char const *filename, int x, int y, int comp...
function STBIWDEF (line 1231) | STBIWDEF int stbi_write_png_to_func(stbi_write_func *func, void *context...
function stbiw__jpg_writeBits (line 1253) | static void stbiw__jpg_writeBits(stbi__write_context *s, int *bitBufP, i...
function stbiw__jpg_DCT (line 1270) | static void stbiw__jpg_DCT(float *d0p, float *d1p, float *d2p, float *d3...
function stbiw__jpg_calcBits (line 1318) | static void stbiw__jpg_calcBits(int val, unsigned short bits[2]) {
function stbiw__jpg_processDU (line 1328) | static int stbiw__jpg_processDU(stbi__write_context *s, int *bitBuf, int...
function stbi_write_jpg_core (line 1398) | static int stbi_write_jpg_core(stbi__write_context *s, int width, int he...
function STBIWDEF (line 1607) | STBIWDEF int stbi_write_jpg_to_func(stbi_write_func *func, void *context...
function STBIWDEF (line 1616) | STBIWDEF int stbi_write_jpg(char const *filename, int x, int y, int comp...
FILE: lib/osgl/test_framebuffer_glad.cpp
function main (line 16) | int main(int argc, char **argv)
FILE: lib/osgl/test_version.cpp
function main (line 4) | int main(int argc, char **argv)
FILE: lib/params/AnnotationParams.cpp
function string (line 150) | string AnnotationParams::GetCurrentAxisDataMgrName() const { return GetV...
function AxisAnnotation (line 158) | AxisAnnotation *AnnotationParams::GetAxisAnnotation()
FILE: lib/params/AxisAnnotation.cpp
function string (line 259) | string AxisAnnotation::GetDataMgrName() const { return GetValueString(_d...
FILE: lib/params/ColorMap.cpp
function lab2lch (line 364) | void lab2lch(const float lab[3], float lch[3])
function lch2lab (line 378) | void lch2lab(const float lch[3], float lab[3])
function clamp (line 391) | void clamp(T &v, const T min, const T max)
function clamp3 (line 397) | void clamp3(float c[3], const vector<float> &min, const vector<float> &max)
FILE: lib/params/ContourParams.cpp
type VAPoR (line 6) | namespace VAPoR {
function ContourParams (line 48) | ContourParams &ContourParams::operator=(const ContourParams &rhs)
FILE: lib/params/DataStatus.cpp
function print_extents (line 40) | void print_extents(string header, const CoordType &minExts, const CoordT...
function DataMgr (line 126) | DataMgr *DataStatus::GetDataMgr(string name) const
function string (line 351) | string DataStatus::GetMapProjection() const
function string (line 361) | string DataStatus::GetMapProjectionDefault(string dataSetName) const
function find_nearest (line 370) | int find_nearest(const vector<double> &timeCoords, double time)
FILE: lib/params/DatasetsParams.cpp
type VAPoR (line 6) | namespace VAPoR {
function DatasetsParams (line 52) | DatasetsParams &DatasetsParams::operator=(const DatasetsParams &rhs)
function DatasetParams (line 146) | DatasetParams &DatasetParams::operator=(const DatasetParams &rhs)
FILE: lib/params/FlowParams.cpp
function Box (line 290) | Box *FlowParams::GetRakeBox()
function Box (line 306) | Box *FlowParams::GetIntegrationBox()
FILE: lib/params/GUIStateParams.cpp
function GUIStateParams (line 131) | GUIStateParams &GUIStateParams::operator=(const GUIStateParams &rhs)
function string (line 149) | string GUIStateParams::GetActiveVizName() const
function string (line 166) | string GUIStateParams::GetActiveRendererInst() const
function string (line 185) | string GUIStateParams::GetActiveDataset() const
function string (line 205) | string GUIStateParams::GetCurrentSessionFile() const { return (GetValueS...
function string (line 211) | string GUIStateParams::GetCurrentImagePath() const { return (GetValueStr...
function string (line 219) | string GUIStateParams::GetCurrentImageSavePath() const { return (GetValu...
function string (line 227) | string GUIStateParams::GetCurrentTFPath() { return (GetValueString(m_tfP...
function string (line 235) | string GUIStateParams::GetCurrentPythonPath() const { return (GetValueSt...
function string (line 243) | string GUIStateParams::GetCurrentFlowPath() const { return (GetValueStri...
function MouseModeParams (line 249) | MouseModeParams *GUIStateParams::GetMouseModeParams() const { return (m_...
function string (line 274) | string GUIStateParams::GetOpenDataSetFormat(string dataSetName) const
function BookmarkParams (line 299) | BookmarkParams *GUIStateParams::CreateBookmark() { return (BookmarkParam...
function BookmarkParams (line 333) | BookmarkParams *GUIStateParams::GetBookmark(int i) const
function string (line 377) | string GUIStateParams::ActiveTab() const { return GetValueString("Active...
FILE: lib/params/MapperFunction.cpp
function MapperFunction (line 125) | MapperFunction &MapperFunction::operator=(const MapperFunction &rhs)
function OpacityMap (line 362) | OpacityMap *MapperFunction::createOpacityMap(OpacityMap::Type type)
function OpacityMap (line 382) | OpacityMap *MapperFunction::GetOpacityMap(int index) const
function string (line 521) | string MapperFunction::_make_omap_name(int index) const
FILE: lib/params/ParamsBase.cpp
function string_replace (line 34) | void string_replace(vector<string> &v, string olds, string news)
function ParamsBase (line 78) | ParamsBase &ParamsBase::operator=(const ParamsBase &rhs)
function string (line 211) | string ParamsBase::GetVa
Condensed preview — 1316 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,882K chars).
[
{
"path": ".circleci/config.yml",
"chars": 23437,
"preview": "anchors:\n - &srcLibs \"2024-Sept-src\"\n - &macOSx86Libs \"2024-Sept-macOSx86\"\n - &appleSiliconLibs \"2024-Se"
},
{
"path": ".circleci/downloadWin3rdParty.py",
"chars": 276,
"preview": "import gdown \nurl = \"https://drive.google.com/a/ucar.edu/uc?id=1fzZ-mbY4Cek1TRsaKm79a08Od5gNCogk\"\noutput = \"2019-Aug-Win"
},
{
"path": ".clang-format",
"chars": 2608,
"preview": "---\nLanguage: Cpp\n# BasedOnStyle: LLVM\nAccessModifierOffset: -4\nAlignAfterOpenBracket: Align\nAlignConsecutiveAss"
},
{
"path": ".editorconfig",
"chars": 62,
"preview": "[*.{c,cpp,h,pl,frag,vert}]\nindent_style = tab\nindent_size = 4\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 1490,
"preview": "---\nname: Bug report\nabout: Create a bug report\ntitle: ''\nlabels: Bug\nassignees: ''\n\n---\n\n### Describe the bug\nA clear a"
},
{
"path": ".github/ISSUE_TEMPLATE/documentation-request.md",
"chars": 572,
"preview": "---\nname: Documentation Request\nabout: Submit a request fo Documentation on VAPOR\ntitle: ''\nlabels: Documentation\nassign"
},
{
"path": ".github/ISSUE_TEMPLATE/enhancement-request.md",
"chars": 988,
"preview": "---\nname: Enhancement request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: Enhancement\nassignees: ''\n\n---\n\n"
},
{
"path": ".github/workflows/release.yml",
"chars": 585,
"preview": "name: Trigger Documentation Update\n\non:\n release:\n types: [published]\n workflow_dispatch:\n\njobs:\n trigger-doc-upda"
},
{
"path": ".gitignore",
"chars": 922,
"preview": ".DS_Store\napps/vaporgui/guis/ui/*.h\napps/vaporgui/moc/\nlib/idl/IDLMetadataAuto.cpp\nlib/render/moc/\nshare/doc/Doxygen/Dox"
},
{
"path": ".readthedocs.yml",
"chars": 566,
"preview": "# .readthedocs.yml\n# Read the Docs configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html fo"
},
{
"path": "CMakeLists.txt",
"chars": 22961,
"preview": "# Note on building VDC only:\n# These packages from Ubuntu repo are required to build VAPOR with only VDC enabled:\n# (tes"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5207,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
},
{
"path": "Contributing.md",
"chars": 155,
"preview": "# Contributing\n\nTo make a contribution to Vapor, see our [Contributor's Guide](https://ncar.github.io/VaporDocumentation"
},
{
"path": "LICENSE.txt",
"chars": 1531,
"preview": "BSD 3-Clause License\n\nCopyright (c) 2024, NSF National Center for Atmospheric Research\n\nRedistribution and use in source"
},
{
"path": "README.md",
"chars": 3501,
"preview": "[](https://doi.org/10.5281/zenodo.13332956)\n[![CircleCI]"
},
{
"path": "apps/CMakeLists.txt",
"chars": 859,
"preview": "if (BUILD_UTL)\n\tadd_subdirectory (vaporversion)\n\tadd_subdirectory (raw2wasp)\n\tadd_subdirectory (wasp2raw)\n\tadd_subdirect"
},
{
"path": "apps/asciitf2vtf/asciitf2vtf.cpp",
"chars": 12671,
"preview": "#include <iostream>\n#include <fstream>\n#include <cstring>\n#include <vector>\n#include <sstream>\n#include <algorithm>\n#inc"
},
{
"path": "apps/cf2vdc/CMakeLists.txt",
"chars": 166,
"preview": "add_executable (cf2vdc cf2vdc.cpp)\n\ntarget_link_libraries (cf2vdc common vdc)\n\nOpenMPInstall (\n\tTARGETS cf2vdc\n\tDESTINAT"
},
{
"path": "apps/cf2vdc/cf2vdc.cpp",
"chars": 10811,
"preview": "#include <iostream>\n#include <fstream>\n#include <string.h>\n#include <vector>\n#include <sstream>\n\n#include <vapor/OptionP"
},
{
"path": "apps/cfvdccreate/CMakeLists.txt",
"chars": 186,
"preview": "add_executable (cfvdccreate cfvdccreate.cpp)\n\ntarget_link_libraries (cfvdccreate common vdc)\n\nOpenMPInstall (\n\tTARGETS c"
},
{
"path": "apps/cfvdccreate/cfvdccreate.cpp",
"chars": 11882,
"preview": "#include <iostream>\n#include <fstream>\n#include <string.h>\n#include <vector>\n#include <sstream>\n\n#include <vapor/OptionP"
},
{
"path": "apps/linuxlauncher/CMakeLists.txt",
"chars": 805,
"preview": "set (TARGETS\n\tcf2vdc\n\tncdf2wasp\n\ttiff2geotiff\n\tvaporversion\n\tvdccreate\n\twasp2raw\n\twrfvdccreate\n\tcfvdccreate\n\traw2vdc\n\tva"
},
{
"path": "apps/linuxlauncher/launcher.c",
"chars": 1372,
"preview": "#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <limits.h>\n#include <string.h>\n\nint main(int argc, c"
},
{
"path": "apps/ncdf2wasp/CMakeLists.txt",
"chars": 179,
"preview": "add_executable (ncdf2wasp ncdf2wasp.cpp)\n\ntarget_link_libraries (ncdf2wasp common wasp)\n\nOpenMPInstall (\n\tTARGETS ncdf2w"
},
{
"path": "apps/ncdf2wasp/ncdf2wasp.cpp",
"chars": 14994,
"preview": "#include <iostream>\n#include <string>\n#include <vector>\n#include <sstream>\n#include <cerrno>\n#include <cmath>\n#include <"
},
{
"path": "apps/pythonapi/CMakeLists.txt",
"chars": 3593,
"preview": "message(\"Python Found: '${Python_VERSION}' (${Python_LIBRARIES})\")\n\nSET(PYTHON_API_DIR ${CMAKE_BINARY_DIR}/python)\n\n# CM"
},
{
"path": "apps/pythonapi/cmake.py",
"chars": 1266,
"preview": "from pathlib import Path\n\nVERSION_RC = \"@VERSION_RC@\"\nVERSION_DATE = \"@VERSION_DATE@\"\nVERSION_COMMIT "
},
{
"path": "apps/pythonapi/example_scripts/CMakeLists.txt",
"chars": 4933,
"preview": "set(ALL_NOTEBOOKS \"\")\nset(ALL_MARIMO_NOTEBOOKS \"\")\n\nfunction(NOTEBOOK FILE OUT)\n include(CMakeParseArguments)\n cma"
},
{
"path": "apps/pythonapi/example_scripts/animation_example.py",
"chars": 845,
"preview": "# %% [md]\n#\n# # Creating Animations\n#\n# %%\nimport example_utils\nfrom vapor import session, renderer, dataset, camera\nfro"
},
{
"path": "apps/pythonapi/example_scripts/annotation_example.py",
"chars": 2350,
"preview": "# %% [md]\n#\n# # Annotations\n#\n# You can annotate your renderings using Vapor's build in annotations as well as MatPlotLi"
},
{
"path": "apps/pythonapi/example_scripts/camera_example.py",
"chars": 631,
"preview": "# %% [md]\n#\n# # Controlling the Camera\n#\n# %%\nimport example_utils\nfrom vapor import session, renderer, dataset, camera\n"
},
{
"path": "apps/pythonapi/example_scripts/dataset_example.py",
"chars": 1508,
"preview": "# %% [md]\n#\n# # Opening Datasets\n#\n# Vapor supports a variety of scientific data formats.\n# This notebook shows how to o"
},
{
"path": "apps/pythonapi/example_scripts/example_utils.py",
"chars": 1328,
"preview": "\n###########################################################\n# NOTICE\n#\n# This is a utility file f"
},
{
"path": "apps/pythonapi/example_scripts/flow_example.py",
"chars": 4077,
"preview": "# %% [md]\n#\n# # Advecting Flow Paths\n#\n# Vapor can advect and render flow paths through your data.\n#\n# %%\nimport example"
},
{
"path": "apps/pythonapi/example_scripts/numpy_example.py",
"chars": 1089,
"preview": "# %% [md]\n#\n# # Rendering Numpy data with Vapor\n#\n# Vapor supports rendering 2D and 3D numpy data.\n# In order to pass Nu"
},
{
"path": "apps/pythonapi/example_scripts/rotate_video.py",
"chars": 1963,
"preview": "# %% [md]\n#\n# # Rotate Video\n#\n# This script will render an animated rotating view of your session file.\n# \n# Also requi"
},
{
"path": "apps/pythonapi/example_scripts/transfer_function_example.py",
"chars": 2103,
"preview": "# %% [md]\n#\n# # Transfer Functions\n#\n# %%\nimport example_utils\nfrom vapor import session, renderer, dataset, camera, tra"
},
{
"path": "apps/pythonapi/example_scripts/visualizer_widget_example.py",
"chars": 1434,
"preview": "# %% [md]\n#\n# # Visualizer Widgets\n#\n# Visualizer widgets allow you to interactively explore a session as you would in a"
},
{
"path": "apps/pythonapi/example_scripts/workflow_example.py",
"chars": 3536,
"preview": "# %% [md]\n#\n# # Vapor Python Tutorial\n#\n# This shows an example workflow with vapor.\n# We begin by creating a session an"
},
{
"path": "apps/pythonapi/example_scripts/xarray_example.py",
"chars": 2774,
"preview": "# %% [md]\n#\n# # Rendering XArray data with Vapor\n#\n# Vapor supports render XArray data in a similar fashion to Numpy dat"
},
{
"path": "apps/pythonapi/setup.py",
"chars": 2934,
"preview": "from distutils.core import setup\nfrom pathlib import Path\nimport itertools\nimport sys, os\n\nimport cmake\n\nprint(\"========"
},
{
"path": "apps/pythonapi/tests/CanvasStreamTest.ipynb",
"chars": 628,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": null,\n \"id\": \"1fccf099\",\n \"metadata\": {},\n \"output"
},
{
"path": "apps/pythonapi/tests/bld.bat",
"chars": 50,
"preview": "\"%PYTHON%\" setup.py install\nif errorlevel 1 exit 1"
},
{
"path": "apps/pythonapi/tests/build.sh",
"chars": 24,
"preview": "$PYTHON setup.py install"
},
{
"path": "apps/pythonapi/tests/cppyy-syntax-test.py",
"chars": 1249,
"preview": "import cppyy\nfrom ctypes import c_int\n\n\ncppyy.cppdef(\"\"\"\n#include <string>\nusing std::string;\n\nvoid p(string s) {\n pr"
},
{
"path": "apps/pythonapi/tests/cppyy-test.py",
"chars": 993,
"preview": "import cppyy\n\ncppyy.add_include_path('/Users/stasj/Work/vapor/apps/vapi')\ncppyy.add_include_path('/Users/stasj/Work/vapo"
},
{
"path": "apps/pythonapi/tests/meta.yaml",
"chars": 530,
"preview": "package:\n name: vapor\n version: \"@VERSION_STRING@\"\n\nsource:\n path: .\n\nrequirements:\n build:\n - python\n\n run:\n "
},
{
"path": "apps/pythonapi/tests/module-data-test.py",
"chars": 1759,
"preview": "import numpy as np\n\narr = np.arange(32**3, dtype=np.float32).reshape(32, 32, 32)\nprint(\"Type =\", arr.dtype)\nprint(type(a"
},
{
"path": "apps/pythonapi/tests/module-test.py",
"chars": 1388,
"preview": "from vapor import session, renderer, dataset, camera\n\nses = session.Session()\n\ndata = ses.OpenDataset(dataset.VDC, \"/not"
},
{
"path": "apps/pythonapi/tests/syntax-test.py",
"chars": 4399,
"preview": "# import functools\n#\n# class Inner():\n# def __init__(self):\n# self.x = 0\n#\n# def SetX(self, x):\n# "
},
{
"path": "apps/pythonapi/tests/test.py",
"chars": 3634,
"preview": "# jupytext --to notebook test.py\n# jupyter nbconvert --to notebook --inplace --execute test.ipynb\n# \n# cat test.py | jup"
},
{
"path": "apps/pythonapi/vapor/__init__.py",
"chars": 683,
"preview": "from . import link\nimport sys\nimport hdf5plugin\n\nlink.include('vapor/Version.h')\nvaporVersion = link.Wasp.Version()\nprin"
},
{
"path": "apps/pythonapi/vapor/animation.py",
"chars": 3203,
"preview": "import os\n\nimport cv2\nimport tempfile\nfrom base64 import b64encode\nfrom io import BytesIO\n\nfrom .session import *\n\nclass"
},
{
"path": "apps/pythonapi/vapor/annotations.py",
"chars": 2748,
"preview": "from . import link\nfrom .params import *\n\nlink.include('vapor/ColorbarPbase.h')\n\nclass ColorbarAnnotation(ParamsWrapper,"
},
{
"path": "apps/pythonapi/vapor/camera.py",
"chars": 3331,
"preview": "from . import link\nfrom .common import *\nimport numpy as np\n\nlink.include('vapor/ControlExecutive.h')\nlink.include(\"vapo"
},
{
"path": "apps/pythonapi/vapor/cmake.py",
"chars": 303,
"preview": "from pathlib import Path\n\nSOURCE_DIR = \"@PROJECT_SOURCE_DIR@\"\nBINARY_DIR = \"@CMAKE_BINARY_DIR@\"\nTHIRD_PARTY_DI"
},
{
"path": "apps/pythonapi/vapor/common.py",
"chars": 33,
"preview": "Vec3 = tuple[float, float, float]"
},
{
"path": "apps/pythonapi/vapor/config.py",
"chars": 3143,
"preview": "import sys, os\nimport site\nimport re\nfrom pathlib import Path\nfrom . import cmake\n\nsourcePaths = [\n cmake.SOURCE_DIR,"
},
{
"path": "apps/pythonapi/vapor/cppyyDoxygenWrapper.py",
"chars": 6663,
"preview": "import xml.etree.ElementTree as ET\nimport functools\nfrom . import config\n\n\nclass CPPYYDoxygenWrapperMeta(type):\n __do"
},
{
"path": "apps/pythonapi/vapor/dataset.py",
"chars": 6109,
"preview": "from . import link\nfrom .smartwrapper import *\nfrom .renderer import *\nfrom .transform import *\nimport numpy as np\nimpor"
},
{
"path": "apps/pythonapi/vapor/link.py",
"chars": 1219,
"preview": "import wurlitzer, re\nwith wurlitzer.pipes() as (out, err):\n import cppyy\nprint(out.read(), end=\"\")\nprint(\"\".join(l fo"
},
{
"path": "apps/pythonapi/vapor/params.py",
"chars": 4326,
"preview": "from . import link\nfrom .smartwrapper import *\n\nlink.include('vapor/ParamsBase.h')\nParamsBase = link.VAPoR.ParamsBase\n\nc"
},
{
"path": "apps/pythonapi/vapor/renderer.py",
"chars": 10918,
"preview": "from . import link\nfrom .params import *\nfrom .transferfunction import *\nfrom . import config\nfrom .annotations import *"
},
{
"path": "apps/pythonapi/vapor/session.py",
"chars": 3382,
"preview": "from . import link\nfrom .renderer import Renderer\nfrom .renderer import *\nfrom .dataset import *\nfrom .camera import *\nf"
},
{
"path": "apps/pythonapi/vapor/smartwrapper.py",
"chars": 4902,
"preview": "import re, sys\nimport functools\nfrom . import cppyyDoxygenWrapper\nimport cppyy\n\n\nclass FuncWrapper():\n def GetFunctio"
},
{
"path": "apps/pythonapi/vapor/transferfunction.py",
"chars": 7082,
"preview": "from . import link\nfrom .params import *\nfrom .common import *\nfrom . import config\nfrom typing import Iterable, Any\nimp"
},
{
"path": "apps/pythonapi/vapor/transform.py",
"chars": 397,
"preview": "from . import link\nfrom .params import *\n\nlink.include('vapor/Transform.h')\n\nclass Transform(ParamsWrapper, wrap=link.VA"
},
{
"path": "apps/pythonapi/vapor/utils/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "apps/pythonapi/vapor/utils/histogram.py",
"chars": 5817,
"preview": "from ..session import *\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport functools\nimport bqplot as bq\nimport i"
},
{
"path": "apps/pythonapi/vapor/utils/keyframing.py",
"chars": 9233,
"preview": "from ..session import Session\nfrom ..animation import Animation\n\ndef animate_camera_keyframes(session_paths, steps = Non"
},
{
"path": "apps/pythonapi/vapor/widget-jquery.js",
"chars": 87533,
"preview": "/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"ob"
},
{
"path": "apps/pythonapi/vapor/widget.css",
"chars": 290,
"preview": ".counter-button {\n background-image: linear-gradient(to right, #a1c4fd, #c2e9fb);\n border: 0;\n border-radius: 10px;\n "
},
{
"path": "apps/pythonapi/vapor/widget.js",
"chars": 2289,
"preview": "import $ from './widget-jquery';\n\nfunction render({ model, el }) {\n let $root = $(\"<div>\");\n $root.addClass(\"vapor"
},
{
"path": "apps/pythonapi/vapor/widget.py",
"chars": 5734,
"preview": "import anywidget\nfrom traitlets import Unicode, Bytes, Tuple, Bool, observe, Int\nimport traitlets\n\n#####################"
},
{
"path": "apps/raw2vdc/CMakeLists.txt",
"chars": 170,
"preview": "add_executable (raw2vdc raw2vdc.cpp)\n\ntarget_link_libraries (raw2vdc common vdc)\n\nOpenMPInstall (\n\tTARGETS raw2vdc\n\tDEST"
},
{
"path": "apps/raw2vdc/raw2vdc.cpp",
"chars": 6731,
"preview": "#include <iostream>\n#include <string>\n#include <vector>\n#include <sstream>\n#include <cerrno>\n#include <stdio.h>\n#include"
},
{
"path": "apps/raw2wasp/CMakeLists.txt",
"chars": 175,
"preview": "add_executable (raw2wasp raw2wasp.cpp)\n\ntarget_link_libraries (raw2wasp common wasp)\n\nOpenMPInstall (\n\tTARGETS raw2wasp\n"
},
{
"path": "apps/raw2wasp/raw2wasp.cpp",
"chars": 4579,
"preview": "#include <iostream>\n#include <string>\n#include <vector>\n#include <sstream>\n#include <cerrno>\n#include <stdio.h>\n#include"
},
{
"path": "apps/tiff2geotiff/CMakeLists.txt",
"chars": 331,
"preview": "add_executable (tiff2geotiff tiff2geotiff.cpp geotiff_proj4.cpp getopt.cpp)\n\nif (WIN32)\n\ttarget_link_libraries (tiff2geo"
},
{
"path": "apps/tiff2geotiff/geotiff_proj4.cpp",
"chars": 51290,
"preview": "/******************************************************************************\n * $Id$\n *\n * Project: libgeotiff\n * Pu"
},
{
"path": "apps/tiff2geotiff/getopt.cpp",
"chars": 4053,
"preview": "/*\n * Copyright (c) 1987 Regents of the University of California.\n * All rights reserved.\n *\n * Redistribution and use i"
},
{
"path": "apps/tiff2geotiff/tiff2geotiff.cpp",
"chars": 52620,
"preview": "/* tiff2geotiff.c -- based on Sam Leffler's \"tiffcp\" and \"geotifcp\" codes */\n\n/*\n * Original code had this copyright no"
},
{
"path": "apps/vapor_check_udunits/CMakeLists.txt",
"chars": 218,
"preview": "add_executable (vapor_check_udunits vapor_check_udunits.cpp)\n\ntarget_link_libraries (vapor_check_udunits common vdc)\n\nOp"
},
{
"path": "apps/vapor_check_udunits/vapor_check_udunits.cpp",
"chars": 1399,
"preview": "#include <iostream>\n\n#include <vapor/OptionParser.h>\n#include <vapor/CFuncs.h>\n#include <vapor/FileUtils.h>\n#include <va"
},
{
"path": "apps/vaporgui/.gitignore",
"chars": 17,
"preview": "vaporgui_autogen\n"
},
{
"path": "apps/vaporgui/AbstractWidgetGroup.cpp",
"chars": 33,
"preview": "#include \"AbstractWidgetGroup.h\"\n"
},
{
"path": "apps/vaporgui/AbstractWidgetGroup.h",
"chars": 1191,
"preview": "#pragma once\n\n#include <initializer_list>\n#include <vector>\n\n//! \\class AbstractWidgetGroup\n//! \\brief Provides an inter"
},
{
"path": "apps/vaporgui/AnimationController.cpp",
"chars": 5469,
"preview": "#include \"AnimationController.h\"\n#include <vapor/ControlExecutive.h>\n#include <vapor/AnimationParams.h>\n#include <vapor/"
},
{
"path": "apps/vaporgui/AnimationController.h",
"chars": 1382,
"preview": "#pragma once\n\n#include <QTimer>\n#include <glm/fwd.hpp>\n\nclass AnimationParams;\nnamespace VAPoR {\nclass ControlExec;\n}\n\n/"
},
{
"path": "apps/vaporgui/AnnotationEventRouter.cpp",
"chars": 5063,
"preview": "#include \"AnnotationEventRouter.h\"\n#include <vapor/AnnotationParams.h>\n#include <vapor/ControlExecutive.h>\n#include \"VSe"
},
{
"path": "apps/vaporgui/AnnotationEventRouter.h",
"chars": 369,
"preview": "#pragma once\n\n#include \"VaporFwd.h\"\n#include <QWidget>\n#include \"Updatable.h\"\n\nclass PGroup;\n\nclass AnnotationEventRoute"
},
{
"path": "apps/vaporgui/AppSettingsMenu.cpp",
"chars": 6933,
"preview": "#include <vapor/OpenMPSupport.h>\n#include <QVBoxLayout>\n#include <AppSettingsMenu.h>\n#include <vapor/SettingsParams.h>\n#"
},
{
"path": "apps/vaporgui/AppSettingsMenu.h",
"chars": 745,
"preview": "#pragma once\n\n#include <QDialog>\n#include \"PWidget.h\"\n#include \"ParamsUpdatable.h\"\n#include \"PFileSelectorHLI.h\"\n#includ"
},
{
"path": "apps/vaporgui/AppSettingsParams.cpp",
"chars": 6814,
"preview": "//************************************************************************\n//\t\t\t\t\t\t\t\t\t*\n//\t\t Copyright (C) 2015\t\t\t\t"
},
{
"path": "apps/vaporgui/AppSettingsParams.h",
"chars": 8810,
"preview": "//************************************************************************\n//\t\t\t\t\t\t\t\t\t*\n//\t\t Copyright (C) 2015\t\t\t\t"
},
{
"path": "apps/vaporgui/BannerGUI.cpp",
"chars": 3035,
"preview": "\n#include <QTranslator>\n#include <qboxlayout.h>\n#include <qtimer.h>\n#include <qmessagebox.h>\n#include <qapplication.h>\n#"
},
{
"path": "apps/vaporgui/BannerGUI.h",
"chars": 737,
"preview": "#ifndef BANNERGUI_H\n#define BANNERGUI_H\n\n#include <qmainwindow.h>\n#include <qlabel.h>\n#include <qboxlayout.h>\n#include <"
},
{
"path": "apps/vaporgui/BarbEventRouter.cpp",
"chars": 2287,
"preview": "#include \"BarbEventRouter.h\"\n#include \"vapor/BarbParams.h\"\n#include \"PWidgets.h\"\n#include \"PConstantColorWidget.h\"\n#incl"
},
{
"path": "apps/vaporgui/BarbEventRouter.h",
"chars": 791,
"preview": "#pragma once\n\n#include \"RenderEventRouterGUI.h\"\n#include \"vapor/BarbRenderer.h\"\n\n//! \\class BarbEventRouter\n//! \\ingroup"
},
{
"path": "apps/vaporgui/BookmarkManager.cpp",
"chars": 5712,
"preview": "#include \"BookmarkManager.h\"\n#include <QApplication>\n#include <QMenu>\n#include <QInputDialog>\n#include <vapor/BookmarkPa"
},
{
"path": "apps/vaporgui/BookmarkManager.h",
"chars": 629,
"preview": "#pragma once\n#include \"Updatable.h\"\n#include <common.h>\n\nclass QMenu;\nclass VizWinMgr;\n\nclass BookmarkManager : public Q"
},
{
"path": "apps/vaporgui/CLIToolInstaller.cpp",
"chars": 3680,
"preview": "#include \"CLIToolInstaller.h\"\n#include <QMessageBox>\n#include <common.h>\n#include <vapor/ResourcePath.h>\n\n#ifdef WIN32\n "
},
{
"path": "apps/vaporgui/CLIToolInstaller.h",
"chars": 77,
"preview": "#pragma once\n\nclass CLIToolInstaller {\npublic:\n static void Install();\n};\n"
},
{
"path": "apps/vaporgui/CMakeLists.txt",
"chars": 10252,
"preview": "# TODO REMOVE\nadd_definitions (-DNEW_GUI)\nset (SRCS\n\tRenderEventRouter.cpp\n\tRenderHolder.cpp\n\tGLWidget.cpp\n\tErrorReporte"
},
{
"path": "apps/vaporgui/CaptureController.cpp",
"chars": 4749,
"preview": "#include \"CaptureController.h\"\n\n#include <QMessageBox>\n#include <QFileDialog>\n#include <sstream>\n#include <iomanip>\n\n#in"
},
{
"path": "apps/vaporgui/CaptureController.h",
"chars": 698,
"preview": "#pragma once\n \n#include <QObject>\n#include <string>\n\nnamespace VAPoR {\n class ControlExec;\n}\n\nstruct TiffStrings {"
},
{
"path": "apps/vaporgui/CheckForNotices.cpp",
"chars": 3417,
"preview": "#include \"CheckForNotices.h\"\n#include <QNetworkAccessManager>\n#include <QNetworkRequest>\n#include <QNetworkReply>\n#inclu"
},
{
"path": "apps/vaporgui/CheckForNotices.h",
"chars": 461,
"preview": "#pragma once\n\n#include <string>\n#include <functional>\n#include <vector>\n#include <QDateTime>\n\nstruct Notice {\n std::s"
},
{
"path": "apps/vaporgui/CheckForUpdate.cpp",
"chars": 2283,
"preview": "#include \"CheckForUpdate.h\"\n#include <QNetworkAccessManager>\n#include <QNetworkRequest>\n#include <QNetworkReply>\n#includ"
},
{
"path": "apps/vaporgui/CheckForUpdate.h",
"chars": 462,
"preview": "#pragma once\n\n#include <string>\n#include <functional>\n\nclass QNetworkAccessManager;\n\nstruct UpdateInfo {\n std::string"
},
{
"path": "apps/vaporgui/CheckForUpdateUI.cpp",
"chars": 1146,
"preview": "#include \"CheckForUpdateUI.h\"\n#include \"CheckForUpdate.h\"\n#include <QCheckBox>\n#include <QMessageBox>\n#include <QPushBut"
},
{
"path": "apps/vaporgui/CheckForUpdateUI.h",
"chars": 79,
"preview": "#pragma once\n#include <common.h>\n\nvoid CheckForAndShowUpdate(ControlExec *ce);\n"
},
{
"path": "apps/vaporgui/CitationReminder.h",
"chars": 894,
"preview": "#pragma once\n\n#include <QMessageBox>\n\nclass CitationReminder {\npublic:\n static void Show() {\n QMessageBox msgB"
},
{
"path": "apps/vaporgui/Combo.cpp",
"chars": 5926,
"preview": "//////////////////////////////////////////////////////\n//\n// Combo\n//\n//////////////////////////////////////////////////"
},
{
"path": "apps/vaporgui/Combo.h",
"chars": 2510,
"preview": "#ifndef COMBO_H\n#define COMBO_H\n\n#include <QWidget>\n#include <QLineEdit>\n#include <QSlider>\n#include <QValidator>\n\n// Fi"
},
{
"path": "apps/vaporgui/ContourEventRouter.cpp",
"chars": 3074,
"preview": "#include \"ContourEventRouter.h\"\n#include \"vapor/ContourParams.h\"\n#include \"PWidgets.h\"\n#include \"PSliderEditHLI.h\"\n#incl"
},
{
"path": "apps/vaporgui/ContourEventRouter.h",
"chars": 949,
"preview": "#pragma once\n\n#include \"RenderEventRouterGUI.h\"\n#include \"vapor/ContourRenderer.h\"\n\nclass PDoubleSliderEdit;\n\n//! \\class"
},
{
"path": "apps/vaporgui/CopyRegionAnnotationWidget.cpp",
"chars": 3340,
"preview": "#include <sstream>\n#include <qwidget.h>\n#include <QFileDialog>\n#include \"vapor/Renderer.h\"\n#include \"vapor/ParamsMgr.h\"\n"
},
{
"path": "apps/vaporgui/CopyRegionAnnotationWidget.h",
"chars": 681,
"preview": "#pragma once\n\n#include \"CopyRegionWidget.h\"\n\nnamespace VAPoR {\nclass ControlExec;\nclass RenderParams;\nclass ParamsMgr;\nc"
},
{
"path": "apps/vaporgui/CopyRegionWidget.cpp",
"chars": 5872,
"preview": "//************************************************************************\n//\t\t\t\t\t\t\t *\n//\t Copyright (C) 2017\t\t\t\t\t*\n"
},
{
"path": "apps/vaporgui/CopyRegionWidget.h",
"chars": 1747,
"preview": "#ifndef COPYREGIONWIDGET_H\n#define COPYREGIONWIDGET_H\n\n#include <vapor/Box.h>\n#include \"VSection.h\"\n#include <QPushButto"
},
{
"path": "apps/vaporgui/Core3_2_context.h",
"chars": 691,
"preview": "#pragma once\n\n#include <QGLContext>\n\n#if defined(Q_OS_MAC)\n #if QT_VERSION < 0x050000 && QT_VERSION >= 0x040800 //"
},
{
"path": "apps/vaporgui/DatasetImportController.cpp",
"chars": 2409,
"preview": "#include \"DatasetImportController.h\"\n#include \"ErrorReporter.h\"\n#include \"DatasetTypeLookup.h\"\n\n#include \"vapor/ControlE"
},
{
"path": "apps/vaporgui/DatasetImportController.h",
"chars": 558,
"preview": "#pragma once\n\n#include <QObject>\n#include <vector>\n#include <string>\n\nnamespace VAPoR {\n class ControlExec;\n class"
},
{
"path": "apps/vaporgui/DatasetInspector.cpp",
"chars": 2510,
"preview": "#include \"DatasetInspector.h\"\n#include <vapor/ControlExecutive.h>\n#include <vapor/GUIStateParams.h>\n#include \"PTransform"
},
{
"path": "apps/vaporgui/DatasetInspector.h",
"chars": 555,
"preview": "#pragma once\n\n#include \"VSection.h\"\n\nnamespace VAPoR {\nclass ControlExec;\n}\nclass PTransformWidget;\nclass VLabel;\nclass "
},
{
"path": "apps/vaporgui/DatasetTypeLookup.cpp",
"chars": 1365,
"preview": "#include \"DatasetTypeLookup.h\"\n#include \"vapor/ParamsBase.h\"\n\nnamespace {\n const std::vector<std::pair<std::string, s"
},
{
"path": "apps/vaporgui/DatasetTypeLookup.h",
"chars": 312,
"preview": "#pragma once\n\n#include <string>\n#include <vector>\n\nconst std::vector<std::pair<std::string, std::string>>& GetDatasets()"
},
{
"path": "apps/vaporgui/ErrorReporter.cpp",
"chars": 8189,
"preview": "//************************************************************************\n// "
},
{
"path": "apps/vaporgui/ErrorReporter.h",
"chars": 4686,
"preview": "//************************************************************************\n// "
},
{
"path": "apps/vaporgui/ExportTab.cpp",
"chars": 1014,
"preview": "#include \"ExportTab.h\"\n#include \"PCheckbox.h\"\n#include \"PIntegerInput.h\"\n#include \"PSliderEdit.h\"\n#include \"PCameraContr"
},
{
"path": "apps/vaporgui/ExportTab.h",
"chars": 409,
"preview": "#pragma once\n\n#include \"VaporFwd.h\"\n#include \"PWidgetsFwd.h\"\n#include \"Updatable.h\"\n#include \"VGroup.h\"\n\nclass CaptureCo"
},
{
"path": "apps/vaporgui/FidelityWidget.cpp",
"chars": 10654,
"preview": "//*************************************************************************\n// "
},
{
"path": "apps/vaporgui/FidelityWidget.h",
"chars": 2424,
"preview": "#ifndef FIDELITYWIDGET_H\n#define FIDELITYWIDGET_H\n\n#include <QObject>\n#include \"vapor/MyBase.h\"\n#include \"ui_FidelityWid"
},
{
"path": "apps/vaporgui/FidelityWidgetGUI.ui",
"chars": 11199,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>FidelityWidgetGUI</class>\n <widget class=\"QWidget\" nam"
},
{
"path": "apps/vaporgui/FileOperationChecker.cpp",
"chars": 3617,
"preview": "#include <QFileInfo>\n#include \"FileOperationChecker.h\"\n\nQString FileOperationChecker::_message(\"\");\n\nbool FileOperationC"
},
{
"path": "apps/vaporgui/FileOperationChecker.h",
"chars": 729,
"preview": "/*\n * This class provides a set of functions that check if a file/directory\n * is good to read/write.\n *\n * The rational"
},
{
"path": "apps/vaporgui/Flags.h",
"chars": 1005,
"preview": "#ifndef FLAGS_H\n#define FLAGS_H\n\n//! Bit masks to indicate what type of variables are to be supported by\n//! a particula"
},
{
"path": "apps/vaporgui/FlowEventRouter.cpp",
"chars": 13315,
"preview": "#include \"FlowEventRouter.h\"\n#include \"vapor/FlowParams.h\"\n#include \"PWidgets.h\"\n#include \"PFlowRakeRegionSelector.h\"\n#i"
},
{
"path": "apps/vaporgui/FlowEventRouter.h",
"chars": 1207,
"preview": "#pragma once\n\n#include \"RenderEventRouterGUI.h\"\n#include <vapor/FlowRenderer.h>\n\nclass PIntegerSliderEdit;\nclass PDouble"
},
{
"path": "apps/vaporgui/GLWidget.cpp",
"chars": 1558,
"preview": "//-- GLWidget.cpp -------------------------------------------------------\n//\n// Copyright (C) 2006 Kenny Gruchalla. All"
},
{
"path": "apps/vaporgui/GLWidget.h",
"chars": 1482,
"preview": "//-- GLWidget.h ---------------------------------------------------------\n//\n// Copyright (C) 2006 Kenny Gruchalla. All"
},
{
"path": "apps/vaporgui/ImageEventRouter.cpp",
"chars": 1624,
"preview": "#include <ImageEventRouter.h>\n#include <vapor/ImageParams.h>\n#include \"PWidgets.h\"\n#include \"PTMSLODInput.h\"\n#include \"P"
},
{
"path": "apps/vaporgui/ImageEventRouter.h",
"chars": 867,
"preview": "#pragma once\n\n#include <vapor/ImageRenderer.h>\n#include <RenderEventRouterGUI.h>\n\n//! \\class ImageEventRouter\n//! \\ingro"
},
{
"path": "apps/vaporgui/ImportTab.cpp",
"chars": 1940,
"preview": "#include \"ImportTab.h\"\n#include \"PImportDataWidget.h\"\n#include \"DatasetImportController.h\"\n#include \"PProjectionStringWi"
},
{
"path": "apps/vaporgui/ImportTab.h",
"chars": 452,
"preview": "#pragma once\n\n#include \"Updatable.h\"\n#include <QWidget>\n\nclass PImportDataWidget;\nclass PProjectionStringWidget;\nclass D"
},
{
"path": "apps/vaporgui/LeftPanel.cpp",
"chars": 1835,
"preview": "#include \"LeftPanel.h\"\n\n#include <QScrollArea>\n\n#include \"RenderersPanel.h\"\n#include \"ImportTab.h\"\n#include \"ExportTab.h"
},
{
"path": "apps/vaporgui/LeftPanel.h",
"chars": 582,
"preview": "#pragma once\n\n#include <QTabWidget>\n#include <common.h>\n\n#include \"Updatable.h\"\n#include \"VaporFwd.h\"\n\nclass ImportTab;\n"
},
{
"path": "apps/vaporgui/MainForm.cpp",
"chars": 38028,
"preview": "#include <vapor/glutil.h> // Must be included first!!!\n#include \"vapor/VAssert.h\"\n#include <functional>\n#include <cma"
},
{
"path": "apps/vaporgui/MainForm.h",
"chars": 6342,
"preview": "#pragma once\n\n#include \"vapor/VAssert.h\"\n#include <qvariant.h>\n#include <qmainwindow.h>\n#include <qstring.h>\n#include <Q"
},
{
"path": "apps/vaporgui/MainForm_isOpenGLContextActive.cpp",
"chars": 258,
"preview": "#include \"MainForm.h\"\n#include <QOpenGLContext>\n\n// This is to address a warning caused by QOpenGLContext and vapor/glut"
},
{
"path": "apps/vaporgui/Manip.cpp",
"chars": 41963,
"preview": "/************************************************************************/\n//\t\t\t\t\t\t\t\t\t*\n//\t\t\t Copyright (C) 2005\t\t\t\t*\n/"
},
{
"path": "apps/vaporgui/Manip.h",
"chars": 15228,
"preview": "//************************************************************************\n//\t\t\t\t\t\t\t\t\t*\n//\t\t\t Copyright (C) 2004\t\t\t\t*\n/"
},
{
"path": "apps/vaporgui/ModelEventRouter.cpp",
"chars": 1203,
"preview": "#include \"ModelEventRouter.h\"\n#include \"vapor/ModelParams.h\"\n#include \"PWidgets.h\"\n\nusing namespace VAPoR;\n\nstatic Rende"
},
{
"path": "apps/vaporgui/ModelEventRouter.h",
"chars": 842,
"preview": "#pragma once\n\n#include \"RenderEventRouterGUI.h\"\n#include \"vapor/ModelRenderer.h\"\n\n//! \\class ModelEventRouter\n//! \\ingro"
},
{
"path": "apps/vaporgui/NcarCasperUtils.cpp",
"chars": 2637,
"preview": "#include \"NcarCasperUtils.h\"\n#include <QMessageBox>\n#include <QCheckBox>\n#include <QApplication>\n#include <vapor/STLUtil"
},
{
"path": "apps/vaporgui/NcarCasperUtils.h",
"chars": 121,
"preview": "#pragma once\n#include <common.h>\n\nclass NcarCasperUtils {\npublic:\n static void CheckForCasperVGL(ControlExec *ce);\n};"
},
{
"path": "apps/vaporgui/NewRendererDialog.ui",
"chars": 11004,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<ui version=\"4.0\">\r\n <class>NewRendererDialog</class>\r\n <widget class=\"QDialog\" "
},
{
"path": "apps/vaporgui/NewRendererDialogManager.cpp",
"chars": 2227,
"preview": "#include \"NewRendererDialogManager.h\"\n#include <vapor/ControlExecutive.h>\n#include <QApplication>\n#include \"ErrorReporte"
},
{
"path": "apps/vaporgui/NewRendererDialogManager.h",
"chars": 534,
"preview": "#pragma once\n\n#include \"RenderHolder.h\"\n#include \"RenderEventRouter.h\"\n\nnamespace VAPoR {class ControlExec;}\nusing names"
},
{
"path": "apps/vaporgui/NoticeBoard.cpp",
"chars": 3199,
"preview": "#include \"NoticeBoard.h\"\n#include \"CheckForNotices.h\"\n#include <QVBoxLayout>\n#include <QTextBrowser>\n#include <QDialogBu"
},
{
"path": "apps/vaporgui/NoticeBoard.h",
"chars": 598,
"preview": "#pragma once\n\n#include <QDialog>\n#include <common.h>\n\nstruct Notice;\nclass QTextBrowser;\nclass QLabel;\n\nclass NoticeBoar"
},
{
"path": "apps/vaporgui/PAnnotationColorbarWidget.cpp",
"chars": 1926,
"preview": "#include \"PAnnotationColorbarWidget.h\"\n#include \"PWidgets.h\"\n#include \"PCornerSelector.h\"\n#include \"PColorSelector.h\"\n#i"
},
{
"path": "apps/vaporgui/PAnnotationColorbarWidget.h",
"chars": 368,
"preview": "#pragma once\n\n#include \"PWidget.h\"\n\nclass PSection;\n\n//! \\class PAnnotationColorbarWidget\n//! \\brief Widget that provide"
},
{
"path": "apps/vaporgui/PAxisAnnotationWidget.cpp",
"chars": 6208,
"preview": "#include <QLabel>\n#include <vapor/ControlExecutive.h>\n#include <vapor/RenderParams.h>\n#include <vapor/DataMgrUtils.h>\n#i"
},
{
"path": "apps/vaporgui/PAxisAnnotationWidget.h",
"chars": 1218,
"preview": "#pragma once\n\n#include \"PWidget.h\"\n#include <vector>\n\nclass V3DInput;\nclass V3DIntInput;\nclass VGroup;\n\nnamespace VAPoR "
},
{
"path": "apps/vaporgui/PButton.cpp",
"chars": 644,
"preview": "#include \"PButton.h\"\n#include \"VPushButton.h\"\n#include <vapor/ParamsMgr.h>\n\nPButton::PButton(std::string label, Callback"
},
{
"path": "apps/vaporgui/PButton.h",
"chars": 843,
"preview": "#pragma once\n\n#include \"PWidget.h\"\n#include <functional>\n\nclass VPushButton;\n\n//! \\class PButton\n//! \\brief PWidget wrap"
},
{
"path": "apps/vaporgui/PCameraControlsSection.cpp",
"chars": 5372,
"preview": "#include <vapor/ViewpointParams.h>\n#include \"ErrorReporter.h\"\n#include \"PCameraControlsSection.h\"\n#include \"PFileButton."
},
{
"path": "apps/vaporgui/PCameraControlsSection.h",
"chars": 1686,
"preview": "#pragma once\n\n\n// =====================================\n// PTrackballWidget\n// ==============================="
},
{
"path": "apps/vaporgui/PCaptureWidget.cpp",
"chars": 3791,
"preview": "#include \"CaptureController.h\"\n#include \"PCaptureWidget.h\"\n#include \"PTimeRangeSelector.h\"\n#include \"PRadioButtons.h\"\n#i"
},
{
"path": "apps/vaporgui/PCaptureWidget.h",
"chars": 1028,
"preview": "#pragma once\n\n#include \"PWidget.h\"\n\nnamespace VAPoR {\nclass ControlExec;\n}\n\nclass PSection;\nclass PEnumDropdownStandalon"
},
{
"path": "apps/vaporgui/PCheckbox.cpp",
"chars": 489,
"preview": "#include \"PCheckbox.h\"\n#include \"VCheckBox.h\"\n#include \"VLineItem.h\"\n#include <vapor/ParamsBase.h>\n\nPCheckbox::PCheckbox"
},
{
"path": "apps/vaporgui/PCheckbox.h",
"chars": 450,
"preview": "#pragma once\n\n#include \"PLineItem.h\"\n\nclass VCheckBox;\n\n//! \\class PCheckbox\n//! Creates a Qt Checkbox synced with the p"
},
{
"path": "apps/vaporgui/PCheckboxHLI.h",
"chars": 90,
"preview": "#pragma once\n\n#include \"PWidgetHLI.h\"\n#include \"PCheckbox.h\"\n\nCreateHLI(PCheckbox, bool);\n"
},
{
"path": "apps/vaporgui/PColorSelector.cpp",
"chars": 1174,
"preview": "#include \"PColorSelector.h\"\n#include \"QColorWidget.h\"\n#include <vector>\n#include <vapor/ParamsBase.h>\n\nPColorSelector::P"
},
{
"path": "apps/vaporgui/PColorSelector.h",
"chars": 651,
"preview": "#pragma once\n\n#include \"PLineItem.h\"\n\nclass QColorWidget;\n\n//! \\class PColorSelector\n//! Creates a Qt Color Selector syn"
},
{
"path": "apps/vaporgui/PConstantColorWidget.cpp",
"chars": 426,
"preview": "#include \"PConstantColorWidget.h\"\n#include \"PCheckbox.h\"\n#include \"PColorSelector.h\"\n#include <vapor/RenderParams.h>\n\nus"
},
{
"path": "apps/vaporgui/PConstantColorWidget.h",
"chars": 119,
"preview": "#pragma once\n\n#include \"PGroup.h\"\n\nclass PConstantColorWidget : public PGroup {\npublic:\n PConstantColorWidget();\n};\n"
},
{
"path": "apps/vaporgui/PCopyRegionAnnotationWidget.cpp",
"chars": 387,
"preview": "#include \"PCopyRegionAnnotationWidget.h\"\n#include \"CopyRegionAnnotationWidget.h\"\n#include <vapor/ControlExecutive.h>\n#in"
},
{
"path": "apps/vaporgui/PCopyRegionAnnotationWidget.h",
"chars": 425,
"preview": "#pragma once\n\n#include \"PWidget.h\"\n\nnamespace VAPoR {\nclass ControlExec;\n}\n\nclass CopyRegionAnnotationWidget;\n\n//! \\clas"
},
{
"path": "apps/vaporgui/PCopyRegionWidget.cpp",
"chars": 296,
"preview": "#include \"PCopyRegionWidget.h\"\n#include \"CopyRegionWidget.h\"\n#include <vapor/RenderParams.h>\n\nPCopyRegionWidget::PCopyRe"
},
{
"path": "apps/vaporgui/PCopyRegionWidget.h",
"chars": 392,
"preview": "#pragma once\n\n#include \"PWidget.h\"\n\nclass CopyRegionWidget;\n\n//! \\class PCopyRegionWidget\n//! \\brief PWidget wrapper for"
},
{
"path": "apps/vaporgui/PCornerSelector.cpp",
"chars": 3167,
"preview": "#include \"PCornerSelector.h\"\n#include \"VCheckBox.h\"\n#include <vapor/ColorbarPbase.h>\n#include <QFrame>\n#include <cassert"
},
{
"path": "apps/vaporgui/PCornerSelector.h",
"chars": 1268,
"preview": "#pragma once\n\n#include \"PLineItem.h\"\n#include <cmath>\n\n//! \\class PCornerSelector\n//! \\brief Widget for selecting a corn"
},
{
"path": "apps/vaporgui/PDatasetTransformWidget.cpp",
"chars": 1658,
"preview": "#include \"PDatasetTransformWidget.h\"\n#include <vapor/ControlExecutive.h>\n#include <vapor/STLUtils.h>\n#include <vapor/GUI"
},
{
"path": "apps/vaporgui/PDatasetTransformWidget.h",
"chars": 489,
"preview": "#pragma once\n\n#include \"PWidget.h\"\n\nnamespace VAPoR {\nclass ControlExec;\n}\nclass VSection;\nclass PStringDropdown;\nclass "
},
{
"path": "apps/vaporgui/PDimensionSelector.cpp",
"chars": 1007,
"preview": "#include \"PDimensionSelector.h\"\n#include <vapor/RenderParams.h>\n#include \"VComboBox.h\"\n\nusing namespace VAPoR;\n\nPDimensi"
},
{
"path": "apps/vaporgui/PDimensionSelector.h",
"chars": 348,
"preview": "#pragma once\n\n#include \"PLineItem.h\"\n\nclass VComboBox;\n\nclass PDimensionSelector : public PLineItem {\n VComboBox *_vC"
},
{
"path": "apps/vaporgui/PDisplay.cpp",
"chars": 976,
"preview": "#include \"PDisplay.h\"\n#include \"VCheckBox.h\"\n#include \"VLineItem.h\"\n#include \"VLabel.h\"\n#include <vapor/ParamsBase.h>\n\nP"
},
{
"path": "apps/vaporgui/PDisplay.h",
"chars": 1199,
"preview": "#pragma once\n\n#include \"PWidget.h\"\n\nclass VLabel;\n\n//! @class PDisplay\n//! Creates a label that displays a value in the "
},
{
"path": "apps/vaporgui/PDisplayHLI.h",
"chars": 204,
"preview": "#pragma once\n\n#include \"PWidgetHLI.h\"\n#include \"PDisplay.h\"\n\nCreateHLI(PStringDisplay, std::String);\nCreateHLI(PIntegerD"
},
{
"path": "apps/vaporgui/PDoubleInput.cpp",
"chars": 651,
"preview": "#include \"PDoubleInput.h\"\n#include \"VLineItem.h\"\n#include <vapor/ParamsBase.h>\n#include \"VLineEdit_Deprecated.h\"\n\nPDoubl"
},
{
"path": "apps/vaporgui/PDoubleInput.h",
"chars": 550,
"preview": "#pragma once\n\n#include \"PLineItem.h\"\n//#include \"VaporWidgetsFwd.h\"\n\nclass VLineEdit_Deprecated;\n\n//! \\class PDoubleInpu"
},
{
"path": "apps/vaporgui/PDoubleInputHLI.h",
"chars": 98,
"preview": "#pragma once\n\n#include \"PWidgetHLI.h\"\n#include \"PDoubleInput.h\"\n\nCreateHLI(PDoubleInput, double);\n"
},
{
"path": "apps/vaporgui/PDynamicMixin.cpp",
"chars": 1125,
"preview": "#include \"PDynamicMixin.h\"\n#include <vapor/VAssert.h>\n#include \"PWidget.h\"\n#include <vapor/ParamsBase.h>\n\nPWidget *PDyna"
},
{
"path": "apps/vaporgui/PDynamicMixin.h",
"chars": 560,
"preview": "#pragma once\n\n#include <string>\nclass PWidget;\n\n//! \\class PDynamicMixin\n//! Internal class for PWidgets. Enables dynami"
},
{
"path": "apps/vaporgui/PEnumDropdown.cpp",
"chars": 1292,
"preview": "#include \"PEnumDropdown.h\"\n#include <vapor/ParamsBase.h>\n#include <vapor/VAssert.h>\n#include \"VComboBox.h\"\n\nPEnumDropdow"
},
{
"path": "apps/vaporgui/PEnumDropdown.h",
"chars": 1163,
"preview": "#pragma once\n\n#include \"PLineItem.h\"\n#include <vector>\n//#include \"VaporWidgetsFwd.h\"\n\nclass VComboBox;\n\n//! \\class PEnu"
},
{
"path": "apps/vaporgui/PEnumDropdownHLI.h",
"chars": 537,
"preview": "#pragma once\n\n#include \"PWidgetHLI.h\"\n#include \"PEnumDropdown.h\"\n\ntemplate<class P> class PEnumDropdownHLI : public PEnu"
}
]
// ... and 1116 more files (download for full content)
About this extraction
This page contains the full source code of the NCAR/VAPOR GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1316 files (7.1 MB), approximately 1.9M tokens, and a symbol index with 3115 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.