コード例 #1
0
        // clone this trajectory and replace the first segment with the two provided ones.
        public Trajectory insertAndClone(stsegment newseg1, stsegment newseg2)
        {
            var list = new List <stsegment>(Count);

            list.Add(newseg1);
            list.Add(newseg2);
            list.Concat(segments.Skip(1));
            return(new Trajectory(list));
        }
コード例 #2
0
        public Trajectory insert(Trajectory other)
        {
            stsegment e1 = this[0];
            stsegment e2 = other[0];

            // if inserting onto a segment of len 0, return without calculating
            if (e1.s1 == e1.s2)
            {
                return(insertAndClone(e1, e1));
            }
            stpoint   pt      = e1.getProjection(e2.s2);
            stsegment newseg1 = new stsegment(e1.s1, pt);
            stsegment newseg2 = new stsegment(pt, e1.s2);

            return(insertAndClone(newseg1, newseg2));
        }