@@ -239,19 +239,19 @@ export class LineChartRenderer extends LineRadarRenderer {
239
239
const phaseY = this . mAnimator . getPhaseY ( ) ;
240
240
const xKey = dataSet . xProperty ;
241
241
const yKey = dataSet . yProperty ;
242
- let prev = dataSet . getEntryForIndex ( this . mXBounds . min ) ;
243
- let prevXVal = getEntryXValue ( prev , xKey , this . mXBounds . min ) ;
244
- let cur = prev ;
245
- const float32arr = this . mLineBuffer ;
246
- float32arr [ 0 ] = prevXVal ;
247
- float32arr [ 1 ] = cur [ yKey ] * phaseY ;
248
242
249
243
const firstIndex = Math . max ( 0 , this . mXBounds . min ) ;
250
244
// let firstIndex = this.mXBounds.min + 1;
251
245
const lastIndex = this . mXBounds . min + this . mXBounds . range ;
246
+ let prev = dataSet . getEntryForIndex ( firstIndex ) ;
247
+ let prevXVal = getEntryXValue ( prev , xKey , firstIndex ) ;
248
+ let cur = prev ;
249
+ let curXVal = prevXVal ;
250
+ const float32arr = this . mLineBuffer ;
251
+ let index = 0 ;
252
+ float32arr [ index ++ ] = prevXVal ;
253
+ float32arr [ index ++ ] = cur [ yKey ] * phaseY ;
252
254
// let the spline start
253
- let index = 2 ,
254
- curXVal ;
255
255
256
256
for ( let j = firstIndex + 1 ; j <= lastIndex ; j ++ ) {
257
257
const newEntry = dataSet . getEntryForIndex ( j ) ;
@@ -260,8 +260,8 @@ export class LineChartRenderer extends LineRadarRenderer {
260
260
}
261
261
prev = cur ;
262
262
prevXVal = curXVal ;
263
- cur = dataSet . getEntryForIndex ( j ) ;
264
- curXVal = getEntryXValue ( prev , xKey , j ) ;
263
+ cur = newEntry ;
264
+ curXVal = getEntryXValue ( cur , xKey , j ) ;
265
265
const cpx = prevXVal + ( curXVal - prevXVal ) / 2.0 ;
266
266
267
267
float32arr [ index ++ ] = cpx ;
@@ -305,12 +305,13 @@ export class LineChartRenderer extends LineRadarRenderer {
305
305
// let firstIndex = this.mXBounds.min + 1;
306
306
const lastIndex = this . mXBounds . min + this . mXBounds . range ;
307
307
308
- let prevPrev ;
309
- let prevPrevXVal ;
310
308
let i = Math . max ( firstIndex - 2 , 0 ) ;
309
+ let prevPrev = dataSet . getEntryForIndex ( i ) ;
310
+ let prevPrevXVal = getEntryXValue ( prevPrev , xKey , i ) ;
311
+ i = Math . max ( firstIndex - 1 , 0 ) ;
311
312
let prev = dataSet . getEntryForIndex ( i ) ;
312
313
let prevXVal = getEntryXValue ( prev , xKey , i ) ;
313
- i = Math . max ( firstIndex - 1 , 0 ) ;
314
+ i = Math . max ( firstIndex , 0 ) ;
314
315
let cur = dataSet . getEntryForIndex ( i ) ;
315
316
let curXVal = getEntryXValue ( cur , xKey , i ) ;
316
317
let next = cur ;
@@ -321,6 +322,8 @@ export class LineChartRenderer extends LineRadarRenderer {
321
322
322
323
const float32arr = this . mLineBuffer ;
323
324
let index = 0 ;
325
+ // outputPath.reset();
326
+ // outputPath.moveTo(curXVal, cur[yKey] * phaseY);
324
327
float32arr [ index ++ ] = curXVal ;
325
328
float32arr [ index ++ ] = cur [ yKey ] * phaseY ;
326
329
// let the spline start
@@ -335,7 +338,7 @@ export class LineChartRenderer extends LineRadarRenderer {
335
338
prevXVal = curXVal ;
336
339
cur = nextIndex === j ? next : newEntry ;
337
340
curXVal = nextIndex === j ? nextXVal : getEntryXValue ( newEntry , xKey , j ) ;
338
- nextIndex = j + 1 < dataSet . getEntryCount ( ) ? j + 1 : j ;
341
+ nextIndex = Math . min ( j + 1 , dataSet . getEntryCount ( ) - 1 ) ;
339
342
next = dataSet . getEntryForIndex ( nextIndex ) ;
340
343
nextXVal = getEntryXValue ( next , xKey , nextIndex ) ;
341
344
if ( next [ yKey ] === undefined || next [ yKey ] === null ) {
@@ -352,6 +355,7 @@ export class LineChartRenderer extends LineRadarRenderer {
352
355
float32arr [ index ++ ] = ( cur [ yKey ] - curDy ) * phaseY ;
353
356
float32arr [ index ++ ] = curXVal ;
354
357
float32arr [ index ++ ] = cur [ yKey ] * phaseY ;
358
+ // outputPath.cubicTo(prevXVal + prevDx, (prev[yKey] + prevDy) * phaseY, curXVal - curDx, (cur[yKey] - curDy) * phaseY, curXVal, cur[yKey] * phaseY);
355
359
}
356
360
const points = Utils . pointsFromBuffer ( float32arr ) ;
357
361
outputPath . setCubicLines ( points , 0 , index ) ;
0 commit comments