scichart 2.0.2194 → 2.1.0-beta.40

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 (223) hide show
  1. package/Charting/ChartModifiers/CursorModifier.d.ts +9 -0
  2. package/Charting/ChartModifiers/CursorModifier.js +10 -0
  3. package/Charting/ChartModifiers/DataPointSelectionModifier.js +0 -1
  4. package/Charting/ChartModifiers/RolloverModifier.d.ts +25 -0
  5. package/Charting/ChartModifiers/RolloverModifier.js +8 -0
  6. package/Charting/Drawing/BrushCache.d.ts +8 -2
  7. package/Charting/Drawing/BrushCache.js +16 -8
  8. package/Charting/Drawing/WebGlRenderContext2D.d.ts +1 -0
  9. package/Charting/Drawing/WebGlRenderContext2D.js +4 -1
  10. package/Charting/LayoutManager/BaseAxisLayoutStrategy.d.ts +2 -0
  11. package/Charting/LayoutManager/BaseAxisLayoutStrategy.js +33 -0
  12. package/Charting/LayoutManager/BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy.js +18 -2
  13. package/Charting/LayoutManager/LeftAlignedOuterVerticallyStackedAxisLayoutStrategy.js +19 -2
  14. package/Charting/LayoutManager/RightAlignedOuterVerticallyStackedAxisLayoutStrategy.js +18 -2
  15. package/Charting/LayoutManager/TopAlignedOuterHorizontallyStackedAxisLayoutStrategy.js +18 -2
  16. package/Charting/Model/BaseDataSeries.d.ts +42 -15
  17. package/Charting/Model/BaseDataSeries.js +77 -28
  18. package/Charting/Model/BaseHeatmapDataSeries.d.ts +31 -23
  19. package/Charting/Model/BaseHeatmapDataSeries.js +45 -18
  20. package/Charting/Model/DataDistributionCalculator/DataDistributionCalculator.d.ts +23 -0
  21. package/Charting/Model/DataDistributionCalculator/DataDistributionCalculator.js +122 -0
  22. package/Charting/Model/DataDistributionCalculator/IDataDistributionCalculator.d.ts +57 -0
  23. package/Charting/Model/DataDistributionCalculator/IDataDistributionCalculator.js +2 -0
  24. package/Charting/Model/Filters/OhlcFilterBase.d.ts +2 -2
  25. package/Charting/Model/Filters/XyFilterBase.d.ts +3 -3
  26. package/Charting/Model/Filters/XyMovingAverageFilter.js +1 -1
  27. package/Charting/Model/Filters/XyyFilterBase.d.ts +4 -4
  28. package/Charting/Model/Filters/XyzFilterBase.d.ts +4 -4
  29. package/Charting/Model/IDataSeries.d.ts +37 -5
  30. package/Charting/Model/OhlcDataSeries.d.ts +12 -11
  31. package/Charting/Model/OhlcDataSeries.js +47 -44
  32. package/Charting/Model/PointSeries/BasePointSeriesResampled.d.ts +21 -0
  33. package/Charting/Model/PointSeries/BasePointSeriesResampled.js +56 -0
  34. package/Charting/Model/PointSeries/BasePointSeriesWrapped.d.ts +14 -0
  35. package/Charting/Model/PointSeries/BasePointSeriesWrapped.js +23 -0
  36. package/Charting/Model/PointSeries/IPointSeries.d.ts +31 -0
  37. package/Charting/Model/PointSeries/IPointSeries.js +2 -0
  38. package/Charting/Model/PointSeries/OhlcPointSeriesResampled.d.ts +13 -0
  39. package/Charting/Model/PointSeries/OhlcPointSeriesResampled.js +59 -0
  40. package/Charting/Model/PointSeries/OhlcPointSeriesWrapped.d.ts +11 -0
  41. package/Charting/Model/PointSeries/OhlcPointSeriesWrapped.js +32 -0
  42. package/Charting/Model/PointSeries/XyPointSeriesResampled.d.ts +7 -0
  43. package/Charting/Model/PointSeries/XyPointSeriesResampled.js +27 -0
  44. package/Charting/Model/PointSeries/XyPointSeriesWrapped.d.ts +6 -0
  45. package/Charting/Model/PointSeries/XyPointSeriesWrapped.js +27 -0
  46. package/Charting/Model/PointSeries/XyyPointSeriesResampled.d.ts +10 -0
  47. package/Charting/Model/PointSeries/XyyPointSeriesResampled.js +48 -0
  48. package/Charting/Model/PointSeries/XyyPointSeriesWrapped.d.ts +8 -0
  49. package/Charting/Model/PointSeries/XyyPointSeriesWrapped.js +29 -0
  50. package/Charting/Model/PointSeries/XyzPointSeriesWrapped.d.ts +8 -0
  51. package/Charting/Model/PointSeries/XyzPointSeriesWrapped.js +29 -0
  52. package/Charting/Model/XyDataSeries.d.ts +3 -2
  53. package/Charting/Model/XyDataSeries.js +26 -26
  54. package/Charting/Model/XyyDataSeries.d.ts +5 -5
  55. package/Charting/Model/XyyDataSeries.js +30 -27
  56. package/Charting/Model/XyzDataSeries.d.ts +5 -5
  57. package/Charting/Model/XyzDataSeries.js +30 -27
  58. package/Charting/Numerics/CoordinateCalculators/CategoryCoordinateCalculator.d.ts +2 -2
  59. package/Charting/Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator.d.ts +2 -2
  60. package/Charting/Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator.d.ts +2 -1
  61. package/Charting/Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator.js +6 -2
  62. package/Charting/Numerics/CoordinateCalculators/NumericCoordinateCalculator.d.ts +2 -1
  63. package/Charting/Numerics/CoordinateCalculators/NumericCoordinateCalculator.js +6 -2
  64. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.d.ts +54 -0
  65. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.js +232 -0
  66. package/Charting/Numerics/Resamplers/ResamplingMode.d.ts +37 -0
  67. package/Charting/Numerics/Resamplers/ResamplingMode.js +41 -0
  68. package/Charting/Numerics/Resamplers/ResamplingParams.d.ts +39 -0
  69. package/Charting/Numerics/Resamplers/ResamplingParams.js +52 -0
  70. package/Charting/Services/RenderPassData.d.ts +6 -1
  71. package/Charting/Services/RenderPassData.js +5 -1
  72. package/Charting/Services/RenderPassInfo.d.ts +18 -0
  73. package/Charting/Services/RenderPassInfo.js +14 -0
  74. package/Charting/Services/SciChartRenderer.d.ts +14 -1
  75. package/Charting/Services/SciChartRenderer.js +124 -31
  76. package/Charting/Visuals/Annotations/AnnotationBase.d.ts +1 -1
  77. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.d.ts +1 -0
  78. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.js +6 -0
  79. package/Charting/Visuals/Annotations/RolloverMarkerSvgAnnotation.d.ts +5 -0
  80. package/Charting/Visuals/Annotations/RolloverMarkerSvgAnnotation.js +12 -1
  81. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.d.ts +6 -8
  82. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.js +12 -9
  83. package/Charting/Visuals/Annotations/SvgAnnotationBase.js +7 -2
  84. package/Charting/Visuals/Axis/AxisBase2D.d.ts +23 -0
  85. package/Charting/Visuals/Axis/AxisBase2D.js +71 -24
  86. package/Charting/Visuals/Axis/AxisCore.d.ts +11 -0
  87. package/Charting/Visuals/Axis/AxisCore.js +39 -18
  88. package/Charting/Visuals/Axis/AxisRenderer.d.ts +1 -0
  89. package/Charting/Visuals/Axis/AxisRenderer.js +37 -10
  90. package/Charting/Visuals/Axis/IAxisCoreOptions.d.ts +5 -0
  91. package/Charting/Visuals/Axis/LabelProvider/LabelCache.js +2 -2
  92. package/Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D.js +9 -4
  93. package/Charting/Visuals/Axis/NumericAxis.js +2 -2
  94. package/Charting/Visuals/Axis/constants.d.ts +1 -0
  95. package/Charting/Visuals/Axis/constants.js +1 -0
  96. package/Charting/Visuals/RenderableSeries/Animations/FadeAnimation.d.ts +2 -2
  97. package/Charting/Visuals/RenderableSeries/Animations/ScaleAnimation.d.ts +2 -2
  98. package/Charting/Visuals/RenderableSeries/Animations/SeriesAnimation.d.ts +3 -3
  99. package/Charting/Visuals/RenderableSeries/Animations/SweepAnimation.d.ts +2 -2
  100. package/Charting/Visuals/RenderableSeries/Animations/WaveAnimation.d.ts +2 -2
  101. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.d.ts +6 -6
  102. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.js +2 -2
  103. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.d.ts +9 -2
  104. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.js +45 -1
  105. package/Charting/Visuals/RenderableSeries/BaseLineRenderableSeries.d.ts +1 -0
  106. package/Charting/Visuals/RenderableSeries/BaseLineRenderableSeries.js +1 -0
  107. package/Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries.d.ts +1 -0
  108. package/Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries.js +1 -0
  109. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.d.ts +12 -5
  110. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.js +59 -0
  111. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +40 -5
  112. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +116 -11
  113. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.d.ts +36 -4
  114. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +51 -3
  115. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.d.ts +38 -4
  116. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +54 -3
  117. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.d.ts +1 -1
  118. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.js +8 -14
  119. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +4 -3
  120. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.js +5 -11
  121. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.js +4 -11
  122. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.d.ts +2 -1
  123. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.js +17 -21
  124. package/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.js +16 -15
  125. package/Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider.js +9 -15
  126. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.d.ts +4 -3
  127. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.js +16 -21
  128. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformContoursDrawingProvider.js +2 -9
  129. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.js +0 -7
  130. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.d.ts +6 -2
  131. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.js +5 -0
  132. package/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.d.ts +1 -0
  133. package/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.js +1 -0
  134. package/Charting/Visuals/RenderableSeries/FastLineRenderableSeries.d.ts +1 -0
  135. package/Charting/Visuals/RenderableSeries/FastLineRenderableSeries.js +6 -0
  136. package/Charting/Visuals/RenderableSeries/HitTest/BandSeriesHitTestProvider.js +2 -2
  137. package/Charting/Visuals/RenderableSeries/HitTest/BaseHitTestProvider.js +1 -1
  138. package/Charting/Visuals/RenderableSeries/HitTest/BubbleSeriesHitTestProvider.js +1 -1
  139. package/Charting/Visuals/RenderableSeries/HitTest/ColumnSeriesHitTestProvider.js +2 -2
  140. package/Charting/Visuals/RenderableSeries/HitTest/LineSeriesHitTestProvider.js +2 -2
  141. package/Charting/Visuals/RenderableSeries/HitTest/MountainSeriesHitTestProvider.js +1 -1
  142. package/Charting/Visuals/RenderableSeries/HitTest/OhlcSeriesHitTestProvider.js +2 -2
  143. package/Charting/Visuals/RenderableSeries/HitTest/ScatterSeriesHitTestProvider.js +1 -1
  144. package/Charting/Visuals/RenderableSeries/HitTest/StackedColumnSeriesHitTestProvider.js +2 -2
  145. package/Charting/Visuals/RenderableSeries/HitTest/StackedMountainSeriesHitTestProvider.js +2 -2
  146. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.d.ts +6 -6
  147. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.js +1 -1
  148. package/Charting/Visuals/RenderableSeries/IBaseRenderableSeriesOptions.d.ts +12 -1
  149. package/Charting/Visuals/RenderableSeries/IRenderableSeries.d.ts +38 -2
  150. package/Charting/Visuals/RenderableSeries/ISpline.d.ts +3 -3
  151. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.d.ts +4 -4
  152. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.js +5 -5
  153. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.d.ts +3 -3
  154. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.js +3 -3
  155. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.d.ts +3 -3
  156. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.js +3 -3
  157. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.js +0 -6
  158. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.d.ts +1 -1
  159. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.js +1 -7
  160. package/Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries.d.ts +5 -0
  161. package/Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries.js +6 -0
  162. package/Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries.d.ts +5 -0
  163. package/Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries.js +6 -0
  164. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.d.ts +5 -3
  165. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.js +6 -3
  166. package/Charting/Visuals/RenderableSeries/constants.d.ts +3 -0
  167. package/Charting/Visuals/RenderableSeries/constants.js +3 -0
  168. package/Charting/Visuals/SciChartDefaults.d.ts +9 -1
  169. package/Charting/Visuals/SciChartDefaults.js +9 -1
  170. package/Charting/Visuals/SciChartSurface.d.ts +4 -4
  171. package/Charting/Visuals/SciChartSurface.js +18 -11
  172. package/Charting/Visuals/SciChartSurfaceBase.d.ts +3 -2
  173. package/Charting/Visuals/SciChartSurfaceBase.js +4 -4
  174. package/Charting/Visuals/createMaster.d.ts +1 -1
  175. package/Charting/Visuals/createMaster.js +11 -6
  176. package/Charting/Visuals/createSingle.d.ts +1 -1
  177. package/Charting/Visuals/createSingle.js +2 -2
  178. package/Charting/Visuals/licenseManager2D.js +22 -21
  179. package/Charting/Visuals/licenseManager2dState.d.ts +4 -0
  180. package/Charting/Visuals/licenseManager2dState.js +12 -0
  181. package/Charting/Visuals/sciChartInitCommon.d.ts +2 -2
  182. package/Charting/Visuals/sciChartInitCommon.js +18 -12
  183. package/Charting3D/Model/DataSeries/XyzDataSeries3D.d.ts +7 -7
  184. package/Charting3D/Model/DataSeries/XyzDataSeries3D.js +3 -3
  185. package/Charting3D/Visuals/SciChart3DSurface.d.ts +2 -2
  186. package/Charting3D/Visuals/SciChart3DSurface.js +3 -3
  187. package/Charting3D/Visuals/createMaster3d.d.ts +1 -1
  188. package/Charting3D/Visuals/createMaster3d.js +11 -6
  189. package/Charting3D/Visuals/createSingle3d.d.ts +1 -1
  190. package/Charting3D/Visuals/createSingle3d.js +2 -2
  191. package/Core/BuildStamp.d.ts +1 -1
  192. package/Core/BuildStamp.js +2 -2
  193. package/Core/NumberRange.d.ts +1 -0
  194. package/Core/NumberRange.js +8 -0
  195. package/Core/OneTimePerformanceWarning.d.ts +6 -0
  196. package/Core/OneTimePerformanceWarning.js +19 -0
  197. package/Core/storage/localStorageApi.d.ts +9 -0
  198. package/Core/storage/localStorageApi.js +32 -0
  199. package/_wasm/scichart.browser.js +1 -1
  200. package/_wasm/scichart2d.js +12 -12
  201. package/_wasm/scichart2d.wasm +0 -0
  202. package/_wasm/scichart3d.js +96 -96
  203. package/_wasm/scichart3d.wasm +0 -0
  204. package/constants/performanceWarnings.d.ts +5 -0
  205. package/constants/performanceWarnings.js +8 -0
  206. package/package.json +1 -1
  207. package/types/NumberArray.d.ts +1 -0
  208. package/types/NumberArray.js +5 -1
  209. package/types/SearchMode.d.ts +21 -0
  210. package/types/SearchMode.js +25 -0
  211. package/types/TSciChart.d.ts +143 -40
  212. package/types/TSciChart3D.d.ts +66 -28
  213. package/types/TStackedAxisLength.d.ts +4 -0
  214. package/types/TStackedAxisLength.js +4 -0
  215. package/utils/array.d.ts +7 -0
  216. package/utils/array.js +19 -1
  217. package/utils/calcAverage.d.ts +2 -2
  218. package/utils/ccall/appendDoubleVectorFromJsArray.d.ts +19 -0
  219. package/utils/ccall/appendDoubleVectorFromJsArray.js +91 -0
  220. package/utils/hash.d.ts +7 -0
  221. package/utils/hash.js +35 -0
  222. package/utils/ccall/fillDoubleVectorFromJsArray.d.ts +0 -3
  223. package/utils/ccall/fillDoubleVectorFromJsArray.js +0 -33
@@ -18,8 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.BandSeriesDrawingProvider = void 0;
19
19
  var Deleter_1 = require("../../../../Core/Deleter");
20
20
  var SeriesType_1 = require("../../../../types/SeriesType");
21
- var Pen2DCache_1 = require("../../../Drawing/Pen2DCache");
22
21
  var BrushCache_1 = require("../../../Drawing/BrushCache");
22
+ var Pen2DCache_1 = require("../../../Drawing/Pen2DCache");
23
23
  var WebGlRenderContext2D_1 = require("../../../Drawing/WebGlRenderContext2D");
24
24
  var constants_1 = require("../constants");
25
25
  var BaseSeriesDrawingProvider_1 = require("./BaseSeriesDrawingProvider");
@@ -78,11 +78,12 @@ var BandSeriesDrawingProvider = /** @class */ (function (_super) {
78
78
  */
79
79
  BandSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {
80
80
  var _a;
81
- var dataSeries = this.parentSeries.dataSeries;
81
+ var pointSeries = renderPassData.pointSeries;
82
+ var containsNaN = this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN;
82
83
  var args = new this.webAssemblyContext.SCRTBandDrawingParams();
83
84
  args.forceShaderMethod = true;
84
85
  args.verticalChart = renderPassData.isVerticalChart;
85
- args.lineGaps = dataSeries.containsNaN
86
+ args.lineGaps = containsNaN
86
87
  ? this.parentSeries.drawNaNAs === WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine
87
88
  ? this.webAssemblyContext.SCRTLineGapMode.DrawGaps
88
89
  : this.webAssemblyContext.SCRTLineGapMode.CloseGaps
@@ -105,10 +106,10 @@ var BandSeriesDrawingProvider = /** @class */ (function (_super) {
105
106
  args.SetLinesPen1(strokePenY1);
106
107
  }
107
108
  var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;
108
- var xValues = dataSeries.getNativeXValues();
109
- var xDrawValues = isCategoryAxis ? dataSeries.getNativeIndexes() : xValues;
110
- var yDrawValues = dataSeries.getNativeYValues();
111
- var y1DrawValues = dataSeries.getNativeY1Values();
109
+ var xValues = pointSeries.xValues;
110
+ var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;
111
+ var yDrawValues = pointSeries.yValues;
112
+ var y1DrawValues = pointSeries.y1Values;
112
113
  var isSplineBandSeries = this.parentSeries.type === SeriesType_1.ESeriesType.SplineBandSeries && xValues.size() > 1;
113
114
  if (isSplineBandSeries) {
114
115
  var splineBandSeries = this.parentSeries;
@@ -128,14 +129,7 @@ var BandSeriesDrawingProvider = /** @class */ (function (_super) {
128
129
  }
129
130
  args.isSmoothColors = this.palettingState.gradientPaletting;
130
131
  var nativeContext = renderContext.getNativeContext();
131
- var viewRect = this.parentSeries.parentSurface.seriesViewRect;
132
- nativeContext.PushMatrix();
133
- nativeContext.PushState();
134
- nativeContext.Translate(viewRect.x, viewRect.y);
135
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
136
132
  this.nativeDrawingProvider.DrawPointsVec(nativeContext, xDrawValues, yDrawValues, y1DrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args);
137
- nativeContext.PopMatrix();
138
- nativeContext.PopState();
139
133
  args.delete();
140
134
  };
141
135
  /**
@@ -44,6 +44,7 @@ var BaseSeriesDrawingProvider = /** @class */ (function () {
44
44
  * @returns the new {@link UIntVector} with ARGB colors
45
45
  */
46
46
  BaseSeriesDrawingProvider.prototype.applyStrokePaletting = function (strokePen) {
47
+ var _a;
47
48
  if (this.parentSeries.hasStrokePaletteProvider()) {
48
49
  var strokeColorArgb = (0, colorUtil_1.uintArgbColorMultiplyOpacity)((0, parseColor_1.parseColorToUIntArgb)(this.parentSeries.stroke), this.parentSeries.opacity);
49
50
  if (isNaN(strokeColorArgb)) {
@@ -70,11 +71,11 @@ var BaseSeriesDrawingProvider = /** @class */ (function () {
70
71
  }
71
72
  }
72
73
  else {
73
- this.palettingState.palettedColors = (0, Deleter_1.deleteSafe)(this.palettingState.palettedColors);
74
74
  if (this.palettingState.originalPenColor) {
75
75
  strokePen.m_uiColor = this.palettingState.originalPenColor;
76
76
  this.palettingState.originalPenColor = undefined;
77
77
  }
78
+ (_a = this.palettingState.palettedColors) === null || _a === void 0 ? void 0 : _a.clear();
78
79
  }
79
80
  // Due to pass-by-pointer limitations of WASM binding, we pass an empty vector rather than null
80
81
  if (!this.palettingState.palettedColors) {
@@ -82,7 +83,7 @@ var BaseSeriesDrawingProvider = /** @class */ (function () {
82
83
  }
83
84
  };
84
85
  BaseSeriesDrawingProvider.prototype.applyStrokeFillPaletting = function (stroke, strokePen, fill, fillBrush, opacity, usePalette, resetPenBrushColors) {
85
- var _a, _b;
86
+ var _a, _b, _c;
86
87
  if (usePalette === void 0) { usePalette = false; }
87
88
  if (resetPenBrushColors === void 0) { resetPenBrushColors = true; }
88
89
  var hasStrokePaletteProvider = this.parentSeries.hasStrokePaletteProvider();
@@ -165,8 +166,8 @@ var BaseSeriesDrawingProvider = /** @class */ (function () {
165
166
  }
166
167
  }
167
168
  else {
168
- this.palettingState.palettedColors = (0, Deleter_1.deleteSafe)(this.palettingState.palettedColors);
169
169
  this.palettingState.paletteTextureCache.reset();
170
+ (_c = this.palettingState.palettedColors) === null || _c === void 0 ? void 0 : _c.clear();
170
171
  // This was needed for resetPenBrushColors, therefore commented out as well
171
172
  // if (strokePen) {
172
173
  // if (this.palettingState.originalPenColor) {
@@ -51,12 +51,12 @@ var BubbleSeriesDrawingProvider = /** @class */ (function (_super) {
51
51
  return;
52
52
  }
53
53
  var spriteTexture = pointMarker.getSprite();
54
- var dataSeries = this.parentSeries.dataSeries;
54
+ var pointSeries = renderPassData.pointSeries;
55
55
  var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;
56
56
  var args = new this.webAssemblyContext.SCRTPointDrawingParams();
57
- var xValues = dataSeries.getNativeXValues();
58
- var yValues = dataSeries.getNativeYValues();
59
- var zValues = dataSeries.getNativeZValues();
57
+ var xValues = pointSeries.xValues;
58
+ var yValues = pointSeries.yValues;
59
+ var zValues = pointSeries.zValues;
60
60
  args.count = yValues.size();
61
61
  args.verticalChart = renderPassData.isVerticalChart;
62
62
  args.forceShaderMethod = true;
@@ -66,7 +66,7 @@ var BubbleSeriesDrawingProvider = /** @class */ (function (_super) {
66
66
  args.SetPalettedColors(this.palettingState.palettedColors);
67
67
  args.zMultiplier = DpiHelper_1.DpiHelper.PIXEL_RATIO;
68
68
  var nativeContext = renderContext.getNativeContext();
69
- this.drawPoints(nativeContext, isCategoryAxis ? dataSeries.getNativeIndexes() : xValues, yValues, zValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args, this.parentSeries.parentSurface.seriesViewRect);
69
+ this.drawPoints(nativeContext, isCategoryAxis ? pointSeries.indexes : xValues, yValues, zValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args, this.parentSeries.parentSurface.seriesViewRect);
70
70
  args.delete();
71
71
  };
72
72
  /**
@@ -89,13 +89,7 @@ var BubbleSeriesDrawingProvider = /** @class */ (function (_super) {
89
89
  return false;
90
90
  };
91
91
  BubbleSeriesDrawingProvider.prototype.drawPoints = function (nativeContext, xValues, yValues, zValues, xCoordCalc, yCoordCalc, args, viewRect) {
92
- nativeContext.PushMatrix();
93
- nativeContext.PushState();
94
- nativeContext.Translate(viewRect.x, viewRect.y);
95
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
96
92
  this.nativeDrawingProvider.DrawPointsVec(nativeContext, xValues, yValues, zValues, xCoordCalc, yCoordCalc, args);
97
- nativeContext.PopMatrix();
98
- nativeContext.PopState();
99
93
  };
100
94
  return BubbleSeriesDrawingProvider;
101
95
  }(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));
@@ -56,8 +56,7 @@ var ColumnSeriesDrawingProvider = /** @class */ (function (_super) {
56
56
  * @inheritDoc
57
57
  */
58
58
  ColumnSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {
59
- // TODO: We need to get truncated pointseries out (viewport culling) for efficient drawing of large datasets
60
- var dataSeries = this.parentSeries.dataSeries;
59
+ var pointSeries = renderPassData.pointSeries;
61
60
  var viewRect = this.parentSeries.parentSurface.seriesViewRect;
62
61
  var args = new this.webAssemblyContext.SCRTColumnDrawingParams();
63
62
  args.forceShaderMethod = true;
@@ -78,17 +77,11 @@ var ColumnSeriesDrawingProvider = /** @class */ (function (_super) {
78
77
  _super.prototype.applyStrokeFillPaletting.call(this, this.parentSeries.stroke, linesPen, this.parentSeries.fill, fillBrush, this.parentSeries.opacity);
79
78
  args.SetPalettedColors(this.palettingState.palettedColors);
80
79
  var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;
81
- var xValues = dataSeries.getNativeXValues();
82
- var yValues = dataSeries.getNativeYValues();
80
+ var xValues = pointSeries.xValues;
81
+ var yValues = pointSeries.yValues;
83
82
  args.count = yValues.size();
84
83
  var nativeContext = renderContext.getNativeContext();
85
- nativeContext.PushMatrix();
86
- nativeContext.PushState();
87
- nativeContext.Translate(viewRect.x, viewRect.y);
88
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
89
- this.nativeDrawingProvider.DrawPointsVec(nativeContext, isCategoryAxis ? dataSeries.getNativeIndexes() : xValues, yValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args);
90
- nativeContext.PopMatrix();
91
- nativeContext.PopState();
84
+ this.nativeDrawingProvider.DrawPointsVec(nativeContext, isCategoryAxis ? pointSeries.indexes : xValues, yValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args);
92
85
  args.delete();
93
86
  };
94
87
  /**
@@ -1,9 +1,9 @@
1
1
  import { TSciChart } from "../../../../types/TSciChart";
2
2
  import { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
3
3
  import { RenderPassData } from "../../../Services/RenderPassData";
4
+ import { TDpiChangedEventArgs } from "../../TextureManager/DpiHelper";
4
5
  import { BaseLineRenderableSeries } from "../BaseLineRenderableSeries";
5
6
  import { BaseSeriesDrawingProvider } from "./BaseSeriesDrawingProvider";
6
- import { TDpiChangedEventArgs } from "../../TextureManager/DpiHelper";
7
7
  /**
8
8
  * Used internally - a drawing provider performs drawing for a {@link FastLineRenderableSeries} using
9
9
  * our WebAssembly WebGL rendering engine
@@ -11,6 +11,7 @@ import { TDpiChangedEventArgs } from "../../TextureManager/DpiHelper";
11
11
  export declare class LineSeriesDrawingProvider extends BaseSeriesDrawingProvider<BaseLineRenderableSeries> {
12
12
  private linesPenCache;
13
13
  private nativeDrawingProvider;
14
+ private args;
14
15
  /**
15
16
  * Creates an instance of the {@link LineSeriesDrawingProvider}
16
17
  * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and
@@ -37,6 +37,7 @@ var LineSeriesDrawingProvider = /** @class */ (function (_super) {
37
37
  function LineSeriesDrawingProvider(webAssemblyContext, parentSeries) {
38
38
  var _this = _super.call(this, webAssemblyContext, parentSeries) || this;
39
39
  _this.linesPenCache = new Pen2DCache_1.Pen2DCache(webAssemblyContext);
40
+ _this.args = new webAssemblyContext.SCRTLineDrawingParams();
40
41
  return _this;
41
42
  }
42
43
  /**
@@ -87,22 +88,23 @@ var LineSeriesDrawingProvider = /** @class */ (function (_super) {
87
88
  if (!linesPen) {
88
89
  return;
89
90
  }
90
- // TODO: We need to get truncated pointseries out (viewport culling) for efficient drawing of large datasets
91
- var dataSeries = this.parentSeries.dataSeries;
92
- var args = new this.webAssemblyContext.SCRTLineDrawingParams();
93
- args.SetLinesPen(linesPen);
94
- args.isDigitalLine = this.parentSeries.isDigitalLine;
95
- args.forceShaderMethod = true;
96
- args.lineGaps = dataSeries.containsNaN
91
+ var pointSeries = renderPassData.pointSeries;
92
+ var containsNaN = this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN;
93
+ this.args.Reset();
94
+ this.args.SetLinesPen(linesPen);
95
+ this.args.isDigitalLine = this.parentSeries.isDigitalLine;
96
+ this.args.forceShaderMethod = true;
97
+ this.args.containsNaN = containsNaN;
98
+ this.args.lineGaps = containsNaN
97
99
  ? this.parentSeries.drawNaNAs === WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine
98
100
  ? this.webAssemblyContext.SCRTLineGapMode.DrawGaps
99
101
  : this.webAssemblyContext.SCRTLineGapMode.CloseGaps
100
102
  : this.webAssemblyContext.SCRTLineGapMode.Default;
101
- args.verticalChart = renderPassData.isVerticalChart;
103
+ this.args.verticalChart = renderPassData.isVerticalChart;
102
104
  var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;
103
- var xValues = dataSeries.getNativeXValues();
104
- var xDrawValues = isCategoryAxis ? dataSeries.getNativeIndexes() : xValues;
105
- var yDrawValues = dataSeries.getNativeYValues();
105
+ var xValues = pointSeries.xValues;
106
+ var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;
107
+ var yDrawValues = pointSeries.yValues;
106
108
  var isSplineLineSeries = this.parentSeries.type === SeriesType_1.ESeriesType.SplineLineSeries && xValues.size() > 1;
107
109
  if (isSplineLineSeries) {
108
110
  var spline = this.parentSeries;
@@ -113,15 +115,14 @@ var LineSeriesDrawingProvider = /** @class */ (function (_super) {
113
115
  xDrawValues = spline.xSplineValues;
114
116
  yDrawValues = spline.ySplineValues;
115
117
  }
116
- args.count = yDrawValues.size();
118
+ this.args.count = yDrawValues.size();
117
119
  // Stroke paletting per point
118
120
  this.applyStrokePaletting(linesPen);
119
121
  if (this.palettingState.palettedColors) {
120
- args.SetPalettedColors(this.palettingState.palettedColors);
122
+ this.args.SetPalettedColors(this.palettingState.palettedColors);
121
123
  }
122
124
  var nativeContext = renderContext.getNativeContext();
123
- this.drawLines(renderContext, nativeContext, xDrawValues, yDrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args, this.parentSeries.parentSurface.seriesViewRect);
124
- args.delete();
125
+ this.drawLines(renderContext, nativeContext, xDrawValues, yDrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args, this.parentSeries.parentSurface.seriesViewRect);
125
126
  };
126
127
  /**
127
128
  * @inheritDoc
@@ -129,16 +130,11 @@ var LineSeriesDrawingProvider = /** @class */ (function (_super) {
129
130
  LineSeriesDrawingProvider.prototype.delete = function () {
130
131
  this.linesPenCache = (0, Deleter_1.deleteSafe)(this.linesPenCache);
131
132
  this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);
133
+ this.args = (0, Deleter_1.deleteSafe)(this.args);
132
134
  _super.prototype.delete.call(this);
133
135
  };
134
136
  LineSeriesDrawingProvider.prototype.drawLines = function (renderContext, nativeContext, xValues, yValues, xCoordCalc, yCoordCalc, args, viewRect) {
135
- nativeContext.PushMatrix();
136
- nativeContext.PushState();
137
- nativeContext.Translate(viewRect.x, viewRect.y);
138
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
139
137
  this.nativeDrawingProvider.DrawLinesVec(nativeContext, xValues, yValues, xCoordCalc, yCoordCalc, args);
140
- nativeContext.PopMatrix();
141
- nativeContext.PopState();
142
138
  };
143
139
  return LineSeriesDrawingProvider;
144
140
  }(BaseSeriesDrawingProvider_1.BaseSeriesDrawingProvider));
@@ -21,6 +21,7 @@ var SeriesType_1 = require("../../../../types/SeriesType");
21
21
  var BrushCache_1 = require("../../../Drawing/BrushCache");
22
22
  var Pen2DCache_1 = require("../../../Drawing/Pen2DCache");
23
23
  var WebGlRenderContext2D_1 = require("../../../Drawing/WebGlRenderContext2D");
24
+ var SciChartSurfaceBase_1 = require("../../SciChartSurfaceBase");
24
25
  var constants_1 = require("../constants");
25
26
  var BaseSeriesDrawingProvider_1 = require("./BaseSeriesDrawingProvider");
26
27
  /**
@@ -55,11 +56,11 @@ var MountainSeriesDrawingProvider = /** @class */ (function (_super) {
55
56
  */
56
57
  MountainSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {
57
58
  var _a;
58
- // TODO: We need to get truncated pointseries out (viewport culling) for efficient drawing of large datasets
59
- var dataSeries = this.parentSeries.dataSeries;
59
+ var pointSeries = renderPassData.pointSeries;
60
+ var containsNaN = this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN;
60
61
  var args = new this.webAssemblyContext.SCRTMountainDrawingParams();
61
62
  args.forceShaderMethod = true;
62
- args.lineGaps = dataSeries.containsNaN
63
+ args.lineGaps = containsNaN
63
64
  ? this.parentSeries.drawNaNAs === WebGlRenderContext2D_1.ELineDrawMode.DiscontinuousLine
64
65
  ? this.webAssemblyContext.SCRTLineGapMode.DrawGaps
65
66
  : this.webAssemblyContext.SCRTLineGapMode.CloseGaps
@@ -67,7 +68,7 @@ var MountainSeriesDrawingProvider = /** @class */ (function (_super) {
67
68
  args.verticalChart = renderPassData.isVerticalChart;
68
69
  args.zeroLineY = this.parentSeries.zeroLineY;
69
70
  args.isDigitalLine = this.parentSeries.isDigitalLine;
70
- var fillBrush = (0, BrushCache_1.getScrtBrushFromCache)(this.fillBrushCache);
71
+ var fillBrush = this.createBrush();
71
72
  if (fillBrush) {
72
73
  args.SetFillBrush(fillBrush);
73
74
  }
@@ -83,9 +84,9 @@ var MountainSeriesDrawingProvider = /** @class */ (function (_super) {
83
84
  }
84
85
  args.isSmoothColors = this.palettingState.gradientPaletting;
85
86
  var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;
86
- var xValues = dataSeries.getNativeXValues();
87
- var xDrawValues = isCategoryAxis ? dataSeries.getNativeIndexes() : xValues;
88
- var yDrawValues = dataSeries.getNativeYValues();
87
+ var xValues = pointSeries.xValues;
88
+ var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;
89
+ var yDrawValues = pointSeries.yValues;
89
90
  var isSplineMountainSeries = this.parentSeries.type === SeriesType_1.ESeriesType.SplineMountainSeries && xValues.size() > 1;
90
91
  if (isSplineMountainSeries) {
91
92
  var rs = this.parentSeries;
@@ -98,13 +99,7 @@ var MountainSeriesDrawingProvider = /** @class */ (function (_super) {
98
99
  args.count = yDrawValues.size();
99
100
  var nativeContext = renderContext.getNativeContext();
100
101
  var viewRect = this.parentSeries.parentSurface.seriesViewRect;
101
- nativeContext.PushMatrix();
102
- nativeContext.PushState();
103
- nativeContext.Translate(viewRect.x, viewRect.y);
104
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
105
102
  this.nativeDrawingProvider.DrawPointsVec(nativeContext, xDrawValues, yDrawValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args);
106
- nativeContext.PopMatrix();
107
- nativeContext.PopState();
108
103
  args.delete();
109
104
  };
110
105
  /**
@@ -141,8 +136,14 @@ var MountainSeriesDrawingProvider = /** @class */ (function (_super) {
141
136
  this.createBrush();
142
137
  };
143
138
  MountainSeriesDrawingProvider.prototype.createBrush = function () {
144
- var _a = this.parentSeries, fill = _a.fill, opacity = _a.opacity, fillLinearGradient = _a.fillLinearGradient;
145
- return (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, fill, opacity, fillLinearGradient);
139
+ var _a = this.parentSeries, fill = _a.fill, opacity = _a.opacity, fillLinearGradient = _a.fillLinearGradient, parentSurface = _a.parentSurface;
140
+ var textureHeightRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)
141
+ ? parentSurface.domCanvas2D.height / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.height
142
+ : 1;
143
+ var textureWidthRatio = (parentSurface === null || parentSurface === void 0 ? void 0 : parentSurface.isCopyCanvasSurface)
144
+ ? parentSurface.domCanvas2D.width / SciChartSurfaceBase_1.SciChartSurfaceBase.domMasterCanvas.width
145
+ : 1;
146
+ return (0, BrushCache_1.createBrushInCache)(this.fillBrushCache, fill, opacity, textureHeightRatio, textureWidthRatio, fillLinearGradient);
146
147
  };
147
148
  MountainSeriesDrawingProvider.prototype.createPen = function () {
148
149
  var _a = this.parentSeries, stroke = _a.stroke, strokeThickness = _a.strokeThickness, opacity = _a.opacity, strokeDashArray = _a.strokeDashArray;
@@ -95,6 +95,7 @@ var OhlcSeriesDrawingProvider = /** @class */ (function (_super) {
95
95
  * @inheritDoc
96
96
  */
97
97
  OhlcSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {
98
+ var pointSeries = renderPassData.pointSeries;
98
99
  var args = new this.webAssemblyContext.SCRTOhlcDrawingParams();
99
100
  try {
100
101
  // Candles only requires brush up, down
@@ -108,7 +109,7 @@ var OhlcSeriesDrawingProvider = /** @class */ (function (_super) {
108
109
  }
109
110
  var strokeUpPen = (0, Pen2DCache_1.getScrtPenFromCache)(this.strokeUpPenCache);
110
111
  var strokeDownPen = (0, Pen2DCache_1.getScrtPenFromCache)(this.strokeDownPenCache);
111
- // Ohlc and candle both require stroke up, down
112
+ // OHLC and Candle both require stroke up, down
112
113
  if (!strokeUpPen || !strokeDownPen) {
113
114
  return;
114
115
  }
@@ -123,22 +124,15 @@ var OhlcSeriesDrawingProvider = /** @class */ (function (_super) {
123
124
  args.drawAsOhlc = this.drawingMode === EOhlcDrawingMode.Ohlc;
124
125
  var nativeContext = renderContext.getNativeContext();
125
126
  var viewRect = this.parentSeries.parentSurface.seriesViewRect;
126
- // TODO: We need to get truncated pointseries out (viewport culling) for efficient drawing of large datasets
127
- var dataSeries = this.parentSeries.dataSeries;
127
+ // const dataSeries = this.parentSeries.dataSeries as OhlcDataSeries;
128
128
  var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;
129
- var xValues = dataSeries.getNativeXValues();
130
- var openValues = dataSeries.getNativeOpenValues();
131
- var highValues = dataSeries.getNativeHighValues();
132
- var lowValues = dataSeries.getNativeLowValues();
133
- var closeValues = dataSeries.getNativeCloseValues();
129
+ var xValues = pointSeries.xValues;
130
+ var openValues = pointSeries.openValues;
131
+ var highValues = pointSeries.highValues;
132
+ var lowValues = pointSeries.lowValues;
133
+ var closeValues = pointSeries.closeValues;
134
134
  args.count = closeValues.size();
135
- nativeContext.PushMatrix();
136
- nativeContext.PushState();
137
- nativeContext.Translate(viewRect.x, viewRect.y);
138
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
139
- this.nativeDrawingProvider.DrawPointsVec(nativeContext, isCategoryAxis ? dataSeries.getNativeIndexes() : xValues, openValues, highValues, lowValues, closeValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args);
140
- nativeContext.PopMatrix();
141
- nativeContext.PopState();
135
+ this.nativeDrawingProvider.DrawPointsVec(nativeContext, isCategoryAxis ? pointSeries.indexes : xValues, openValues, highValues, lowValues, closeValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args);
142
136
  }
143
137
  finally {
144
138
  args.delete();
@@ -1,7 +1,7 @@
1
- import { DoubleVector, TSciChart } from "../../../../types/TSciChart";
1
+ import { SCRTDoubleVector, TSciChart } from "../../../../types/TSciChart";
2
2
  import { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
3
- import { IDataSeries } from "../../../Model/IDataSeries";
4
3
  import { IPointMetadata } from "../../../Model/IPointMetadata";
4
+ import { IPointSeries } from "../../../Model/PointSeries/IPointSeries";
5
5
  import { RenderPassData } from "../../../Services/RenderPassData";
6
6
  import { IRenderableSeries } from "../IRenderableSeries";
7
7
  import { ISpline } from "../ISpline";
@@ -16,6 +16,7 @@ export declare class PointMarkerDrawingProvider extends BaseSeriesDrawingProvide
16
16
  private ySplineValuesSelector;
17
17
  private xAnimationPointMarkerValues;
18
18
  private yAnimationPointMarkerValues;
19
+ private args;
19
20
  /**
20
21
  * Creates an instance of the {@link PointMarkerDrawingProvider}
21
22
  * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and
@@ -24,7 +25,7 @@ export declare class PointMarkerDrawingProvider extends BaseSeriesDrawingProvide
24
25
  * @param ySelector an optional Y-selector for choosing which y-values to use for drawing points
25
26
  * @param ySplineSelector an optional selector for choosing which y-animation values to use for drawing points
26
27
  */
27
- constructor(webAssemblyContext: TSciChart, parentSeries: IRenderableSeries, ySelector?: (ds: IDataSeries) => DoubleVector, ySplineSelector?: (rs: ISpline) => DoubleVector);
28
+ constructor(webAssemblyContext: TSciChart, parentSeries: IRenderableSeries, ySelector?: (ps: IPointSeries) => SCRTDoubleVector, ySplineSelector?: (rs: ISpline) => SCRTDoubleVector);
28
29
  /**
29
30
  * @inheritDoc
30
31
  */
@@ -34,11 +34,12 @@ var PointMarkerDrawingProvider = /** @class */ (function (_super) {
34
34
  */
35
35
  function PointMarkerDrawingProvider(webAssemblyContext, parentSeries, ySelector, ySplineSelector) {
36
36
  var _this = _super.call(this, webAssemblyContext, parentSeries) || this;
37
- _this.ySelector = ySelector === undefined ? function (ds) { return ds.getNativeYValues(); } : ySelector;
37
+ _this.ySelector = ySelector === undefined ? function (ps) { return ps.yValues; } : ySelector;
38
38
  _this.ySplineValuesSelector = ySplineSelector === undefined ? function (rs) { return rs.ySplineValues; } : ySplineSelector;
39
39
  _this.nativeDrawingProvider = new _this.webAssemblyContext.SCRTScatterSeriesDrawingProvider();
40
- _this.xAnimationPointMarkerValues = new _this.webAssemblyContext.DoubleVector();
41
- _this.yAnimationPointMarkerValues = new _this.webAssemblyContext.DoubleVector();
40
+ _this.xAnimationPointMarkerValues = new _this.webAssemblyContext.SCRTDoubleVector();
41
+ _this.yAnimationPointMarkerValues = new _this.webAssemblyContext.SCRTDoubleVector();
42
+ _this.args = new _this.webAssemblyContext.SCRTPointDrawingParams();
42
43
  return _this;
43
44
  }
44
45
  /**
@@ -67,11 +68,10 @@ var PointMarkerDrawingProvider = /** @class */ (function (_super) {
67
68
  // renderContext.getNativeContext().DrawTexture(spriteTexture.getTexture(), 10, 10, 256, 256);
68
69
  // END DEBUG CODE
69
70
  }
70
- var dataSeries = this.parentSeries.dataSeries;
71
- var args = new this.webAssemblyContext.SCRTPointDrawingParams();
71
+ var pointSeries = renderPassData.pointSeries;
72
72
  var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;
73
- var xValues = dataSeries.getNativeXValues();
74
- var yValues = this.ySelector(dataSeries);
73
+ var xValues = pointSeries.xValues;
74
+ var yValues = this.ySelector(pointSeries);
75
75
  if (this.parentSeries.isSpline) {
76
76
  var spline = this.parentSeries;
77
77
  if (spline.xSplineValues.size() > 0 && spline.ySplineValues.size() > 0) {
@@ -80,19 +80,19 @@ var PointMarkerDrawingProvider = /** @class */ (function (_super) {
80
80
  yValues = this.yAnimationPointMarkerValues;
81
81
  }
82
82
  }
83
- args.count = yValues.size();
84
- args.verticalChart = renderPassData.isVerticalChart;
85
- args.forceShaderMethod = true;
86
- args.SetSpriteTexture(spriteTexture.getTexture());
83
+ this.args.Reset();
84
+ this.args.count = yValues.size();
85
+ this.args.verticalChart = renderPassData.isVerticalChart;
86
+ this.args.forceShaderMethod = true;
87
+ this.args.SetSpriteTexture(spriteTexture.getTexture());
87
88
  if (strokeMaskTexture) {
88
- args.SetStrokeMask(strokeMaskTexture.getTexture());
89
+ this.args.SetStrokeMask(strokeMaskTexture.getTexture());
89
90
  }
90
91
  // Paletting per point
91
92
  _super.prototype.applyStrokeFillPaletting.call(this, pointMarker.stroke, undefined, pointMarker.fill, undefined, this.parentSeries.opacity);
92
- args.SetPalettedColors(this.palettingState.palettedColors);
93
+ this.args.SetPalettedColors(this.palettingState.palettedColors);
93
94
  var nativeContext = renderContext.getNativeContext();
94
- this.drawPoints(nativeContext, isCategoryAxis ? dataSeries.getNativeIndexes() : xValues, yValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, args, this.parentSeries.parentSurface.seriesViewRect);
95
- args.delete();
95
+ this.drawPoints(nativeContext, isCategoryAxis ? pointSeries.indexes : xValues, yValues, renderPassData.xCoordinateCalculator.nativeCalculator, renderPassData.yCoordinateCalculator.nativeCalculator, this.args, this.parentSeries.parentSurface.seriesViewRect);
96
96
  };
97
97
  /**
98
98
  * @inheritDoc
@@ -101,6 +101,7 @@ var PointMarkerDrawingProvider = /** @class */ (function (_super) {
101
101
  this.nativeDrawingProvider = (0, Deleter_1.deleteSafe)(this.nativeDrawingProvider);
102
102
  this.xAnimationPointMarkerValues = (0, Deleter_1.deleteSafe)(this.xAnimationPointMarkerValues);
103
103
  this.yAnimationPointMarkerValues = (0, Deleter_1.deleteSafe)(this.yAnimationPointMarkerValues);
104
+ this.args = (0, Deleter_1.deleteSafe)(this.args);
104
105
  _super.prototype.delete.call(this);
105
106
  };
106
107
  PointMarkerDrawingProvider.prototype.overridePaletteProviderColors = function (rs, xValue, yValue, index, opacity, metadata) {
@@ -116,13 +117,7 @@ var PointMarkerDrawingProvider = /** @class */ (function (_super) {
116
117
  return false;
117
118
  };
118
119
  PointMarkerDrawingProvider.prototype.drawPoints = function (nativeContext, xValues, yValues, xCoordCalc, yCoordCalc, args, viewRect) {
119
- nativeContext.PushMatrix();
120
- nativeContext.PushState();
121
- nativeContext.Translate(viewRect.x, viewRect.y);
122
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
123
120
  this.nativeDrawingProvider.DrawPointsVec(nativeContext, xValues, yValues, xCoordCalc, yCoordCalc, args);
124
- nativeContext.PopMatrix();
125
- nativeContext.PopState();
126
121
  };
127
122
  PointMarkerDrawingProvider.prototype.pointMarkerXYValuesFromSpline = function (size, xAnimationValues, yAnimationValues, interpolationPoints) {
128
123
  this.xAnimationPointMarkerValues.resize(size, 0);
@@ -117,19 +117,12 @@ var UniformContoursDrawingProvider = /** @class */ (function (_super) {
117
117
  contourParams.SetParamsBVector(zMin, zMax, 0, 0);
118
118
  // Draw major contour lines
119
119
  var nativeContext = renderContext.getNativeContext();
120
- var viewRect = this.parentSeries.parentSurface.seriesViewRect;
121
- nativeContext.PushMatrix();
122
- nativeContext.PushState();
123
- nativeContext.Translate(viewRect.x, viewRect.y);
124
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
125
120
  // console.log(`viewRect: ${viewRect.x}, ${viewRect.y}, ${viewRect.width}, ${viewRect.height}`);
126
121
  // console.log(`contours bounds: ${startX}, ${startY}, ${endX}, ${endY}`);
127
122
  var heightsTexture = this.heightsTextureCache.value;
128
123
  nativeContext.DrawHeatmapRectWithContours(null, heightsTexture, x, y, width, height, floatParams, contourParams);
129
124
  floatParams === null || floatParams === void 0 ? void 0 : floatParams.delete();
130
125
  contourParams === null || contourParams === void 0 ? void 0 : contourParams.delete();
131
- nativeContext.PopMatrix();
132
- nativeContext.PopState();
133
126
  };
134
127
  UniformContoursDrawingProvider.prototype.computeHeightMap = function (textureHeight, textureWidth, zValues, isVerticalChart, xFlipped, yFlipped) {
135
128
  var _a;
@@ -143,8 +136,8 @@ var UniformContoursDrawingProvider = /** @class */ (function (_super) {
143
136
  for (var y = 0; y < textureHeight; y++) {
144
137
  for (var x = 0; x < textureWidth; x++) {
145
138
  var zValue = !isVerticalChart
146
- ? zValues[!yFlipped ? (textureHeight - 1) - y : y][xFlipped ? (textureWidth - x) - 1 : x]
147
- : zValues[!yFlipped ? (textureWidth - 1) - x : x][xFlipped ? (textureHeight - y) - 1 : y];
139
+ ? zValues[!yFlipped ? textureHeight - 1 - y : y][xFlipped ? textureWidth - x - 1 : x]
140
+ : zValues[!yFlipped ? textureWidth - 1 - x : x][xFlipped ? textureHeight - y - 1 : y];
148
141
  // Todo: Set into a javascript array then bulk set the array on heightData
149
142
  this.heightData.set(y * textureWidth + x, isNaN(zValue) ? -1.0 : zValue);
150
143
  }
@@ -110,14 +110,11 @@ var UniformHeatmapDrawingProvider = /** @class */ (function (_super) {
110
110
  var yMax = renderPassData.yCoordinateCalculator.getCoordinate(yRange.max);
111
111
  var nativeContext = renderContext.getNativeContext();
112
112
  var viewRect = this.parentSeries.parentSurface.seriesViewRect;
113
- nativeContext.PushMatrix();
114
- nativeContext.PushState();
115
113
  var textureWidth = Math.abs(xMin - xMax);
116
114
  if (isVerticalChart) {
117
115
  nativeContext.Rotate(-90);
118
116
  var xTrans = hasFlippedXCoordinates ? -viewRect.y - xMin : -textureWidth - viewRect.y - xMin;
119
117
  nativeContext.Translate(xTrans, viewRect.x);
120
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
121
118
  var x = hasFlippedXCoordinates ? 0 : textureWidth;
122
119
  var width = hasFlippedXCoordinates ? textureWidth : 0;
123
120
  var y = yMin;
@@ -126,12 +123,8 @@ var UniformHeatmapDrawingProvider = /** @class */ (function (_super) {
126
123
  // Maybe to use nativeContext.Scale(-1, 1);???
127
124
  }
128
125
  else {
129
- nativeContext.Translate(viewRect.x, viewRect.y);
130
- nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
131
126
  this.drawHeatmap(nativeContext, xMin, yMin, xMax, yMax);
132
127
  }
133
- nativeContext.PopMatrix();
134
- nativeContext.PopState();
135
128
  }
136
129
  };
137
130
  UniformHeatmapDrawingProvider.prototype.createPaletteTexture = function (width, height, gradientStops, globalOpacity, hasNaNs) {
@@ -1,5 +1,7 @@
1
1
  import { ESeriesType } from "../../../types/SeriesType";
2
- import { DoubleVector, TSciChart } from "../../../types/TSciChart";
2
+ import { SCRTDoubleVector, TSciChart } from "../../../types/TSciChart";
3
+ import { IPointSeries } from "../../Model/PointSeries/IPointSeries";
4
+ import { ResamplingParams } from "../../Numerics/Resamplers/ResamplingParams";
3
5
  import { IThemeProvider } from "../../Themes/IThemeProvider";
4
6
  import { BaseRenderableSeries } from "./BaseRenderableSeries";
5
7
  import { IHitTestProvider } from "./HitTest/IHitTestProvider";
@@ -53,7 +55,9 @@ export declare class FastBubbleRenderableSeries extends BaseRenderableSeries {
53
55
  /**
54
56
  * Returns the {@link XyyDataSeries.getNativeZValues} for the associated {@link dataSeries}
55
57
  */
56
- getNativeZValues(): DoubleVector;
58
+ getNativeZValues(): SCRTDoubleVector;
59
+ /** @inheritDoc */
60
+ toPointSeries(resamplingParams?: ResamplingParams): IPointSeries;
57
61
  /** @inheritDoc */
58
62
  protected newHitTestProvider(): IHitTestProvider;
59
63
  }
@@ -17,6 +17,7 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.FastBubbleRenderableSeries = void 0;
19
19
  var SeriesType_1 = require("../../../types/SeriesType");
20
+ var XyzPointSeriesWrapped_1 = require("../../Model/PointSeries/XyzPointSeriesWrapped");
20
21
  var EllipsePointMarker_1 = require("../PointMarkers/EllipsePointMarker");
21
22
  var BaseRenderableSeries_1 = require("./BaseRenderableSeries");
22
23
  var BubbleSeriesDrawingProvider_1 = require("./DrawingProviders/BubbleSeriesDrawingProvider");
@@ -96,6 +97,10 @@ var FastBubbleRenderableSeries = /** @class */ (function (_super) {
96
97
  return this.dataSeries.getNativeZValues();
97
98
  };
98
99
  /** @inheritDoc */
100
+ FastBubbleRenderableSeries.prototype.toPointSeries = function (resamplingParams) {
101
+ return new XyzPointSeriesWrapped_1.XyzPointSeriesWrapped(this.dataSeries);
102
+ };
103
+ /** @inheritDoc */
99
104
  FastBubbleRenderableSeries.prototype.newHitTestProvider = function () {
100
105
  return new BubbleSeriesHitTestProvider_1.BubbleSeriesHitTestProvider(this, this.webAssemblyContext);
101
106
  };
@@ -83,6 +83,7 @@ export declare class FastColumnRenderableSeries extends BaseRenderableSeries {
83
83
  * @inheritDoc
84
84
  */
85
85
  getYRange(xVisibleRange: NumberRange, isXCategoryAxis?: boolean): NumberRange;
86
+ /** @inheritDoc */
86
87
  toJSON(excludeData?: boolean): import("../../../Builder/buildSeries").TSeriesDefinition;
87
88
  /** @inheritDoc */
88
89
  protected newHitTestProvider(): IHitTestProvider;
@@ -149,6 +149,7 @@ var FastColumnRenderableSeries = /** @class */ (function (_super) {
149
149
  }
150
150
  return new NumberRange_1.NumberRange(Math.min(yRange.min, this.zeroLineY), Math.max(yRange.max, this.zeroLineY));
151
151
  };
152
+ /** @inheritDoc */
152
153
  FastColumnRenderableSeries.prototype.toJSON = function (excludeData) {
153
154
  if (excludeData === void 0) { excludeData = false; }
154
155
  var json = _super.prototype.toJSON.call(this, excludeData);
@@ -33,4 +33,5 @@ export declare class FastLineRenderableSeries extends BaseLineRenderableSeries {
33
33
  * @param options optional parameters of type {@link IFastLineRenderableSeriesOptions} applied when constructing the series type
34
34
  */
35
35
  constructor(webAssemblyContext: TSciChart, options?: IFastLineRenderableSeriesOptions);
36
+ delete(): void;
36
37
  }