private static void AddDebugSuspensionPoints(CarData.SuspensionsPack pack, InputLayouts.VerticePC[] result, CarData.IndependentSuspensionsGroup independent, CarData.DependentSuspensionGroup dependent, ref int index) { if (independent != null) { AddDebugSuspensionPoints(pack, independent.Left, result, ref index); AddDebugSuspensionPoints(pack, independent.Right, result, ref index); } else if (dependent != null) { AddDebugSuspensionPoints(pack, dependent.Both, result, ref index); } }
private static int CountDebugSuspensionPoints(CarData.SuspensionsGroupBase group, out CarData.IndependentSuspensionsGroup independent, out CarData.DependentSuspensionGroup dependent) { independent = group as CarData.IndependentSuspensionsGroup; if (independent != null) { dependent = null; return(independent.Left.DebugLines.Length + independent.Right.DebugLines.Length); } dependent = group as CarData.DependentSuspensionGroup; return(dependent?.Both.DebugLines.Length ?? 0); }