.. index:: pair: namespace; EE::UI::Charts .. _doxid-namespace_e_e_1_1_u_i_1_1_charts: namespace EE::UI::Charts ======================== .. toctree:: :hidden: enum_EE_UI_Charts_AxisPosition.rst enum_EE_UI_Charts_DataOrder.rst enum_EE_UI_Charts_LineCap.rst enum_EE_UI_Charts_LineJoin.rst struct_EE_UI_Charts_ChartPoint.rst struct_EE_UI_Charts_DataDelta.rst struct_EE_UI_Charts_DataRange.rst struct_EE_UI_Charts_IndexRange.rst struct_EE_UI_Charts_LinearSpan.rst struct_EE_UI_Charts_PointTooltipContext.rst struct_EE_UI_Charts_RangeConstraints.rst struct_EE_UI_Charts_ReducedPoint.rst struct_EE_UI_Charts_TooltipData.rst struct_EE_UI_Charts_TooltipField.rst struct_EE_UI_Charts_TooltipText.rst struct_EE_UI_Charts_XYDataChunk.rst class_EE_UI_Charts_AxisScale.rst class_EE_UI_Charts_AxisViewport.rst class_EE_UI_Charts_ChartAxis.rst class_EE_UI_Charts_ChartModel.rst class_EE_UI_Charts_ImmutableXYDataSource.rst class_EE_UI_Charts_LineSeries.rst class_EE_UI_Charts_LinearScale.rst class_EE_UI_Charts_ModelXYDataSource.rst class_EE_UI_Charts_OwnedXYDataSource.rst class_EE_UI_Charts_RingXYDataSource.rst class_EE_UI_Charts_StridedSpan.rst class_EE_UI_Charts_UIChart.rst class_EE_UI_Charts_XYDataRead.rst class_EE_UI_Charts_XYDataSource.rst Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block namespace Charts { // typedefs typedef std::variant<:ref:`TooltipText`, :ref:`TooltipData`> :target:`TooltipPayload`; typedef std::function`>(const :ref:`PointTooltipContext`&)> :target:`PointTooltipProvider`; typedef std::variant<:ref:`StridedSpan`, :ref:`StridedSpan`, :ref:`LinearSpan`> :target:`XDataView`; typedef std::variant<:ref:`StridedSpan`, :ref:`StridedSpan`> :target:`YDataView`; // enums enum :ref:`AxisPosition`; enum :ref:`DataOrder`; enum :ref:`LineCap`; enum :ref:`LineJoin`; // structs struct :ref:`ChartPoint`; struct :ref:`DataDelta`; struct :ref:`DataRange`; struct :ref:`IndexRange`; struct :ref:`LinearSpan`; struct :ref:`PointTooltipContext`; struct :ref:`RangeConstraints`; struct :ref:`ReducedPoint`; struct :ref:`TooltipData`; struct :ref:`TooltipField`; struct :ref:`TooltipText`; struct :ref:`XYDataChunk`; // classes class :ref:`AxisScale`; class :ref:`AxisViewport`; class :ref:`ChartAxis`; class :ref:`ChartModel`; class :ref:`ImmutableXYDataSource`; class :ref:`LineSeries`; class :ref:`LinearScale`; class :ref:`ModelXYDataSource`; class :ref:`OwnedXYDataSource`; class :ref:`RingXYDataSource`; template class :ref:`StridedSpan`; class :ref:`UIChart`; class :ref:`XYDataRead`; class :ref:`XYDataSource`; // global functions :ref:`EE_API` :ref:`SmallVector` :ref:`linearTicks`(:ref:`DataRange` range, float pixelLength, float targetSpacing = 80.f); :ref:`EE_API` :ref:`String` :target:`formatNumericTick`(double value, double step); :ref:`EE_API` std::vector<:ref:`ReducedPoint`> :ref:`reducePixelBuckets`(const :ref:`XYDataRead`& read, :ref:`IndexRange` visible, :ref:`DataRange` xRange, size_t pixelWidth); :ref:`EE_API` void :ref:`reducePixelBuckets`(const :ref:`XYDataRead`& read, :ref:`IndexRange` visible, :ref:`DataRange` xRange, size_t pixelWidth, std::vector<:ref:`ReducedPoint`>& output); template :ref:`StridedSpan` :target:`memberSpan`(std::span objects, Member Object::* member); template :ref:`DataOrder` :target:`detectXOrder`(:ref:`StridedSpan` xs); template :ref:`requires`(std::is_same_v||std::is_same_v); template :ref:`requires`(std::is_same_v||std::is_same_v); :ref:`EE_API` std::optional<:ref:`DataRange`> :ref:`xExtent`(const :ref:`XYDataRead`& read); :ref:`EE_API` std::optional<:ref:`DataRange`> :target:`yExtent`(const :ref:`XYDataRead`& read); :ref:`EE_API` std::optional<:ref:`DataRange`> :ref:`visibleYExtent`(const :ref:`XYDataRead`& read, :ref:`DataRange` xRange); :ref:`EE_API` size_t :ref:`lowerBoundX`(const :ref:`XYDataRead`& read, double value); :ref:`EE_API` :ref:`IndexRange` :ref:`visibleLogicalRange`(const :ref:`XYDataRead`& read, double minimum, double maximum); :ref:`EE_API` :ref:`ChartPoint` :target:`pointAt`(const :ref:`XYDataRead`& read, size_t logicalIndex); } // namespace Charts .. _details-namespace_e_e_1_1_u_i_1_1_charts: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Global Functions ---------------- .. index:: pair: function; linearTicks .. _doxid-namespace_e_e_1_1_u_i_1_1_charts_1a368aab4a7d447d9b2b5fd33fb939babf: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`EE_API` :ref:`SmallVector` linearTicks(:ref:`DataRange` range, float pixelLength, float targetSpacing = 80.f) Nice-number ticks, independent of label formatting and text measurement. .. index:: pair: function; reducePixelBuckets .. _doxid-namespace_e_e_1_1_u_i_1_1_charts_1aad7cb35571c2d493bf6a3f88d9c16d15: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`EE_API` std::vector<:ref:`ReducedPoint`> reducePixelBuckets(const :ref:`XYDataRead`& read, :ref:`IndexRange` visible, :ref:`DataRange` xRange, size_t pixelWidth) Reduces an ascending-X visible interval to at most four source samples per pixel bucket. Each point retains its logical index. Invalid values split line connectivity. .. index:: pair: function; reducePixelBuckets .. _doxid-namespace_e_e_1_1_u_i_1_1_charts_1ad809b43c3714fd028caa4f085ae585cc: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`EE_API` void reducePixelBuckets(const :ref:`XYDataRead`& read, :ref:`IndexRange` visible, :ref:`DataRange` xRange, size_t pixelWidth, std::vector<:ref:`ReducedPoint`>& output) Writes into a reusable buffer, retaining its capacity across data updates. .. index:: pair: function; requires .. _doxid-namespace_e_e_1_1_u_i_1_1_charts_1ad060200421bfd7c8d81311a4f82ee3ef: .. ref-code-block:: cpp :class: doxyrest-title-code-block template requires(std::is_same_v||std::is_same_v) Zero-copy shared, separate X/Y arrays. Inputs must be the same length. .. index:: pair: function; requires .. _doxid-namespace_e_e_1_1_u_i_1_1_charts_1aa1a257da1f844e49d8abec7efab4726a: .. ref-code-block:: cpp :class: doxyrest-title-code-block template requires(std::is_same_v||std::is_same_v) Zero-copy shared AoS storage with typed member views. .. index:: pair: function; xExtent .. _doxid-namespace_e_e_1_1_u_i_1_1_charts_1a61315a963338d77c7b4a4a614e67afc8: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`EE_API` std::optional<:ref:`DataRange`> xExtent(const :ref:`XYDataRead`& read) Finite paired values only; NaN and Inf form gaps. .. index:: pair: function; visibleYExtent .. _doxid-namespace_e_e_1_1_u_i_1_1_charts_1a6967242e035608ed23ad7d6cc08307d6: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`EE_API` std::optional<:ref:`DataRange`> visibleYExtent(const :ref:`XYDataRead`& read, :ref:`DataRange` xRange) Scans only the raw samples in an ascending-X interval. .. index:: pair: function; lowerBoundX .. _doxid-namespace_e_e_1_1_u_i_1_1_charts_1ac472177764bd56cddde8f2cccbba3809: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`EE_API` size_t lowerBoundX(const :ref:`XYDataRead`& read, double value) Ascending-X reads only; returns the first index whose X is at least value. .. index:: pair: function; visibleLogicalRange .. _doxid-namespace_e_e_1_1_u_i_1_1_charts_1a959f2f40dcdafb1b10edd4a68dc122ac: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`EE_API` :ref:`IndexRange` visibleLogicalRange(const :ref:`XYDataRead`& read, double minimum, double maximum) Ascending-X reads only; includes samples in [minimum, maximum].