Example #1
0
        /// <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));
            }
        }
Example #2
0
        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));
            }
        }