namespace chart
{ //first index is the dimension, second index is the axis index that indicates whether this is a main or secondary axis typedef std::pair<sal_Int32, sal_Int32> tFullAxisIndex; typedef std::map<VCoordinateSystem*, tFullAxisIndex> tCoordinateSystemMap;
/** This class handles a collection of coordinate systems and is used for *executingsomeactiononallcoordinatesystemssuchas *"prepareAutomaticAxisScaling"and"setExplicitScaleAndIncrement". *Moreoveritcontainsthe"aAutoScaling"objectthatisaninstanceof *the"ScaleAutomatism"class.Theinitializationof"aAutoScaling"is *performedinthe"SeriesPlotterContainer::initAxisUsageList"methodandis *usedinthe"SeriesPlotterContainer::doAutoScaling"forcalculatingexplicit *scaleandincrementobjects(see"SeriesPlotterContainer::doAutoScaling").
*/ class AxisUsage
{ public:
AxisUsage()
: aAutoScaling(AxisHelper::createDefaultScale(), Date(Date::SYSTEM))
{
}
//use one scale only once for each coordinate system //main axis are preferred over secondary axis //value scales are preferred if (aFound != aCoordinateSystems.end())
{
sal_Int32 nFoundAxisIndex = aFound->second.second; if (nFoundAxisIndex < nAxisIndex) return;
sal_Int32 nFoundDimension = aFound->second.first; if (nFoundDimension == 1) return; if (nFoundDimension < nDimensionIndex) return;
}
aCoordinateSystems[pCooSys] = std::move(aFullAxisIndex);
//set maximum scale index auto aIter = aMaxIndexPerDimension.find(nDimensionIndex); if (aIter != aMaxIndexPerDimension.end())
{
sal_Int32 nCurrentMaxIndex = aIter->second; if (nCurrentMaxIndex < nAxisIndex)
aMaxIndexPerDimension[nDimensionIndex] = nAxisIndex;
} else
aMaxIndexPerDimension[nDimensionIndex] = nAxisIndex;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.