#include "pch.h" ////////////////////////////////////////////////////////////////////////////// // // Identity Transform2 // ////////////////////////////////////////////////////////////////////////////// class IdentityTransform2 : public Transform2 { public: IdentityTransform2() : Transform2() { GetValueInternal().SetIdentity(); AddRef(); } } g_identityTransform2; Transform2* GetIdentityTransform2() { return &g_identityTransform2; } ////////////////////////////////////////////////////////////////////////////// // // Translate Transform2 // ////////////////////////////////////////////////////////////////////////////// TranslateTransform2::TranslateTransform2(PointValue* ppoint) : Transform2(ppoint) { } void TranslateTransform2::Evaluate() { GetValueInternal().SetTranslate(GetTranslate()->GetValue()); } void TranslateTransform2::SetTranslate(PointValue* ppoint) { SetChild(0, ppoint); } void TranslateTransform2::SetTranslate(const Point& point) { SetTranslate(new PointValue(point)); } ////////////////////////////////////////////////////////////////////////////// // // Scale Transform2 // ////////////////////////////////////////////////////////////////////////////// ScaleTransform2::ScaleTransform2(PointValue* ppoint) : Transform2(ppoint) { } void ScaleTransform2::Evaluate() { GetValueInternal().SetScale(GetScale()->GetValue()); } void ScaleTransform2::SetScale(PointValue* ppoint) { SetChild(0, ppoint); } void ScaleTransform2::SetScale(const Point& point) { SetScale(new PointValue(point)); } ////////////////////////////////////////////////////////////////////////////// // // Rotate Transform2 // ////////////////////////////////////////////////////////////////////////////// RotateTransform2::RotateTransform2(Number* pangle) : Transform2(pangle) { } void RotateTransform2::Evaluate() { GetValueInternal().SetRotate(GetAngle()->GetValue()); } void RotateTransform2::SetAngle(Number* pangle) { SetChild(0, pangle); } void RotateTransform2::SetAngle(float angle) { SetAngle(new Number(angle)); }