Lines Matching refs:start_index

885 void TextTagAttributes::erase(unsigned start_index, unsigned n)
889 eraseSingleAttribute(&attributes.x, start_index, n);
890 eraseSingleAttribute(&attributes.y, start_index, n);
892 eraseSingleAttribute(&attributes.dx, start_index, n);
893 eraseSingleAttribute(&attributes.dy, start_index, n);
894 eraseSingleAttribute(&attributes.rotate, start_index, n);
897 void TextTagAttributes::eraseSingleAttribute(std::vector<SVGLength> *attr_vector, unsigned start_index, unsigned n)
899 if (attr_vector->size() <= start_index) return;
900 if (attr_vector->size() <= start_index + n)
901 attr_vector->erase(attr_vector->begin() + start_index, attr_vector->end());
903 attr_vector->erase(attr_vector->begin() + start_index, attr_vector->begin() + start_index + n);
906 void TextTagAttributes::insert(unsigned start_index, unsigned n)
910 insertSingleAttribute(&attributes.x, start_index, n, true);
911 insertSingleAttribute(&attributes.y, start_index, n, true);
913 insertSingleAttribute(&attributes.dx, start_index, n, false);
914 insertSingleAttribute(&attributes.dy, start_index, n, false);
915 insertSingleAttribute(&attributes.rotate, start_index, n, false);
918 void TextTagAttributes::insertSingleAttribute(std::vector<SVGLength> *attr_vector, unsigned start_index, unsigned n, bool is_xy)
920 if (attr_vector->size() <= start_index) return;
923 attr_vector->insert(attr_vector->begin() + start_index, n, zero_length);
925 double begin = start_index == 0 ? (*attr_vector)[start_index + n].computed : (*attr_vector)[start_index - 1].computed;
926 double diff = ((*attr_vector)[start_index + n].computed - begin) / n; // n tested for nonzero in insert()
928 (*attr_vector)[start_index + i] = begin + diff * i;