TranslateTransformOperation.cpp [plain text]
#include "config.h"
#include "TranslateTransformOperation.h"
#include "FloatConversion.h"
namespace WebCore {
bool TranslateTransformOperation::operator==(const TransformOperation& o) const
{
if (!isSameType(o))
return false;
const TranslateTransformOperation& t = toTranslateTransformOperation(o);
return m_x == t.m_x && m_y == t.m_y && m_z == t.m_z;
}
PassRefPtr<TransformOperation> TranslateTransformOperation::blend(const TransformOperation* from, double progress, bool blendToIdentity)
{
if (from && !from->isSameType(*this))
return this;
Length zeroLength(0, Fixed);
if (blendToIdentity)
return TranslateTransformOperation::create(zeroLength.blend(m_x, progress), zeroLength.blend(m_y, progress), zeroLength.blend(m_z, progress), m_type);
const TranslateTransformOperation* fromOp = toTranslateTransformOperation(from);
Length fromX = fromOp ? fromOp->m_x : zeroLength;
Length fromY = fromOp ? fromOp->m_y : zeroLength;
Length fromZ = fromOp ? fromOp->m_z : zeroLength;
return TranslateTransformOperation::create(m_x.blend(fromX, progress), m_y.blend(fromY, progress), m_z.blend(fromZ, progress), m_type);
}
}