velo-plot 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/EventEmitter-DAbs2K1C.js +60 -0
- package/dist/EventEmitter-DAbs2K1C.js.map +1 -0
- package/dist/core/Chart.d.ts +15 -0
- package/dist/core/ChartControls.d.ts +41 -0
- package/dist/core/ChartInitQueue.d.ts +50 -0
- package/dist/core/ChartLegend.d.ts +74 -0
- package/dist/core/ChartStatistics.d.ts +18 -0
- package/dist/core/EventEmitter.d.ts +30 -0
- package/dist/core/InteractionManager.d.ts +96 -0
- package/dist/core/OverlayRenderer.d.ts +89 -0
- package/dist/core/Series.d.ts +4 -0
- package/dist/core/animation/AnimationEngine.d.ts +156 -0
- package/dist/core/animation/index.d.ts +6 -0
- package/dist/core/annotations/AnnotationManager.d.ts +61 -0
- package/dist/core/annotations/index.d.ts +5 -0
- package/dist/core/annotations/types.d.ts +159 -0
- package/dist/core/chart/ChartAnimatedNavigation.d.ts +53 -0
- package/dist/core/chart/ChartAxisManager.d.ts +61 -0
- package/dist/core/chart/ChartCore.d.ts +336 -0
- package/dist/core/chart/ChartExporter.d.ts +18 -0
- package/dist/core/chart/ChartNavigation.d.ts +33 -0
- package/dist/core/chart/ChartPluginBridge.d.ts +34 -0
- package/dist/core/chart/ChartRenderLoop.d.ts +100 -0
- package/dist/core/chart/ChartRenderer.d.ts +52 -0
- package/dist/core/chart/ChartScaling.d.ts +31 -0
- package/dist/core/chart/ChartSeries.d.ts +4 -0
- package/dist/core/chart/ChartSetup.d.ts +67 -0
- package/dist/core/chart/ChartStateManager.d.ts +54 -0
- package/dist/core/chart/ChartUI.d.ts +40 -0
- package/dist/core/chart/exporter/SVGExporter.d.ts +6 -0
- package/dist/core/chart/exporter/index.d.ts +5 -0
- package/dist/core/chart/index.d.ts +14 -0
- package/dist/core/chart/series/SeriesActions.d.ts +7 -0
- package/dist/core/chart/series/SeriesBuffer.d.ts +4 -0
- package/dist/core/chart/series/index.d.ts +6 -0
- package/dist/core/chart/series/types.d.ts +22 -0
- package/dist/core/chart/types.d.ts +188 -0
- package/dist/core/clipboard/index.d.ts +137 -0
- package/dist/core/debug/index.d.ts +143 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/keybindings/index.d.ts +157 -0
- package/dist/core/layout/index.d.ts +12 -0
- package/dist/core/layout/types.d.ts +165 -0
- package/dist/core/loading/index.d.ts +104 -0
- package/dist/core/locale/index.d.ts +91 -0
- package/dist/core/responsive/ResponsiveManager.d.ts +133 -0
- package/dist/core/responsive/index.d.ts +4 -0
- package/dist/core/selection/SelectionManager.d.ts +165 -0
- package/dist/core/selection/index.d.ts +4 -0
- package/dist/core/series/Series.d.ts +73 -0
- package/dist/core/series/SeriesBounds.d.ts +3 -0
- package/dist/core/series/SeriesDataUtils.d.ts +7 -0
- package/dist/core/series/index.d.ts +6 -0
- package/dist/core/sync/index.d.ts +147 -0
- package/dist/core/theme-editor/index.d.ts +122 -0
- package/dist/examples/PluginDemonstration.d.ts +20 -0
- package/dist/examples.d.ts +25 -0
- package/dist/gpu/adapter/gpuRenderer.d.ts +135 -0
- package/dist/gpu/adapter/index.d.ts +7 -0
- package/dist/gpu/adapter/seriesAdapter.d.ts +88 -0
- package/dist/gpu/backends/webgl/WebGLBackend.d.ts +42 -0
- package/dist/gpu/backends/webgl/index.d.ts +5 -0
- package/dist/gpu/backends/webgl/programFactory.d.ts +30 -0
- package/dist/gpu/backends/webgl/shaders.d.ts +14 -0
- package/dist/gpu/backends/webgpu/MassiveDataRenderer.d.ts +111 -0
- package/dist/gpu/backends/webgpu/WebGPUBackend.d.ts +58 -0
- package/dist/gpu/backends/webgpu/pipelines/bandPipeline.d.ts +24 -0
- package/dist/gpu/backends/webgpu/pipelines/heatmapPipeline.d.ts +28 -0
- package/dist/gpu/backends/webgpu/pipelines/index.d.ts +10 -0
- package/dist/gpu/backends/webgpu/pipelines/instancedLinePipeline.d.ts +23 -0
- package/dist/gpu/backends/webgpu/pipelines/instancedPointPipeline.d.ts +25 -0
- package/dist/gpu/backends/webgpu/pipelines/linePipeline.d.ts +23 -0
- package/dist/gpu/backends/webgpu/pipelines/pointPipeline.d.ts +28 -0
- package/dist/gpu/backends/webgpu/pipelines/trianglePipeline.d.ts +5 -0
- package/dist/gpu/backends/webgpu/pipelines/triangleShader.d.ts +1 -0
- package/dist/gpu/backends/webgpu/shaders/heatmap.wgsl.d.ts +8 -0
- package/dist/gpu/backends/webgpu/shaders/index.d.ts +8 -0
- package/dist/gpu/backends/webgpu/shaders/instanced.wgsl.d.ts +16 -0
- package/dist/gpu/backends/webgpu/shaders/line.wgsl.d.ts +8 -0
- package/dist/gpu/backends/webgpu/shaders/point.wgsl.d.ts +9 -0
- package/dist/gpu/benchmark/benchmark.d.ts +74 -0
- package/dist/gpu/benchmark/index.d.ts +5 -0
- package/dist/gpu/compute/gpuCompute.d.ts +72 -0
- package/dist/gpu/compute/index.d.ts +6 -0
- package/dist/gpu/compute/shaders.d.ts +9 -0
- package/dist/gpu/drawList.d.ts +77 -0
- package/dist/gpu/examples/gallery.d.ts +20 -0
- package/dist/gpu/examples/index.d.ts +3 -0
- package/dist/gpu/examples/webgpu-line-demo.d.ts +8 -0
- package/dist/gpu/examples/webgpu-triangle.d.ts +1 -0
- package/dist/gpu/frame.d.ts +25 -0
- package/dist/gpu/index.d.ts +24 -0
- package/dist/gpu/resources/bufferStore.d.ts +40 -0
- package/dist/gpu/resources/index.d.ts +9 -0
- package/dist/gpu/resources/pipelineCache.d.ts +33 -0
- package/dist/gpu/resources/textureStore.d.ts +41 -0
- package/dist/gpu/types.d.ts +47 -0
- package/dist/index-BMiZoKmm.js +536 -0
- package/dist/index-BMiZoKmm.js.map +1 -0
- package/dist/index-Ce2JgkH_.js +282 -0
- package/dist/index-Ce2JgkH_.js.map +1 -0
- package/dist/index-D8ifudJH.js +2431 -0
- package/dist/index-D8ifudJH.js.map +1 -0
- package/dist/index-Dag88bW4.js +499 -0
- package/dist/index-Dag88bW4.js.map +1 -0
- package/dist/index-qhscKTDy.js +309 -0
- package/dist/index-qhscKTDy.js.map +1 -0
- package/dist/index-x4stH3jD.js +282 -0
- package/dist/index-x4stH3jD.js.map +1 -0
- package/dist/index.core-CYu3tydL.js +7252 -0
- package/dist/index.core-CYu3tydL.js.map +1 -0
- package/dist/index.core.d.ts +20 -0
- package/dist/index.d.ts +51 -0
- package/dist/overlay/CanvasOverlay.d.ts +102 -0
- package/dist/overlay/index.d.ts +4 -0
- package/dist/plugins/3d/Area3DRenderer.d.ts +122 -0
- package/dist/plugins/3d/Axes3D.d.ts +104 -0
- package/dist/plugins/3d/Bubble3DRenderer.d.ts +198 -0
- package/dist/plugins/3d/Impulse3DRenderer.d.ts +130 -0
- package/dist/plugins/3d/Line3DRenderer.d.ts +118 -0
- package/dist/plugins/3d/PointCloud3DRenderer.d.ts +84 -0
- package/dist/plugins/3d/Raycaster3D.d.ts +137 -0
- package/dist/plugins/3d/Ribbon3DRenderer.d.ts +83 -0
- package/dist/plugins/3d/SurfaceBar3DRenderer.d.ts +92 -0
- package/dist/plugins/3d/SurfaceMesh3DRenderer.d.ts +130 -0
- package/dist/plugins/3d/Tooltip3D.d.ts +71 -0
- package/dist/plugins/3d/VectorField3DRenderer.d.ts +86 -0
- package/dist/plugins/3d/Voxel3DRenderer.d.ts +89 -0
- package/dist/plugins/3d/Waterfall3DRenderer.d.ts +94 -0
- package/dist/plugins/3d/camera/OrbitCamera.d.ts +99 -0
- package/dist/plugins/3d/camera/index.d.ts +1 -0
- package/dist/plugins/3d/colorThemes.d.ts +39 -0
- package/dist/plugins/3d/controls/OrbitController.d.ts +69 -0
- package/dist/plugins/3d/controls/index.d.ts +1 -0
- package/dist/plugins/3d/index.d.ts +50 -0
- package/dist/plugins/3d/math/Mat4.d.ts +33 -0
- package/dist/plugins/3d/math/Vec3.d.ts +37 -0
- package/dist/plugins/3d/math/index.d.ts +4 -0
- package/dist/plugins/3d/mesh/InstancedMesh.d.ts +42 -0
- package/dist/plugins/3d/mesh/geometry.d.ts +34 -0
- package/dist/plugins/3d/mesh/index.d.ts +2 -0
- package/dist/plugins/3d/series/Area3D.d.ts +17 -0
- package/dist/plugins/3d/series/Column3D.d.ts +20 -0
- package/dist/plugins/3d/series/Heatmap3D.d.ts +17 -0
- package/dist/plugins/3d/series/Impulse3D.d.ts +16 -0
- package/dist/plugins/3d/series/PointLine3D.d.ts +20 -0
- package/dist/plugins/3d/series/Ribbon3D.d.ts +17 -0
- package/dist/plugins/3d/series/Scatter3D.d.ts +21 -0
- package/dist/plugins/3d/series/SurfaceMesh3D.d.ts +35 -0
- package/dist/plugins/3d/series/Waterfall3D.d.ts +38 -0
- package/dist/plugins/3d/series/index.d.ts +13 -0
- package/dist/plugins/3d/series/types.d.ts +143 -0
- package/dist/plugins/3d/shader/index.d.ts +2 -0
- package/dist/plugins/3d/shader/programs.d.ts +24 -0
- package/dist/plugins/3d/shader/sources.d.ts +27 -0
- package/dist/plugins/3d/types.d.ts +71 -0
- package/dist/plugins/3d.d.ts +3 -0
- package/dist/plugins/3d.js +5498 -0
- package/dist/plugins/3d.js.map +1 -0
- package/dist/plugins/PluginContext.d.ts +53 -0
- package/dist/plugins/PluginManager.d.ts +129 -0
- package/dist/plugins/PluginRegistry.d.ts +38 -0
- package/dist/plugins/analysis/SeriesFit.d.ts +3 -0
- package/dist/plugins/analysis/contours.d.ts +20 -0
- package/dist/plugins/analysis/fft.d.ts +138 -0
- package/dist/plugins/analysis/filters.d.ts +76 -0
- package/dist/plugins/analysis/fitting.d.ts +24 -0
- package/dist/plugins/analysis/index.d.ts +29 -0
- package/dist/plugins/analysis/indicators.d.ts +148 -0
- package/dist/plugins/analysis/math.d.ts +32 -0
- package/dist/plugins/analysis/statistics.d.ts +78 -0
- package/dist/plugins/analysis/utils.d.ts +150 -0
- package/dist/plugins/analysis.d.ts +3 -0
- package/dist/plugins/analysis.js +1202 -0
- package/dist/plugins/analysis.js.map +1 -0
- package/dist/plugins/annotations/index.d.ts +16 -0
- package/dist/plugins/annotations.d.ts +3 -0
- package/dist/plugins/annotations.js +438 -0
- package/dist/plugins/annotations.js.map +1 -0
- package/dist/plugins/anomaly-detection/algorithms.d.ts +38 -0
- package/dist/plugins/anomaly-detection/index.d.ts +16 -0
- package/dist/plugins/anomaly-detection/types.d.ts +57 -0
- package/dist/plugins/broken-axis/BrokenAxisScale.d.ts +24 -0
- package/dist/plugins/broken-axis/exports.d.ts +6 -0
- package/dist/plugins/broken-axis/index.d.ts +6 -0
- package/dist/plugins/broken-axis/types.d.ts +50 -0
- package/dist/plugins/builtins/crosshair/CrosshairPlugin.d.ts +40 -0
- package/dist/plugins/builtins/crosshair/index.d.ts +1 -0
- package/dist/plugins/builtins/data-logger/DataLoggerPlugin.d.ts +11 -0
- package/dist/plugins/builtins/data-logger/index.d.ts +1 -0
- package/dist/plugins/builtins/direction-indicator/DirectionIndicatorPlugin.d.ts +17 -0
- package/dist/plugins/builtins/direction-indicator/index.d.ts +2 -0
- package/dist/plugins/builtins/grid-highlight/GridHighlightPlugin.d.ts +17 -0
- package/dist/plugins/builtins/grid-highlight/index.d.ts +1 -0
- package/dist/plugins/builtins/index.d.ts +25 -0
- package/dist/plugins/builtins/stats/StatsPlugin.d.ts +11 -0
- package/dist/plugins/builtins/stats/index.d.ts +1 -0
- package/dist/plugins/builtins/watermark/WatermarkPlugin.d.ts +15 -0
- package/dist/plugins/builtins/watermark/index.d.ts +1 -0
- package/dist/plugins/caching/exports.d.ts +6 -0
- package/dist/plugins/caching/index.d.ts +6 -0
- package/dist/plugins/caching/types.d.ts +120 -0
- package/dist/plugins/clipboard/index.d.ts +20 -0
- package/dist/plugins/clipboard.d.ts +3 -0
- package/dist/plugins/clipboard.js +270 -0
- package/dist/plugins/clipboard.js.map +1 -0
- package/dist/plugins/context-menu/index.d.ts +12 -0
- package/dist/plugins/context-menu/renderer.d.ts +43 -0
- package/dist/plugins/context-menu/types.d.ts +202 -0
- package/dist/plugins/context-menu.d.ts +3 -0
- package/dist/plugins/context-menu.js +621 -0
- package/dist/plugins/context-menu.js.map +1 -0
- package/dist/plugins/data-export/formatters.d.ts +34 -0
- package/dist/plugins/data-export/index.d.ts +15 -0
- package/dist/plugins/data-export/types.d.ts +166 -0
- package/dist/plugins/data-export.d.ts +3 -0
- package/dist/plugins/data-export.js +463 -0
- package/dist/plugins/data-export.js.map +1 -0
- package/dist/plugins/data-transform/index.d.ts +6 -0
- package/dist/plugins/data-transform/types.d.ts +34 -0
- package/dist/plugins/debug/index.d.ts +24 -0
- package/dist/plugins/debug.d.ts +3 -0
- package/dist/plugins/debug.js +330 -0
- package/dist/plugins/debug.js.map +1 -0
- package/dist/plugins/drag-edit/exports.d.ts +6 -0
- package/dist/plugins/drag-edit/index.d.ts +6 -0
- package/dist/plugins/drag-edit/types.d.ts +118 -0
- package/dist/plugins/forecasting/algorithms.d.ts +6 -0
- package/dist/plugins/forecasting/exports.d.ts +3 -0
- package/dist/plugins/forecasting/index.d.ts +11 -0
- package/dist/plugins/forecasting/types.d.ts +88 -0
- package/dist/plugins/gpu/index.d.ts +24 -0
- package/dist/plugins/gpu.d.ts +3 -0
- package/dist/plugins/gpu.js +2430 -0
- package/dist/plugins/gpu.js.map +1 -0
- package/dist/plugins/i18n/index.d.ts +22 -0
- package/dist/plugins/i18n.d.ts +3 -0
- package/dist/plugins/i18n.js +37 -0
- package/dist/plugins/i18n.js.map +1 -0
- package/dist/plugins/index.d.ts +110 -0
- package/dist/plugins/keyboard/index.d.ts +15 -0
- package/dist/plugins/keyboard.d.ts +3 -0
- package/dist/plugins/keyboard.js +8 -0
- package/dist/plugins/keyboard.js.map +1 -0
- package/dist/plugins/latex/exports.d.ts +6 -0
- package/dist/plugins/latex/index.d.ts +8 -0
- package/dist/plugins/latex/parser.d.ts +6 -0
- package/dist/plugins/latex/renderer.d.ts +6 -0
- package/dist/plugins/latex/symbols.d.ts +28 -0
- package/dist/plugins/latex/types.d.ts +88 -0
- package/dist/plugins/lazy-load/exports.d.ts +6 -0
- package/dist/plugins/lazy-load/index.d.ts +6 -0
- package/dist/plugins/lazy-load/types.d.ts +121 -0
- package/dist/plugins/loading/index.d.ts +15 -0
- package/dist/plugins/loading.d.ts +3 -0
- package/dist/plugins/loading.js +7 -0
- package/dist/plugins/loading.js.map +1 -0
- package/dist/plugins/ml-integration/exports.d.ts +11 -0
- package/dist/plugins/ml-integration/index.d.ts +6 -0
- package/dist/plugins/ml-integration/native-algorithms.d.ts +69 -0
- package/dist/plugins/ml-integration/types.d.ts +74 -0
- package/dist/plugins/offscreen/exports.d.ts +6 -0
- package/dist/plugins/offscreen/index.d.ts +6 -0
- package/dist/plugins/offscreen/pool.d.ts +32 -0
- package/dist/plugins/offscreen/types.d.ts +35 -0
- package/dist/plugins/pattern-recognition/index.d.ts +6 -0
- package/dist/plugins/pattern-recognition/patterns.d.ts +3 -0
- package/dist/plugins/pattern-recognition/types.d.ts +245 -0
- package/dist/plugins/radar/index.d.ts +6 -0
- package/dist/plugins/radar/types.d.ts +40 -0
- package/dist/plugins/regression/algorithms.d.ts +6 -0
- package/dist/plugins/regression/index.d.ts +6 -0
- package/dist/plugins/regression/types.d.ts +261 -0
- package/dist/plugins/roi/exports.d.ts +6 -0
- package/dist/plugins/roi/index.d.ts +49 -0
- package/dist/plugins/roi/types.d.ts +60 -0
- package/dist/plugins/snapshot/index.d.ts +11 -0
- package/dist/plugins/snapshot/types.d.ts +38 -0
- package/dist/plugins/streaming/index.d.ts +32 -0
- package/dist/plugins/streaming.d.ts +3 -0
- package/dist/plugins/streaming.js +13 -0
- package/dist/plugins/streaming.js.map +1 -0
- package/dist/plugins/sync/index.d.ts +22 -0
- package/dist/plugins/sync.d.ts +3 -0
- package/dist/plugins/sync.js +261 -0
- package/dist/plugins/sync.js.map +1 -0
- package/dist/plugins/theme-editor/index.d.ts +18 -0
- package/dist/plugins/theme-editor.d.ts +3 -0
- package/dist/plugins/theme-editor.js +7 -0
- package/dist/plugins/theme-editor.js.map +1 -0
- package/dist/plugins/tools/delta-tool/index.d.ts +159 -0
- package/dist/plugins/tools/index.d.ts +21 -0
- package/dist/plugins/tools/peak-tool/index.d.ts +159 -0
- package/dist/plugins/tools/tooltip/TooltipManager.d.ts +213 -0
- package/dist/plugins/tools/tooltip/TooltipPositioner.d.ts +83 -0
- package/dist/plugins/tools/tooltip/TooltipRenderer.d.ts +64 -0
- package/dist/plugins/tools/tooltip/index.d.ts +18 -0
- package/dist/plugins/tools/tooltip/templates/AnnotationTemplate.d.ts +18 -0
- package/dist/plugins/tools/tooltip/templates/CrosshairTemplate.d.ts +39 -0
- package/dist/plugins/tools/tooltip/templates/DefaultTemplate.d.ts +30 -0
- package/dist/plugins/tools/tooltip/templates/HeatmapTemplate.d.ts +34 -0
- package/dist/plugins/tools/tooltip/templates/MinimalTemplate.d.ts +26 -0
- package/dist/plugins/tools/tooltip/templates/RangeTemplate.d.ts +18 -0
- package/dist/plugins/tools/tooltip/templates/ScientificTemplate.d.ts +34 -0
- package/dist/plugins/tools/tooltip/templates/index.d.ts +27 -0
- package/dist/plugins/tools/tooltip/themes.d.ts +48 -0
- package/dist/plugins/tools/tooltip/types.d.ts +396 -0
- package/dist/plugins/tools.d.ts +3 -0
- package/dist/plugins/tools.js +9 -0
- package/dist/plugins/tools.js.map +1 -0
- package/dist/plugins/types.d.ts +451 -0
- package/dist/plugins/video-recorder/exports.d.ts +6 -0
- package/dist/plugins/video-recorder/index.d.ts +6 -0
- package/dist/plugins/video-recorder/types.d.ts +55 -0
- package/dist/plugins/virtualization/exports.d.ts +6 -0
- package/dist/plugins/virtualization/index.d.ts +6 -0
- package/dist/plugins/virtualization/types.d.ts +48 -0
- package/dist/react/SciPlot.d.ts +60 -0
- package/dist/react/index.d.ts +5 -0
- package/dist/react/useSciPlot.d.ts +56 -0
- package/dist/renderer/BarRenderer.d.ts +14 -0
- package/dist/renderer/CandlestickRenderer.d.ts +12 -0
- package/dist/renderer/GaugeRenderer.d.ts +3 -0
- package/dist/renderer/HeatmapRenderer.d.ts +15 -0
- package/dist/renderer/NativeWebGLRenderer.d.ts +16 -0
- package/dist/renderer/PolarRenderer.d.ts +64 -0
- package/dist/renderer/RendererInterface.d.ts +70 -0
- package/dist/renderer/SankeyRenderer.d.ts +3 -0
- package/dist/renderer/WebGPURenderer.d.ts +16 -0
- package/dist/renderer/index.d.ts +13 -0
- package/dist/renderer/native/NativeWebGLRenderer.d.ts +31 -0
- package/dist/renderer/native/bufferStore.d.ts +11 -0
- package/dist/renderer/native/draw.d.ts +47 -0
- package/dist/renderer/native/programFactory.d.ts +3 -0
- package/dist/renderer/native/renderFrame.d.ts +3 -0
- package/dist/renderer/native/shaderSources.d.ts +6 -0
- package/dist/renderer/native/textureStore.d.ts +8 -0
- package/dist/renderer/native/types.d.ts +77 -0
- package/dist/renderer/native/utils.d.ts +31 -0
- package/dist/renderer/radar/RadarRenderer.d.ts +71 -0
- package/dist/renderer/radar/index.d.ts +10 -0
- package/dist/renderer/shaders.d.ts +77 -0
- package/dist/renderer/ternary/TernaryRenderer.d.ts +39 -0
- package/dist/renderer/ternary/index.d.ts +6 -0
- package/dist/renderer/ternary/types.d.ts +56 -0
- package/dist/scales/index.d.ts +54 -0
- package/dist/serialization/index.d.ts +153 -0
- package/dist/streaming/backpressure.d.ts +179 -0
- package/dist/streaming/index.d.ts +7 -0
- package/dist/streaming/mock.d.ts +12 -0
- package/dist/streaming/types.d.ts +57 -0
- package/dist/streaming/utils.d.ts +19 -0
- package/dist/streaming/websocket.d.ts +6 -0
- package/dist/testing/index.d.ts +225 -0
- package/dist/theme/colorSchemes.d.ts +56 -0
- package/dist/theme/index.d.ts +138 -0
- package/dist/types.d.ts +753 -0
- package/dist/utils-Dbro9-qM.js +254 -0
- package/dist/utils-Dbro9-qM.js.map +1 -0
- package/dist/velo-plot.d.ts +1 -0
- package/dist/velo-plot.full.d.ts +1 -0
- package/dist/velo-plot.full.js +5804 -0
- package/dist/velo-plot.full.js.map +1 -0
- package/dist/velo-plot.js +31 -0
- package/dist/velo-plot.js.map +1 -0
- package/dist/workers/downsample.d.ts +34 -0
- package/dist/workers/downsample.worker.d.ts +46 -0
- package/package.json +185 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { OrbitCamera, OrbitCameraOptions } from './camera/OrbitCamera';
|
|
2
|
+
import { OrbitControllerOptions } from './controls/OrbitController';
|
|
3
|
+
import { Axes3DOptions } from './Axes3D';
|
|
4
|
+
import { Tooltip3DOptions } from './Tooltip3D';
|
|
5
|
+
import { Renderer3DOptions, RenderStats3D, Renderer3DEventCallback } from './types';
|
|
6
|
+
import { CustomThemeOptions } from './colorThemes';
|
|
7
|
+
|
|
8
|
+
export interface ImpulseSeriesData {
|
|
9
|
+
/** X coordinates */
|
|
10
|
+
x: Float32Array;
|
|
11
|
+
/** Y coordinates (top of stems) */
|
|
12
|
+
y: Float32Array;
|
|
13
|
+
/** Z coordinates */
|
|
14
|
+
z: Float32Array;
|
|
15
|
+
/** Base Y value (default: 0) */
|
|
16
|
+
baseY?: number;
|
|
17
|
+
/** Color per point (RGB) */
|
|
18
|
+
colors?: Float32Array;
|
|
19
|
+
/** Single color for all stems */
|
|
20
|
+
color?: [number, number, number];
|
|
21
|
+
}
|
|
22
|
+
export interface Impulse3DRendererOptions extends Renderer3DOptions {
|
|
23
|
+
camera?: OrbitCameraOptions;
|
|
24
|
+
controls?: OrbitControllerOptions;
|
|
25
|
+
axes?: Axes3DOptions;
|
|
26
|
+
showAxes?: boolean;
|
|
27
|
+
/** Stem thickness (default: 0.03) */
|
|
28
|
+
stemWidth?: number;
|
|
29
|
+
/** Number of sides for cylinder (default: 6) */
|
|
30
|
+
stemSides?: number;
|
|
31
|
+
/** Show marker at top of stem (default: true) */
|
|
32
|
+
showMarkers?: boolean;
|
|
33
|
+
/** Marker size multiplier (default: 2) */
|
|
34
|
+
markerSize?: number;
|
|
35
|
+
/** Enable tooltips (default: true) */
|
|
36
|
+
enableTooltip?: boolean;
|
|
37
|
+
tooltip?: Tooltip3DOptions;
|
|
38
|
+
/** Color theme options */
|
|
39
|
+
theme?: CustomThemeOptions;
|
|
40
|
+
}
|
|
41
|
+
export declare class Impulse3DRenderer {
|
|
42
|
+
private canvas;
|
|
43
|
+
private gl;
|
|
44
|
+
private dpr;
|
|
45
|
+
private programs;
|
|
46
|
+
private camera;
|
|
47
|
+
private controller;
|
|
48
|
+
private axes;
|
|
49
|
+
private stemVao;
|
|
50
|
+
private stemPositionBuffer;
|
|
51
|
+
private stemNormalBuffer;
|
|
52
|
+
private stemColorBuffer;
|
|
53
|
+
private stemIndexBuffer;
|
|
54
|
+
private stemIndexCount;
|
|
55
|
+
private markerVao;
|
|
56
|
+
private markerPositionBuffer;
|
|
57
|
+
private markerNormalBuffer;
|
|
58
|
+
private markerColorBuffer;
|
|
59
|
+
private markerIndexBuffer;
|
|
60
|
+
private markerIndexCount;
|
|
61
|
+
private backgroundColor;
|
|
62
|
+
private showAxes;
|
|
63
|
+
private stemWidth;
|
|
64
|
+
private stemSides;
|
|
65
|
+
private showMarkers;
|
|
66
|
+
private markerSize;
|
|
67
|
+
private impulseData;
|
|
68
|
+
private bounds;
|
|
69
|
+
private animationFrameId;
|
|
70
|
+
private needsRender;
|
|
71
|
+
private eventListeners;
|
|
72
|
+
private tooltip;
|
|
73
|
+
private enableTooltip;
|
|
74
|
+
private lastHitIndex;
|
|
75
|
+
private boundHandleMouseMove?;
|
|
76
|
+
private boundHandleMouseLeave?;
|
|
77
|
+
private lastFrameTime;
|
|
78
|
+
private frameCount;
|
|
79
|
+
private fps;
|
|
80
|
+
private lastFpsUpdate;
|
|
81
|
+
private colorTheme;
|
|
82
|
+
constructor(options: Impulse3DRendererOptions);
|
|
83
|
+
private handleMouseMove;
|
|
84
|
+
private handleMouseLeave;
|
|
85
|
+
pickAtScreen(screenX: number, screenY: number): {
|
|
86
|
+
index: number;
|
|
87
|
+
distance: number;
|
|
88
|
+
point: [number, number, number];
|
|
89
|
+
} | null;
|
|
90
|
+
private initBuffers;
|
|
91
|
+
private handleResize;
|
|
92
|
+
resize(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Set impulse data
|
|
95
|
+
*/
|
|
96
|
+
setData(data: ImpulseSeriesData): void;
|
|
97
|
+
private buildGeometry;
|
|
98
|
+
private buildStemGeometry;
|
|
99
|
+
private buildMarkerGeometry;
|
|
100
|
+
private calculateBounds;
|
|
101
|
+
/**
|
|
102
|
+
* Fit camera to show all data
|
|
103
|
+
*/
|
|
104
|
+
fitToData(): void;
|
|
105
|
+
getCanvasSize(): {
|
|
106
|
+
width: number;
|
|
107
|
+
height: number;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Render a single frame
|
|
111
|
+
*/
|
|
112
|
+
render(): void;
|
|
113
|
+
private renderBuffers;
|
|
114
|
+
startRenderLoop(): void;
|
|
115
|
+
stopRenderLoop(): void;
|
|
116
|
+
getStats(): RenderStats3D;
|
|
117
|
+
getCamera(): OrbitCamera;
|
|
118
|
+
getAxisLabels(): import('./Axes3D').AxisLabel3D[];
|
|
119
|
+
getViewProjectionMatrix(): Float32Array;
|
|
120
|
+
projectToScreen(worldPos: [number, number, number]): {
|
|
121
|
+
x: number;
|
|
122
|
+
y: number;
|
|
123
|
+
visible: boolean;
|
|
124
|
+
};
|
|
125
|
+
exportImage(format?: 'png' | 'jpeg' | 'webp', quality?: number, transparent?: boolean): string;
|
|
126
|
+
on(event: string, callback: Renderer3DEventCallback): void;
|
|
127
|
+
off(event: string, callback: Renderer3DEventCallback): void;
|
|
128
|
+
private emitEvent;
|
|
129
|
+
destroy(): void;
|
|
130
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { OrbitCamera, OrbitCameraOptions } from './camera/OrbitCamera';
|
|
2
|
+
import { OrbitControllerOptions } from './controls/OrbitController';
|
|
3
|
+
import { Axes3DOptions } from './Axes3D';
|
|
4
|
+
import { Tooltip3DOptions } from './Tooltip3D';
|
|
5
|
+
import { Renderer3DOptions, RenderStats3D, Renderer3DEventCallback } from './types';
|
|
6
|
+
|
|
7
|
+
export interface Line3DData {
|
|
8
|
+
/** X coordinates */
|
|
9
|
+
x: Float32Array;
|
|
10
|
+
/** Y coordinates */
|
|
11
|
+
y: Float32Array;
|
|
12
|
+
/** Z coordinates */
|
|
13
|
+
z: Float32Array;
|
|
14
|
+
/** Color per vertex (optional, RGB) */
|
|
15
|
+
colors?: Float32Array;
|
|
16
|
+
/** Single line color [r, g, b] (used if colors not provided) */
|
|
17
|
+
color?: [number, number, number];
|
|
18
|
+
}
|
|
19
|
+
export interface Line3DRendererOptions extends Renderer3DOptions {
|
|
20
|
+
camera?: OrbitCameraOptions;
|
|
21
|
+
controls?: OrbitControllerOptions;
|
|
22
|
+
axes?: Axes3DOptions;
|
|
23
|
+
showAxes?: boolean;
|
|
24
|
+
/** Line thickness in world units (default: 0.05) */
|
|
25
|
+
lineWidth?: number;
|
|
26
|
+
/** Number of segments around the tube (default: 8) */
|
|
27
|
+
tubeSides?: number;
|
|
28
|
+
/** Enable tooltips (default: true) */
|
|
29
|
+
enableTooltip?: boolean;
|
|
30
|
+
tooltip?: Tooltip3DOptions;
|
|
31
|
+
}
|
|
32
|
+
export declare class Line3DRenderer {
|
|
33
|
+
private canvas;
|
|
34
|
+
private gl;
|
|
35
|
+
private dpr;
|
|
36
|
+
private programs;
|
|
37
|
+
private camera;
|
|
38
|
+
private controller;
|
|
39
|
+
private axes;
|
|
40
|
+
private vao;
|
|
41
|
+
private positionBuffer;
|
|
42
|
+
private normalBuffer;
|
|
43
|
+
private colorBuffer;
|
|
44
|
+
private indexBuffer;
|
|
45
|
+
private indexCount;
|
|
46
|
+
private backgroundColor;
|
|
47
|
+
private showAxes;
|
|
48
|
+
private lineWidth;
|
|
49
|
+
private tubeSides;
|
|
50
|
+
private lines;
|
|
51
|
+
private bounds;
|
|
52
|
+
private animationFrameId;
|
|
53
|
+
private needsRender;
|
|
54
|
+
private eventListeners;
|
|
55
|
+
private tooltip;
|
|
56
|
+
private enableTooltip;
|
|
57
|
+
private lastHitIndex;
|
|
58
|
+
private boundHandleMouseMove?;
|
|
59
|
+
private boundHandleMouseLeave?;
|
|
60
|
+
private lastFrameTime;
|
|
61
|
+
private frameCount;
|
|
62
|
+
private fps;
|
|
63
|
+
private lastFpsUpdate;
|
|
64
|
+
constructor(options: Line3DRendererOptions);
|
|
65
|
+
private handleMouseMove;
|
|
66
|
+
private handleMouseLeave;
|
|
67
|
+
pickAtScreen(screenX: number, screenY: number): {
|
|
68
|
+
seriesIndex: number;
|
|
69
|
+
pointIndex: number;
|
|
70
|
+
distance: number;
|
|
71
|
+
point: [number, number, number];
|
|
72
|
+
} | null;
|
|
73
|
+
private initBuffers;
|
|
74
|
+
private handleResize;
|
|
75
|
+
resize(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Set line data (single line or array of lines)
|
|
78
|
+
*/
|
|
79
|
+
setData(lines: Line3DData | Line3DData[]): void;
|
|
80
|
+
/**
|
|
81
|
+
* Add a single line
|
|
82
|
+
*/
|
|
83
|
+
addLine(line: Line3DData): void;
|
|
84
|
+
/**
|
|
85
|
+
* Clear all lines
|
|
86
|
+
*/
|
|
87
|
+
clearLines(): void;
|
|
88
|
+
private buildTubeGeometry;
|
|
89
|
+
private calculateBounds;
|
|
90
|
+
/**
|
|
91
|
+
* Fit camera to show all data
|
|
92
|
+
*/
|
|
93
|
+
fitToData(): void;
|
|
94
|
+
getCanvasSize(): {
|
|
95
|
+
width: number;
|
|
96
|
+
height: number;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Render a single frame
|
|
100
|
+
*/
|
|
101
|
+
render(): void;
|
|
102
|
+
startRenderLoop(): void;
|
|
103
|
+
stopRenderLoop(): void;
|
|
104
|
+
getStats(): RenderStats3D;
|
|
105
|
+
getCamera(): OrbitCamera;
|
|
106
|
+
getAxisLabels(): import('./Axes3D').AxisLabel3D[];
|
|
107
|
+
getViewProjectionMatrix(): Float32Array;
|
|
108
|
+
projectToScreen(worldPos: [number, number, number]): {
|
|
109
|
+
x: number;
|
|
110
|
+
y: number;
|
|
111
|
+
visible: boolean;
|
|
112
|
+
};
|
|
113
|
+
exportImage(format?: 'png' | 'jpeg' | 'webp', quality?: number, transparent?: boolean): string;
|
|
114
|
+
on(event: string, callback: Renderer3DEventCallback): void;
|
|
115
|
+
off(event: string, callback: Renderer3DEventCallback): void;
|
|
116
|
+
private emitEvent;
|
|
117
|
+
destroy(): void;
|
|
118
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { OrbitCameraOptions } from './camera/OrbitCamera';
|
|
2
|
+
import { OrbitControllerOptions } from './controls/OrbitController';
|
|
3
|
+
import { Axes3DOptions } from './Axes3D';
|
|
4
|
+
import { Renderer3DOptions, Renderer3DEventCallback } from './types';
|
|
5
|
+
import { CustomThemeOptions } from './colorThemes';
|
|
6
|
+
|
|
7
|
+
export interface PointCloudData {
|
|
8
|
+
/** Positions [x0, y0, z0, x1, y1, z1, ...] */
|
|
9
|
+
positions: Float32Array;
|
|
10
|
+
/** Colors per point [r0, g0, b0, ...] (optional) */
|
|
11
|
+
colors?: Float32Array;
|
|
12
|
+
/** Sizes per point (optional) */
|
|
13
|
+
sizes?: Float32Array;
|
|
14
|
+
}
|
|
15
|
+
export interface PointCloud3DRendererOptions extends Renderer3DOptions {
|
|
16
|
+
camera?: OrbitCameraOptions;
|
|
17
|
+
controls?: OrbitControllerOptions;
|
|
18
|
+
axes?: Axes3DOptions;
|
|
19
|
+
showAxes?: boolean;
|
|
20
|
+
/** Global point size multiplier (default: 2.0) */
|
|
21
|
+
pointSize?: number;
|
|
22
|
+
/** Use circular points instead of squares (default: true) */
|
|
23
|
+
circular?: boolean;
|
|
24
|
+
/** Global opacity (default: 1.0) */
|
|
25
|
+
opacity?: number;
|
|
26
|
+
/** Color theme options */
|
|
27
|
+
theme?: CustomThemeOptions;
|
|
28
|
+
/** Enable tooltips */
|
|
29
|
+
enableTooltip?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare class PointCloud3DRenderer {
|
|
32
|
+
private canvas;
|
|
33
|
+
private gl;
|
|
34
|
+
private dpr;
|
|
35
|
+
private programs;
|
|
36
|
+
private camera;
|
|
37
|
+
private controller;
|
|
38
|
+
private axes;
|
|
39
|
+
private vao;
|
|
40
|
+
private positionBuffer;
|
|
41
|
+
private colorBuffer;
|
|
42
|
+
private sizeBuffer;
|
|
43
|
+
private pointCount;
|
|
44
|
+
private backgroundColor;
|
|
45
|
+
private globalPointSize;
|
|
46
|
+
private circular;
|
|
47
|
+
private opacity;
|
|
48
|
+
private positions;
|
|
49
|
+
private bounds;
|
|
50
|
+
private animationFrameId;
|
|
51
|
+
private needsRender;
|
|
52
|
+
private eventListeners;
|
|
53
|
+
private tooltip;
|
|
54
|
+
private lastHitIndex;
|
|
55
|
+
private boundHandleMouseMove?;
|
|
56
|
+
private boundHandleMouseLeave?;
|
|
57
|
+
private colorTheme;
|
|
58
|
+
constructor(options: PointCloud3DRendererOptions);
|
|
59
|
+
private initBuffers;
|
|
60
|
+
setData(data: PointCloudData): void;
|
|
61
|
+
private updateBounds;
|
|
62
|
+
private generateThemeColors;
|
|
63
|
+
render(): void;
|
|
64
|
+
private startRenderLoop;
|
|
65
|
+
fitToData(): void;
|
|
66
|
+
private handleMouseMove;
|
|
67
|
+
private handleMouseLeave;
|
|
68
|
+
private handleResize;
|
|
69
|
+
private resize;
|
|
70
|
+
getCanvasSize(): {
|
|
71
|
+
width: number;
|
|
72
|
+
height: number;
|
|
73
|
+
};
|
|
74
|
+
getAxisLabels(): import('./Axes3D').AxisLabel3D[];
|
|
75
|
+
getViewProjectionMatrix(): import('./math').Mat4Type;
|
|
76
|
+
projectToScreen(worldPos: [number, number, number]): {
|
|
77
|
+
x: number;
|
|
78
|
+
y: number;
|
|
79
|
+
visible: boolean;
|
|
80
|
+
};
|
|
81
|
+
on(event: string, callback: Renderer3DEventCallback): void;
|
|
82
|
+
private emitEvent;
|
|
83
|
+
destroy(): void;
|
|
84
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 3D Raycasting utilities for picking/selection.
|
|
3
|
+
* Implements ray-sphere intersection for bubble selection.
|
|
4
|
+
*/
|
|
5
|
+
export interface Ray3D {
|
|
6
|
+
origin: [number, number, number];
|
|
7
|
+
direction: [number, number, number];
|
|
8
|
+
}
|
|
9
|
+
export interface HitResult {
|
|
10
|
+
index: number;
|
|
11
|
+
distance: number;
|
|
12
|
+
point: [number, number, number];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Creates a ray from screen coordinates through the scene.
|
|
16
|
+
* @param screenX Screen X coordinate (pixels from left)
|
|
17
|
+
* @param screenY Screen Y coordinate (pixels from top)
|
|
18
|
+
* @param canvasWidth Canvas width in pixels
|
|
19
|
+
* @param canvasHeight Canvas height in pixels
|
|
20
|
+
* @param viewProjectionMatrix Combined view-projection matrix
|
|
21
|
+
* @returns Ray in world space
|
|
22
|
+
*/
|
|
23
|
+
export declare function createRayFromScreen(screenX: number, screenY: number, canvasWidth: number, canvasHeight: number, viewProjectionMatrix: Float32Array): Ray3D;
|
|
24
|
+
/**
|
|
25
|
+
* Test ray-sphere intersection.
|
|
26
|
+
* @param ray The ray to test
|
|
27
|
+
* @param center Sphere center
|
|
28
|
+
* @param radius Sphere radius
|
|
29
|
+
* @returns Distance to intersection, or null if no hit
|
|
30
|
+
*/
|
|
31
|
+
export declare function raySphereIntersection(ray: Ray3D, center: [number, number, number], radius: number): number | null;
|
|
32
|
+
/**
|
|
33
|
+
* Find the closest bubble hit by a ray.
|
|
34
|
+
* @param ray The ray to test
|
|
35
|
+
* @param positions Float32Array of positions (x,y,z interleaved)
|
|
36
|
+
* @param scales Float32Array of scales (radii)
|
|
37
|
+
* @param baseRadius Base radius multiplier
|
|
38
|
+
* @returns Hit result or null if no hit
|
|
39
|
+
*/
|
|
40
|
+
export declare function pickBubble(ray: Ray3D, positions: Float32Array, scales: Float32Array, baseRadius?: number): HitResult | null;
|
|
41
|
+
/**
|
|
42
|
+
* Batch pick bubbles - returns all bubbles within a tolerance of the ray.
|
|
43
|
+
* More efficient for hover detection.
|
|
44
|
+
*/
|
|
45
|
+
export declare function pickBubblesInRange(ray: Ray3D, positions: Float32Array, scales: Float32Array, baseRadius?: number, maxResults?: number): HitResult[];
|
|
46
|
+
/**
|
|
47
|
+
* Calculate distance from a point to a ray (for approximate/fast picking).
|
|
48
|
+
*/
|
|
49
|
+
export declare function pointToRayDistance(ray: Ray3D, point: [number, number, number]): number;
|
|
50
|
+
/**
|
|
51
|
+
* Result of a surface mesh hit test
|
|
52
|
+
*/
|
|
53
|
+
export interface SurfaceHitResult {
|
|
54
|
+
/** Distance from ray origin to hit point */
|
|
55
|
+
distance: number;
|
|
56
|
+
/** Hit point in world coordinates */
|
|
57
|
+
point: [number, number, number];
|
|
58
|
+
/** Grid row and column indices */
|
|
59
|
+
row: number;
|
|
60
|
+
col: number;
|
|
61
|
+
/** Interpolated Y value at hit point */
|
|
62
|
+
yValue: number;
|
|
63
|
+
/** Barycentric coordinates for interpolation */
|
|
64
|
+
baryU: number;
|
|
65
|
+
baryV: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Ray-triangle intersection using Möller-Trumbore algorithm.
|
|
69
|
+
* Returns distance to intersection or null if no hit.
|
|
70
|
+
*/
|
|
71
|
+
export declare function rayTriangleIntersection(ray: Ray3D, v0: [number, number, number], v1: [number, number, number], v2: [number, number, number]): {
|
|
72
|
+
distance: number;
|
|
73
|
+
u: number;
|
|
74
|
+
v: number;
|
|
75
|
+
} | null;
|
|
76
|
+
/**
|
|
77
|
+
* Pick a point on a surface mesh grid.
|
|
78
|
+
* Tests ray against all triangles in the grid.
|
|
79
|
+
*
|
|
80
|
+
* @param ray The picking ray
|
|
81
|
+
* @param xValues X coordinates array (columns)
|
|
82
|
+
* @param zValues Z coordinates array (rows)
|
|
83
|
+
* @param yValues Y values array (row-major: row * cols + col)
|
|
84
|
+
* @returns Hit result or null if no intersection
|
|
85
|
+
*/
|
|
86
|
+
export declare function pickSurfaceMesh(ray: Ray3D, xValues: Float32Array, zValues: Float32Array, yValues: Float32Array): SurfaceHitResult | null;
|
|
87
|
+
/**
|
|
88
|
+
* Calculate the shortest distance between a ray and a line segment.
|
|
89
|
+
* Useful for picking lines and thin tubes.
|
|
90
|
+
*/
|
|
91
|
+
export declare function raySegmentDistance(ray: Ray3D, p0: [number, number, number], p1: [number, number, number]): {
|
|
92
|
+
distance: number;
|
|
93
|
+
pointOnRay: [number, number, number];
|
|
94
|
+
pointOnSegment: [number, number, number];
|
|
95
|
+
t: number;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Pick a series index and point index from a 3D line.
|
|
99
|
+
*/
|
|
100
|
+
export declare function pickLine(ray: Ray3D, lines: {
|
|
101
|
+
x: Float32Array;
|
|
102
|
+
y: Float32Array;
|
|
103
|
+
z: Float32Array;
|
|
104
|
+
}[], threshold?: number): {
|
|
105
|
+
seriesIndex: number;
|
|
106
|
+
pointIndex: number;
|
|
107
|
+
distance: number;
|
|
108
|
+
point: [number, number, number];
|
|
109
|
+
} | null;
|
|
110
|
+
/**
|
|
111
|
+
* Pick a point from an impulse/stem series.
|
|
112
|
+
*/
|
|
113
|
+
export declare function pickImpulse(ray: Ray3D, data: {
|
|
114
|
+
x: Float32Array;
|
|
115
|
+
y: Float32Array;
|
|
116
|
+
z: Float32Array;
|
|
117
|
+
baseY?: number;
|
|
118
|
+
}, threshold?: number): {
|
|
119
|
+
index: number;
|
|
120
|
+
distance: number;
|
|
121
|
+
point: [number, number, number];
|
|
122
|
+
} | null;
|
|
123
|
+
/**
|
|
124
|
+
* Pick a series index and point index from a 3D area (curtain).
|
|
125
|
+
* Checks the top line of the area.
|
|
126
|
+
*/
|
|
127
|
+
export declare function pickArea(ray: Ray3D, areas: {
|
|
128
|
+
x: Float32Array;
|
|
129
|
+
y: Float32Array;
|
|
130
|
+
z: Float32Array;
|
|
131
|
+
baseY?: number;
|
|
132
|
+
}[], threshold?: number): {
|
|
133
|
+
seriesIndex: number;
|
|
134
|
+
pointIndex: number;
|
|
135
|
+
distance: number;
|
|
136
|
+
point: [number, number, number];
|
|
137
|
+
} | null;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { OrbitCameraOptions } from './camera/OrbitCamera';
|
|
2
|
+
import { OrbitControllerOptions } from './controls/OrbitController';
|
|
3
|
+
import { Axes3DOptions } from './Axes3D';
|
|
4
|
+
import { Renderer3DOptions, Renderer3DEventCallback } from './types';
|
|
5
|
+
import { CustomThemeOptions } from './colorThemes';
|
|
6
|
+
|
|
7
|
+
export interface RibbonSeriesData {
|
|
8
|
+
/** X coordinates */
|
|
9
|
+
xValues: Float32Array;
|
|
10
|
+
/** Y coordinates */
|
|
11
|
+
yValues: Float32Array;
|
|
12
|
+
/** Z center coordinate of this ribbon */
|
|
13
|
+
z: number;
|
|
14
|
+
/** Width of the ribbon along the Z axis (default 0.5) */
|
|
15
|
+
width?: number;
|
|
16
|
+
/** Color of the ribbon (default: [0.3, 0.8, 1.0]) */
|
|
17
|
+
color?: [number, number, number];
|
|
18
|
+
}
|
|
19
|
+
export interface Ribbon3DRendererOptions extends Renderer3DOptions {
|
|
20
|
+
camera?: OrbitCameraOptions;
|
|
21
|
+
controls?: OrbitControllerOptions;
|
|
22
|
+
axes?: Axes3DOptions;
|
|
23
|
+
showAxes?: boolean;
|
|
24
|
+
/** Global opacity (default: 0.9) */
|
|
25
|
+
opacity?: number;
|
|
26
|
+
/** Enable tooltips */
|
|
27
|
+
enableTooltip?: boolean;
|
|
28
|
+
/** Color theme options */
|
|
29
|
+
theme?: CustomThemeOptions;
|
|
30
|
+
}
|
|
31
|
+
export declare class Ribbon3DRenderer {
|
|
32
|
+
private canvas;
|
|
33
|
+
private gl;
|
|
34
|
+
private dpr;
|
|
35
|
+
private programs;
|
|
36
|
+
private camera;
|
|
37
|
+
private controller;
|
|
38
|
+
private axes;
|
|
39
|
+
private vao;
|
|
40
|
+
private positionBuffer;
|
|
41
|
+
private normalBuffer;
|
|
42
|
+
private colorBuffer;
|
|
43
|
+
private indexBuffer;
|
|
44
|
+
private indexCount;
|
|
45
|
+
private backgroundColor;
|
|
46
|
+
private opacity;
|
|
47
|
+
private series;
|
|
48
|
+
private bounds;
|
|
49
|
+
private animationFrameId;
|
|
50
|
+
private needsRender;
|
|
51
|
+
private eventListeners;
|
|
52
|
+
private hoveredSeriesIndex;
|
|
53
|
+
private colorTheme;
|
|
54
|
+
private tooltip;
|
|
55
|
+
private lastHitIndex;
|
|
56
|
+
private boundHandleMouseMove?;
|
|
57
|
+
private boundHandleMouseLeave?;
|
|
58
|
+
constructor(options: Ribbon3DRendererOptions);
|
|
59
|
+
setData(series: RibbonSeriesData[]): void;
|
|
60
|
+
private updateBounds;
|
|
61
|
+
private updateGeometry;
|
|
62
|
+
render(): void;
|
|
63
|
+
private startRenderLoop;
|
|
64
|
+
fitToData(): void;
|
|
65
|
+
private handleMouseMove;
|
|
66
|
+
private handleMouseLeave;
|
|
67
|
+
private handleResize;
|
|
68
|
+
private resize;
|
|
69
|
+
getCanvasSize(): {
|
|
70
|
+
width: number;
|
|
71
|
+
height: number;
|
|
72
|
+
};
|
|
73
|
+
getAxisLabels(): import('./Axes3D').AxisLabel3D[];
|
|
74
|
+
getViewProjectionMatrix(): import('./math').Mat4Type;
|
|
75
|
+
projectToScreen(worldPos: [number, number, number]): {
|
|
76
|
+
x: number;
|
|
77
|
+
y: number;
|
|
78
|
+
visible: boolean;
|
|
79
|
+
};
|
|
80
|
+
on(event: string, callback: Renderer3DEventCallback): void;
|
|
81
|
+
private emitEvent;
|
|
82
|
+
destroy(): void;
|
|
83
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { OrbitCameraOptions } from './camera/OrbitCamera';
|
|
2
|
+
import { OrbitControllerOptions } from './controls/OrbitController';
|
|
3
|
+
import { Axes3DOptions } from './Axes3D';
|
|
4
|
+
import { Renderer3DOptions, Renderer3DEventCallback } from './types';
|
|
5
|
+
import { CustomThemeOptions } from './colorThemes';
|
|
6
|
+
|
|
7
|
+
export interface SurfaceBarData {
|
|
8
|
+
/** Number of rows in the grid (Z axis) */
|
|
9
|
+
rows: number;
|
|
10
|
+
/** Number of columns in the grid (X axis) */
|
|
11
|
+
cols: number;
|
|
12
|
+
/** Height values for each bar [v_0_0, v_0_1, ..., v_r-1_c-1] */
|
|
13
|
+
heights: Float32Array;
|
|
14
|
+
/** Colors per bar [r0, g0, b0, ...] (optional) */
|
|
15
|
+
colors?: Float32Array;
|
|
16
|
+
/** Origin point of the grid [x, y, z] (default [0,0,0]) */
|
|
17
|
+
origin?: [number, number, number];
|
|
18
|
+
/** Spacing between bars [dx, dz] (default [1,1]) */
|
|
19
|
+
spacing?: [number, number];
|
|
20
|
+
}
|
|
21
|
+
export interface SurfaceBar3DRendererOptions extends Renderer3DOptions {
|
|
22
|
+
camera?: OrbitCameraOptions;
|
|
23
|
+
controls?: OrbitControllerOptions;
|
|
24
|
+
axes?: Axes3DOptions;
|
|
25
|
+
showAxes?: boolean;
|
|
26
|
+
/** Opacity (default: 1.0) */
|
|
27
|
+
opacity?: number;
|
|
28
|
+
/** Bar scale (default: 1.0) */
|
|
29
|
+
barScale?: number;
|
|
30
|
+
/** Color theme options */
|
|
31
|
+
theme?: CustomThemeOptions;
|
|
32
|
+
/** Enable tooltips */
|
|
33
|
+
enableTooltip?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare class SurfaceBar3DRenderer {
|
|
36
|
+
private canvas;
|
|
37
|
+
private gl;
|
|
38
|
+
private dpr;
|
|
39
|
+
private programs;
|
|
40
|
+
private camera;
|
|
41
|
+
private controller;
|
|
42
|
+
private axes;
|
|
43
|
+
private vao;
|
|
44
|
+
private positionBuffer;
|
|
45
|
+
private indexBuffer;
|
|
46
|
+
private indexCount;
|
|
47
|
+
private instancePosBuffer;
|
|
48
|
+
private heightBuffer;
|
|
49
|
+
private colorBuffer;
|
|
50
|
+
private barCount;
|
|
51
|
+
private backgroundColor;
|
|
52
|
+
private barWidth;
|
|
53
|
+
private barDepth;
|
|
54
|
+
private barScale;
|
|
55
|
+
private opacity;
|
|
56
|
+
private data;
|
|
57
|
+
private bounds;
|
|
58
|
+
private animationFrameId;
|
|
59
|
+
private needsRender;
|
|
60
|
+
private eventListeners;
|
|
61
|
+
private tooltip;
|
|
62
|
+
private lastHitIndex;
|
|
63
|
+
private boundHandleMouseMove?;
|
|
64
|
+
private boundHandleMouseLeave?;
|
|
65
|
+
private colorTheme;
|
|
66
|
+
constructor(options: SurfaceBar3DRendererOptions);
|
|
67
|
+
private initBuffers;
|
|
68
|
+
setData(data: SurfaceBarData): void;
|
|
69
|
+
private updateBounds;
|
|
70
|
+
private generateThemeColors;
|
|
71
|
+
render(): void;
|
|
72
|
+
private startRenderLoop;
|
|
73
|
+
fitToData(): void;
|
|
74
|
+
private handleMouseMove;
|
|
75
|
+
private handleMouseLeave;
|
|
76
|
+
private handleResize;
|
|
77
|
+
private resize;
|
|
78
|
+
getCanvasSize(): {
|
|
79
|
+
width: number;
|
|
80
|
+
height: number;
|
|
81
|
+
};
|
|
82
|
+
getAxisLabels(): import('./Axes3D').AxisLabel3D[];
|
|
83
|
+
getViewProjectionMatrix(): import('./math').Mat4Type;
|
|
84
|
+
projectToScreen(worldPos: [number, number, number]): {
|
|
85
|
+
x: number;
|
|
86
|
+
y: number;
|
|
87
|
+
visible: boolean;
|
|
88
|
+
};
|
|
89
|
+
on(event: string, callback: Renderer3DEventCallback): void;
|
|
90
|
+
private emitEvent;
|
|
91
|
+
destroy(): void;
|
|
92
|
+
}
|