/// <summary> /// Attempts to fill in as many missing variables in k as possible. /// </summary> public static Kine3 Solve(Kine3 k) { // What can we solve? if (!k.Time.HasValue) { // can we solve for time? int xCount = 0; if (k.InitXvelo.HasValue) { xCount++; } if (k.FinalXvelo.HasValue) { xCount++; } if (k.Xacc.HasValue) { xCount++; } if (k.Xdistance.HasValue) { xCount++; } } throw new NotImplementedException(); }
public static Kine3 GetFinalVelo(Kine3 k) { // TODO: Does this make new float? or reuse existing instance of float? // is float? value type or reference type Kine3 withAnswers = k; if (!withAnswers.FinalXvelo.HasValue) { if (withAnswers.InitXvelo.HasValue && k.Xacc.HasValue && k.Xdistance.HasValue) { withAnswers.FinalXvelo = GetFinalVelocity(k.InitXvelo.Value, k.Xacc.Value, k.Xdistance.Value); } } if (!k.FinalYvelo.HasValue) { if (k.InitYvelo.HasValue && k.Yacc.HasValue && k.Ydistance.HasValue) { withAnswers.FinalYvelo = GetFinalVelocity(k.InitYvelo.Value, k.Yacc.Value, k.Ydistance.Value); } } if (!k.FinalZvelo.HasValue) { if (k.InitZvelo.HasValue && k.Zacc.HasValue && k.Zdistance.HasValue) { withAnswers.FinalZvelo = GetFinalVelocity(k.InitZvelo.Value, k.Zacc.Value, k.Zdistance.Value); } } return(withAnswers); }