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,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sci Plot - Core Bundle
|
|
3
|
+
*
|
|
4
|
+
* Minimal bundle containing only the essential features for 2D charts.
|
|
5
|
+
* Achieve ~60KB gzipped by excluding optional plugins.
|
|
6
|
+
*/
|
|
7
|
+
export { createChart } from './core/Chart';
|
|
8
|
+
export { Series } from './core/Series';
|
|
9
|
+
export { EventEmitter } from './core/EventEmitter';
|
|
10
|
+
export type { Chart, ChartOptions, ExportOptions } from './core/Chart';
|
|
11
|
+
export type { AxisOptions, SeriesOptions, SeriesData, SeriesStyle, ZoomOptions, Point, Bounds, Range, ScaleType, SeriesType, } from './types';
|
|
12
|
+
export { LinearScale, LogScale, createScale } from './scales';
|
|
13
|
+
export type { Scale } from './scales';
|
|
14
|
+
export { NativeWebGLRenderer, parseColor, createRenderer, createNativeRenderer, } from './renderer';
|
|
15
|
+
export type { IWebGLRenderer, SeriesRenderData, RenderOptions } from './renderer';
|
|
16
|
+
export { DARK_THEME, LIGHT_THEME, DEFAULT_THEME, createTheme, getThemeByName, } from './theme';
|
|
17
|
+
export type { ChartTheme, GridTheme, AxisTheme } from './theme';
|
|
18
|
+
export { AnimationEngine, easings, DEFAULT_ANIMATION_CONFIG, getSharedAnimationEngine, } from './core/animation';
|
|
19
|
+
export { createPluginContext, PluginManagerImpl, getPluginRegistry, registerPlugin, definePlugin, createPlugin, createConfigurablePlugin, } from './plugins';
|
|
20
|
+
export type { PluginManifest, PluginContext, ChartPlugin, PluginFactory, PluginManager, } from './plugins';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sci Plot - High-Performance Scientific Charting
|
|
3
|
+
*
|
|
4
|
+
* A WebGL-based charting engine designed for scientific data visualization
|
|
5
|
+
* and high-performance rendering of large datasets.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - 10⁵–10⁶ points at 60 FPS
|
|
9
|
+
* - Zoom/pan via GPU uniforms (no buffer recreation)
|
|
10
|
+
* - Scientific precision with Float32/Float64 arrays
|
|
11
|
+
* - Data analysis utilities (peak detection, cycle detection, etc.)
|
|
12
|
+
*
|
|
13
|
+
* @packageDocumentation
|
|
14
|
+
*/
|
|
15
|
+
export { createChart } from './core/Chart';
|
|
16
|
+
export { Series } from './core/Series';
|
|
17
|
+
export { EventEmitter } from './core/EventEmitter';
|
|
18
|
+
export type { Chart, ChartOptions, ExportOptions } from './core/Chart';
|
|
19
|
+
export { AnimationEngine, easings, DEFAULT_ANIMATION_CONFIG, mergeAnimationConfig, getSharedAnimationEngine, } from './core/animation';
|
|
20
|
+
export type { AnimationOptions, AnimationHandle, BoundsAnimation, ChartAnimationConfig, EasingFunction, EasingName, } from './core/animation';
|
|
21
|
+
export { ChartInitQueue, getChartInitQueue, queueChartInit, waitForAnimations, resetChartQueue, } from './core/ChartInitQueue';
|
|
22
|
+
export { AnnotationManager } from './core/annotations';
|
|
23
|
+
export type { Annotation, AnnotationType, HorizontalLineAnnotation, VerticalLineAnnotation, RectangleAnnotation, BandAnnotation, TextAnnotation, ArrowAnnotation, } from './core/annotations';
|
|
24
|
+
export type { AxisOptions, SeriesOptions, SeriesData, SeriesStyle, SeriesUpdateData, ZoomOptions, CursorOptions, ChartEventMap, Point, Bounds, Range, ScaleType, SeriesType, StepMode, ErrorBarStyle, ErrorBarDirection, ScatterSymbol, DeltaMeasurement, PeakMeasurement, PolarMode, PolarData, PolarStyle, PolarOptions, TernaryData, TernaryStyle, TernaryOptions, } from './types';
|
|
25
|
+
export { LinearScale, LogScale, createScale, type Scale } from './scales';
|
|
26
|
+
export { NativeWebGLRenderer, interleaveData, parseColor, createRenderer, createNativeRenderer, WebGPURenderer, type WebGPURendererOptions, type IWebGLRenderer, type SeriesRenderData, type RenderOptions, } from './renderer';
|
|
27
|
+
export { DARK_THEME, LIGHT_THEME, MIDNIGHT_THEME, ELECTROCHEM_THEME, DEFAULT_THEME, createTheme, getThemeByName, type ChartTheme, type GridTheme, type AxisTheme, type LegendTheme, type CursorTheme, } from './theme';
|
|
28
|
+
export { DEFAULT_LAYOUT, mergeLayoutOptions, type LayoutOptions, type LegendOptions, type CrosshairOptions, type CrosshairValueMode, type CornerPosition, type ChartTitleOptions, type AxisLayoutOptions, type ChartMargins, type PlotAreaPadding, type LegendPositionPreset, type ToolbarPositionPreset, type ToolbarPosition, } from './core/layout';
|
|
29
|
+
export { OverlayRenderer, } from './core/OverlayRenderer';
|
|
30
|
+
export { SERIALIZATION_VERSION, encodeFloat32Array, decodeFloat32Array, compressString, decompressString, stateToUrlHash, urlHashToState, validateChartState, StateHistory, type SerializedAxis, type SerializedSeries, type ChartState, type SerializeOptions, type DeserializeOptions, type StateSnapshot, } from './serialization';
|
|
31
|
+
export type { PlotArea, CursorState, } from './types';
|
|
32
|
+
export { TooltipManager, TOOLTIP_THEMES, getTooltipThemeForChartTheme, } from './plugins/tools/tooltip';
|
|
33
|
+
export type { TooltipData, TooltipType, TooltipTheme, TooltipOptions, TooltipTemplate, DataPointTooltip, CrosshairTooltip, HeatmapTooltip, } from './plugins/tools/tooltip';
|
|
34
|
+
export { lttbDownsample, minMaxDownsample, calculateTargetPoints, } from './workers/downsample';
|
|
35
|
+
export { formatWithPrefix, formatValue, formatScientific, getBestPrefix, detectCycles, generateCycleColors, detectPeaks, validateData, calculateStats, movingAverage, downsampleLTTB, subtractBaseline, integrate, derivative, cumulativeIntegral, calculateR2, solveLinearSystem, fft, ifft, analyzeSpectrum, powerSpectrum, dominantFrequency, analyzeComplexSpectrum, fftFromComplexInput, hanningWindow, hammingWindow, blackmanWindow, nextPowerOf2, complexToArrays, arraysToComplex, ifftFromArrays, ifftComplex, getPositiveFrequencies, lowPassFilter, highPassFilter, bandPassFilter, bandStopFilter, butterworth, exponentialMovingAverage, gaussianSmooth, savitzkyGolay, medianFilter, singleFrequencyFilter, crossCorrelation, autoCorrelation, detectAnomalies, trapezoidalIntegration, simpsonsIntegration, tTest, type CycleInfo, type Peak, type PrefixInfo, type ValidationResult, type DataStats, type FFTResult, type ComplexFFTResult, type PowerSpectrumResult, type FilterOptions, type ButterworthOptions, type SingleFrequencyFilterOptions, } from './plugins/analysis';
|
|
36
|
+
export { createWebSocketStream, connectStreamToChart, createMessageParser, createMockStream, type WebSocketStream, type WebSocketStreamConfig, type DataPoint, type StreamStats, type WebSocketState, } from './streaming';
|
|
37
|
+
export { SciPlot, useSciPlot, type SciPlotProps, type SciPlotRef, type SciPlotSeries, type UseSciPlotOptions, type UseSciPlotReturn, } from './react';
|
|
38
|
+
export { WebGPUBackend, WebGLBackend, GpuRenderer, createGpuRenderer, SeriesAdapter, parseColorToRGBA, PipelineCache, BaseBufferStore, BaseTextureStore, GpuBenchmark, GpuCompute, } from './gpu';
|
|
39
|
+
export type { GpuBackendType, RGBA, GpuViewport, GpuBackend, BufferId, TextureId, FrameUniforms, DrawKind, DrawCall, DrawList, PointSymbol, SeriesData as GpuSeriesData, Bounds as GpuBounds, GpuRenderOptions, GpuRendererOptions, BackendPreference, WebGPUBackendOptions, BenchmarkResult, BenchmarkOptions, DataStats as GpuDataStats, DataBounds as GpuDataBounds, Peak as GpuPeak, GpuComputeOptions, } from './gpu';
|
|
40
|
+
export { setGlobalLocale, getGlobalLocale, getLocale, registerLocale, createLocaleFormatter, LOCALE_EN_US, LOCALE_ES_ES, LOCALE_DE_DE, LOCALE_FR_FR, LOCALE_PT_BR, LOCALE_ZH_CN, LOCALE_JA_JP, type LocaleConfig, type LocaleFormatter, } from './core/locale';
|
|
41
|
+
export { KeyBindingManager, DEFAULT_KEY_BINDINGS, createKeyBinding, parseShortcut, type KeyAction, type KeyBinding, type KeyBindingCallbacks, type KeyBindingManagerOptions, } from './core/keybindings';
|
|
42
|
+
export { ClipboardManager, getClipboardManager, copyToClipboard, formatData, type ClipboardFormat, type ClipboardOptions, type ClipboardDataPoint, type ClipboardResult, } from './core/clipboard';
|
|
43
|
+
export { DebugOverlay, createDebugOverlay, enableDebugMode, type DebugStats, type DebugOverlayOptions, } from './core/debug';
|
|
44
|
+
export { LoadingIndicator, createLoadingIndicator, showLoading, showProgress, type LoadingIndicatorType, type LoadingIndicatorOptions, type LoadingState, } from './core/loading';
|
|
45
|
+
export { generateSineWave, generateSquareWave, generateSawtoothWave, generateTriangleWave, generateRandomData, generateCVData, generateNyquistData, benchmarkRender, assertPerformance, createSnapshot, compareSnapshots, waitForFrames, waitFor, type MockChartOptions, type WaveformOptions, type RandomDataOptions, type BenchmarkResult as TestBenchmarkResult, type BenchmarkOptions as TestBenchmarkOptions, type SnapshotOptions, type ChartSnapshot, } from './testing';
|
|
46
|
+
export { ChartGroup, createChartGroup, linkCharts, createMasterSlave, type SyncAxis, type SyncOptions, type ChartLike, type SyncEvent, } from './core/sync';
|
|
47
|
+
export { ThemeEditor, createThemeEditor, getPresetTheme, getPresetNames, THEME_PRESETS, type EditorTheme, type ThemeEditorOptions, type ThemePreset, type ColorGroup, type ColorProperty, } from './core/theme-editor';
|
|
48
|
+
export { BackpressureManager, CircularBuffer, createBackpressureManager, createRealtimeBackpressure, createLosslessBackpressure, type OverflowStrategy, type BackpressureConfig, type PressureStats, type BufferHealth, } from './streaming/backpressure';
|
|
49
|
+
export { sma, ema, wma, dema, tema, rsi, macd, stochastic, roc, momentum, bollingerBands, atr, standardDeviation, vwap, obv, adx, aroon, percentChange, cumsum, normalize, type IndicatorResult, type OHLCData, } from './plugins/analysis';
|
|
50
|
+
export { createPluginContext, PluginManagerImpl, getPluginRegistry, registerPlugin, definePlugin, defineAndRegister, loadPlugin, listPluginsByCategory, validateManifest, checkPluginCompatibility, createPlugin, createConfigurablePlugin, CrosshairPlugin, StatsPlugin, WatermarkPlugin, GridHighlightPlugin, DataLoggerPlugin, DirectionIndicatorPlugin, Plugin3D, PluginGpu, PluginTools, PluginAnalysis, PluginAnnotations, PluginStreaming, PluginThemeEditor, PluginI18n, PluginKeyboard, PluginClipboard, PluginSync, PluginDebug, PluginLoading, PluginDataExport, PluginContextMenu, PluginAnomalyDetection, PluginMLIntegration, PluginPatternRecognition, PluginRegression, PluginRadar, PluginSnapshot, PluginDataTransform, PluginLaTeX, PluginDragEdit, PluginCaching, PluginLazyLoad, PluginBrokenAxis, PluginVideoRecorder, PluginOffscreen, PluginVirtualization, PluginROI, PluginForecasting, BuiltinPlugins, } from './plugins';
|
|
51
|
+
export type { PluginVersion, PluginCapability, PluginManifest, PluginContext, RenderContext, CoordinateContext, DataContext, UIContext as PluginUIContext, EventContext as PluginEventContext, PluginStorage, PluginLogger, OverlayOptions, NotificationOptions, PickResult, BeforeRenderEvent, AfterRenderEvent, InteractionEvent, ViewChangeEvent, SeriesChangeEvent, DataUpdateEvent, ChartPlugin, PluginFactory, TypedPlugin, PluginManager, PluginRegistry, PluginRegistryEntry, ContextDependencies, CrosshairPluginConfig, StatsPluginConfig, WatermarkPluginConfig, GridHighlightConfig, DataLoggerConfig, DirectionIndicatorConfig, Plugin3DConfig, PluginGpuConfig, PluginToolsConfig, PluginAnalysisConfig, PluginAnnotationsConfig, PluginStreamingConfig, PluginThemeEditorConfig, PluginI18nConfig, PluginKeyboardConfig, PluginClipboardConfig, PluginSyncConfig, PluginDebugConfig, PluginLoadingConfig, PluginDataExportConfig, PluginContextMenuConfig, PluginAnomalyDetectionConfig, PluginMLIntegrationConfig, PluginPatternRecognitionConfig, PluginRegressionConfig, PluginRadarConfig, PluginSnapshotConfig, PluginDataTransformConfig, PluginLaTeXConfig, PluginDragEditConfig, PluginCachingConfig, PluginLazyLoadConfig, PluginBrokenAxisConfig, PluginVideoRecorderConfig, PluginOffscreenConfig, PluginVirtualizationConfig, PluginROIConfig, PluginForecastingConfig, RegressionAPI, RegressionResult, RegressionData, MLIntegrationAPI, MLModelAPI, PredictionResult, VisualizationConfig, DataTransformAPI, TransformOp, TransformType, RadarAPI, RadarSeriesData, RadarPoint, LaTeXPluginAPI, LaTeXDimensions, DragEditAPI, DragEditEvent, CachingAPI, CacheStats, LazyLoadAPI, DataProvider, OffscreenAPI, OffscreenStats, OffscreenMode, OffscreenTransferMode, OffscreenFallbackMode, VirtualizationAPI, VirtualizationStats, VirtualizationMode, VirtualizationStrategy, RoiAPI, RoiRegion, RoiPoint, RoiMaskResult, RoiTool, RoiEvent, RoiSelectedEvent, BrokenAxisAPI, AxisBreak, VideoRecorderAPI, VideoRecorderOptions, SnapshotExportAPI as SnapshotAPI, SnapshotExportOptions, SnapshotResolution, SnapshotFormat, AnomalyDetectionResult, AnomalyPoint, AnomalyMethod, PatternRecognitionAPI, PatternMatch, PatternDetectionResult, ForecastingAPI, ForecastingOptions, ForecastingResult, ForecastingParams } from './plugins';
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Bounds } from '../types';
|
|
2
|
+
import { Scale } from '../scales';
|
|
3
|
+
|
|
4
|
+
export interface OverlayTheme {
|
|
5
|
+
/** Background color (usually transparent) */
|
|
6
|
+
background: string;
|
|
7
|
+
/** Axis line color */
|
|
8
|
+
axisColor: string;
|
|
9
|
+
/** Tick mark color */
|
|
10
|
+
tickColor: string;
|
|
11
|
+
/** Label text color */
|
|
12
|
+
labelColor: string;
|
|
13
|
+
/** Grid line color */
|
|
14
|
+
gridColor: string;
|
|
15
|
+
/** Cursor line color */
|
|
16
|
+
cursorColor: string;
|
|
17
|
+
/** Font family */
|
|
18
|
+
fontFamily: string;
|
|
19
|
+
/** Base font size */
|
|
20
|
+
fontSize: number;
|
|
21
|
+
}
|
|
22
|
+
export declare const DEFAULT_THEME: OverlayTheme;
|
|
23
|
+
export interface AxisConfig {
|
|
24
|
+
/** Axis label (e.g., 'E / V') */
|
|
25
|
+
label?: string;
|
|
26
|
+
/** Tick values to draw */
|
|
27
|
+
ticks?: number[];
|
|
28
|
+
/** Format function for tick labels */
|
|
29
|
+
tickFormat?: (value: number) => string;
|
|
30
|
+
/** Show grid lines */
|
|
31
|
+
showGrid?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface CursorState {
|
|
34
|
+
/** Cursor enabled */
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
/** Cursor X position in pixels */
|
|
37
|
+
x: number;
|
|
38
|
+
/** Cursor Y position in pixels */
|
|
39
|
+
y: number;
|
|
40
|
+
/** Show crosshair */
|
|
41
|
+
crosshair: boolean;
|
|
42
|
+
/** Tooltip text */
|
|
43
|
+
tooltip?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Canvas Overlay manages the 2D rendering layer
|
|
47
|
+
*/
|
|
48
|
+
export declare class CanvasOverlay {
|
|
49
|
+
private canvas;
|
|
50
|
+
private ctx;
|
|
51
|
+
private dpr;
|
|
52
|
+
private theme;
|
|
53
|
+
private readonly MARGIN;
|
|
54
|
+
constructor(parentElement: HTMLElement, theme?: Partial<OverlayTheme>);
|
|
55
|
+
/**
|
|
56
|
+
* Resize the overlay canvas
|
|
57
|
+
*/
|
|
58
|
+
resize(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Get the plot area (excluding margins)
|
|
61
|
+
*/
|
|
62
|
+
getPlotArea(): {
|
|
63
|
+
x: number;
|
|
64
|
+
y: number;
|
|
65
|
+
width: number;
|
|
66
|
+
height: number;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Clear the overlay
|
|
70
|
+
*/
|
|
71
|
+
clear(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Render axes
|
|
74
|
+
*/
|
|
75
|
+
renderAxes(bounds: Bounds, xAxis?: AxisConfig, yAxis?: AxisConfig, xScale?: Scale, yScale?: Scale): void;
|
|
76
|
+
private renderGrid;
|
|
77
|
+
private renderXAxis;
|
|
78
|
+
private renderYAxis;
|
|
79
|
+
private renderXAxisLabel;
|
|
80
|
+
private renderYAxisLabel;
|
|
81
|
+
/**
|
|
82
|
+
* Render cursor/crosshair
|
|
83
|
+
*/
|
|
84
|
+
renderCursor(cursor: CursorState): void;
|
|
85
|
+
/**
|
|
86
|
+
* Render tooltip
|
|
87
|
+
*/
|
|
88
|
+
renderTooltip(x: number, y: number, text: string): void;
|
|
89
|
+
/**
|
|
90
|
+
* Render FPS counter (debug)
|
|
91
|
+
*/
|
|
92
|
+
renderFPS(fps: number, frameTime: number): void;
|
|
93
|
+
private dataToPixelX;
|
|
94
|
+
private dataToPixelY;
|
|
95
|
+
private generateTicks;
|
|
96
|
+
private formatNumber;
|
|
97
|
+
private formatScientific;
|
|
98
|
+
/**
|
|
99
|
+
* Destroy the overlay
|
|
100
|
+
*/
|
|
101
|
+
destroy(): void;
|
|
102
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
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 AreaSeriesData {
|
|
9
|
+
/** X coordinates */
|
|
10
|
+
x: Float32Array;
|
|
11
|
+
/** Y coordinates (top of area) */
|
|
12
|
+
y: Float32Array;
|
|
13
|
+
/** Z coordinates */
|
|
14
|
+
z: Float32Array;
|
|
15
|
+
/** Base Y value (bottom of area, default: 0) */
|
|
16
|
+
baseY?: number;
|
|
17
|
+
/** Color per vertex (optional, RGB) */
|
|
18
|
+
colors?: Float32Array;
|
|
19
|
+
/** Single area color [r, g, b] */
|
|
20
|
+
color?: [number, number, number];
|
|
21
|
+
}
|
|
22
|
+
export interface Area3DRendererOptions extends Renderer3DOptions {
|
|
23
|
+
camera?: OrbitCameraOptions;
|
|
24
|
+
controls?: OrbitControllerOptions;
|
|
25
|
+
axes?: Axes3DOptions;
|
|
26
|
+
showAxes?: boolean;
|
|
27
|
+
/** Opacity of areas (default: 0.8) */
|
|
28
|
+
opacity?: number;
|
|
29
|
+
/** Enable tooltips (default: true) */
|
|
30
|
+
enableTooltip?: boolean;
|
|
31
|
+
tooltip?: Tooltip3DOptions;
|
|
32
|
+
/** Color theme options */
|
|
33
|
+
theme?: CustomThemeOptions;
|
|
34
|
+
}
|
|
35
|
+
export declare class Area3DRenderer {
|
|
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 normalBuffer;
|
|
46
|
+
private colorBuffer;
|
|
47
|
+
private indexBuffer;
|
|
48
|
+
private indexCount;
|
|
49
|
+
private backgroundColor;
|
|
50
|
+
private showAxes;
|
|
51
|
+
private opacity;
|
|
52
|
+
private areas;
|
|
53
|
+
private bounds;
|
|
54
|
+
private animationFrameId;
|
|
55
|
+
private needsRender;
|
|
56
|
+
private eventListeners;
|
|
57
|
+
private hoveredSeriesIndex;
|
|
58
|
+
private colorTheme;
|
|
59
|
+
private tooltip;
|
|
60
|
+
private enableTooltip;
|
|
61
|
+
private lastHitIndex;
|
|
62
|
+
private boundHandleMouseMove?;
|
|
63
|
+
private boundHandleMouseLeave?;
|
|
64
|
+
private lastFrameTime;
|
|
65
|
+
private frameCount;
|
|
66
|
+
private fps;
|
|
67
|
+
private lastFpsUpdate;
|
|
68
|
+
constructor(options: Area3DRendererOptions);
|
|
69
|
+
private handleMouseMove;
|
|
70
|
+
private handleMouseLeave;
|
|
71
|
+
pickAtScreen(screenX: number, screenY: number): {
|
|
72
|
+
seriesIndex: number;
|
|
73
|
+
pointIndex: number;
|
|
74
|
+
distance: number;
|
|
75
|
+
point: [number, number, number];
|
|
76
|
+
} | null;
|
|
77
|
+
private initBuffers;
|
|
78
|
+
private handleResize;
|
|
79
|
+
resize(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Set area data (single area or array of areas)
|
|
82
|
+
*/
|
|
83
|
+
setData(areas: AreaSeriesData | AreaSeriesData[]): void;
|
|
84
|
+
/**
|
|
85
|
+
* Add a single area
|
|
86
|
+
*/
|
|
87
|
+
addArea(area: AreaSeriesData): void;
|
|
88
|
+
/**
|
|
89
|
+
* Clear all areas
|
|
90
|
+
*/
|
|
91
|
+
clearAreas(): void;
|
|
92
|
+
private buildAreaGeometry;
|
|
93
|
+
private calculateBounds;
|
|
94
|
+
/**
|
|
95
|
+
* Fit camera to show all data
|
|
96
|
+
*/
|
|
97
|
+
fitToData(): void;
|
|
98
|
+
getCanvasSize(): {
|
|
99
|
+
width: number;
|
|
100
|
+
height: number;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Render a single frame
|
|
104
|
+
*/
|
|
105
|
+
render(): void;
|
|
106
|
+
startRenderLoop(): void;
|
|
107
|
+
stopRenderLoop(): void;
|
|
108
|
+
getStats(): RenderStats3D;
|
|
109
|
+
getCamera(): OrbitCamera;
|
|
110
|
+
getAxisLabels(): import('./Axes3D').AxisLabel3D[];
|
|
111
|
+
getViewProjectionMatrix(): Float32Array;
|
|
112
|
+
projectToScreen(worldPos: [number, number, number]): {
|
|
113
|
+
x: number;
|
|
114
|
+
y: number;
|
|
115
|
+
visible: boolean;
|
|
116
|
+
};
|
|
117
|
+
exportImage(format?: 'png' | 'jpeg' | 'webp', quality?: number, transparent?: boolean): string;
|
|
118
|
+
on(event: string, callback: Renderer3DEventCallback): void;
|
|
119
|
+
off(event: string, callback: Renderer3DEventCallback): void;
|
|
120
|
+
private emitEvent;
|
|
121
|
+
destroy(): void;
|
|
122
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Bounds3D, Axis3DConfig } from './types';
|
|
2
|
+
|
|
3
|
+
/** Axis label info for text overlay rendering */
|
|
4
|
+
export interface AxisLabel3D {
|
|
5
|
+
text: string;
|
|
6
|
+
worldPosition: [number, number, number];
|
|
7
|
+
axis: 'x' | 'y' | 'z' | 'title';
|
|
8
|
+
color: [number, number, number];
|
|
9
|
+
}
|
|
10
|
+
/** Full axis configuration with defaults applied */
|
|
11
|
+
export interface Axes3DOptions {
|
|
12
|
+
/** X-axis configuration */
|
|
13
|
+
xAxis?: Axis3DConfig & {
|
|
14
|
+
label?: string;
|
|
15
|
+
tickFormat?: (v: number) => string;
|
|
16
|
+
};
|
|
17
|
+
/** Y-axis configuration */
|
|
18
|
+
yAxis?: Axis3DConfig & {
|
|
19
|
+
label?: string;
|
|
20
|
+
tickFormat?: (v: number) => string;
|
|
21
|
+
};
|
|
22
|
+
/** Z-axis configuration */
|
|
23
|
+
zAxis?: Axis3DConfig & {
|
|
24
|
+
label?: string;
|
|
25
|
+
tickFormat?: (v: number) => string;
|
|
26
|
+
};
|
|
27
|
+
/** Show axis lines */
|
|
28
|
+
showAxes?: boolean;
|
|
29
|
+
/** Show wall grids */
|
|
30
|
+
showWallGrids?: boolean;
|
|
31
|
+
/** Show floor grid (XZ plane) */
|
|
32
|
+
showFloorGrid?: boolean;
|
|
33
|
+
/** Grid line color */
|
|
34
|
+
gridColor?: [number, number, number];
|
|
35
|
+
/** Grid line opacity */
|
|
36
|
+
gridOpacity?: number;
|
|
37
|
+
/** Wall grid opacity (slightly more transparent) */
|
|
38
|
+
wallGridOpacity?: number;
|
|
39
|
+
/** Number of ticks per axis */
|
|
40
|
+
tickCount?: number;
|
|
41
|
+
/** Axis line width */
|
|
42
|
+
lineWidth?: number;
|
|
43
|
+
/** Box wireframe color */
|
|
44
|
+
boxColor?: [number, number, number];
|
|
45
|
+
/** Box wireframe opacity */
|
|
46
|
+
boxOpacity?: number;
|
|
47
|
+
}
|
|
48
|
+
export declare class Axes3D {
|
|
49
|
+
private gl;
|
|
50
|
+
private axisVAO;
|
|
51
|
+
private axisPositionBuffer;
|
|
52
|
+
private axisColorBuffer;
|
|
53
|
+
private gridVAO;
|
|
54
|
+
private gridPositionBuffer;
|
|
55
|
+
private gridColorBuffer;
|
|
56
|
+
private boxVAO;
|
|
57
|
+
private boxPositionBuffer;
|
|
58
|
+
private boxColorBuffer;
|
|
59
|
+
private lineProgram;
|
|
60
|
+
private lineUniforms;
|
|
61
|
+
private axisVertexCount;
|
|
62
|
+
private gridVertexCount;
|
|
63
|
+
private boxVertexCount;
|
|
64
|
+
private bounds;
|
|
65
|
+
private labels;
|
|
66
|
+
private options;
|
|
67
|
+
constructor(gl: WebGL2RenderingContext, options?: Axes3DOptions);
|
|
68
|
+
private initLineShader;
|
|
69
|
+
private initBuffers;
|
|
70
|
+
/**
|
|
71
|
+
* Update axes geometry based on data bounds
|
|
72
|
+
*/
|
|
73
|
+
updateBounds(bounds: Bounds3D): void;
|
|
74
|
+
private buildBoxGeometry;
|
|
75
|
+
private buildGridGeometry;
|
|
76
|
+
private buildAxisGeometry;
|
|
77
|
+
private buildLabels;
|
|
78
|
+
/**
|
|
79
|
+
* Render axes and grid
|
|
80
|
+
*/
|
|
81
|
+
render(viewProjectionMatrix: Float32Array): void;
|
|
82
|
+
private renderLines;
|
|
83
|
+
/**
|
|
84
|
+
* Get labels for 2D text overlay rendering.
|
|
85
|
+
* Returns world positions that need to be projected to screen coordinates.
|
|
86
|
+
*/
|
|
87
|
+
getLabels(): AxisLabel3D[];
|
|
88
|
+
/**
|
|
89
|
+
* Project a 3D world position to 2D screen coordinates.
|
|
90
|
+
*/
|
|
91
|
+
projectToScreen(worldPos: [number, number, number], viewProjectionMatrix: Float32Array, canvasWidth: number, canvasHeight: number): {
|
|
92
|
+
x: number;
|
|
93
|
+
y: number;
|
|
94
|
+
visible: boolean;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Update options
|
|
98
|
+
*/
|
|
99
|
+
setOptions(options: Partial<Axes3DOptions>): void;
|
|
100
|
+
/**
|
|
101
|
+
* Cleanup resources
|
|
102
|
+
*/
|
|
103
|
+
destroy(): void;
|
|
104
|
+
}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { OrbitCamera, OrbitCameraOptions } from './camera/OrbitCamera';
|
|
2
|
+
import { OrbitController, OrbitControllerOptions } from './controls/OrbitController';
|
|
3
|
+
import { Axes3DOptions } from './Axes3D';
|
|
4
|
+
import { Ray3D, HitResult } from './Raycaster3D';
|
|
5
|
+
import { Bubble3DData, Bubble3DStyle, Renderer3DOptions, RenderStats3D, Renderer3DEventCallback } from './types';
|
|
6
|
+
import { Tooltip3DOptions, Tooltip3DData } from './Tooltip3D';
|
|
7
|
+
import { CustomThemeOptions } from './colorThemes';
|
|
8
|
+
|
|
9
|
+
export interface Bubble3DRendererOptions extends Renderer3DOptions {
|
|
10
|
+
camera?: OrbitCameraOptions;
|
|
11
|
+
controls?: OrbitControllerOptions;
|
|
12
|
+
style?: Bubble3DStyle;
|
|
13
|
+
autoRender?: boolean;
|
|
14
|
+
/** Axes configuration */
|
|
15
|
+
axes?: Axes3DOptions;
|
|
16
|
+
/** Show axes (default: true) */
|
|
17
|
+
showAxes?: boolean;
|
|
18
|
+
/** Enable tooltips on hover (default: true) */
|
|
19
|
+
enableTooltip?: boolean;
|
|
20
|
+
/** Tooltip configuration */
|
|
21
|
+
tooltip?: Tooltip3DOptions;
|
|
22
|
+
/** Custom tooltip formatter */
|
|
23
|
+
tooltipFormatter?: (data: Tooltip3DData) => string;
|
|
24
|
+
/** Color theme options */
|
|
25
|
+
theme?: CustomThemeOptions;
|
|
26
|
+
}
|
|
27
|
+
export declare class Bubble3DRenderer {
|
|
28
|
+
private canvas;
|
|
29
|
+
private gl;
|
|
30
|
+
private dpr;
|
|
31
|
+
private programs;
|
|
32
|
+
private mesh;
|
|
33
|
+
private camera;
|
|
34
|
+
private controller;
|
|
35
|
+
private axes;
|
|
36
|
+
private backgroundColor;
|
|
37
|
+
private style;
|
|
38
|
+
private showAxes;
|
|
39
|
+
private instanceData;
|
|
40
|
+
private bounds;
|
|
41
|
+
private animationFrameId;
|
|
42
|
+
private autoRender;
|
|
43
|
+
private needsRender;
|
|
44
|
+
private eventListeners;
|
|
45
|
+
private tooltip;
|
|
46
|
+
private enableTooltip;
|
|
47
|
+
private lastHitIndex;
|
|
48
|
+
private boundHandleMouseMove;
|
|
49
|
+
private boundHandleMouseLeave;
|
|
50
|
+
private lastFrameTime;
|
|
51
|
+
private frameCount;
|
|
52
|
+
private fps;
|
|
53
|
+
private lastFpsUpdate;
|
|
54
|
+
private colorTheme;
|
|
55
|
+
constructor(options: Bubble3DRendererOptions);
|
|
56
|
+
private handleMouseMove;
|
|
57
|
+
private handleMouseLeave;
|
|
58
|
+
private createGeometry;
|
|
59
|
+
private handleResize;
|
|
60
|
+
/**
|
|
61
|
+
* Resize canvas to match display size.
|
|
62
|
+
*/
|
|
63
|
+
resize(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Set bubble data for rendering.
|
|
66
|
+
*/
|
|
67
|
+
setData(data: Bubble3DData): void;
|
|
68
|
+
private calculateBounds;
|
|
69
|
+
/**
|
|
70
|
+
* Fit camera to view all data.
|
|
71
|
+
*/
|
|
72
|
+
fitToData(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Render a single frame.
|
|
75
|
+
*/
|
|
76
|
+
render(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Start automatic render loop.
|
|
79
|
+
*/
|
|
80
|
+
startRenderLoop(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Stop automatic render loop.
|
|
83
|
+
*/
|
|
84
|
+
stopRenderLoop(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Request a render on next frame.
|
|
87
|
+
*/
|
|
88
|
+
requestRender(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Get render statistics.
|
|
91
|
+
*/
|
|
92
|
+
getStats(): RenderStats3D;
|
|
93
|
+
/**
|
|
94
|
+
* Get camera instance for direct manipulation.
|
|
95
|
+
*/
|
|
96
|
+
getCamera(): OrbitCamera;
|
|
97
|
+
/**
|
|
98
|
+
* Get controller instance for configuration.
|
|
99
|
+
*/
|
|
100
|
+
getController(): OrbitController;
|
|
101
|
+
/**
|
|
102
|
+
* Update style options.
|
|
103
|
+
*/
|
|
104
|
+
setStyle(style: Partial<Bubble3DStyle>): void;
|
|
105
|
+
/**
|
|
106
|
+
* Set background color.
|
|
107
|
+
*/
|
|
108
|
+
setBackgroundColor(r: number, g: number, b: number, a?: number): void;
|
|
109
|
+
/**
|
|
110
|
+
* Add event listener.
|
|
111
|
+
*/
|
|
112
|
+
on(event: string, callback: Renderer3DEventCallback): void;
|
|
113
|
+
/**
|
|
114
|
+
* Remove event listener.
|
|
115
|
+
*/
|
|
116
|
+
off(event: string, callback: Renderer3DEventCallback): void;
|
|
117
|
+
private emitEvent;
|
|
118
|
+
/**
|
|
119
|
+
* Get axis labels for 2D text overlay rendering.
|
|
120
|
+
* Returns labels with world positions that need to be projected to screen.
|
|
121
|
+
*/
|
|
122
|
+
getAxisLabels(): {
|
|
123
|
+
text: string;
|
|
124
|
+
worldPosition: [number, number, number];
|
|
125
|
+
axis: string;
|
|
126
|
+
color: [number, number, number];
|
|
127
|
+
}[];
|
|
128
|
+
/**
|
|
129
|
+
* Project world coordinates to screen coordinates.
|
|
130
|
+
* Useful for positioning 2D overlay text.
|
|
131
|
+
*/
|
|
132
|
+
projectToScreen(worldPos: [number, number, number]): {
|
|
133
|
+
x: number;
|
|
134
|
+
y: number;
|
|
135
|
+
visible: boolean;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Get the current view-projection matrix.
|
|
139
|
+
*/
|
|
140
|
+
getViewProjectionMatrix(): Float32Array;
|
|
141
|
+
/**
|
|
142
|
+
* Get canvas dimensions.
|
|
143
|
+
*/
|
|
144
|
+
getCanvasSize(): {
|
|
145
|
+
width: number;
|
|
146
|
+
height: number;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Get WebGL context info.
|
|
150
|
+
*/
|
|
151
|
+
getContextInfo(): Record<string, any>;
|
|
152
|
+
/**
|
|
153
|
+
* Pick a bubble at screen coordinates.
|
|
154
|
+
* @param screenX X coordinate relative to canvas
|
|
155
|
+
* @param screenY Y coordinate relative to canvas
|
|
156
|
+
* @returns Hit result with bubble index, or null if no hit
|
|
157
|
+
*/
|
|
158
|
+
pickAtScreen(screenX: number, screenY: number): HitResult | null;
|
|
159
|
+
/**
|
|
160
|
+
* Create a ray from screen coordinates.
|
|
161
|
+
* Useful for custom picking logic.
|
|
162
|
+
*/
|
|
163
|
+
createRay(screenX: number, screenY: number): Ray3D;
|
|
164
|
+
/**
|
|
165
|
+
* Get data for a specific bubble by index.
|
|
166
|
+
*/
|
|
167
|
+
getBubbleData(index: number): {
|
|
168
|
+
position: [number, number, number];
|
|
169
|
+
color: [number, number, number];
|
|
170
|
+
scale: number;
|
|
171
|
+
} | null;
|
|
172
|
+
/**
|
|
173
|
+
* Export the current view as an image.
|
|
174
|
+
* @param format Image format ('png' | 'jpeg' | 'webp')
|
|
175
|
+
* @param quality Quality for jpeg/webp (0-1)
|
|
176
|
+
* @param transparent Use transparent background (only for 'png')
|
|
177
|
+
* @returns Data URL of the image
|
|
178
|
+
*/
|
|
179
|
+
exportImage(format?: 'png' | 'jpeg' | 'webp', quality?: number, transparent?: boolean): string;
|
|
180
|
+
/**
|
|
181
|
+
* Export the current view as a Blob.
|
|
182
|
+
* @param format Image format ('png' | 'jpeg' | 'webp')
|
|
183
|
+
* @param quality Quality for jpeg/webp (0-1)
|
|
184
|
+
* @returns Promise that resolves to Blob
|
|
185
|
+
*/
|
|
186
|
+
exportImageBlob(format?: 'png' | 'jpeg' | 'webp', quality?: number): Promise<Blob | null>;
|
|
187
|
+
/**
|
|
188
|
+
* Download the current view as an image file.
|
|
189
|
+
* @param filename Filename without extension
|
|
190
|
+
* @param format Image format
|
|
191
|
+
* @param quality Quality for jpeg/webp
|
|
192
|
+
*/
|
|
193
|
+
downloadImage(filename?: string, format?: 'png' | 'jpeg' | 'webp', quality?: number): void;
|
|
194
|
+
/**
|
|
195
|
+
* Clean up all resources.
|
|
196
|
+
*/
|
|
197
|
+
destroy(): void;
|
|
198
|
+
}
|