23#ifndef QTRADINGVIEW_ISCALE_H
24#define QTRADINGVIEW_ISCALE_H
27#include "QTradingView/qtradingview_global.h"
29namespace QTradingView {
49 [[nodiscard]]
virtual double dataToPixel(
double value)
const = 0;
56 [[nodiscard]]
virtual double pixelToData(
double pixel)
const = 0;
63 virtual void setDomain(
double minValue,
double maxValue) = 0;
70 virtual void setRange(
double minPixel,
double maxPixel) = 0;
77 [[nodiscard]]
virtual std::vector<double>
getTicks(
int approxCount)
const = 0;
83 [[nodiscard]] std::vector<double>
getTicks()
const {
93 virtual void applyPadding(
double &minValue,
double &maxValue,
double paddingRatio)
const = 0;
102 virtual void zoomDomain(
double &minValue,
double &maxValue,
double zoomFactor,
double anchorValue)
const = 0;
Abstract base class for value-to-pixel scaling in QTradingView.
Definition IScale.h:37
virtual double pixelToData(double pixel) const =0
Converts a pixel position to its corresponding data value.
virtual void applyPadding(double &minValue, double &maxValue, double paddingRatio) const =0
Applies padding to the scale domain.
virtual std::vector< double > getTicks(int approxCount) const =0
Returns a vector of tick values for the axis.
std::vector< double > getTicks() const
Returns a default vector of tick values (approx. 5).
Definition IScale.h:83
virtual ~IScale()=default
Virtual destructor for IScale.
virtual void setDomain(double minValue, double maxValue)=0
Sets the domain (min and max data values) for the scale.
virtual void zoomDomain(double &minValue, double &maxValue, double zoomFactor, double anchorValue) const =0
Zooms the scale domain around an anchor value.
virtual void setRange(double minPixel, double maxPixel)=0
Sets the pixel range for the scale.
virtual double dataToPixel(double value) const =0
Converts a data value to its corresponding pixel position.