LibreOffice Module chart2 (master) 1
|
#include <BarChart.hxx>
Classes | |
struct | FormerBarPoint |
Public Member Functions | |
BarChart ()=delete | |
BarChart (const rtl::Reference< ::chart::ChartType > &xChartTypeModel, sal_Int32 nDimensionCount) | |
virtual | ~BarChart () 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... | |
![]() | |
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 | |
css::awt::Point | getLabelScreenPositionAndAlignment (LabelAlignment &rAlignment, sal_Int32 nLabelPlacement, double fScaledX, double fScaledLowerYValue, double fScaledUpperYValue, double fScaledZ, double fScaledLowerBarDepth, double fScaledUpperBarDepth, double fBaseValue, BarPositionHelper const *pPosHelper) const |
virtual PlottingPositionHelper & | getPlottingPositionHelper (sal_Int32 nAxisIndex) const override |
void | adaptOverlapAndGapwidthForGroupBarsPerAxis () |
void | doZSlot (bool &bDrawConnectionLines, bool &bDrawConnectionLinesInited, const std::vector< VDataSeriesGroup > &rZSlot, sal_Int32 nZ, sal_Int32 nPointIndex, sal_Int32 nStartIndex, const rtl::Reference< SvxShapeGroupAnyD > &xSeriesTarget, const rtl::Reference< SvxShapeGroupAnyD > &xRegressionCurveTarget, const rtl::Reference< SvxShapeGroupAnyD > &xRegressionCurveEquationTarget, const rtl::Reference< SvxShapeGroupAnyD > &xTextTarget, std::unordered_set< rtl::Reference< SvxShape > > &aShapeSet, std::map< VDataSeries *, FormerBarPoint > &aSeriesFormerPointMap, std::map< sal_Int32, double > &aLogicYSumMap) |
void | doXSlot (const VDataSeriesGroup &rXSlot, bool &bDrawConnectionLines, bool &bDrawConnectionLinesInited, sal_Int32 nZ, sal_Int32 nPointIndex, sal_Int32 nStartIndex, const rtl::Reference< SvxShapeGroupAnyD > &xSeriesTarget, const rtl::Reference< SvxShapeGroupAnyD > &xRegressionCurveTarget, const rtl::Reference< SvxShapeGroupAnyD > &xRegressionCurveEquationTarget, const rtl::Reference< SvxShapeGroupAnyD > &xTextTarget, std::unordered_set< rtl::Reference< SvxShape > > &aShapeSet, std::map< VDataSeries *, FormerBarPoint > &aSeriesFormerPointMap, std::map< sal_Int32, double > &aLogicYSumMap, double fLogicBaseWidth, double fSlotX, BarPositionHelper *const pPosHelper, double fLogicPositiveYSum, double fLogicNegativeYSum, sal_Int32 nAttachedAxisIndex) |
Static Private Member Functions | |
static rtl::Reference< SvxShape > | createDataPoint3D_Bar (const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const css::drawing::Position3D &rPosition, const css::drawing::Direction3D &rSize, double fTopHeight, sal_Int32 nRotateZAngleHundredthDegree, const css::uno::Reference< css::beans::XPropertySet > &xObjectProperties, sal_Int32 nGeometry3D) |
Private Attributes | |
std::unique_ptr< BarPositionHelper > | m_pMainPosHelper |
css::uno::Sequence< sal_Int32 > | m_aOverlapSequence |
css::uno::Sequence< sal_Int32 > | m_aGapwidthSequence |
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 BarChart.hxx.
|
delete |
chart::BarChart::BarChart | ( | const rtl::Reference< ::chart::ChartType > & | xChartTypeModel, |
sal_Int32 | nDimensionCount | ||
) |
|
overridevirtual |
Definition at line 68 of file BarChart.cxx.
|
private |
Definition at line 383 of file BarChart.cxx.
References chart::VDataSeries::getAttachedAxisIndex(), and chart::VDataSeries::getGroupBarsPerAxis().
|
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 363 of file BarChart.cxx.
|
staticprivate |
Definition at line 294 of file BarChart.cxx.
References TOOLS_WARN_EXCEPTION, and xTarget.
|
overridevirtual |
Implements chart::PlotterBase.
Definition at line 415 of file BarChart.cxx.
References DynCastE3dScene(), chart::PlottingPositionHelper::getScaledLogicClipDoubleRect(), and chart::PlottingPositionHelper::transformScaledLogicToScene().
|
private |
Definition at line 632 of file BarChart.cxx.
References chart::AddPointToPoly(), chart::PlottingPositionHelper::clipYRange(), chart::PlottingPositionHelper::doLogicScaling(), DynCastE3dScene(), chart::PlottingPositionHelper::getBaseValueY(), chart::PlottingPositionHelper::getLogicMaxX(), chart::BarPositionHelper::getScaledSlotPos(), chart::PlottingPositionHelper::getTransformationScaledLogicToScene(), chart::PlottingPositionHelper::isPercentY(), chart::PlottingPositionHelper::isSameForGivenResolution(), chart::PlottingPositionHelper::isStrongLowerRequested(), chart::PlottingPositionHelper::isSwapXAndY(), chart::LABEL_ALIGN_CENTER, chart::VDataSeriesGroup::m_aSeriesVector, chart::BarChart::FormerBarPoint::m_fLowerY, chart::BarChart::FormerBarPoint::m_fUpperY, chart::BarChart::FormerBarPoint::m_fX, chart::BarChart::FormerBarPoint::m_fZ, chart::PlottingPositionHelper::setCoordinateSystemResolution(), E3dScene::SuspendReportingDirtyRects(), TOOLS_WARN_EXCEPTION, chart::XTransformation2::transform(), and chart::PlottingPositionHelper::transformScaledLogicToScene().
|
private |
Definition at line 557 of file BarChart.cxx.
References chart::CategoryPositionHelper::getScaledSlotWidth(), chart::PlottingPositionHelper::isPercentY(), and chart::BarPositionHelper::updateSeriesCount().
|
private |
Definition at line 134 of file BarChart.cxx.
References chart::PlottingPositionHelper::isMathematicalOrientationY(), chart::PlottingPositionHelper::isSwapXAndY(), chart::LABEL_ALIGN_BOTTOM, chart::LABEL_ALIGN_CENTER, chart::LABEL_ALIGN_LEFT, chart::LABEL_ALIGN_RIGHT, chart::LABEL_ALIGN_TOP, and chart::LabelPositionHelper::transformSceneToScreenPosition().
|
overrideprivatevirtual |
Reimplemented from chart::VSeriesPlotter.
Definition at line 72 of file BarChart.cxx.
References chart::CategoryPositionHelper::setInnerDistance(), and chart::CategoryPositionHelper::setOuterDistance().
|
overridevirtual |
a value <= 0 for a directions means that this direction can be stretched arbitrary
Reimplemented from chart::VSeriesPlotter.
Definition at line 86 of file BarChart.cxx.
References chart::PlottingPositionHelper::getScaledLogicWidth(), chart::CategoryPositionHelper::getScaledSlotWidth(), and chart::MAIN_AXIS_INDEX.
|
private |
Definition at line 114 of file BarChart.hxx.
|
private |
Definition at line 113 of file BarChart.hxx.
|
private |
Definition at line 112 of file BarChart.hxx.