Angle#
Math / Geometry / Angle Quaternion
Can Read
Cannot Write
Description#
Returns the positive angle between two Quaternion rotations
Code#
using System;
using UnityEngine;
using VisualScript.Icons;
namespace VisualScript.Runtime
{
[Get]
[Title("Angle")]
[Category("Math/Geometry/Angle", "Quaternion")]
[Description("Returns the positive angle between two Quaternion rotations")]
[Image(typeof(IconAngleAcute), ColorTheme.Type.Yellow)]
[Keywords("Rotation")]
[Serializable]
public class TypeNumberMathQuaternionAngle : TypeNumber
{
[SerializeField] private GetQuaternion m_Rotation1 = new GetQuaternion();
[SerializeField] private GetQuaternion m_Rotation2 = new GetQuaternion();
public override double GetPreview(GameObject source) =>
Quaternion.Angle(
this.m_Rotation1.GetPreview(source),
this.m_Rotation2.GetPreview(source)
);
public override double Get(Args args)
{
return Quaternion.Angle(
this.m_Rotation1.Get(args),
this.m_Rotation2.Get(args)
);
}
public override string ToString()
{
return $"Angle ({this.m_Rotation1}, {this.m_Rotation2})";
}
protected override SubscriptionMode Subscription => SubscriptionMode.OnChange;
}
}