Project on Plane#
Math / Project on Plane
Can Read
Cannot Write
Description#
Projects a vector onto a Plane defined by a normal direction
Code#
using System;
using UnityEngine;
using VisualScript.Icons;
namespace VisualScript.Runtime
{
[Get]
[Title("Project on Plane")]
[Category("Math/Project on Plane")]
[Description("Projects a vector onto a Plane defined by a normal direction")]
[Image(typeof(IconProjection), ColorTheme.Type.Yellow)]
[Keywords("Vector")]
[Serializable]
public class TypeVector3MathProjectOnPlane : TypeVector3
{
[SerializeField] private GetVector3 m_Vector = new GetVector3();
[SerializeField] private GetVector3 m_PlaneNormal = new GetVector3();
public override Vector3 GetPreview(GameObject source) =>
Vector3.ProjectOnPlane(
this.m_Vector.GetPreview(source),
this.m_PlaneNormal.GetPreview(source)
);
public override Vector3 Get(Args args)
{
return Vector3.ProjectOnPlane(
this.m_Vector.Get(args),
this.m_PlaneNormal.Get(args)
);
}
public override string ToString()
{
return $"Project {this.m_Vector} on Plane {this.m_PlaneNormal}";
}
protected override SubscriptionMode Subscription => SubscriptionMode.OnChange;
}
}