diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx index 1e6c96dd4b75..74322777a79d 100644 --- a/chart2/source/view/charttypes/VSeriesPlotter.cxx +++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx @@ -997,20 +997,15 @@ void VSeriesPlotter::createRegressionCurvesShapes( VDataSeries& rVDataSeries, xProperties->getPropertyValue( "InterceptValue") >>= aInterceptValue; } - double fMinX; - double fMaxX; - double fChartMinX = m_pPosHelper->getLogicMinX(); double fChartMaxX = m_pPosHelper->getLogicMaxX(); + double fMinX = fChartMinX; + double fMaxX = fChartMaxX; + double fPointScale = 1.0; - if( bAverageLine ) - { - fMinX = fChartMinX; - fMaxX = fChartMaxX; - } - else + if( !bAverageLine ) { rVDataSeries.getMinMaxXValue(fMinX, fMaxX); fMaxX += aExtrapolateForward; @@ -1018,6 +1013,7 @@ void VSeriesPlotter::createRegressionCurvesShapes( VDataSeries& rVDataSeries, fPointScale = (fMaxX - fMinX) / (fChartMaxX - fChartMinX); } + xCalculator->setRegressionProperties(aDegree, aForceIntercept, aInterceptValue, aPeriod); xCalculator->recalculateRegression( rVDataSeries.getAllX(), rVDataSeries.getAllY() ); sal_Int32 nPointCount = 100 * fPointScale; @@ -1025,15 +1021,6 @@ void VSeriesPlotter::createRegressionCurvesShapes( VDataSeries& rVDataSeries, if ( nPointCount < 2 ) nPointCount = 2; - drawing::PolyPolygonShape3D aRegressionPoly; - aRegressionPoly.SequenceX.realloc(1); - aRegressionPoly.SequenceY.realloc(1); - aRegressionPoly.SequenceZ.realloc(1); - aRegressionPoly.SequenceX[0].realloc(nPointCount); - aRegressionPoly.SequenceY[0].realloc(nPointCount); - aRegressionPoly.SequenceZ[0].realloc(nPointCount); - sal_Int32 nRealPointCount=0; - std::vector< ExplicitScaleData > aScales( m_pPosHelper->getScales()); uno::Reference< chart2::XScaling > xScalingX; uno::Reference< chart2::XScaling > xScalingY; @@ -1048,7 +1035,19 @@ void VSeriesPlotter::createRegressionCurvesShapes( VDataSeries& rVDataSeries, fMinX, fMaxX, nPointCount, xScalingX, xScalingY, bMaySkipPoints )); - for(sal_Int32 nP=0; nP