scichart 3.1.348 → 3.2.434

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.
Files changed (358) hide show
  1. package/Builder/buildSurface.d.ts +2 -2
  2. package/Builder/chartBuilder.d.ts +4 -4
  3. package/Charting/ChartModifiers/ChartModifierBase.d.ts +19 -5
  4. package/Charting/ChartModifiers/ChartModifierBase.js +64 -7
  5. package/Charting/ChartModifiers/CursorModifier.d.ts +9 -9
  6. package/Charting/ChartModifiers/CursorModifier.js +13 -1
  7. package/Charting/ChartModifiers/DataPointSelectionModifier.d.ts +1 -0
  8. package/Charting/ChartModifiers/DataPointSelectionModifier.js +6 -1
  9. package/Charting/ChartModifiers/LegendModifier.d.ts +10 -25
  10. package/Charting/ChartModifiers/LegendModifier.js +10 -20
  11. package/Charting/ChartModifiers/MouseWheelZoomModifier.js +20 -11
  12. package/Charting/ChartModifiers/OverviewRangeSelectionModifier.d.ts +5 -5
  13. package/Charting/ChartModifiers/PinchZoomModifier.d.ts +38 -8
  14. package/Charting/ChartModifiers/PinchZoomModifier.js +103 -40
  15. package/Charting/ChartModifiers/RolloverModifier.js +10 -3
  16. package/Charting/ChartModifiers/RubberBandXyZoomModifier.d.ts +4 -7
  17. package/Charting/ChartModifiers/RubberBandXyZoomModifier.js +6 -8
  18. package/Charting/ChartModifiers/SeriesSelectionModifier.js +39 -29
  19. package/Charting/ChartModifiers/XAxisDragModifier.d.ts +1 -1
  20. package/Charting/ChartModifiers/XAxisDragModifier.js +3 -3
  21. package/Charting/ChartModifiers/YAxisDragModifier.d.ts +2 -4
  22. package/Charting/ChartModifiers/YAxisDragModifier.js +7 -8
  23. package/Charting/ChartModifiers/ZoomPanModifier.d.ts +13 -38
  24. package/Charting/ChartModifiers/ZoomPanModifier.js +54 -99
  25. package/Charting/Drawing/BaseCache.d.ts +2 -1
  26. package/Charting/Drawing/BaseCache.js +45 -7
  27. package/Charting/Drawing/RenderSurface.d.ts +1 -0
  28. package/Charting/Drawing/RenderSurface.js +5 -1
  29. package/Charting/Drawing/SolidBrushCache.d.ts +2 -1
  30. package/Charting/Drawing/SolidBrushCache.js +23 -3
  31. package/Charting/Drawing/WebGlBrush.d.ts +2 -1
  32. package/Charting/Drawing/WebGlBrush.js +22 -3
  33. package/Charting/Drawing/WebGlPen.d.ts +2 -1
  34. package/Charting/Drawing/WebGlPen.js +23 -4
  35. package/Charting/Drawing/WebGlRenderContext2D.d.ts +4 -3
  36. package/Charting/Drawing/WebGlRenderContext2D.js +26 -7
  37. package/Charting/Model/BaseDataSeries.d.ts +67 -2
  38. package/Charting/Model/BaseDataSeries.js +193 -42
  39. package/Charting/Model/BaseHeatmapDataSeries.js +1 -1
  40. package/Charting/Model/ChartData/SeriesInfo.d.ts +16 -0
  41. package/Charting/Model/ChartData/SeriesInfo.js +7 -0
  42. package/Charting/Model/ChartData/XyzSeriesInfo.d.ts +8 -0
  43. package/Charting/Model/ChartData/XyzSeriesInfo.js +36 -0
  44. package/Charting/Model/DoubleVectorProvider.d.ts +19 -0
  45. package/Charting/Model/DoubleVectorProvider.js +95 -0
  46. package/Charting/Model/Filters/HlcFilterBase.d.ts +6 -2
  47. package/Charting/Model/Filters/HlcFilterBase.js +17 -1
  48. package/Charting/Model/Filters/IFilterBase.d.ts +24 -0
  49. package/Charting/Model/Filters/IFilterBase.js +2 -0
  50. package/Charting/Model/Filters/OhlcFilterBase.d.ts +6 -2
  51. package/Charting/Model/Filters/OhlcFilterBase.js +17 -1
  52. package/Charting/Model/Filters/XyFilterBase.d.ts +6 -5
  53. package/Charting/Model/Filters/XyFilterBase.js +17 -1
  54. package/Charting/Model/Filters/XyyFilterBase.d.ts +6 -2
  55. package/Charting/Model/Filters/XyyFilterBase.js +17 -1
  56. package/Charting/Model/Filters/XyzFilterBase.d.ts +6 -2
  57. package/Charting/Model/Filters/XyzFilterBase.js +17 -1
  58. package/Charting/Model/HlcDataSeries.d.ts +3 -0
  59. package/Charting/Model/HlcDataSeries.js +44 -15
  60. package/Charting/Model/IDataSeries.d.ts +23 -0
  61. package/Charting/Model/NonUniformHeatmapDataSeries.js +2 -0
  62. package/Charting/Model/OhlcDataSeries.d.ts +3 -0
  63. package/Charting/Model/OhlcDataSeries.js +56 -24
  64. package/Charting/Model/PointSeries/BasePointSeriesResampled.d.ts +4 -5
  65. package/Charting/Model/PointSeries/BasePointSeriesResampled.js +29 -21
  66. package/Charting/Model/PointSeries/BasePointSeriesWrapped.d.ts +2 -0
  67. package/Charting/Model/PointSeries/BasePointSeriesWrapped.js +2 -0
  68. package/Charting/Model/PointSeries/IPointSeries.d.ts +2 -1
  69. package/Charting/Model/PointSeries/OhlcPointSeriesResampled.js +1 -1
  70. package/Charting/Model/PointSeries/XyPointSeriesWrapped.d.ts +2 -1
  71. package/Charting/Model/PointSeries/XyPointSeriesWrapped.js +2 -2
  72. package/Charting/Model/PointSeries/XyyPointSeriesResampled.js +1 -1
  73. package/Charting/Model/UniformHeatmapDataSeries.d.ts +31 -11
  74. package/Charting/Model/UniformHeatmapDataSeries.js +72 -4
  75. package/Charting/Model/XyDataSeries.d.ts +0 -8
  76. package/Charting/Model/XyDataSeries.js +21 -5
  77. package/Charting/Model/XyTextDataSeries.d.ts +2 -0
  78. package/Charting/Model/XyTextDataSeries.js +35 -4
  79. package/Charting/Model/XyyDataSeries.d.ts +2 -0
  80. package/Charting/Model/XyyDataSeries.js +50 -26
  81. package/Charting/Model/XyzDataSeries.d.ts +3 -0
  82. package/Charting/Model/XyzDataSeries.js +36 -10
  83. package/Charting/Numerics/CoordinateCalculators/CategoryCoordinateCalculator.d.ts +3 -5
  84. package/Charting/Numerics/CoordinateCalculators/CategoryCoordinateCalculator.js +5 -7
  85. package/Charting/Numerics/CoordinateCalculators/CoordinateCalculatorBase.d.ts +2 -1
  86. package/Charting/Numerics/CoordinateCalculators/CoordinateCalculatorBase.js +29 -9
  87. package/Charting/Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator.d.ts +3 -5
  88. package/Charting/Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator.js +5 -7
  89. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.d.ts +14 -10
  90. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.js +105 -69
  91. package/Charting/Numerics/Resamplers/ResamplingParams.d.ts +4 -2
  92. package/Charting/Numerics/Resamplers/ResamplingParams.js +12 -7
  93. package/Charting/Numerics/TickCoordinateProviders/TickCoordinatesProvider.d.ts +5 -0
  94. package/Charting/Numerics/TickCoordinateProviders/TickCoordinatesProvider.js +7 -0
  95. package/Charting/Numerics/TickProviders/NumericTickProvider.js +3 -4
  96. package/Charting/Numerics/TickProviders/TickProvider.d.ts +5 -0
  97. package/Charting/Numerics/TickProviders/TickProvider.js +7 -0
  98. package/Charting/Services/SciChartRenderer.js +15 -5
  99. package/Charting/Services/TitleRenderer.d.ts +2 -1
  100. package/Charting/Services/TitleRenderer.js +35 -14
  101. package/Charting/Visuals/Annotations/AdornerLayer.d.ts +1 -1
  102. package/Charting/Visuals/Annotations/AnnotationBase.d.ts +6 -6
  103. package/Charting/Visuals/Annotations/AnnotationBase.js +81 -61
  104. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.js +4 -0
  105. package/Charting/Visuals/Annotations/IAnnotation.d.ts +9 -4
  106. package/Charting/Visuals/Annotations/IAnnotation.js +6 -0
  107. package/Charting/Visuals/Annotations/LineAnnotation.js +3 -1
  108. package/Charting/Visuals/Annotations/NativeTextAnnotation.js +4 -0
  109. package/Charting/Visuals/Annotations/RenderContextAnnotationBase.d.ts +5 -0
  110. package/Charting/Visuals/Annotations/RenderContextAnnotationBase.js +16 -0
  111. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.js +6 -0
  112. package/Charting/Visuals/Annotations/constants.d.ts +1 -0
  113. package/Charting/Visuals/Annotations/constants.js +1 -0
  114. package/Charting/Visuals/Axis/AxisBase2D.d.ts +23 -8
  115. package/Charting/Visuals/Axis/AxisBase2D.js +46 -10
  116. package/Charting/Visuals/Axis/AxisCore.d.ts +6 -3
  117. package/Charting/Visuals/Axis/AxisCore.js +100 -54
  118. package/Charting/Visuals/Axis/AxisRenderer.d.ts +2 -1
  119. package/Charting/Visuals/Axis/AxisRenderer.js +40 -16
  120. package/Charting/Visuals/Axis/AxisTitleRenderer.d.ts +1 -0
  121. package/Charting/Visuals/Axis/AxisTitleRenderer.js +4 -0
  122. package/Charting/Visuals/Axis/CategoryAxisBase.js +4 -4
  123. package/Charting/Visuals/Axis/DeltaCalculator/DateTimeDeltaCalculator.js +14 -9
  124. package/Charting/Visuals/Axis/DeltaCalculator/DeltaCalculator.d.ts +5 -0
  125. package/Charting/Visuals/Axis/DeltaCalculator/DeltaCalculator.js +7 -0
  126. package/Charting/Visuals/Axis/LabelProvider/LabelCache.d.ts +2 -2
  127. package/Charting/Visuals/Axis/LabelProvider/LabelCache.js +8 -1
  128. package/Charting/Visuals/Axis/LabelProvider/LabelProvider.d.ts +7 -1
  129. package/Charting/Visuals/Axis/LabelProvider/LabelProvider.js +34 -8
  130. package/Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D.d.ts +4 -2
  131. package/Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D.js +8 -2
  132. package/Charting/Visuals/Axis/LabelProvider/PieLabelProvider.d.ts +1 -0
  133. package/Charting/Visuals/Axis/LabelProvider/PieLabelProvider.js +1 -0
  134. package/Charting/Visuals/HeatmapLegend.d.ts +3 -2
  135. package/Charting/Visuals/HeatmapLegend.js +33 -12
  136. package/Charting/Visuals/Helpers/NativeObject.d.ts +8 -5
  137. package/Charting/Visuals/Helpers/NativeObject.js +42 -21
  138. package/Charting/Visuals/Helpers/drawLabel.js +3 -1
  139. package/Charting/Visuals/I2DSurfaceOptions.d.ts +0 -15
  140. package/Charting/Visuals/Legend/ManualLegend.d.ts +56 -0
  141. package/Charting/Visuals/Legend/ManualLegend.js +138 -0
  142. package/Charting/Visuals/Legend/SciChartLegend.js +4 -3
  143. package/Charting/Visuals/Legend/SciChartLegendBase.d.ts +65 -4
  144. package/Charting/Visuals/Legend/SciChartLegendBase.js +111 -23
  145. package/Charting/Visuals/Legend/SciChartPieLegend.js +1 -1
  146. package/Charting/Visuals/PointMarkers/BasePointMarker.d.ts +13 -1
  147. package/Charting/Visuals/PointMarkers/BasePointMarker.js +77 -19
  148. package/Charting/Visuals/PointMarkers/Constants.d.ts +2 -1
  149. package/Charting/Visuals/PointMarkers/Constants.js +1 -0
  150. package/Charting/Visuals/PointMarkers/IPointMarker.d.ts +2 -0
  151. package/Charting/Visuals/RenderableSeries/Animations/SeriesAnimation.js +4 -1
  152. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.d.ts +1 -1
  153. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.js +8 -7
  154. package/Charting/Visuals/RenderableSeries/BaseHeatmapRenderableSeries.d.ts +1 -0
  155. package/Charting/Visuals/RenderableSeries/BaseHeatmapRenderableSeries.js +5 -0
  156. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.js +10 -9
  157. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +3 -2
  158. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +101 -69
  159. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +18 -4
  160. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +12 -3
  161. package/Charting/Visuals/RenderableSeries/DataLabels/BaseDataLabelProvider.d.ts +2 -0
  162. package/Charting/Visuals/RenderableSeries/DataLabels/BaseDataLabelProvider.js +5 -0
  163. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelProvider.js +6 -0
  164. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelState.d.ts +1 -0
  165. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelState.js +18 -5
  166. package/Charting/Visuals/RenderableSeries/DataLabels/NonUniformHeatmapDataLabelProvider.js +0 -1
  167. package/Charting/Visuals/RenderableSeries/DataLabels/TextDataLabelProvider.js +8 -2
  168. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.d.ts +1 -0
  169. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.js +35 -16
  170. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.d.ts +5 -4
  171. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +70 -33
  172. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.d.ts +1 -0
  173. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.js +30 -9
  174. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.d.ts +1 -0
  175. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.js +37 -16
  176. package/Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers.d.ts +47 -0
  177. package/Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers.js +258 -0
  178. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.js +26 -2
  179. package/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.d.ts +1 -0
  180. package/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.js +34 -15
  181. package/Charting/Visuals/RenderableSeries/DrawingProviders/NonUniformHeatmapDrawingProvider.js +5 -230
  182. package/Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider.d.ts +1 -0
  183. package/Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider.js +62 -37
  184. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.js +30 -3
  185. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.d.ts +1 -0
  186. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.js +4 -1
  187. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.d.ts +0 -2
  188. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.js +0 -4
  189. package/Charting/Visuals/RenderableSeries/FastTextRenderableSeries.d.ts +3 -0
  190. package/Charting/Visuals/RenderableSeries/FastTextRenderableSeries.js +10 -0
  191. package/Charting/Visuals/RenderableSeries/HitTest/BubbleSeriesHitTestProvider.d.ts +4 -0
  192. package/Charting/Visuals/RenderableSeries/HitTest/BubbleSeriesHitTestProvider.js +7 -0
  193. package/Charting/Visuals/RenderableSeries/HitTest/HitTestInfo.d.ts +4 -0
  194. package/Charting/Visuals/RenderableSeries/HitTest/HitTestInfo.js +9 -0
  195. package/Charting/Visuals/RenderableSeries/HoveredChangedArgs.d.ts +6 -1
  196. package/Charting/Visuals/RenderableSeries/HoveredChangedArgs.js +2 -1
  197. package/Charting/Visuals/RenderableSeries/IRenderableSeries.d.ts +1 -1
  198. package/Charting/Visuals/RenderableSeries/SelectionChangedArgs.d.ts +6 -1
  199. package/Charting/Visuals/RenderableSeries/SelectionChangedArgs.js +2 -1
  200. package/Charting/Visuals/RenderableSeries/ShaderEffect.d.ts +3 -2
  201. package/Charting/Visuals/RenderableSeries/ShaderEffect.js +29 -9
  202. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.js +50 -1
  203. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.js +13 -1
  204. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.js +13 -1
  205. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.js +3 -0
  206. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.d.ts +0 -2
  207. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.js +4 -4
  208. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.d.ts +1 -0
  209. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.js +8 -0
  210. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.d.ts +1 -2
  211. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.js +8 -3
  212. package/Charting/Visuals/RubberBandSvgRect/RubberBandSvgRect.d.ts +7 -1
  213. package/Charting/Visuals/RubberBandSvgRect/RubberBandSvgRect.js +38 -12
  214. package/Charting/Visuals/SciChartDefaults.d.ts +10 -0
  215. package/Charting/Visuals/SciChartDefaults.js +10 -0
  216. package/Charting/Visuals/SciChartOverview.d.ts +2 -1
  217. package/Charting/Visuals/SciChartOverview.js +28 -8
  218. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.d.ts +16 -3
  219. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.js +125 -60
  220. package/Charting/Visuals/SciChartSurface.d.ts +4 -41
  221. package/Charting/Visuals/SciChartSurface.js +52 -66
  222. package/Charting/Visuals/SciChartSurfaceBase.d.ts +117 -13
  223. package/Charting/Visuals/SciChartSurfaceBase.js +177 -32
  224. package/Charting/Visuals/TextureManager/CanvasTexture.d.ts +2 -1
  225. package/Charting/Visuals/TextureManager/CanvasTexture.js +37 -17
  226. package/Charting/Visuals/TextureManager/TextureManager.d.ts +2 -1
  227. package/Charting/Visuals/TextureManager/TextureManager.js +27 -7
  228. package/Charting/Visuals/createMaster.d.ts +7 -2
  229. package/Charting/Visuals/createMaster.js +140 -45
  230. package/Charting/Visuals/createSingle.d.ts +0 -2
  231. package/Charting/Visuals/createSingle.js +46 -11
  232. package/Charting/Visuals/licenseManager2D.d.ts +7 -5
  233. package/Charting/Visuals/licenseManager2D.js +105 -53
  234. package/Charting/Visuals/loader.js +3 -1
  235. package/Charting/Visuals/sciChartInitCommon.d.ts +1 -1
  236. package/Charting/Visuals/sciChartInitCommon.js +5 -1
  237. package/Charting3D/CameraController.d.ts +1 -1
  238. package/Charting3D/CameraController.js +21 -7
  239. package/Charting3D/ChartModifiers/ChartModifierBase3D.d.ts +1 -0
  240. package/Charting3D/ChartModifiers/ChartModifierBase3D.js +4 -1
  241. package/Charting3D/ChartModifiers/OrbitModifier3D.d.ts +17 -5
  242. package/Charting3D/ChartModifiers/OrbitModifier3D.js +62 -26
  243. package/Charting3D/ChartModifiers/PinchZoomModifier3D.d.ts +81 -0
  244. package/Charting3D/ChartModifiers/PinchZoomModifier3D.js +164 -0
  245. package/Charting3D/ChartModifiers/ResetCamera3DModifier.d.ts +1 -1
  246. package/Charting3D/ChartModifiers/ResetCamera3DModifier.js +1 -2
  247. package/Charting3D/ChartModifiers/TooltipModifier3D.d.ts +122 -0
  248. package/Charting3D/ChartModifiers/TooltipModifier3D.js +427 -0
  249. package/Charting3D/I3DSurfaceOptions.d.ts +10 -0
  250. package/Charting3D/I3DSurfaceOptions.js +2 -0
  251. package/Charting3D/Model/DataSeries/BaseDataSeries3D.d.ts +2 -1
  252. package/Charting3D/Model/DataSeries/BaseDataSeries3D.js +27 -6
  253. package/Charting3D/Model/DataSeries/BaseGridDataSeries3D.d.ts +1 -1
  254. package/Charting3D/Model/DataSeries/BaseGridDataSeries3D.js +2 -2
  255. package/Charting3D/Model/DataSeries/IPointMetadata3D.d.ts +7 -2
  256. package/Charting3D/Model/DataSeries/UniformGridDataSeries3D.d.ts +8 -0
  257. package/Charting3D/Model/DataSeries/UniformGridDataSeries3D.js +12 -0
  258. package/Charting3D/Model/DataSeries/XyzDataSeries3D.d.ts +2 -2
  259. package/Charting3D/Model/DataSeries/XyzDataSeries3D.js +1 -1
  260. package/Charting3D/Vector3.d.ts +5 -0
  261. package/Charting3D/Vector3.js +7 -0
  262. package/Charting3D/Visuals/Annotations/TooltipSvgAnnotation3D.d.ts +88 -0
  263. package/Charting3D/Visuals/Annotations/TooltipSvgAnnotation3D.js +291 -0
  264. package/Charting3D/Visuals/Axis/AxisBase3D.d.ts +29 -3
  265. package/Charting3D/Visuals/Axis/AxisBase3D.js +46 -18
  266. package/Charting3D/Visuals/Axis/AxisBase3DLabelStyle.js +2 -1
  267. package/Charting3D/Visuals/Axis/AxisCubeEntity.d.ts +0 -4
  268. package/Charting3D/Visuals/Axis/AxisCubeEntity.js +3 -6
  269. package/Charting3D/Visuals/Axis/IAxisDescriptor.d.ts +2 -2
  270. package/Charting3D/Visuals/Axis/IAxisDescriptor.js +2 -2
  271. package/Charting3D/Visuals/Axis/NumericAxis3D.d.ts +3 -2
  272. package/Charting3D/Visuals/Axis/NumericAxis3D.js +7 -3
  273. package/Charting3D/Visuals/Primitives/BaseSceneEntity3D.d.ts +41 -30
  274. package/Charting3D/Visuals/Primitives/BaseSceneEntity3D.js +78 -26
  275. package/Charting3D/Visuals/Primitives/CrosshairLinesSceneEntity.d.ts +47 -0
  276. package/Charting3D/Visuals/Primitives/CrosshairLinesSceneEntity.js +106 -0
  277. package/Charting3D/Visuals/Primitives/EntityIdProvider.d.ts +29 -0
  278. package/Charting3D/Visuals/Primitives/EntityIdProvider.js +28 -0
  279. package/Charting3D/Visuals/Primitives/PointLine3DSceneEntity.d.ts +51 -0
  280. package/Charting3D/Visuals/Primitives/PointLine3DSceneEntity.js +190 -0
  281. package/Charting3D/Visuals/Primitives/RenderableSeriesSceneEntity.d.ts +12 -0
  282. package/Charting3D/Visuals/Primitives/RenderableSeriesSceneEntity.js +14 -0
  283. package/Charting3D/Visuals/Primitives/ScatterPointsSceneEntity.d.ts +11 -0
  284. package/Charting3D/Visuals/Primitives/ScatterPointsSceneEntity.js +23 -2
  285. package/Charting3D/Visuals/Primitives/SurfaceMeshSceneEntity.d.ts +3 -0
  286. package/Charting3D/Visuals/Primitives/SurfaceMeshSceneEntity.js +17 -1
  287. package/Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D.d.ts +21 -1
  288. package/Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D.js +78 -12
  289. package/Charting3D/Visuals/RenderableSeries/Constants.d.ts +2 -0
  290. package/Charting3D/Visuals/RenderableSeries/Constants.js +2 -0
  291. package/Charting3D/Visuals/RenderableSeries/ESeriesType.d.ts +2 -1
  292. package/Charting3D/Visuals/RenderableSeries/ESeriesType.js +1 -0
  293. package/Charting3D/Visuals/RenderableSeries/HitTestInfo3D.d.ts +37 -0
  294. package/Charting3D/Visuals/RenderableSeries/HitTestInfo3D.js +22 -0
  295. package/Charting3D/Visuals/RenderableSeries/PointLineRenderableSeries3D.d.ts +64 -0
  296. package/Charting3D/Visuals/RenderableSeries/PointLineRenderableSeries3D.js +105 -0
  297. package/Charting3D/Visuals/RenderableSeries/SeriesInfo3D.d.ts +51 -0
  298. package/Charting3D/Visuals/RenderableSeries/SeriesInfo3D.js +32 -0
  299. package/Charting3D/Visuals/RenderableSeries/SurfaceMeshSeriesInfo3D.d.ts +15 -0
  300. package/Charting3D/Visuals/RenderableSeries/SurfaceMeshSeriesInfo3D.js +112 -0
  301. package/Charting3D/Visuals/RenderableSeries/XyzSeriesInfo3D.d.ts +20 -0
  302. package/Charting3D/Visuals/RenderableSeries/XyzSeriesInfo3D.js +60 -0
  303. package/Charting3D/Visuals/RootSceneEntity.d.ts +0 -4
  304. package/Charting3D/Visuals/RootSceneEntity.js +3 -8
  305. package/Charting3D/Visuals/SciChart3DRenderer.d.ts +1 -0
  306. package/Charting3D/Visuals/SciChart3DRenderer.js +26 -0
  307. package/Charting3D/Visuals/SciChart3DSurface.d.ts +55 -7
  308. package/Charting3D/Visuals/SciChart3DSurface.js +136 -13
  309. package/Charting3D/Visuals/ViewportManager3DBase.d.ts +4 -0
  310. package/Charting3D/Visuals/ViewportManager3DBase.js +7 -1
  311. package/Charting3D/Visuals/createMaster3d.d.ts +1 -2
  312. package/Charting3D/Visuals/createMaster3d.js +81 -14
  313. package/Charting3D/Visuals/createSingle3d.js +34 -4
  314. package/Charting3D/Visuals/licenseManager3D.js +29 -25
  315. package/Core/BuildStamp.d.ts +1 -1
  316. package/Core/BuildStamp.js +2 -2
  317. package/Core/DeletableEntity.d.ts +34 -0
  318. package/Core/DeletableEntity.js +138 -0
  319. package/Core/Globals.d.ts +11 -0
  320. package/Core/Globals.js +13 -0
  321. package/Core/Guard.d.ts +6 -0
  322. package/Core/Guard.js +10 -0
  323. package/Core/Mouse/MouseManager.d.ts +23 -0
  324. package/Core/Mouse/MouseManager.js +53 -0
  325. package/Core/Telemetry.js +4 -6
  326. package/_wasm/scichart.browser.js +1 -1
  327. package/_wasm/scichart2d.data +0 -0
  328. package/_wasm/scichart2d.js +4 -294
  329. package/_wasm/scichart2d.wasm +0 -0
  330. package/_wasm/scichart3d.data +0 -0
  331. package/_wasm/scichart3d.js +4 -294
  332. package/_wasm/scichart3d.wasm +0 -0
  333. package/index.d.ts +42 -2
  334. package/index.dev.js +68876 -0
  335. package/index.js +81 -27
  336. package/index.min.js +1 -1
  337. package/package.json +3 -4
  338. package/types/ChartModifierType.d.ts +2 -0
  339. package/types/ChartModifierType.js +2 -0
  340. package/types/DefaultRenderLayer.d.ts +9 -8
  341. package/types/DefaultRenderLayer.js +9 -8
  342. package/types/NumberArray.d.ts +1 -0
  343. package/types/NumberArray.js +12 -1
  344. package/types/SceneEntityType.d.ts +13 -5
  345. package/types/SceneEntityType.js +13 -5
  346. package/types/TSciChart.d.ts +37 -8
  347. package/types/TSciChart3D.d.ts +126 -7
  348. package/types/licensingClasses.d.ts +2 -1
  349. package/types/licensingClasses.js +1 -0
  350. package/utils/MemoryUsageHelper.d.ts +92 -0
  351. package/utils/MemoryUsageHelper.js +221 -0
  352. package/utils/array.d.ts +8 -0
  353. package/utils/array.js +58 -1
  354. package/utils/colorUtil.d.ts +7 -0
  355. package/utils/colorUtil.js +13 -1
  356. package/utils/logger.d.ts +2 -0
  357. package/utils/logger.js +11 -0
  358. package/utils/parseColor.js +19 -4
@@ -1,13 +1,14 @@
1
1
  import { IChartModifierBase } from "../../Charting/ChartModifiers/ChartModifierBase";
2
2
  import { IThemeProvider } from "../../Charting/Themes/IThemeProvider";
3
- import { I2DSurfaceOptions } from "../../Charting/Visuals/I2DSurfaceOptions";
4
3
  import { ESurfaceType, SciChartSurfaceBase, TSciChartConfig } from "../../Charting/Visuals/SciChartSurfaceBase";
5
4
  import { TDpiChangedEventArgs } from "../../Charting/Visuals/TextureManager/DpiHelper";
6
5
  import { IGenericAnimation } from "../../Core/Animations/GenericAnimation";
7
6
  import { ObservableArray } from "../../Core/ObservableArray";
7
+ import { Point } from "../../Core/Point";
8
8
  import { SCRTSceneWorld, TSciChart3D as TWasmContext } from "../../types/TSciChart3D";
9
9
  import { TSciChartSurfaceCanvases } from "../../types/TSciChartSurfaceCanvases";
10
10
  import { ICameraController } from "../CameraController";
11
+ import { I3DSurfaceOptions } from "../I3DSurfaceOptions";
11
12
  import { Vector3 } from "../Vector3";
12
13
  import { AxisBase3D } from "./Axis/AxisBase3D";
13
14
  import { AxisCubeEntity } from "./Axis/AxisCubeEntity";
@@ -15,6 +16,8 @@ import { IRenderableSeries3D } from "./RenderableSeries/BaseRenderableSeries3D";
15
16
  import { RootSceneEntity } from "./RootSceneEntity";
16
17
  import { ViewportManager3DBase } from "./ViewportManager3DBase";
17
18
  import { EWatermarkPosition } from "../../types/WatermarkPosition";
19
+ import { EventHandler } from "../../Core/EventHandler";
20
+ import { Thickness } from "../../Core/Thickness";
18
21
  export declare type TSciChart3D = TWasmContext;
19
22
  export declare type TWebAssemblyChart3D = {
20
23
  wasmContext: TSciChart3D;
@@ -60,9 +63,9 @@ export declare class SciChart3DSurface extends SciChartSurfaceBase {
60
63
  /**
61
64
  * USED INTERNALLY - performs a similar operation to {@link SciChart3DSurface.create} but used internally for testing
62
65
  * @param divElement The Div Element ID or reference where the {@link SciChartSurface} will reside
63
- * @param options Optional parameters of type {@link I2DSurfaceOptions}
66
+ * @param options Optional parameters of type {@link I3DSurfaceOptions}
64
67
  */
65
- static createSingle(divElement: string | HTMLDivElement, options?: I2DSurfaceOptions): Promise<TWebAssemblyChart3D>;
68
+ static createSingle(divElement: string | HTMLDivElement, options?: I3DSurfaceOptions): Promise<TWebAssemblyChart3D>;
66
69
  /**
67
70
  * Allows setting of web URL for Wasm and Data files, in the case you are loading SciChart outside of npm/webpack environment.
68
71
  * Note if loading from CDN the version number of data/wasm Urls must match the version number of SciChart.js you are using.
@@ -84,10 +87,11 @@ export declare class SciChart3DSurface extends SciChartSurfaceBase {
84
87
  /**
85
88
  * Creates a {@link SciChart3DSurface} and {@link TSciChart3D | WebAssembly Context} to occupy the div by element ID in your DOM.
86
89
  * @remarks This method is async and must be awaited
87
- * @param divElementId The Div Element ID where the {@link SciChart3DSurface} will reside
88
- * @param options Optional parameters of type {@link IChartCreationOptions}
90
+ * @param divElementId The ID or reference of Div Element where the {@link SciChart3DSurface} will reside
91
+ * @param options Optional parameters of type {@link I3DSurfaceOptions}
89
92
  */
90
- static create(divElementId: string, options?: I2DSurfaceOptions): Promise<TWebAssemblyChart3D>;
93
+ static create(divElementId: string | HTMLDivElement, options?: I3DSurfaceOptions): Promise<TWebAssemblyChart3D>;
94
+ static disposeSharedWasmContext(): void;
91
95
  /**
92
96
  * @summary Gets the collection of {@link IRenderableSeries3D} - the chart types or seres on this {@link SciChart3DSurface}
93
97
  * @description A {@link SciChart3DSurface} can have zero to many {@link IRenderableSeries3D | RenderableSeries}.
@@ -124,6 +128,11 @@ export declare class SciChart3DSurface extends SciChartSurfaceBase {
124
128
  readonly webAssemblyContext3D: TSciChart3D;
125
129
  /** The position of the watermark for trials and community licenses */
126
130
  watermarkPosition: EWatermarkPosition;
131
+ /**
132
+ * An event handler which notifies its subscribers when a render operation starts. Use this
133
+ * to update elements of the chart for the current render. Any updates made here will not trigger a subsequent render.
134
+ */
135
+ preRender: EventHandler<void>;
127
136
  protected animationList: IGenericAnimation[];
128
137
  private xAxisProperty;
129
138
  private yAxisProperty;
@@ -137,6 +146,7 @@ export declare class SciChart3DSurface extends SciChartSurfaceBase {
137
146
  private watermarkPropertyPosition;
138
147
  private isAxisCubeRenderedProperty;
139
148
  private sceneWorldProperty;
149
+ private isHitTestEnabledProperty;
140
150
  /**
141
151
  * Creates an instance of {@link SciChart3DSurface}
142
152
  * @param webAssemblyContext The {@link TSciChart3D | SciChart 3D WebAssembly Context} containing native methods and
@@ -148,10 +158,20 @@ export declare class SciChart3DSurface extends SciChartSurfaceBase {
148
158
  * Used internally: Gets the {@link SCRTSceneWorld} object at the root of the 3d scene graph
149
159
  */
150
160
  getSceneWorld(): SCRTSceneWorld;
161
+ /**
162
+ * Converts a 3D Xyz coordinate in world coordinates space to a screen coordinate (2d) in pixels.
163
+ * This allows you to get the 2D screen coordinate of any object or vertex in the 3D scene.
164
+ * @remarks Note: Conversions to/from world/data space must be performed using the {@link AxisBase3D.getCurrentCoordinateCalculator()}
165
+ * API, which returns {@link CoordinateCalculatorBase}. Functions {@link CoordinateCalculatorBase.getDataValue} and
166
+ * {@link CoordinateCalculatorBase.getCoordinate} convert to/from world coords/data space
167
+ * @param worldCoordXyz The 3D Xyz coordinate
168
+ * @returns The 2D screen coordinate in pixels
169
+ */
170
+ worldToScreenCoord(worldCoordXyz: Vector3): Point;
151
171
  /**
152
172
  * @inheritdoc
153
173
  */
154
- delete(): void;
174
+ delete(clearHtml?: boolean): void;
155
175
  /**
156
176
  * Gets or sets whether the Xyz gizmo is enabled - a small 3D Xyz axis on the bottom left of the 3D Chart
157
177
  */
@@ -224,6 +244,24 @@ export declare class SciChart3DSurface extends SciChartSurfaceBase {
224
244
  * @remarks Axis types which derive from {@link AxisBase3D} or concrete type {@link NumericAxis3D} are valid
225
245
  */
226
246
  set zAxis(zAxis: AxisBase3D);
247
+ /**
248
+ * Required to enable Hit-Test if any of the following functions are needed in SciChart3DSurface:
249
+ * - {@link BaseRenderableSeries3D.hitTest}
250
+ * - {@link TooltipModiifer3D}
251
+ *
252
+ * Enabling hit-test adds minor a performance overhead for drawing and should be disabled if not required.
253
+ * @param isEnabled
254
+ */
255
+ set isHitTestEnabled(isEnabled: boolean);
256
+ /**
257
+ * Required to enable Hit-Test if any of the following functions are needed in SciChart3DSurface:
258
+ * - {@link BaseRenderableSeries3D.hitTest}
259
+ * - {@link TooltipModiifer3D}
260
+ *
261
+ * Enabling hit-test adds minor a performance overhead for drawing and should be disabled if not required.
262
+ * @param isEnabled
263
+ */
264
+ get isHitTestEnabled(): boolean;
227
265
  /**
228
266
  * Called internally
229
267
  * Sets isAxisCubeRenderedProperty flag after Axis Cube is rendered
@@ -282,10 +320,20 @@ export declare class SciChart3DSurface extends SciChartSurfaceBase {
282
320
  * @param timeElapsed
283
321
  */
284
322
  onAnimate(timeElapsed: number): void;
323
+ /**
324
+ * @inheritDoc
325
+ */
326
+ getXAxisById(axisId: string): AxisBase3D;
327
+ /**
328
+ * @inheritDoc
329
+ */
330
+ getYAxisById(axisId: string): AxisBase3D;
285
331
  /**
286
332
  * @inheritDoc
287
333
  */
288
334
  updateWatermark(left: number, bottom: number): void;
335
+ getSeriesViewRectPadding(scaled: boolean): Thickness;
336
+ protected applyOptions(options: I3DSurfaceOptions): void;
289
337
  /**
290
338
  * @inheritDoc
291
339
  */
@@ -21,6 +21,7 @@ var DpiHelper_1 = require("../../Charting/Visuals/TextureManager/DpiHelper");
21
21
  var app_1 = require("../../constants/app");
22
22
  var Deleter_1 = require("../../Core/Deleter");
23
23
  var ObservableArray_1 = require("../../Core/ObservableArray");
24
+ var Point_1 = require("../../Core/Point");
24
25
  var CameraController_1 = require("../CameraController");
25
26
  var Vector3_1 = require("../Vector3");
26
27
  var AxisCubeEntity_1 = require("./Axis/AxisCubeEntity");
@@ -33,6 +34,11 @@ var RootSceneEntity_1 = require("./RootSceneEntity");
33
34
  var SciChart3DRenderer_1 = require("./SciChart3DRenderer");
34
35
  var BuildStamp_1 = require("../../Core/BuildStamp");
35
36
  var SciChartDefaults_1 = require("../../Charting/Visuals/SciChartDefaults");
37
+ var WebGlHelper_1 = require("../../Core/WebGlHelper");
38
+ var Globals_1 = require("../../Core/Globals");
39
+ var createMaster_1 = require("../../Charting/Visuals/createMaster");
40
+ var EventHandler_1 = require("../../Core/EventHandler");
41
+ var Thickness_1 = require("../../Core/Thickness");
36
42
  exports.sciChartConfig3D = {};
37
43
  /**
38
44
  * @summary The {@link SciChart3DSurface} is the root 3D Chart control in SciChart's High Performance Real-time
@@ -64,8 +70,14 @@ var SciChart3DSurface = /** @class */ (function (_super) {
64
70
  _this = _super.call(this, webAssemblyContext, options === null || options === void 0 ? void 0 : options.canvases) || this;
65
71
  /** The position of the watermark for trials and community licenses */
66
72
  _this.watermarkPosition = SciChartDefaults_1.SciChartDefaults.watermarkPosition;
73
+ /**
74
+ * An event handler which notifies its subscribers when a render operation starts. Use this
75
+ * to update elements of the chart for the current render. Any updates made here will not trigger a subsequent render.
76
+ */
77
+ _this.preRender = new EventHandler_1.EventHandler();
67
78
  _this.animationList = [];
68
79
  _this.isAxisCubeRenderedProperty = false;
80
+ _this.isHitTestEnabledProperty = false;
69
81
  var canvasWidth = (_b = (_a = _this.domCanvas2D) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : app_1.DEFAULT_WIDTH;
70
82
  var canvasHeight = (_d = (_c = _this.domCanvas2D) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : app_1.DEFAULT_HEIGHT;
71
83
  _this.webAssemblyContext3D = webAssemblyContext;
@@ -82,7 +94,7 @@ var SciChart3DSurface = /** @class */ (function (_super) {
82
94
  _this.invalidateElement = _this.invalidateElement.bind(_this);
83
95
  _this.sciChart3DRenderer = new SciChart3DRenderer_1.SciChart3DRenderer(_this, webAssemblyContext);
84
96
  // Set default viewportManager
85
- _this.viewportManager = new DefaultViewportManager3D_1.DefaultViewportManager3D();
97
+ _this.viewportManager = new DefaultViewportManager3D_1.DefaultViewportManager3D(canvasWidth, canvasHeight);
86
98
  // Set default WorldDimensions
87
99
  _this.worldDimensionsProperty = (options === null || options === void 0 ? void 0 : options.worldDimensions) || new Vector3_1.Vector3(300, 200, 300);
88
100
  // Setup series
@@ -94,9 +106,8 @@ var SciChart3DSurface = /** @class */ (function (_super) {
94
106
  (_a = args.getOldItems()) === null || _a === void 0 ? void 0 : _a.forEach(function (rs) { return _this.detachSeries(rs); });
95
107
  (_b = args.getNewItems()) === null || _b === void 0 ? void 0 : _b.forEach(function (rs) { return _this.attachSeries(rs); });
96
108
  });
97
- // Set default camera
109
+ // Set default scene
98
110
  _this.childPropertyChanged = _this.childPropertyChanged.bind(_this);
99
- _this.camera = (options === null || options === void 0 ? void 0 : options.camera) || new CameraController_1.CameraController(_this.webAssemblyContext3D);
100
111
  _this.sceneWorldProperty = new _this.webAssemblyContext3D.SCRTSceneWorld();
101
112
  _this.sceneWorldProperty.Init();
102
113
  _this.rootEntity = new RootSceneEntity_1.RootSceneEntity(webAssemblyContext, _this);
@@ -119,10 +130,13 @@ var SciChart3DSurface = /** @class */ (function (_super) {
119
130
  /**
120
131
  * USED INTERNALLY - performs a similar operation to {@link SciChart3DSurface.create} but used internally for testing
121
132
  * @param divElement The Div Element ID or reference where the {@link SciChartSurface} will reside
122
- * @param options Optional parameters of type {@link I2DSurfaceOptions}
133
+ * @param options Optional parameters of type {@link I3DSurfaceOptions}
123
134
  */
124
135
  SciChart3DSurface.createSingle = function (divElement, options) {
125
- return (0, createSingle3d_1.createSingle3dInternal)(divElement, options);
136
+ return (0, createSingle3d_1.createSingle3dInternal)(divElement, options).then(function (result) {
137
+ result.sciChart3DSurface.applyOptions(options);
138
+ return result;
139
+ });
126
140
  };
127
141
  /**
128
142
  * Allows setting of web URL for Wasm and Data files, in the case you are loading SciChart outside of npm/webpack environment.
@@ -152,11 +166,21 @@ var SciChart3DSurface = /** @class */ (function (_super) {
152
166
  /**
153
167
  * Creates a {@link SciChart3DSurface} and {@link TSciChart3D | WebAssembly Context} to occupy the div by element ID in your DOM.
154
168
  * @remarks This method is async and must be awaited
155
- * @param divElementId The Div Element ID where the {@link SciChart3DSurface} will reside
156
- * @param options Optional parameters of type {@link IChartCreationOptions}
169
+ * @param divElementId The ID or reference of Div Element where the {@link SciChart3DSurface} will reside
170
+ * @param options Optional parameters of type {@link I3DSurfaceOptions}
157
171
  */
158
172
  SciChart3DSurface.create = function (divElementId, options) {
159
- return (0, createMaster3d_1.createMultichart3d)(divElementId, options);
173
+ return (0, createMaster3d_1.createMultichart3d)(divElementId, options).then(function (result) {
174
+ result.sciChart3DSurface.applyOptions(options);
175
+ return result;
176
+ });
177
+ };
178
+ SciChart3DSurface.disposeSharedWasmContext = function () {
179
+ if (Globals_1.sciChart3DDestinations.length === 0 && Globals_1.sciChartDestinations.length === 0) {
180
+ (0, createMaster_1.disposeMultiChart)();
181
+ (0, createMaster3d_1.disposeMultiChart3d)();
182
+ }
183
+ _super.disposeSharedWasmContext.call(this);
160
184
  };
161
185
  /**
162
186
  * Used internally: Gets the {@link SCRTSceneWorld} object at the root of the 3d scene graph
@@ -164,11 +188,31 @@ var SciChart3DSurface = /** @class */ (function (_super) {
164
188
  SciChart3DSurface.prototype.getSceneWorld = function () {
165
189
  return this.sceneWorldProperty;
166
190
  };
191
+ /**
192
+ * Converts a 3D Xyz coordinate in world coordinates space to a screen coordinate (2d) in pixels.
193
+ * This allows you to get the 2D screen coordinate of any object or vertex in the 3D scene.
194
+ * @remarks Note: Conversions to/from world/data space must be performed using the {@link AxisBase3D.getCurrentCoordinateCalculator()}
195
+ * API, which returns {@link CoordinateCalculatorBase}. Functions {@link CoordinateCalculatorBase.getDataValue} and
196
+ * {@link CoordinateCalculatorBase.getCoordinate} convert to/from world coords/data space
197
+ * @param worldCoordXyz The 3D Xyz coordinate
198
+ * @returns The 2D screen coordinate in pixels
199
+ */
200
+ SciChart3DSurface.prototype.worldToScreenCoord = function (worldCoordXyz) {
201
+ var sceneWorld = this.getSceneWorld();
202
+ if (!sceneWorld)
203
+ return undefined;
204
+ var tsrWorldXyz = worldCoordXyz.toTsrVector3(this.webAssemblyContext3D);
205
+ var tsrScreen2D = sceneWorld.TransformWorldToScreenCoords(tsrWorldXyz);
206
+ var screen2D = new Point_1.Point(tsrScreen2D.x, tsrScreen2D.y);
207
+ tsrScreen2D.delete();
208
+ tsrWorldXyz.delete();
209
+ return screen2D;
210
+ };
167
211
  /**
168
212
  * @inheritdoc
169
213
  */
170
- SciChart3DSurface.prototype.delete = function () {
171
- _super.prototype.delete.call(this);
214
+ SciChart3DSurface.prototype.delete = function (clearHtml) {
215
+ if (clearHtml === void 0) { clearHtml = true; }
172
216
  this.renderableSeries.asArray().forEach(function (el) { return el.delete(); });
173
217
  this.renderableSeries.clear();
174
218
  this.xAxis = (0, Deleter_1.deleteSafe)(this.xAxis);
@@ -181,6 +225,8 @@ var SciChart3DSurface = /** @class */ (function (_super) {
181
225
  if (!app_1.IS_TEST_ENV) {
182
226
  this.webAssemblyContext3D.SCRTSetActiveWorld(null);
183
227
  }
228
+ this.clearRootElement(clearHtml);
229
+ _super.prototype.delete.call(this);
184
230
  };
185
231
  Object.defineProperty(SciChart3DSurface.prototype, "enableGizmo", {
186
232
  /**
@@ -328,6 +374,35 @@ var SciChart3DSurface = /** @class */ (function (_super) {
328
374
  enumerable: false,
329
375
  configurable: true
330
376
  });
377
+ Object.defineProperty(SciChart3DSurface.prototype, "isHitTestEnabled", {
378
+ /**
379
+ * Required to enable Hit-Test if any of the following functions are needed in SciChart3DSurface:
380
+ * - {@link BaseRenderableSeries3D.hitTest}
381
+ * - {@link TooltipModiifer3D}
382
+ *
383
+ * Enabling hit-test adds minor a performance overhead for drawing and should be disabled if not required.
384
+ * @param isEnabled
385
+ */
386
+ get: function () {
387
+ return this.isHitTestEnabledProperty;
388
+ },
389
+ /**
390
+ * Required to enable Hit-Test if any of the following functions are needed in SciChart3DSurface:
391
+ * - {@link BaseRenderableSeries3D.hitTest}
392
+ * - {@link TooltipModiifer3D}
393
+ *
394
+ * Enabling hit-test adds minor a performance overhead for drawing and should be disabled if not required.
395
+ * @param isEnabled
396
+ */
397
+ set: function (isEnabled) {
398
+ if (isEnabled !== this.isHitTestEnabledProperty) {
399
+ this.isHitTestEnabledProperty = isEnabled;
400
+ this.invalidateElement();
401
+ }
402
+ },
403
+ enumerable: false,
404
+ configurable: true
405
+ });
331
406
  /**
332
407
  * Called internally
333
408
  * Sets isAxisCubeRenderedProperty flag after Axis Cube is rendered
@@ -350,11 +425,16 @@ var SciChart3DSurface = /** @class */ (function (_super) {
350
425
  * @inheritDoc
351
426
  */
352
427
  SciChart3DSurface.prototype.invalidateElement = function () {
428
+ var _a;
353
429
  // When isSuspended (see suspendUpdates() function) ignore drawing
354
- if (this.isSuspended) {
430
+ if (this.isSuspended || this.isDeleted) {
355
431
  // Logger.log("SciChart3DSurface.isSuspended = true. Ignoring invalidateElement() call");
356
432
  return;
357
433
  }
434
+ // Prevent drawing request when WebGL context is lost
435
+ if ((_a = WebGlHelper_1.WebGlHelper.getContext(this.webAssemblyContext3D.canvas)) === null || _a === void 0 ? void 0 : _a.isContextLost()) {
436
+ return;
437
+ }
358
438
  var canvasId = this.domCanvas2D ? this.domCanvas2D.id : "undefinedCanvasId";
359
439
  this.webAssemblyContext3D.TSRRequestCanvasDraw(canvasId);
360
440
  };
@@ -382,7 +462,10 @@ var SciChart3DSurface = /** @class */ (function (_super) {
382
462
  * Called after the {@link SciChart3DSurface} has rendered.
383
463
  */
384
464
  SciChart3DSurface.prototype.onSciChartRendered = function () {
385
- // TODO - event after rendered
465
+ this.chartModifiers.asArray().forEach(function (cm) {
466
+ cm.onParentSurfaceRendered();
467
+ });
468
+ this.rendered.raiseEvent();
386
469
  };
387
470
  /**
388
471
  * Called internally - the main drawing loop
@@ -406,9 +489,12 @@ var SciChart3DSurface = /** @class */ (function (_super) {
406
489
  * @inheritDoc
407
490
  */
408
491
  SciChart3DSurface.prototype.changeViewportSize = function (pixelWidth, pixelHeight) {
409
- if (!pixelWidth || !pixelHeight) {
492
+ if (!pixelWidth || !pixelHeight || this.isDeleted) {
410
493
  return;
411
494
  }
495
+ var backBufferWidth = pixelWidth * DpiHelper_1.DpiHelper.PIXEL_RATIO;
496
+ var backBufferHeight = pixelHeight * DpiHelper_1.DpiHelper.PIXEL_RATIO;
497
+ this.viewportManager.setSize(backBufferWidth, backBufferHeight);
412
498
  if (this.isCopyCanvasSurface) {
413
499
  this.changeMasterCanvasViewportSize(this.webAssemblyContext3D, pixelWidth, pixelHeight);
414
500
  if (this.domCanvas2D) {
@@ -418,6 +504,21 @@ var SciChart3DSurface = /** @class */ (function (_super) {
418
504
  else {
419
505
  this.changeWebGLCanvasViewportSize(this.webAssemblyContext3D, pixelWidth, pixelHeight);
420
506
  }
507
+ var svgRootElement = this.domSvgContainer;
508
+ if (svgRootElement) {
509
+ // Set width, height
510
+ svgRootElement.setAttribute("width", pixelWidth.toString());
511
+ svgRootElement.setAttribute("height", pixelHeight.toString());
512
+ // Set display width, height
513
+ svgRootElement.style.width = pixelWidth + "px";
514
+ svgRootElement.style.height = pixelHeight + "px";
515
+ // Set scaling so annotations, tooltips etc are in right position after DPI Scaling
516
+ svgRootElement.currentScale = 1;
517
+ }
518
+ if (this.domSvgAdornerLayer) {
519
+ this.domSvgAdornerLayer.setAttribute("width", pixelWidth.toString());
520
+ this.domSvgAdornerLayer.setAttribute("height", pixelHeight.toString());
521
+ }
421
522
  this.invalidateElement();
422
523
  };
423
524
  /**
@@ -475,6 +576,18 @@ var SciChart3DSurface = /** @class */ (function (_super) {
475
576
  this.animationList = remainingAnimations;
476
577
  }
477
578
  };
579
+ /**
580
+ * @inheritDoc
581
+ */
582
+ SciChart3DSurface.prototype.getXAxisById = function (axisId) {
583
+ return this.xAxis;
584
+ };
585
+ /**
586
+ * @inheritDoc
587
+ */
588
+ SciChart3DSurface.prototype.getYAxisById = function (axisId) {
589
+ return this.yAxis;
590
+ };
478
591
  /**
479
592
  * @inheritDoc
480
593
  */
@@ -490,6 +603,16 @@ var SciChart3DSurface = /** @class */ (function (_super) {
490
603
  this.webAssemblyContext3D.SCRT3DSetWaterMarkProperties(this.watermarkProperties);
491
604
  }
492
605
  };
606
+ SciChart3DSurface.prototype.getSeriesViewRectPadding = function (scaled) {
607
+ return Thickness_1.Thickness.fromNumber(0);
608
+ };
609
+ SciChart3DSurface.prototype.applyOptions = function (options) {
610
+ _super.prototype.applyOptions.call(this, options);
611
+ this.camera = new CameraController_1.CameraController(this.webAssemblyContext3D, options === null || options === void 0 ? void 0 : options.cameraOptions);
612
+ if (options === null || options === void 0 ? void 0 : options.worldDimensions) {
613
+ this.worldDimensions = options.worldDimensions;
614
+ }
615
+ };
493
616
  /**
494
617
  * @inheritDoc
495
618
  */
@@ -14,6 +14,10 @@ export declare abstract class ViewportManager3DBase {
14
14
  * The parent {@link SciChart3DSurface} when attached
15
15
  */
16
16
  parentSurface: SciChart3DSurface;
17
+ width: number;
18
+ height: number;
19
+ constructor(width: number, height: number);
20
+ setSize(width: number, height: number): void;
17
21
  /**
18
22
  * Called when attached to a {@link SciChart3DSurface}
19
23
  * @param scs The {@link SciChart3DSurface}
@@ -7,8 +7,14 @@ var AutoRange_1 = require("../../types/AutoRange");
7
7
  * on a {@link SciChart3DSurface}
8
8
  */
9
9
  var ViewportManager3DBase = /** @class */ (function () {
10
- function ViewportManager3DBase() {
10
+ function ViewportManager3DBase(width, height) {
11
+ this.width = width;
12
+ this.height = height;
11
13
  }
14
+ ViewportManager3DBase.prototype.setSize = function (width, height) {
15
+ this.width = width;
16
+ this.height = height;
17
+ };
12
18
  /**
13
19
  * Called when attached to a {@link SciChart3DSurface}
14
20
  * @param scs The {@link SciChart3DSurface}
@@ -1,7 +1,6 @@
1
1
  import { I2DSurfaceOptions } from "../../Charting/Visuals/I2DSurfaceOptions";
2
- import { TSciChartDestination } from "../../Charting/Visuals/SciChartSurfaceBase";
3
2
  import { TWebAssemblyChart3D } from "./SciChart3DSurface";
4
3
  /** @ignore */
5
4
  export declare const createMultichart3d: (divElement: string | HTMLDivElement, options?: I2DSurfaceOptions) => Promise<TWebAssemblyChart3D>;
6
5
  /** @ignore */
7
- export declare const sciChartDestinations: TSciChartDestination[];
6
+ export declare const disposeMultiChart3d: () => void;
@@ -36,14 +36,19 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.sciChartDestinations = exports.createMultichart3d = void 0;
39
+ exports.disposeMultiChart3d = exports.createMultichart3d = void 0;
40
40
  // @ts-ignore
41
41
  var WasmModule3D = require("../../_wasm/scichart3d");
42
42
  var chartBuilder_1 = require("../../Builder/chartBuilder");
43
+ var licenseManager2D_1 = require("../../Charting/Visuals/licenseManager2D");
43
44
  var loader_1 = require("../../Charting/Visuals/loader");
45
+ var SciChartDefaults_1 = require("../../Charting/Visuals/SciChartDefaults");
44
46
  var sciChartInitCommon_1 = require("../../Charting/Visuals/sciChartInitCommon");
45
47
  var SciChartSurfaceBase_1 = require("../../Charting/Visuals/SciChartSurfaceBase");
46
48
  var BuildStamp_1 = require("../../Core/BuildStamp");
49
+ var DeletableEntity_1 = require("../../Core/DeletableEntity");
50
+ var Globals_1 = require("../../Core/Globals");
51
+ var MemoryUsageHelper_1 = require("../../utils/MemoryUsageHelper");
47
52
  var licenseManager3D_1 = require("./licenseManager3D");
48
53
  var SciChart3DSurface_1 = require("./SciChart3DSurface");
49
54
  /** @ignore */
@@ -63,7 +68,7 @@ var createMultichart3d = function (divElement, options) { return __awaiter(void
63
68
  case 0:
64
69
  (0, chartBuilder_1.ensureRegistrations)();
65
70
  sciChartInitCommon_1.default.checkChartDivExists(divElement);
66
- canvases = sciChartInitCommon_1.default.initCanvas(divElement, (_a = options === null || options === void 0 ? void 0 : options.widthAspect) !== null && _a !== void 0 ? _a : 0, (_b = options === null || options === void 0 ? void 0 : options.heightAspect) !== null && _b !== void 0 ? _b : 0, sciChartInitCommon_1.default.ECanvasType.canvas2D);
71
+ canvases = sciChartInitCommon_1.default.initCanvas(divElement, (_a = options === null || options === void 0 ? void 0 : options.widthAspect) !== null && _a !== void 0 ? _a : 0, (_b = options === null || options === void 0 ? void 0 : options.heightAspect) !== null && _b !== void 0 ? _b : 0, sciChartInitCommon_1.default.ECanvasType.canvas2D, undefined, options === null || options === void 0 ? void 0 : options.touchAction);
67
72
  loader = (_c = options === null || options === void 0 ? void 0 : options.loader) !== null && _c !== void 0 ? _c : new loader_1.DefaultSciChartLoader();
68
73
  loaderDiv = loader.addChartLoader(canvases.domDivContainer, (_d = options === null || options === void 0 ? void 0 : options.theme) !== null && _d !== void 0 ? _d : SciChartSurfaceBase_1.SciChartSurfaceBase.DEFAULT_THEME);
69
74
  _f.label = 1;
@@ -105,14 +110,25 @@ var createMultichart3d = function (divElement, options) { return __awaiter(void
105
110
  });
106
111
  }); };
107
112
  exports.createMultichart3d = createMultichart3d;
113
+ var cleanupWasmContext;
108
114
  /** @ignore */
109
- exports.sciChartDestinations = [];
115
+ var disposeMultiChart3d = function () {
116
+ if (cleanupWasmContext) {
117
+ cleanupWasmContext();
118
+ }
119
+ sciChartMaster3D.createChildSurface = undefined;
120
+ sciChartMaster3D.getChildSurfaces = undefined;
121
+ sciChartMaster3D.wasmContext = undefined;
122
+ sciChartMaster3DPromise = undefined;
123
+ licenseManager2D_1.licenseManager.clear();
124
+ };
125
+ exports.disposeMultiChart3d = disposeMultiChart3d;
110
126
  /** @ignore */
111
127
  var createMaster = function () {
112
128
  var createChildSurfaceInner = function (wasmContext, divElementId, canvases, theme) {
113
129
  var sciChart3DSurface = new SciChart3DSurface_1.SciChart3DSurface(wasmContext, { canvases: canvases });
114
130
  sciChart3DSurface.applyTheme(theme);
115
- sciChart3DSurface.setDestinations(exports.sciChartDestinations);
131
+ sciChart3DSurface.setDestinations(Globals_1.sciChart3DDestinations);
116
132
  var unsub = sciChartInitCommon_1.default.subscribeToResize(canvases.domChartRoot, canvases.aspect, sciChart3DSurface);
117
133
  sciChart3DSurface.addDeletable(unsub);
118
134
  return sciChart3DSurface;
@@ -125,28 +141,77 @@ var createMaster = function () {
125
141
  }
126
142
  var dest = wasmContext.SCRTSurfaceDestination.implement(newDestination);
127
143
  chartInitObj3D.AddDestination(dest);
128
- exports.sciChartDestinations.push({ canvasElementId: canvasElementId, sciChartSurface: sciChartSurface, width: width, height: height });
144
+ Globals_1.sciChart3DDestinations.push({ canvasElementId: canvasElementId, sciChartSurface: sciChartSurface, width: width, height: height });
129
145
  };
130
146
  return new Promise(function (resolve, reject) {
131
147
  var locateFile = (0, SciChartSurfaceBase_1.getLocateFile)(SciChart3DSurface_1.sciChartConfig3D);
132
148
  // @ts-ignore
133
149
  new WasmModule3D({ locateFile: locateFile, noInitialRun: true })
134
- .then(function (wasmContext) {
135
- var getChildSurfaces = function () { return exports.sciChartDestinations.map(function (el) { return el.sciChartSurface; }); };
150
+ .then(function (originalWasmContext) {
151
+ var revocable = (0, DeletableEntity_1.createWasmContextRevocableProxy)(originalWasmContext);
152
+ var wasmContext = revocable.proxy;
153
+ cleanupWasmContext = function () {
154
+ // Halt the engine
155
+ wasmContext.TSRRequestExit();
156
+ frameRenderer3D.delete();
157
+ // wasmContext.SCRTGetGlobalSampleChartInterface().GetFrameRenderer().delete();
158
+ wasmContext.SCRTGetGlobalSampleChartInterface().SetFrameRenderer(null);
159
+ wasmContext.SCRTGetGlobalSampleChartInterface().delete();
160
+ wasmContext.SCRTSetGlobalSampleChartInterface(null);
161
+ // deleteCache(wasmContext);
162
+ canvasCopyObj.delete();
163
+ wasmContext.SCRTSetGlobalCopyToDestinationInterface(null);
164
+ revocable.revoke();
165
+ revocable = undefined;
166
+ cleanupWasmContext = undefined;
167
+ };
168
+ var getChildSurfaces = function () {
169
+ return Globals_1.sciChart3DDestinations.map(function (el) { return el.sciChartSurface; });
170
+ };
136
171
  // Create of replace child surface
137
172
  var createChildSurface = function (divElementId, canvases, theme) {
138
173
  var canvas2dId = sciChartInitCommon_1.default.getCanvas2dId(divElementId);
139
- var otherDestinations = exports.sciChartDestinations.filter(function (el) { return el.canvasElementId !== canvas2dId; });
174
+ var otherDestinations = Globals_1.sciChart3DDestinations.filter(function (el) { return el.canvasElementId !== canvas2dId; });
140
175
  chartInitObj.ClearDestinations();
141
- var sameIdDestination = exports.sciChartDestinations.filter(function (el) { return el.canvasElementId === canvas2dId; });
176
+ var sameIdDestination = Globals_1.sciChart3DDestinations.filter(function (el) { return el.canvasElementId === canvas2dId; });
142
177
  sameIdDestination.forEach(function (el) { return el.sciChartSurface.delete(); });
143
- while (exports.sciChartDestinations.length > 0) {
144
- exports.sciChartDestinations.pop();
178
+ while (Globals_1.sciChart3DDestinations.length > 0) {
179
+ Globals_1.sciChart3DDestinations.pop();
145
180
  }
146
181
  otherDestinations.forEach(function (el) {
147
182
  return addDestination(wasmContext, el.canvasElementId, el.sciChartSurface, el.width, el.height, chartInitObj);
148
183
  });
149
184
  var sciChart3DSurface = createChildSurfaceInner(wasmContext, divElementId, canvases, theme);
185
+ sciChart3DSurface.addDeletable({
186
+ delete: function () {
187
+ if (SciChart3DSurface_1.SciChart3DSurface.autoDisposeWasmContext &&
188
+ sciChart3DSurface.otherSurfaces.length === 0) {
189
+ if (SciChart3DSurface_1.SciChart3DSurface.wasmContextDisposeTimeout) {
190
+ setTimeout(function () {
191
+ if (Globals_1.sciChart3DDestinations.length === 0) {
192
+ SciChart3DSurface_1.SciChart3DSurface.disposeSharedWasmContext();
193
+ }
194
+ }, SciChart3DSurface_1.SciChart3DSurface.wasmContextDisposeTimeout);
195
+ }
196
+ else {
197
+ SciChart3DSurface_1.SciChart3DSurface.disposeSharedWasmContext();
198
+ }
199
+ }
200
+ else {
201
+ try {
202
+ if (process.env.NODE_ENV !== "production") {
203
+ if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled &&
204
+ sciChart3DSurface.otherSurfaces.length === 0) {
205
+ console.warn("SciChart3DSurface.autoDisposeWasmContext is disabled, thus wasmContext should be disposed explicitly using \"SciChartSurface.disposeSharedWasmContext()\".");
206
+ }
207
+ }
208
+ }
209
+ catch (err) {
210
+ console.warn(err);
211
+ }
212
+ }
213
+ }
214
+ });
150
215
  addDestination(wasmContext, canvas2dId, sciChart3DSurface, canvases.domCanvas2D.width, canvases.domCanvas2D.height, chartInitObj);
151
216
  (0, licenseManager3D_1.applyLicense3D)(wasmContext, sciChart3DSurface, false);
152
217
  return sciChart3DSurface;
@@ -157,7 +222,7 @@ var createMaster = function () {
157
222
  resolve({ getChildSurfaces: getChildSurfaces, createChildSurface: createChildSurface, wasmContext: wasmContext });
158
223
  },
159
224
  Draw: function (canvasId) {
160
- var dest = exports.sciChartDestinations.find(function (d) { return d.canvasElementId === canvasId; });
225
+ var dest = Globals_1.sciChart3DDestinations.find(function (d) { return d.canvasElementId === canvasId; });
161
226
  if (dest) {
162
227
  dest.sciChartSurface.doDrawingLoop();
163
228
  }
@@ -173,6 +238,8 @@ var createMaster = function () {
173
238
  var frameRenderer3D = new wasmContext.SCRTFrameRenderer3D();
174
239
  chartInitObj.SetFrameRenderer(frameRenderer3D);
175
240
  chartInitObj.SetFPSCounterEnabled(false);
241
+ // This may not be used in the case of 3D charts, but we set the property anyway as its passed down to TSR engine when initialising
242
+ chartInitObj.SetWasmBufferSizesKb(SciChartDefaults_1.SciChartDefaults.wasmBufferSizesKb);
176
243
  wasmContext.SCRTSetGlobalSampleChartInterface(chartInitObj);
177
244
  // create an object that native side can trigger the copy to from...
178
245
  var canvasCopyObj = wasmContext.SCRTCopyToDestinationInterface.implement({
@@ -183,7 +250,7 @@ var createMaster = function () {
183
250
  // SCJS-1321 fixes cutting 3d chart issue. 3D wasm and vice versa doesn't know about domMasterCanvas width/height
184
251
  // when creating one 3d chart and one 2d chart on the same screen. So we tell the other wasm about existing master canvas size
185
252
  if (SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas) {
186
- wasmContext.TSRSetMainWindowSize(SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.width, SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height);
253
+ wasmContext.SCRTSetMainWindowSize(SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.width, SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height);
187
254
  }
188
255
  // @ts-ignore
189
256
  wasmContext.callMain();
@@ -195,5 +262,5 @@ var createMaster = function () {
195
262
  };
196
263
  /** @ignore */
197
264
  var getDestinationById = function (destinationId) {
198
- return exports.sciChartDestinations.find(function (dest) { return dest.canvasElementId === destinationId; });
265
+ return Globals_1.sciChart3DDestinations.find(function (dest) { return dest.canvasElementId === destinationId; });
199
266
  };