public static void UpdateModelMatrixInverted(RenderableList root) { var inverted = Matrix.Invert(root.Matrix); foreach (var dummy in root.GetAllChildren().OfType <Kn5RenderableList>()) { dummy.ModelMatrixInverted = inverted; } foreach (var dummy in root.GetAllChildren().OfType <IKn5RenderableObject>()) { dummy.ModelMatrixInverted = inverted; } }
public static bool SetCockpitLrActive([NotNull] RenderableList parent, bool value) { var changed = false; foreach (var child in parent.GetAllChildren().OfType <Kn5RenderableList>()) { switch (child.OriginalNode.Name) { case "COCKPIT_LR": case "STEER_LR": case "SHIFT_LD": if (child.IsEnabled != value) { child.IsEnabled = value; changed = true; } break; case "COCKPIT_HR": case "STEER_HR": case "SHIFT_HD": if (child.IsEnabled != !value) { child.IsEnabled = !value; changed = true; } break; } } return(changed); }
public static RenderableList GetParent([NotNull] this IRenderableObject child, [NotNull] RenderableList root) { return(root.GetAllChildren().OfType <RenderableList>().FirstOrDefault(x => x.Contains(child))); }