Lines Matching defs:prev
39 static void list_insert(T* t, T* prev, T* next, T** head, T** tail) {
40 t->*Prev = prev;
42 if (prev) {
43 prev->*Next = t;
113 void GrTriangulator::VertexList::insert(Vertex* v, Vertex* prev, Vertex* next) {
114 list_insert<Vertex, &Vertex::fPrev, &Vertex::fNext>(v, prev, next, &fHead, &fTail);
289 void GrTriangulator::EdgeList::insert(Edge* edge, Edge* prev, Edge* next) {
290 list_insert<Edge, &Edge::fLeft, &Edge::fRight>(edge, prev, next, &fHead, &fTail);
333 Vertex* prev = v->fPrev;
337 return this->emitTriangle(prev, curr, next, monotonePoly->fWinding, data);
339 double ax = static_cast<double>(curr->fPoint.fX) - prev->fPoint.fX;
340 double ay = static_cast<double>(curr->fPoint.fY) - prev->fPoint.fY;
344 data = this->emitTriangle(prev, curr, next, monotonePoly->fWinding, data);
360 void* GrTriangulator::emitTriangle(Vertex* prev, Vertex* curr, Vertex* next, int winding,
365 std::swap(prev, next);
371 fBreadcrumbList.append(fAlloc, prev->fPoint, curr->fPoint, next->fPoint, abs(winding) - 1);
373 return emit_triangle(prev, curr, next, fEmitCoverage, data);
619 Edge* GrTriangulator::makeEdge(Vertex* prev, Vertex* next, EdgeType type,
621 SkASSERT(prev->fPoint != next->fPoint);
622 int winding = c.sweep_lt(prev->fPoint, next->fPoint) ? 1 : -1;
623 Vertex* top = winding < 0 ? next : prev;
624 Vertex* bottom = winding < 0 ? prev : next;
628 void EdgeList::insert(Edge* edge, Edge* prev) {
631 Edge* next = prev ? prev->fRight : fHead;
632 this->insert(edge, prev, next);
642 Edge* prev;
643 for (prev = edges->fTail; prev != nullptr; prev = prev->fLeft) {
644 if (prev->isLeftOf(v)) {
647 next = prev;
649 *left = prev;
659 Edge* prev = nullptr;
665 prev = next;
668 this, prev, next, &v->fFirstEdgeAbove, &v->fLastEdgeAbove);
677 Edge* prev = nullptr;
683 prev = next;
686 this, prev, next, &v->fFirstEdgeBelow, &v->fLastEdgeBelow);
955 Edge* GrTriangulator::makeConnectingEdge(Vertex* prev, Vertex* next, EdgeType type,
957 if (!prev || !next || prev->fPoint == next->fPoint) {
960 Edge* edge = this->makeEdge(prev, next, type, c);
1108 Vertex* prev = contour->fTail;
1109 prev->fPoint.fX = double_to_clamped_scalar((double) prev->fPoint.fX);
1110 prev->fPoint.fY = double_to_clamped_scalar((double) prev->fPoint.fY);
1112 round(&prev->fPoint);
1122 if (coincident(prev->fPoint, v->fPoint)) {
1129 Line(prev->fPoint, nextWrap->fPoint).dist(v->fPoint) == 0.0) {
1133 prev = v;
1164 Vertex* prev = contour->fTail;
1167 this->makeConnectingEdge(prev, v, EdgeType::kInner, c);
1169 prev = v;