Ejemplo n.º 1
0
        public static bool TryGetExtrusion(this BrepFace face, out Extrusion extrusion)
        {
            if (face.UnderlyingSurface().TryGetExtrusion(out extrusion))
            {
                if (face.OrientationIsReversed)
                {
                    var profile = extrusion.Profile3d(new ComponentIndex(ComponentIndexType.ExtrusionBottomProfile, 0));
                    profile.Reverse();

                    if (!extrusion.GetProfileTransformation(0.0).TryGetInverse(out var WCStoECS))
                    {
                        return(false);
                    }

                    if (!profile.Transform(WCStoECS))
                    {
                        return(false);
                    }

                    return(extrusion.SetOuterProfile(profile, false));
                }

                return(true);
            }

            extrusion = null;
            return(false);
        }