LibreOffice Module chart2 (master) 1
|
#include <AreaChart.hxx>
Public Member Functions | |
AreaChart ()=delete | |
AreaChart (const rtl::Reference< ::chart::ChartType > &xChartTypeModel, sal_Int32 nDimensionCount, bool bCategoryXAxis, bool bNoArea=false) | |
virtual | ~AreaChart () override |
virtual void | createShapes () override |
virtual void | addSeries (std::unique_ptr< VDataSeries > pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot) override |
A new series can be positioned relative to other series in a chart. More... | |
virtual css::drawing::Direction3D | getPreferredDiagramAspectRatio () const override |
a value <= 0 for a directions means that this direction can be stretched arbitrary More... | |
virtual bool | isSeparateStackingForDifferentSigns (sal_Int32 nDimensionIndex) override |
virtual LegendSymbolStyle | getLegendSymbolStyle () override |
virtual css::uno::Any | getExplicitSymbol (const VDataSeries &rSeries, sal_Int32 nPointIndex) override |
![]() | |
VSeriesPlotter ()=delete | |
virtual | ~VSeriesPlotter () override |
virtual void | addSeries (std::unique_ptr< VDataSeries > pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot) |
A new series can be positioned relative to other series in a chart. More... | |
virtual css::drawing::Direction3D | getPreferredDiagramAspectRatio () const |
a value <= 0 for a directions means that this direction can be stretched arbitrary More... | |
void | addSecondaryValueScale (const ExplicitScaleData &rScale, sal_Int32 nAxisIndex) |
this enables you to handle series on the same x axis with different y axis the property AttachedAxisIndex at a dataseries indicates which value scale is to use (0==AttachedAxisIndex or a not set AttachedAxisIndex property indicates that this series should be scaled at the main y-axis; 1==AttachedAxisIndex indicates that the series should be scaled at the first secondary axis if there is any otherwise at the main y axis and so on. More... | |
virtual double | getMinimumX () override |
virtual double | getMaximumX () override |
virtual double | getMinimumYInRange (double fMinimumX, double fMaximumX, sal_Int32 nAxisIndex) override |
virtual double | getMaximumYInRange (double fMinimumX, double fMaximumX, sal_Int32 nAxisIndex) override |
virtual double | getMinimumZ () override |
virtual double | getMaximumZ () override |
virtual bool | isExpandBorderToIncrementRhythm (sal_Int32 nDimensionIndex) override |
virtual bool | isExpandIfValuesCloseToBorder (sal_Int32 nDimensionIndex) override |
virtual bool | isExpandWideValuesToZero (sal_Int32 nDimensionIndex) override |
virtual bool | isExpandNarrowValuesTowardZero (sal_Int32 nDimensionIndex) override |
virtual bool | isSeparateStackingForDifferentSigns (sal_Int32 nDimensionIndex) override |
virtual tools::Long | calculateTimeResolutionOnXAxis () override |
virtual void | setTimeResolutionOnXAxis (tools::Long nTimeResolution, const Date &rNullDate) override |
void | getMinimumAndMaximumX (double &rfMinimum, double &rfMaximum) const |
void | getMinimumAndMaximumYInContinuousXRange (double &rfMinY, double &rfMaxY, double fMinX, double fMaxX, sal_Int32 nAxisIndex) const |
virtual std::vector< ViewLegendEntry > | createLegendEntries (const css::awt::Size &rEntryKeyAspectRatio, css::chart2::LegendPosition eLegendPosition, const css::uno::Reference< css::beans::XPropertySet > &xTextProperties, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const css::uno::Reference< css::uno::XComponentContext > &xContext, ChartModel &rModel) override |
virtual LegendSymbolStyle | getLegendSymbolStyle () |
virtual css::awt::Size | getPreferredLegendKeyAspectRatio () override |
virtual css::uno::Any | getExplicitSymbol (const VDataSeries &rSeries, sal_Int32 nPointIndex) |
rtl::Reference< SvxShapeGroup > | createLegendSymbolForSeries (const css::awt::Size &rEntryKeyAspectRatio, const VDataSeries &rSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget) |
rtl::Reference< SvxShapeGroup > | createLegendSymbolForPoint (const css::awt::Size &rEntryKeyAspectRatio, const VDataSeries &rSeries, sal_Int32 nPointIndex, const rtl::Reference< SvxShapeGroupAnyD > &xTarget) |
std::vector< ViewLegendEntry > | createLegendEntriesForSeries (const css::awt::Size &rEntryKeyAspectRatio, const VDataSeries &rSeries, const css::uno::Reference< css::beans::XPropertySet > &xTextProperties, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const css::uno::Reference< css::uno::XComponentContext > &xContext) |
std::vector< ViewLegendSymbol > | createSymbols (const css::awt::Size &rEntryKeyAspectRatio, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const css::uno::Reference< css::uno::XComponentContext > &xContext) |
std::vector< ViewLegendSymbol > | createSymbolsForSeries (const css::awt::Size &rEntryKeyAspectRatio, const VDataSeries &rSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const css::uno::Reference< css::uno::XComponentContext > &xContext) |
std::vector< VDataSeries * > | getAllSeries () |
std::vector< VDataSeries const * > | getAllSeries () const |
sal_Int32 | getPointCount () const |
void | setNumberFormatsSupplier (const css::uno::Reference< css::util::XNumberFormatsSupplier > &xNumFmtSupplier) |
void | setColorScheme (const css::uno::Reference< css::chart2::XColorScheme > &xColorScheme) |
void | setExplicitCategoriesProvider (ExplicitCategoriesProvider *pExplicitCategoriesProvider) |
ExplicitCategoriesProvider * | getExplicitCategoriesProvider () |
css::uno::Sequence< OUString > | getSeriesNames () const |
css::uno::Sequence< OUString > | getAllSeriesNames () const |
void | setPageReferenceSize (const css::awt::Size &rPageRefSize) |
void | setCoordinateSystemResolution (const css::uno::Sequence< sal_Int32 > &rCoordinateSystemResolution) |
bool | PointsWereSkipped () const |
void | setPieLabelsAllowToMove (bool bIsPieOrDonut) |
void | setAvailableOuterRect (const basegfx::B2IRectangle &aAvailableOuterRect) |
double | getTransformedDepth () const |
void | releaseShapes () |
virtual void | rearrangeLabelToAvoidOverlapIfRequested (const css::awt::Size &rPageSize) |
bool | WantToPlotInFrontOfAxisLine () |
virtual bool | shouldSnapRectToUsedArea () |
OUString | getLabelTextForValue (VDataSeries const &rDataSeries, sal_Int32 nPointIndex, double fValue, bool bAsPercentage) |
This method returns a text string representation of the passed numeric value by exploiting a NumberFormatterWrapper object. More... | |
![]() | |
PlotterBase (sal_Int32 nDimension) | |
virtual | ~PlotterBase () |
virtual void | initPlotter (const rtl::Reference< SvxShapeGroupAnyD > &xLogicTarget, const rtl::Reference< SvxShapeGroupAnyD > &xFinalTarget, const OUString &rCID) |
virtual void | setScales (std::vector< ExplicitScaleData > &&rScales, bool bSwapXAndYAxis) |
virtual void | setTransformationSceneToScreen (const css::drawing::HomogenMatrix &rMatrix) |
virtual void | createShapes ()=0 |
virtual double | getMinimumX ()=0 |
virtual double | getMaximumX ()=0 |
virtual double | getMinimumYInRange (double fMinimumX, double fMaximumX, sal_Int32 nAxisIndex)=0 |
virtual double | getMaximumYInRange (double fMinimumX, double fMaximumX, sal_Int32 nAxisIndex)=0 |
virtual double | getMinimumZ ()=0 |
virtual double | getMaximumZ ()=0 |
virtual bool | isExpandBorderToIncrementRhythm (sal_Int32 nDimensionIndex)=0 |
virtual bool | isExpandIfValuesCloseToBorder (sal_Int32 nDimensionIndex)=0 |
virtual bool | isExpandWideValuesToZero (sal_Int32 nDimensionIndex)=0 |
virtual bool | isExpandNarrowValuesTowardZero (sal_Int32 nDimensionIndex)=0 |
virtual bool | isSeparateStackingForDifferentSigns (sal_Int32 nDimensionIndex)=0 |
virtual tools::Long | calculateTimeResolutionOnXAxis ()=0 |
virtual void | setTimeResolutionOnXAxis (tools::Long nTimeResolution, const Date &rNullDate)=0 |
virtual css::awt::Size | getPreferredLegendKeyAspectRatio ()=0 |
virtual std::vector< ViewLegendEntry > | createLegendEntries (const css::awt::Size &rEntryKeyAspectRatio, css::chart2::LegendPosition eLegendPosition, const css::uno::Reference< css::beans::XPropertySet > &xTextProperties, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const css::uno::Reference< css::uno::XComponentContext > &xContext, ChartModel &rModel)=0 |
Private Member Functions | |
void | impl_createSeriesShapes () |
bool | impl_createArea (VDataSeries *pSeries, std::vector< std::vector< css::drawing::Position3D > > const *pSeriesPoly, std::vector< std::vector< css::drawing::Position3D > > const *pPreviousSeriesPoly, PlottingPositionHelper const *pPosHelper) |
bool | impl_createLine (VDataSeries *pSeries, std::vector< std::vector< css::drawing::Position3D > > const *pSeriesPoly, PlottingPositionHelper *pPosHelper) |
Static Private Member Functions | |
static bool | create_stepped_line (std::vector< std::vector< css::drawing::Position3D > > aStartPoly, css::chart2::CurveStyle eCurveStyle, PlottingPositionHelper const *pPosHelper, std::vector< std::vector< css::drawing::Position3D > > &aPoly) |
Private Attributes | |
std::unique_ptr< PlottingPositionHelper > | m_pMainPosHelper |
bool | m_bArea |
bool | m_bLine |
bool | m_bSymbol |
css::chart2::CurveStyle | m_eCurveStyle |
sal_Int32 | m_nCurveResolution |
sal_Int32 | m_nSplineOrder |
rtl::Reference< SvxShapeGroupAnyD > | m_xSeriesTarget |
rtl::Reference< SvxShapeGroupAnyD > | m_xErrorBarTarget |
rtl::Reference< SvxShapeGroupAnyD > | m_xTextTarget |
rtl::Reference< SvxShapeGroupAnyD > | m_xRegressionCurveEquationTarget |
Additional Inherited Members | |
![]() | |
static VSeriesPlotter * | createSeriesPlotter (const rtl::Reference< ::chart::ChartType > &xChartTypeModel, sal_Int32 nDimensionCount, bool bExcludingPositioning) |
![]() | |
static bool | isValidPosition (const css::drawing::Position3D &rPos) |
![]() | |
VSeriesPlotter (rtl::Reference< ::chart::ChartType > xChartTypeModel, sal_Int32 nDimensionCount, bool bCategoryXAxis=true) | |
rtl::Reference< SvxShapeGroupAnyD > | getSeriesGroupShape (VDataSeries *pDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget) |
rtl::Reference< SvxShapeGroupAnyD > | getSeriesGroupShapeFrontChild (VDataSeries *pDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget) |
rtl::Reference< SvxShapeGroupAnyD > | getSeriesGroupShapeBackChild (VDataSeries *pDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget) |
rtl::Reference< SvxShapeGroupAnyD > | getErrorBarsGroupShape (VDataSeries &rDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, bool bYError) |
rtl::Reference< SvxShapeText > | createDataLabel (const rtl::Reference< SvxShapeGroupAnyD > &xTarget, VDataSeries &rDataSeries, sal_Int32 nPointIndex, double fValue, double fSumValue, const css::awt::Point &rScreenPosition2D, LabelAlignment eAlignment, sal_Int32 nOffset=0, sal_Int32 nTextWidth=0) |
This method creates a text shape for a label related to a data point and append it to the root text shape group (xTarget). More... | |
void | createErrorBar (const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const css::drawing::Position3D &rPos, const css::uno::Reference< css::beans::XPropertySet > &xErrorBarProperties, const VDataSeries &rVDataSeries, sal_Int32 nIndex, bool bVertical, const double *pfScaledLogicX) |
creates two T-shaped error bars in both directions (up/down or left/right depending on the bVertical parameter) More... | |
void | createErrorRectangle (const css::drawing::Position3D &rUnscaledLogicPosition, VDataSeries &rVDataSeries, sal_Int32 nIndex, const rtl::Reference< SvxShapeGroupAnyD > &rTarget, bool bUseXErrorData, bool bUseYErrorData) |
void | createErrorBar_X (const css::drawing::Position3D &rUnscaledLogicPosition, VDataSeries &rVDataSeries, sal_Int32 nPointIndex, const rtl::Reference< SvxShapeGroupAnyD > &xTarget) |
void | createErrorBar_Y (const css::drawing::Position3D &rUnscaledLogicPosition, VDataSeries &rVDataSeries, sal_Int32 nPointIndex, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, double const *pfScaledLogicX) |
void | createRegressionCurvesShapes (VDataSeries const &rVDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const rtl::Reference< SvxShapeGroupAnyD > &xEquationTarget, bool bMaySkipPointsInRegressionCalculation) |
void | createRegressionCurveEquationShapes (const OUString &rEquationCID, const css::uno::Reference< css::beans::XPropertySet > &xEquationProperties, const rtl::Reference< SvxShapeGroupAnyD > &xEquationTarget, const css::uno::Reference< css::chart2::XRegressionCurveCalculator > &xRegressionCurveCalculator, css::awt::Point aDefaultPos) |
virtual PlottingPositionHelper & | getPlottingPositionHelper (sal_Int32 nAxisIndex) const |
VDataSeries * | getFirstSeries () const |
OUString | getCategoryName (sal_Int32 nPointIndex) const |
![]() | |
rtl::Reference< SvxShapeGroupAnyD > | createGroupShape (const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const OUString &rName=OUString()) |
![]() | |
~MinimumAndMaximumSupplier () | |
![]() | |
~LegendEntryProvider () | |
![]() | |
static rtl::Reference< SvxShapeGroup > | getLabelsGroupShape (VDataSeries &rDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget) |
This method creates a 2D group shape for containing all text shapes needed for this series; the group is added to the text target;. More... | |
static void | addErrorBorder (const css::drawing::Position3D &rPos0, const css::drawing::Position3D &rPos1, const rtl::Reference< SvxShapeGroupAnyD > &rTarget, const css::uno::Reference< css::beans::XPropertySet > &rErrorBorderProp) |
![]() | |
PlottingPositionHelper * | m_pMainPosHelper |
rtl::Reference< ::chart::ChartType > | m_xChartTypeModel |
std::vector< std::vector< VDataSeriesGroup > > | m_aZSlots |
bool | m_bCategoryXAxis |
tools::Long | m_nTimeResolution |
Date | m_aNullDate |
std::unique_ptr< NumberFormatterWrapper > | m_apNumberFormatterWrapper |
css::uno::Reference< css::chart2::XColorScheme > | m_xColorScheme |
ExplicitCategoriesProvider * | m_pExplicitCategoriesProvider |
css::uno::Sequence< sal_Int32 > | m_aCoordinateSystemResolution |
bool | m_bPointsWereSkipped |
bool | m_bPieLabelsAllowToMove |
basegfx::B2IRectangle | m_aAvailableOuterRect |
css::awt::Size | m_aPageReferenceSize |
![]() | |
rtl::Reference< SvxShapeGroupAnyD > | m_xLogicTarget |
rtl::Reference< SvxShapeGroupAnyD > | m_xFinalTarget |
OUString | m_aCID |
const sal_Int32 | m_nDimension |
PlottingPositionHelper * | m_pPosHelper |
Definition at line 29 of file AreaChart.hxx.
|
delete |
chart::AreaChart::AreaChart | ( | const rtl::Reference< ::chart::ChartType > & | xChartTypeModel, |
sal_Int32 | nDimensionCount, | ||
bool | bCategoryXAxis, | ||
bool | bNoArea = false |
||
) |
|
overridevirtual |
Definition at line 91 of file AreaChart.cxx.
|
overridevirtual |
A new series can be positioned relative to other series in a chart.
This positioning has two dimensions. First a series can be placed next to each other on the category axis. This position is indicated by xSlot. Second a series can be stacked on top of another. This position is indicated by ySlot. The positions are counted from 0 on. xSlot < 0 : append the series to already existing x series xSlot > occupied : append the series to already existing x series
If the xSlot is already occupied the given ySlot decides what should happen: ySlot < -1 : move all existing series in the xSlot to next slot ySlot == -1 : stack on top at given x position ySlot == already occupied : insert at given y and x position ySlot > occupied : stack on top at given x position
Reimplemented from chart::VSeriesPlotter.
Definition at line 138 of file AreaChart.cxx.
|
staticprivate |
O
O--—+
+---—O | | | O
+–O
O–+
O | +--—+ | O
Definition at line 212 of file AreaChart.cxx.
References chart::PlottingPositionHelper::getScaledLogicClipDoubleRect(), and size.
|
overridevirtual |
Implements chart::PlotterBase.
Definition at line 564 of file AreaChart.cxx.
References chart::AddPointToPoly(), chart::PlottingPositionHelper::doLogicScaling(), chart::PlottingPositionHelper::getLogicMinY(), chart::PlottingPositionHelper::isLogicVisible(), chart::PlottingPositionHelper::isPercentY(), chart::PlottingPositionHelper::isSameForGivenResolution(), chart::PlottingPositionHelper::isSwapXAndY(), chart::LABEL_ALIGN_BOTTOM, chart::LABEL_ALIGN_CENTER, chart::LABEL_ALIGN_LEFT, chart::LABEL_ALIGN_RIGHT, chart::LABEL_ALIGN_TOP, o3tl::make_unsigned(), nIndex, SAL_INFO, chart::PlottingPositionHelper::setCoordinateSystemResolution(), Symbol, chart::PlottingPositionHelper::transformLogicToScene(), and chart::LabelPositionHelper::transformSceneToScreenPosition().
|
overridevirtual |
Reimplemented from chart::VSeriesPlotter.
Definition at line 108 of file AreaChart.cxx.
References chart::VDataSeries::getSymbolProperties(), and Symbol.
|
overridevirtual |
Reimplemented from chart::VSeriesPlotter.
Definition at line 101 of file AreaChart.cxx.
|
overridevirtual |
a value <= 0 for a directions means that this direction can be stretched arbitrary
Reimplemented from chart::VSeriesPlotter.
Definition at line 121 of file AreaChart.cxx.
|
private |
Definition at line 403 of file AreaChart.cxx.
References chart::AddPointToPoly(), chart::appendPoly(), chart::PlottingPositionHelper::clipLogicValues(), chart::PlottingPositionHelper::doLogicScaling(), chart::PlottingPositionHelper::getBaseValueY(), chart::PlottingPositionHelper::getLogicMaxX(), chart::PlottingPositionHelper::getLogicMinY(), chart::VDataSeries::getPropertiesOfSeries(), chart::PlottingPositionHelper::getScaledLogicClipDoubleRect(), chart::VDataSeries::m_fLogicMaxX, chart::VDataSeries::m_fLogicMinX, chart::VDataSeries::m_fLogicZPos, chart::ShapeFactory::setShapeName(), and chart::PlottingPositionHelper::transformScaledLogicToScene().
|
private |
Definition at line 325 of file AreaChart.cxx.
References chart::VDataSeries::getPropertiesOfSeries(), chart::PlottingPositionHelper::getScaledLogicClipDoubleRect(), chart::lcl_removeDuplicatePoints(), SAL_WARN_IF, chart::ShapeFactory::setShapeName(), and chart::PlottingPositionHelper::transformScaledLogicToScene().
|
private |
Definition at line 478 of file AreaChart.cxx.
|
overridevirtual |
Reimplemented from chart::VSeriesPlotter.
Definition at line 95 of file AreaChart.cxx.
|
private |
Definition at line 70 of file AreaChart.hxx.
|
private |
Definition at line 71 of file AreaChart.hxx.
|
private |
Definition at line 72 of file AreaChart.hxx.
|
private |
Definition at line 75 of file AreaChart.hxx.
|
private |
Definition at line 76 of file AreaChart.hxx.
|
private |
Definition at line 77 of file AreaChart.hxx.
|
private |
Definition at line 68 of file AreaChart.hxx.
|
private |
Definition at line 80 of file AreaChart.hxx.
|
private |
Definition at line 82 of file AreaChart.hxx.
|
private |
Definition at line 79 of file AreaChart.hxx.
|
private |
Definition at line 81 of file AreaChart.hxx.