add QskTickmarksMetrics to QskVariantAnimator
This commit is contained in:
parent
e37fe4d685
commit
7df1a84cab
|
@ -10,6 +10,7 @@
|
|||
#include "QskBoxShapeMetrics.h"
|
||||
#include "QskShadowMetrics.h"
|
||||
#include "QskStippleMetrics.h"
|
||||
#include "QskTickmarksMetrics.h"
|
||||
#include "QskColorFilter.h"
|
||||
#include "QskGradient.h"
|
||||
#include "QskMargins.h"
|
||||
|
@ -49,6 +50,7 @@ static void qskRegisterInterpolator()
|
|||
qRegisterAnimationInterpolator< QskShadowMetrics >( QskShadowMetrics::interpolate );
|
||||
qRegisterAnimationInterpolator< QskStippleMetrics >( QskStippleMetrics::interpolate );
|
||||
qRegisterAnimationInterpolator< QskArcMetrics >( QskArcMetrics::interpolate );
|
||||
qRegisterAnimationInterpolator< QskTickmarksMetrics >( QskTickmarksMetrics::interpolate );
|
||||
}
|
||||
|
||||
Q_CONSTRUCTOR_FUNCTION( qskRegisterInterpolator )
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "QskTickmarksMetrics.h"
|
||||
|
||||
#include <QVariant>
|
||||
#include <qvariant.h>
|
||||
|
||||
static void qskRegisterTickmarksMetrics()
|
||||
{
|
||||
|
@ -13,6 +13,33 @@ static void qskRegisterTickmarksMetrics()
|
|||
|
||||
Q_CONSTRUCTOR_FUNCTION( qskRegisterTickmarksMetrics )
|
||||
|
||||
static inline qreal qskInterpolated( qreal from, qreal to, qreal ratio )
|
||||
{
|
||||
return from + ( to - from ) * ratio;
|
||||
}
|
||||
|
||||
QskTickmarksMetrics QskTickmarksMetrics::interpolated(
|
||||
const QskTickmarksMetrics& to, const qreal ratio ) const noexcept
|
||||
{
|
||||
if ( ( *this == to ) ) // TODO QskTickmarksMetrics::sizeMode
|
||||
{
|
||||
return to;
|
||||
}
|
||||
|
||||
return
|
||||
{
|
||||
qskInterpolated(m_minorRatio, to.m_minorRatio, ratio),
|
||||
qskInterpolated(m_mediumRatio, to.m_mediumRatio, ratio),
|
||||
qskInterpolated(m_majorRatio, to.m_majorRatio, ratio)
|
||||
};
|
||||
}
|
||||
|
||||
QVariant QskTickmarksMetrics::interpolate(
|
||||
const QskTickmarksMetrics& from, const QskTickmarksMetrics& to, const qreal progress )
|
||||
{
|
||||
return QVariant::fromValue( from.interpolated( to, progress ) );
|
||||
}
|
||||
|
||||
#ifndef QT_NO_DEBUG_STREAM
|
||||
|
||||
#include <qdebug.h>
|
||||
|
|
|
@ -40,6 +40,11 @@ class QSK_EXPORT QskTickmarksMetrics
|
|||
Q_REQUIRED_RESULT constexpr qreal ratio( int index ) const noexcept;
|
||||
constexpr void setRatio(int index, qreal ratio) noexcept;
|
||||
|
||||
Q_REQUIRED_RESULT QskTickmarksMetrics interpolated( const QskTickmarksMetrics&,
|
||||
qreal progress ) const noexcept;
|
||||
Q_REQUIRED_RESULT static QVariant interpolate(
|
||||
const QskTickmarksMetrics& , const QskTickmarksMetrics& , qreal progress );
|
||||
|
||||
Q_REQUIRED_RESULT QskHashValue hash( QskHashValue seed = 0 ) const noexcept;
|
||||
|
||||
private:
|
||||
|
|
Loading…
Reference in New Issue