using Kompas6Constants3D; namespace Kompas.Mcp.Core.Modeling; /// Базовая координатная плоскость для эскиза. public enum BasePlane { XOY, XOZ, YOZ, } public static class BasePlanes { public static Obj3dType ToObj3dType(BasePlane plane) => plane switch { BasePlane.XOY => Obj3dType.o3d_planeXOY, BasePlane.XOZ => Obj3dType.o3d_planeXOZ, BasePlane.YOZ => Obj3dType.o3d_planeYOZ, _ => throw new ArgumentOutOfRangeException(nameof(plane), plane, "Неизвестная плоскость."), }; public static BasePlane Parse(string value) => value.Trim().ToUpperInvariant() switch { "XOY" or "XY" => BasePlane.XOY, "XOZ" or "XZ" => BasePlane.XOZ, "YOZ" or "YZ" => BasePlane.YOZ, _ => throw new ArgumentException($"Неизвестная плоскость '{value}'. Допустимо: XOY, XOZ, YOZ.", nameof(value)), }; }