chart2/source/view/charttypes/VSeriesPlotter.cxx | 37 +++++++++++------------ 1 file changed, 18 insertions(+), 19 deletions(-)
New commits: commit 306d6d7f199067594378e2c9d084016d1442367a Author: Tomaž Vajngerl <qui...@gmail.com> Date: Mon Dec 9 19:53:20 2013 +0100 fdo#72137 Allocate enough points in MovingAverageRegression calc. Change-Id: I9ae058cad678cdb86709a4e40e3d4bd47900d386 diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx index 44e4c58..a1749ce 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<aCalculatedPoints.getLength(); nP++) + nPointCount = aCalculatedPoints.getLength(); + + 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; + + for(sal_Int32 nP = 0; nP < aCalculatedPoints.getLength(); ++nP) { double fLogicX = aCalculatedPoints[nP].X; double fLogicY = aCalculatedPoints[nP].Y;
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits