Lines Matching refs:distance
197 SkScalar compute_line_seg(SkPoint p0, SkPoint p1, SkScalar distance, unsigned ptIndex);
198 SkScalar compute_quad_segs(const SkPoint pts[3], SkScalar distance,
200 SkScalar compute_conic_segs(const SkConic& conic, SkScalar distance,
204 SkScalar compute_cubic_segs(const SkPoint pts[4], SkScalar distance,
208 SkScalar SkContourMeasureIter::Impl::compute_quad_segs(const SkPoint pts[3], SkScalar distance, in compute_quad_segs() argument
215 distance = this->compute_quad_segs(tmp, distance, mint, halft, ptIndex); in compute_quad_segs()
216 distance = this->compute_quad_segs(&tmp[2], distance, halft, maxt, ptIndex); in compute_quad_segs()
219 SkScalar prevD = distance; in compute_quad_segs()
220 distance += d; in compute_quad_segs()
221 if (distance > prevD) { in compute_quad_segs()
224 seg->fDistance = distance; in compute_quad_segs()
230 return distance; in compute_quad_segs()
233 SkScalar SkContourMeasureIter::Impl::compute_conic_segs(const SkConic& conic, SkScalar distance, in compute_conic_segs() argument
240 return distance; in compute_conic_segs()
243 distance = this->compute_conic_segs(conic, distance, mint, minPt, halft, halfPt, ptIndex); in compute_conic_segs()
244 distance = this->compute_conic_segs(conic, distance, halft, halfPt, maxt, maxPt, ptIndex); in compute_conic_segs()
247 SkScalar prevD = distance; in compute_conic_segs()
248 distance += d; in compute_conic_segs()
249 if (distance > prevD) { in compute_conic_segs()
252 seg->fDistance = distance; in compute_conic_segs()
258 return distance; in compute_conic_segs()
261 SkScalar SkContourMeasureIter::Impl::compute_cubic_segs(const SkPoint pts[4], SkScalar distance, in compute_cubic_segs() argument
268 distance = this->compute_cubic_segs(tmp, distance, mint, halft, ptIndex); in compute_cubic_segs()
269 distance = this->compute_cubic_segs(&tmp[3], distance, halft, maxt, ptIndex); in compute_cubic_segs()
272 SkScalar prevD = distance; in compute_cubic_segs()
273 distance += d; in compute_cubic_segs()
274 if (distance > prevD) { in compute_cubic_segs()
277 seg->fDistance = distance; in compute_cubic_segs()
283 return distance; in compute_cubic_segs()
286 SkScalar SkContourMeasureIter::Impl::compute_line_seg(SkPoint p0, SkPoint p1, SkScalar distance, in compute_line_seg() argument
290 SkScalar prevD = distance; in compute_line_seg()
291 distance += d; in compute_line_seg()
292 if (distance > prevD) { in compute_line_seg()
295 seg->fDistance = distance; in compute_line_seg()
300 return distance; in compute_line_seg()
308 SkScalar distance = 0; in validate() local
312 SkASSERT(seg->fDistance > distance); in validate()
323 distance = seg->fDistance; in validate()
332 SkScalar distance = 0; in buildSegments() local
363 SkScalar prevD = distance; in buildSegments()
364 distance = this->compute_line_seg(pts[0], pts[1], distance, ptIndex); in buildSegments()
365 if (distance > prevD) { in buildSegments()
373 SkScalar prevD = distance; in buildSegments()
374 distance = this->compute_quad_segs(pts, distance, 0, kMaxTValue, ptIndex); in buildSegments()
375 if (distance > prevD) { in buildSegments()
384 SkScalar prevD = distance; in buildSegments()
385 distance = this->compute_conic_segs(conic, distance, 0, conic.fPts[0], in buildSegments()
387 if (distance > prevD) { in buildSegments()
399 SkScalar prevD = distance; in buildSegments()
400 distance = this->compute_cubic_segs(pts, distance, 0, kMaxTValue, ptIndex); in buildSegments()
401 if (distance > prevD) { in buildSegments()
414 if (!SkScalarIsFinite(distance)) { in buildSegments()
422 SkScalar prevD = distance; in buildSegments()
424 distance = this->compute_line_seg(fPts[ptIndex], firstPt, distance, ptIndex); in buildSegments()
425 if (distance > prevD) { in buildSegments()
432 return new SkContourMeasure(std::move(fSegments), std::move(fPts), distance, haveSeenClose); in buildSegments()
546 const SkContourMeasure::Segment* SkContourMeasure::distanceToSegment( SkScalar distance, in distanceToSegment() argument
549 SkASSERT(distance >= 0 && distance <= length); in distanceToSegment()
554 int index = SkTKSearch<Segment, SkScalar>(seg, count, distance); in distanceToSegment()
571 SkASSERT(distance >= startD); in distanceToSegment()
574 *t = startT + (seg->getScalarT() - startT) * (distance - startD) / (seg->fDistance - startD); in distanceToSegment()
578 bool SkContourMeasure::getPosTan(SkScalar distance, SkPoint* pos, SkVector* tangent) const { in getPosTan() argument
579 if (SkScalarIsNaN(distance)) { in getPosTan()
587 if (distance < 0) { in getPosTan()
588 distance = 0; in getPosTan()
589 } else if (distance > length) { in getPosTan()
590 distance = length; in getPosTan()
594 const Segment* seg = this->distanceToSegment(distance, &t); in getPosTan()
604 bool SkContourMeasure::getMatrix(SkScalar distance, SkMatrix* matrix, MatrixFlags flags) const { in getMatrix() argument
608 if (this->getPosTan(distance, &position, &tangent)) { in getMatrix()