1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#pragma once
#include "ientity.h"
#include "math/Quaternion.h"
#include <functional>
#include "AngleKey.h"
#include "RotationMatrix.h"
namespace entity
{
class RotationKey: public sigc::trackable
{
private:
std::function<void()> m_rotationChanged;
public:
RotationMatrix m_rotation;
RotationKey(const std::function<void()>& rotationChanged) :
m_rotationChanged(rotationChanged)
{}
void angleChanged(const std::string& value)
{
m_rotation.setFromAngleString(value);
m_rotationChanged();
}
void rotationChanged(const std::string& value)
{
m_rotation.readFromString(value);
m_rotationChanged();
}
void write(Entity* entity, bool isModel = false) const;
};
} // namespace
|