public static LipDeform FromLipCode(LipCode code) { switch (code) { case LipCode.A: return(A()); case LipCode.I: return(I()); case LipCode.U: return(U()); case LipCode.E: return(E()); case LipCode.O: return(O()); case LipCode.N: return(N()); case LipCode.Closed: return(Silence()); default: throw new ArgumentOutOfRangeException(nameof(code), code, null); } }
public static bool IsVoice(this LipCode code) { switch (code) { case LipCode.A: case LipCode.I: case LipCode.U: case LipCode.E: case LipCode.O: case LipCode.N: case LipCode.Closed: return(true); case LipCode.Control1: case LipCode.Control2: case LipCode.Control3: return(false); default: throw new ArgumentOutOfRangeException(nameof(code), code, null); } }
private static bool DoesLipCodeInfluenceLipMorph(LipCode code) { switch (code) { case LipCode.A: case LipCode.I: case LipCode.U: case LipCode.E: case LipCode.O: case LipCode.N: case LipCode.Closed: return(true); case LipCode.Control1: case LipCode.Control2: case LipCode.Control3: return(false); default: throw new ArgumentOutOfRangeException(nameof(code), code, "Invalid lip code."); } }
public static bool IsControl(this LipCode code) { return(!IsVoice(code)); }