QTradingView 1.0.0
A high-performance charting library built with C++ and Qt.
Loading...
Searching...
No Matches
QTradingView::IScale Class Referenceabstract

Abstract base class for value-to-pixel scaling in QTradingView. More...

#include <IScale.h>

Inheritance diagram for QTradingView::IScale:
QTradingView::LinearScale QTradingView::LogScale

Public Member Functions

virtual ~IScale ()=default
 Virtual destructor for IScale.
 
virtual double dataToPixel (double value) const =0
 Converts a data value to its corresponding pixel position.
 
virtual double pixelToData (double pixel) const =0
 Converts a pixel position to its corresponding data value.
 
virtual void setDomain (double minValue, double maxValue)=0
 Sets the domain (min and max data values) for the scale.
 
virtual void setRange (double minPixel, double maxPixel)=0
 Sets the pixel range for the scale.
 
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).
 
virtual void applyPadding (double &minValue, double &maxValue, double paddingRatio) const =0
 Applies padding to the scale domain.
 
virtual void zoomDomain (double &minValue, double &maxValue, double zoomFactor, double anchorValue) const =0
 Zooms the scale domain around an anchor value.
 

Detailed Description

Abstract base class for value-to-pixel scaling in QTradingView.

IScale provides an interface for converting between data values and pixel coordinates, managing scale domains and ranges, and generating axis ticks.

Member Function Documentation

◆ applyPadding()

virtual void QTradingView::IScale::applyPadding ( double &  minValue,
double &  maxValue,
double  paddingRatio 
) const
pure virtual

Applies padding to the scale domain.

Parameters
minValueMinimum data value (modified).
maxValueMaximum data value (modified).
paddingRatioRatio of padding to apply.

Implemented in QTradingView::LinearScale, and QTradingView::LogScale.

◆ dataToPixel()

virtual double QTradingView::IScale::dataToPixel ( double  value) const
pure virtual

Converts a data value to its corresponding pixel position.

Parameters
valueData value.
Returns
Pixel position.

Implemented in QTradingView::LinearScale, and QTradingView::LogScale.

◆ getTicks() [1/2]

std::vector< double > QTradingView::IScale::getTicks ( ) const
inline

Returns a default vector of tick values (approx. 5).

Returns
Vector of tick values.

◆ getTicks() [2/2]

virtual std::vector< double > QTradingView::IScale::getTicks ( int  approxCount) const
pure virtual

Returns a vector of tick values for the axis.

Parameters
approxCountApproximate number of ticks desired.
Returns
Vector of tick values.

Implemented in QTradingView::LinearScale, and QTradingView::LogScale.

◆ pixelToData()

virtual double QTradingView::IScale::pixelToData ( double  pixel) const
pure virtual

Converts a pixel position to its corresponding data value.

Parameters
pixelPixel position.
Returns
Data value.

Implemented in QTradingView::LinearScale, and QTradingView::LogScale.

◆ setDomain()

virtual void QTradingView::IScale::setDomain ( double  minValue,
double  maxValue 
)
pure virtual

Sets the domain (min and max data values) for the scale.

Parameters
minValueMinimum data value.
maxValueMaximum data value.

Implemented in QTradingView::LinearScale, and QTradingView::LogScale.

◆ setRange()

virtual void QTradingView::IScale::setRange ( double  minPixel,
double  maxPixel 
)
pure virtual

Sets the pixel range for the scale.

Parameters
minPixelMinimum pixel value.
maxPixelMaximum pixel value.

Implemented in QTradingView::LinearScale, and QTradingView::LogScale.

◆ zoomDomain()

virtual void QTradingView::IScale::zoomDomain ( double &  minValue,
double &  maxValue,
double  zoomFactor,
double  anchorValue 
) const
pure virtual

Zooms the scale domain around an anchor value.

Parameters
minValueMinimum data value (modified).
maxValueMaximum data value (modified).
zoomFactorZoom factor to apply.
anchorValueValue to anchor the zoom operation.

Implemented in QTradingView::LinearScale, and QTradingView::LogScale.


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