예제 #1
0
        public RFSurface(RFSurface other) : this(other, null, null, other.SurfaceAxes) // Attention casting
        {
            ToModify = other.ToModify;
            ToDelete = other.ToDelete;

            var newEdges = new List <RFLine>();

            if (other.Edges != null)
            {
                foreach (var edge in other.Edges)
                {
                    newEdges.Add(new RFLine(edge));
                }
                Edges = newEdges.ToArray();
                if (other.Openings != null)
                {
                    var newOpenings = new List <RFOpening>();
                    foreach (var op in other.Openings)
                    {
                        newOpenings.Add(new RFOpening(op));
                    }
                    Openings = newOpenings.ToArray();
                }
            }

            if (GeometryType == SurfaceGeometryType.NurbsSurfaceType)
            {
                ControlPoints = other.ControlPoints;
                OrderX        = other.OrderX;
                OrderY        = other.OrderY;
                KnotsX        = other.KnotsX;
                KnotsY        = other.KnotsY;
                Nodes         = other.Nodes;
                Weights       = other.Weights;
            }
        }
        public RFSurface(RFSurface other) : this(other, null, null)
        {
            ToModify = other.ToModify;
            ToDelete = other.ToDelete;
            var newEdges = new List <RFLine>();

            if (other.Edges != null)
            {
                foreach (var edge in other.Edges)
                {
                    newEdges.Add(new RFLine(edge));
                }
                Edges = newEdges.ToArray();
                if (other.Openings != null)
                {
                    var newOpenings = new List <RFOpening>();
                    foreach (var op in other.Openings)
                    {
                        newOpenings.Add(new RFOpening(op));
                    }
                    Openings = newOpenings.ToArray();
                }
            }
        }