/// <summary> /// Gets the two planes parallel to the provided axis that are oriented to the main coordinate system axes. /// </summary> /// <param name="id">The line identifier.</param> /// <returns></returns> public static IEnumerable <CSPlaneID> GetPlanesParallelToAxis3D(CSLineID id) { switch (id.ParallelAxisNumber) { case 0: yield return(id.UsePhysicalValueOtherFirst ? CSPlaneID.FromPhysicalVariant(1, id.PhysicalValueOtherFirst) : new CSPlaneID(1, id.LogicalValueOtherFirst)); yield return(id.UsePhysicalValueOtherSecond ? CSPlaneID.FromPhysicalVariant(2, id.PhysicalValueOtherSecond) : new CSPlaneID(2, id.LogicalValueOtherSecond)); break; case 1: yield return(id.UsePhysicalValueOtherFirst ? CSPlaneID.FromPhysicalVariant(0, id.PhysicalValueOtherFirst) : new CSPlaneID(0, id.LogicalValueOtherFirst)); yield return(id.UsePhysicalValueOtherSecond ? CSPlaneID.FromPhysicalVariant(2, id.PhysicalValueOtherSecond) : new CSPlaneID(2, id.LogicalValueOtherSecond)); break; case 2: yield return(id.UsePhysicalValueOtherFirst ? CSPlaneID.FromPhysicalVariant(0, id.PhysicalValueOtherFirst) : new CSPlaneID(0, id.LogicalValueOtherFirst)); yield return(id.UsePhysicalValueOtherSecond ? CSPlaneID.FromPhysicalVariant(1, id.PhysicalValueOtherSecond) : new CSPlaneID(1, id.LogicalValueOtherSecond)); break; default: throw new ArgumentOutOfRangeException(nameof(id.ParallelAxisNumber)); } }
public static CSPlaneID GetPlaneParallelToAxis2D(CSLineID id) { switch (id.ParallelAxisNumber) { case 0: return(id.UsePhysicalValueOtherFirst ? CSPlaneID.FromPhysicalVariant(1, id.PhysicalValueOtherFirst) : new CSPlaneID(1, id.LogicalValueOtherFirst)); case 1: return(id.UsePhysicalValueOtherFirst ? CSPlaneID.FromPhysicalVariant(0, id.PhysicalValueOtherFirst) : new CSPlaneID(0, id.LogicalValueOtherFirst)); default: throw new ArgumentOutOfRangeException(nameof(id.ParallelAxisNumber)); } }