#include "stdafx.h" #include "Curve.h" namespace Assets { Curve::Curve() : Curve("", CurveProperty::Extra, AnimationCurveMode::Absolute) { } Curve::Curve(const String& Name, CurveProperty Property) : Curve(Name, Property, AnimationCurveMode::Absolute) { } Curve::Curve(const String& Name, CurveProperty Property, AnimationCurveMode Mode) : Name(Name), Property(Property), Mode(Mode), _IsFrameIntegral(true) { } bool Curve::IsFrameIntegral() const { return this->_IsFrameIntegral; } void Curve::SetFrameIntegral(bool Value) { if (this->_IsFrameIntegral != Value) { this->_IsFrameIntegral = Value; for (auto& Key : Keyframes) { if (Value) Key.Frame.Integer32 = (uint32_t)Key.Frame.Float; else Key.Frame.Float = (float)Key.Frame.Integer32; } } } CurveValue::CurveValue(uint8_t Value) : Byte(Value) { } CurveValue::CurveValue(uint32_t Value) : Integer32(Value) { } CurveValue::CurveValue(float Value) : Float(Value) { } CurveValue::CurveValue(Math::Quaternion Value) : Vector4(Value) { } CurveFrame::CurveFrame(uint32_t Value) : Integer32(Value) { } CurveFrame::CurveFrame(float Value) : Float(Value) { } CurveKeyframe::CurveKeyframe() : Frame(0u), Value({0, 0, 0, 0}) { } CurveKeyframe::CurveKeyframe(uint32_t Frame, float Value) : Frame(Frame), Value(Value) { } CurveKeyframe::CurveKeyframe(float Frame, float Value) : Frame(Frame), Value(Value) { } CurveKeyframe::CurveKeyframe(uint32_t Frame, Math::Quaternion Value) : Frame(Frame), Value(Value) { } CurveKeyframe::CurveKeyframe(float Frame, Math::Quaternion Value) : Frame(Frame), Value(Value) { } }