Lines Matching refs:last

266     Point last = ch.front();
269 _data->curves.push_back(new LineSegment(last, ch[i]));
270 last = ch[i];
309 // when closing, if last segment is linear and ends at initial point,
311 Sequence::iterator last = _data->curves.end() - 2;
312 if (last->isLineSegment() && last->finalPoint() == initialPoint()) {
313 _closing_seg->setInitial(last->initialPoint());
314 _data->curves.erase(last);
905 void Path::erase(iterator first, iterator last)
909 Sequence::iterator seq_last = seq_iter(last);
947 void Path::replace(iterator first, iterator last, Path const &path)
949 replace(first, last, path.begin(), path.end());
962 // replace curves between first and last with contents of source,
964 void Path::do_update(Sequence::iterator first, Sequence::iterator last, Sequence &source)
966 // TODO: handle cases where first > last in closed paths?
967 bool last_beyond_closing_segment = (last == _data->curves.end());
972 if (first == last) return; // nothing to do
975 if ((!_closed && first == _data->curves.begin()) || (!_closed && last == _data->curves.end() - 1) || last_beyond_closing_segment) {
978 } else if (first->initialPoint() != (last - 1)->finalPoint()) {
982 source.push_back(new StitchSegment(first->initialPoint(), (last - 1)->finalPoint()));
986 if (first == _data->curves.begin() && last == _data->curves.end()) {
1006 if ((!_closed && last == _data->curves.end() - 1) || last_beyond_closing_segment) {
1009 } else if (source.back().finalPoint() != (last - 1)->finalPoint()) {
1013 source.push_back(new StitchSegment(source.back().finalPoint(), (last - 1)->finalPoint()));
1019 --last;
1021 _data->curves.erase(first, last);
1041 // the new curve connects with the last non-closing curve