A game about forced loneliness, made by TACStudios
1using System; 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6namespace UnityEditor.U2D.Common.Path 7{ 8 internal enum TangentMode 9 { 10 Linear = 0, 11 Continuous = 1, 12 Broken = 2 13 } 14 15 [Serializable] 16 internal struct TangentCache 17 { 18 public Vector3 leftTangent; 19 public Vector3 rightTangent; 20 } 21 22 [Serializable] 23 internal struct ControlPoint 24 { 25 public Vector3 position; 26 public Vector3 localLeftTangent; 27 public Vector3 localRightTangent; 28 public TangentMode tangentMode; 29 public TangentCache continuousCache; 30 public TangentCache brokenCache; 31 public bool mirrorLeft; 32 33 public Vector3 leftTangent 34 { 35 get { return localLeftTangent + position; } 36 set { localLeftTangent = value - position; } 37 } 38 39 public Vector3 rightTangent 40 { 41 get { return localRightTangent + position; } 42 set { localRightTangent = value - position; } 43 } 44 45 public void StoreTangents() 46 { 47 if (tangentMode == TangentMode.Continuous) 48 { 49 continuousCache.leftTangent = localLeftTangent; 50 continuousCache.rightTangent = localRightTangent; 51 } 52 else if (tangentMode == TangentMode.Broken) 53 { 54 brokenCache.leftTangent = localLeftTangent; 55 brokenCache.rightTangent = localRightTangent; 56 } 57 } 58 59 public void RestoreTangents() 60 { 61 if (tangentMode == TangentMode.Continuous) 62 { 63 localLeftTangent = continuousCache.leftTangent; 64 localRightTangent = continuousCache.rightTangent; 65 } 66 else if (tangentMode == TangentMode.Broken) 67 { 68 localLeftTangent = brokenCache.leftTangent; 69 localRightTangent = brokenCache.rightTangent; 70 } 71 } 72 } 73}