LibreOffice Module chart2 (master) 1
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
chart::AreaChart Class Reference

#include <AreaChart.hxx>

Inheritance diagram for chart::AreaChart:
[legend]
Collaboration diagram for chart::AreaChart:
[legend]

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
 
- Public Member Functions inherited from chart::VSeriesPlotter
 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< ViewLegendEntrycreateLegendEntries (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< SvxShapeGroupcreateLegendSymbolForSeries (const css::awt::Size &rEntryKeyAspectRatio, const VDataSeries &rSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget)
 
rtl::Reference< SvxShapeGroupcreateLegendSymbolForPoint (const css::awt::Size &rEntryKeyAspectRatio, const VDataSeries &rSeries, sal_Int32 nPointIndex, const rtl::Reference< SvxShapeGroupAnyD > &xTarget)
 
std::vector< ViewLegendEntrycreateLegendEntriesForSeries (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< ViewLegendSymbolcreateSymbols (const css::awt::Size &rEntryKeyAspectRatio, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const css::uno::Reference< css::uno::XComponentContext > &xContext)
 
std::vector< ViewLegendSymbolcreateSymbolsForSeries (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)
 
ExplicitCategoriesProvidergetExplicitCategoriesProvider ()
 
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...
 
- Public Member Functions inherited from chart::PlotterBase
 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< ViewLegendEntrycreateLegendEntries (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< PlottingPositionHelperm_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< SvxShapeGroupAnyDm_xSeriesTarget
 
rtl::Reference< SvxShapeGroupAnyDm_xErrorBarTarget
 
rtl::Reference< SvxShapeGroupAnyDm_xTextTarget
 
rtl::Reference< SvxShapeGroupAnyDm_xRegressionCurveEquationTarget
 

Additional Inherited Members

- Static Public Member Functions inherited from chart::VSeriesPlotter
static VSeriesPlottercreateSeriesPlotter (const rtl::Reference< ::chart::ChartType > &xChartTypeModel, sal_Int32 nDimensionCount, bool bExcludingPositioning)
 
- Static Public Member Functions inherited from chart::PlotterBase
static bool isValidPosition (const css::drawing::Position3D &rPos)
 
- Protected Member Functions inherited from chart::VSeriesPlotter
 VSeriesPlotter (rtl::Reference< ::chart::ChartType > xChartTypeModel, sal_Int32 nDimensionCount, bool bCategoryXAxis=true)
 
rtl::Reference< SvxShapeGroupAnyDgetSeriesGroupShape (VDataSeries *pDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget)
 
rtl::Reference< SvxShapeGroupAnyDgetSeriesGroupShapeFrontChild (VDataSeries *pDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget)
 
rtl::Reference< SvxShapeGroupAnyDgetSeriesGroupShapeBackChild (VDataSeries *pDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget)
 
rtl::Reference< SvxShapeGroupAnyDgetErrorBarsGroupShape (VDataSeries &rDataSeries, const rtl::Reference< SvxShapeGroupAnyD > &xTarget, bool bYError)
 
rtl::Reference< SvxShapeTextcreateDataLabel (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 PlottingPositionHelpergetPlottingPositionHelper (sal_Int32 nAxisIndex) const
 
VDataSeriesgetFirstSeries () const
 
OUString getCategoryName (sal_Int32 nPointIndex) const
 
- Protected Member Functions inherited from chart::PlotterBase
rtl::Reference< SvxShapeGroupAnyDcreateGroupShape (const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const OUString &rName=OUString())
 
- Protected Member Functions inherited from chart::MinimumAndMaximumSupplier
 ~MinimumAndMaximumSupplier ()
 
- Protected Member Functions inherited from chart::LegendEntryProvider
 ~LegendEntryProvider ()
 
- Static Protected Member Functions inherited from chart::VSeriesPlotter
static rtl::Reference< SvxShapeGroupgetLabelsGroupShape (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)
 
- Protected Attributes inherited from chart::VSeriesPlotter
PlottingPositionHelperm_pMainPosHelper
 
rtl::Reference< ::chart::ChartTypem_xChartTypeModel
 
std::vector< std::vector< VDataSeriesGroup > > m_aZSlots
 
bool m_bCategoryXAxis
 
tools::Long m_nTimeResolution
 
Date m_aNullDate
 
std::unique_ptr< NumberFormatterWrapperm_apNumberFormatterWrapper
 
css::uno::Reference< css::chart2::XColorScheme > m_xColorScheme
 
ExplicitCategoriesProviderm_pExplicitCategoriesProvider
 
css::uno::Sequence< sal_Int32 > m_aCoordinateSystemResolution
 
bool m_bPointsWereSkipped
 
bool m_bPieLabelsAllowToMove
 
basegfx::B2IRectangle m_aAvailableOuterRect
 
css::awt::Size m_aPageReferenceSize
 
- Protected Attributes inherited from chart::PlotterBase
rtl::Reference< SvxShapeGroupAnyDm_xLogicTarget
 
rtl::Reference< SvxShapeGroupAnyDm_xFinalTarget
 
OUString m_aCID
 
const sal_Int32 m_nDimension
 
PlottingPositionHelperm_pPosHelper
 

Detailed Description

Definition at line 29 of file AreaChart.hxx.

Constructor & Destructor Documentation

◆ AreaChart() [1/2]

chart::AreaChart::AreaChart ( )
delete

◆ AreaChart() [2/2]

chart::AreaChart::AreaChart ( const rtl::Reference< ::chart::ChartType > &  xChartTypeModel,
sal_Int32  nDimensionCount,
bool  bCategoryXAxis,
bool  bNoArea = false 
)

◆ ~AreaChart()

chart::AreaChart::~AreaChart ( )
overridevirtual

Definition at line 91 of file AreaChart.cxx.

Member Function Documentation

◆ addSeries()

void chart::AreaChart::addSeries ( std::unique_ptr< VDataSeries pSeries,
sal_Int32  zSlot,
sal_Int32  xSlot,
sal_Int32  ySlot 
)
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.

◆ create_stepped_line()

bool chart::AreaChart::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 
)
staticprivate

O

O--—+

+---—O | | | O

+–O

O–+

O | +--—+ | O

Definition at line 212 of file AreaChart.cxx.

References chart::PlottingPositionHelper::getScaledLogicClipDoubleRect(), and size.

◆ createShapes()

void chart::AreaChart::createShapes ( )
overridevirtual

◆ getExplicitSymbol()

uno::Any chart::AreaChart::getExplicitSymbol ( const VDataSeries rSeries,
sal_Int32  nPointIndex 
)
overridevirtual

Reimplemented from chart::VSeriesPlotter.

Definition at line 108 of file AreaChart.cxx.

References chart::VDataSeries::getSymbolProperties(), and Symbol.

◆ getLegendSymbolStyle()

LegendSymbolStyle chart::AreaChart::getLegendSymbolStyle ( )
overridevirtual

Reimplemented from chart::VSeriesPlotter.

Definition at line 101 of file AreaChart.cxx.

◆ getPreferredDiagramAspectRatio()

drawing::Direction3D chart::AreaChart::getPreferredDiagramAspectRatio ( ) const
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.

◆ impl_createArea()

bool chart::AreaChart::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 
)
private

◆ impl_createLine()

bool chart::AreaChart::impl_createLine ( VDataSeries pSeries,
std::vector< std::vector< css::drawing::Position3D > > const *  pSeriesPoly,
PlottingPositionHelper pPosHelper 
)
private

◆ impl_createSeriesShapes()

void chart::AreaChart::impl_createSeriesShapes ( )
private

Definition at line 478 of file AreaChart.cxx.

◆ isSeparateStackingForDifferentSigns()

bool chart::AreaChart::isSeparateStackingForDifferentSigns ( sal_Int32  nDimensionIndex)
overridevirtual

Reimplemented from chart::VSeriesPlotter.

Definition at line 95 of file AreaChart.cxx.

Member Data Documentation

◆ m_bArea

bool chart::AreaChart::m_bArea
private

Definition at line 70 of file AreaChart.hxx.

◆ m_bLine

bool chart::AreaChart::m_bLine
private

Definition at line 71 of file AreaChart.hxx.

◆ m_bSymbol

bool chart::AreaChart::m_bSymbol
private

Definition at line 72 of file AreaChart.hxx.

◆ m_eCurveStyle

css::chart2::CurveStyle chart::AreaChart::m_eCurveStyle
private

Definition at line 75 of file AreaChart.hxx.

◆ m_nCurveResolution

sal_Int32 chart::AreaChart::m_nCurveResolution
private

Definition at line 76 of file AreaChart.hxx.

◆ m_nSplineOrder

sal_Int32 chart::AreaChart::m_nSplineOrder
private

Definition at line 77 of file AreaChart.hxx.

◆ m_pMainPosHelper

std::unique_ptr<PlottingPositionHelper> chart::AreaChart::m_pMainPosHelper
private

Definition at line 68 of file AreaChart.hxx.

◆ m_xErrorBarTarget

rtl::Reference<SvxShapeGroupAnyD> chart::AreaChart::m_xErrorBarTarget
private

Definition at line 80 of file AreaChart.hxx.

◆ m_xRegressionCurveEquationTarget

rtl::Reference<SvxShapeGroupAnyD> chart::AreaChart::m_xRegressionCurveEquationTarget
private

Definition at line 82 of file AreaChart.hxx.

◆ m_xSeriesTarget

rtl::Reference<SvxShapeGroupAnyD> chart::AreaChart::m_xSeriesTarget
private

Definition at line 79 of file AreaChart.hxx.

◆ m_xTextTarget

rtl::Reference<SvxShapeGroupAnyD> chart::AreaChart::m_xTextTarget
private

Definition at line 81 of file AreaChart.hxx.


The documentation for this class was generated from the following files: