Lines Matching refs:segments
69 bool center_of_mass(const SegmentArray& segments, SkPoint* c) {
72 int count = segments.count();
78 p0 = segments[0].endPt();
84 pj = segments[1].endPt() - p0;
87 pj = segments[i + 1].endPt() - p0;
102 const SkPoint& pt = segments[i].endPt();
119 bool compute_vectors(SegmentArray* segments,
124 if (!center_of_mass(*segments, fanPt)) {
127 int count = segments->count();
141 Segment& sega = (*segments)[a];
143 Segment& segb = (*segments)[b];
162 // compute mid-vectors where segments meet. TODO: Detect shallow corners
163 // and leave out the wedges and close gaps by stitching segments together.
165 const Segment& sega = (*segments)[a];
167 Segment& segb = (*segments)[b];
247 inline void add_line_to_segment(const SkPoint& pt, SegmentArray* segments) {
248 segments->push_back();
249 segments->back().fType = Segment::kLine;
250 segments->back().fPts[0] = pt;
253 inline void add_quad_segment(const SkPoint pts[3], SegmentArray* segments) {
256 add_line_to_segment(pts[2], segments);
259 segments->push_back();
260 segments->back().fType = Segment::kQuad;
261 segments->back().fPts[0] = pts[1];
262 segments->back().fPts[1] = pts[2];
268 SegmentArray* segments) {
273 add_quad_segment(&quads[q], segments);
279 SegmentArray* segments,
309 add_line_to_segment(pts[1], segments);
318 add_quad_segment(pts, segments);
330 add_quad_segment(quadPts + 2*i, segments);
341 add_cubic_segments(pts, dir, segments);
349 return compute_vectors(segments, fanPt, dir, vCount, iCount);
365 void create_vertices(const SegmentArray& segments,
377 int count = segments.count();
379 const Segment& sega = segments[a];
381 const Segment& segb = segments[b];
442 // TODO: Detect and combine colinear segments. This will ensure we catch every case
520 // TODO: Detect and combine colinear segments. This will ensure we catch every case
775 // TODO generate all segments for all paths and use one vertex buffer
801 SkSTArray<kPreallocSegmentCnt, Segment, true> segments;
804 if (!get_segments(*pathPtr, *viewMatrix, &segments, &fanPt, &vertexCount,
833 create_vertices(segments, fanPt, color, &draws, verts, idxs, kVertexStride);
911 // the geometry segments. Degenerate convex paths will fall through to some other path renderer.