/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #include "ui/ui_item_automated_property_provider.h" #include "ui/ui_item.h" using GS::Quaternion; using namespace GS::Core; using namespace GS::S2D::Automation; //------------------------------------------------------------------------------ bool ItemPropertyProvider::GetProperty(MotionChannel::Type type, float &v) { switch (type) { case MotionChannel::XPos: v = item->GetPosition().x; return true; case MotionChannel::YPos: v = item->GetPosition().y; return true; case MotionChannel::ZRot: v = item->GetRotation(); return true; case MotionChannel::XScl: v = item->GetScale().x; return true; case MotionChannel::YScl: v = item->GetScale().y; return true; } return false; } bool ItemPropertyProvider::SetProperty(MotionChannel::Type type, float v) { Vector2 t; switch (type) { case MotionChannel::XPos: t = item->GetPosition(); item->SetPosition(v, t.y); return true; case MotionChannel::YPos: t = item->GetPosition(); item->SetPosition(t.x, v); return true; case MotionChannel::ZRot: item->SetRotation(v); return true; case MotionChannel::XScl: t = item->GetScale(); item->SetScale(v, t.y); return true; case MotionChannel::YScl: t = item->GetScale(); item->SetScale(t.x, v); return true; } return false; } Quaternion ItemPropertyProvider::GetRotation() const { return Quaternion::FromEuler(0, 0, item->GetRotation()); } bool ItemPropertyProvider::SetRotation(const Quaternion &q) { item->SetRotation(q.AsMatrix3().AsEuler().z); return true; } //------------------------------------------------------------------------------