Lines Matching defs:dest

41 void Path::Stroke(Shape *dest, bool doClose, double width, JoinType join,
44 if (dest == NULL) {
49 dest->Reset(3 * pts.size(), 3 * pts.size());
52 dest->MakeBackData(false);
73 DoStroke(lastM, lastP - lastM, dest, true, width, join, butt, miter, true);
75 DoStroke(lastM, lastP - lastM, dest, doClose, width, join, butt, miter, true);
83 DoButt(dest, width, butt, pos, dir, last[RIGHT], last[LEFT]);
86 DoButt(dest, width, butt, pos, dir, end[LEFT], end[RIGHT]);
87 dest->AddEdge (end[LEFT], last[LEFT]);
88 dest->AddEdge (last[RIGHT], end[RIGHT]);
94 void Path::DoStroke(int off, int N, Shape *dest, bool doClose, double width, JoinType join,
149 DoButt(dest, width, butt, curP, dir, last[RIGHT], last[LEFT]);
152 DoButt(dest, width, butt, curP, dir, end[LEFT], end[RIGHT]);
153 dest->AddEdge (end[LEFT], last[LEFT]);
154 dest->AddEdge (last[RIGHT], end[RIGHT]);
170 DoJoin(dest, width, join, curP, prevD, nextD, miter, prevLe, nextLe, start, last);
173 DoButt(dest, width, butt, curP, nextD, last[RIGHT], last[LEFT]);
203 DoJoin(dest, width, join, curP, prevD, nextD, miter, prevLe, nextLe, nSt, nEn);
204 dest->AddEdge(nSt[LEFT], last[LEFT]);
206 dest->AddEdge(last[RIGHT], nSt[RIGHT]);
223 DoJoin(dest, width, join, curP, prevD, nextD, miter, prevLe, nextLe, nSt, nEn);
224 dest->AddEdge (nSt[LEFT], last[LEFT]);
226 dest->AddEdge (last[RIGHT], nSt[RIGHT]);
229 dest->AddEdge (start[LEFT], last[LEFT]);
230 dest->AddEdge (last[RIGHT], start[RIGHT]);
235 DoButt (dest, width, butt, curP, prevD, end[LEFT], end[RIGHT]);
236 dest->AddEdge (end[LEFT], last[LEFT]);
237 dest->AddEdge (last[RIGHT], end[RIGHT]);
242 void Path::DoButt(Shape *dest, double width, ButtType butt, Geom::Point pos, Geom::Point dir,
252 int bleftNo = dest->AddPoint (x);
254 int brightNo = dest->AddPoint (x);
256 leftNo = dest->AddPoint (x);
258 rightNo = dest->AddPoint (x);
259 dest->AddEdge (rightNo, brightNo);
260 dest->AddEdge (brightNo, bleftNo);
261 dest->AddEdge (bleftNo, leftNo);
265 leftNo = dest->AddPoint (pos + width * nor);
266 rightNo = dest->AddPoint (pos - width * nor);
267 int mid = dest->AddPoint (pos + width * dir);
268 dest->AddEdge (rightNo, mid);
269 dest->AddEdge (mid, leftNo);
275 leftNo = dest->AddPoint (sx);
276 rightNo = dest->AddPoint (ex);
278 RecRound (dest, rightNo, leftNo, ex, sx, -nor, nor, pos, width);
282 leftNo = dest->AddPoint (pos + width * nor);
283 rightNo = dest->AddPoint (pos - width * nor);
284 dest->AddEdge (rightNo, leftNo);
289 void Path::DoJoin (Shape *dest, double width, JoinType join, Geom::Point pos, Geom::Point prev,
302 stNo[LEFT] = enNo[LEFT] = dest->AddPoint(pos + width * pnor);
303 stNo[RIGHT] = enNo[RIGHT] = dest->AddPoint(pos - width * pnor);
308 stNo[LEFT] = enNo[RIGHT] = dest->AddPoint (sx);
309 stNo[RIGHT] = enNo[LEFT] = dest->AddPoint (ex);
311 RecRound (dest, enNo[LEFT], stNo[LEFT], ex, sx, -pnor, pnor, pos, width);
312 dest->AddEdge(stNo[RIGHT], enNo[RIGHT]);
314 dest->AddEdge(enNo[LEFT], stNo[LEFT]);
315 dest->AddEdge(stNo[RIGHT], enNo[RIGHT]); // two times because both are crossing each other
322 int midNo = dest->AddPoint(pos);
323 stNo[LEFT] = dest->AddPoint(pos + width * pnor);
324 enNo[LEFT] = dest->AddPoint(pos + width * nnor);
325 dest->AddEdge(enNo[LEFT], midNo);
326 dest->AddEdge(midNo, stNo[LEFT]);
330 stNo[RIGHT] = dest->AddPoint(pos - width * pnor);
331 enNo[RIGHT] = dest->AddPoint(pos - width * nnor);
342 int const n = dest->AddPoint(pos - l * biss);
343 dest->AddEdge(stNo[RIGHT], n);
344 dest->AddEdge(n, enNo[RIGHT]);
346 dest->AddEdge(stNo[RIGHT], enNo[RIGHT]);
351 stNo[RIGHT] = dest->AddPoint(sx);
353 enNo[RIGHT] = dest->AddPoint(ex);
355 RecRound(dest, stNo[RIGHT], enNo[RIGHT],
359 stNo[RIGHT] = dest->AddPoint(pos - width * pnor);
360 enNo[RIGHT] = dest->AddPoint(pos - width * nnor);
361 dest->AddEdge(stNo[RIGHT], enNo[RIGHT]);
366 int midNo = dest->AddPoint(pos);
367 stNo[RIGHT] = dest->AddPoint(pos - width * pnor);
368 enNo[RIGHT] = dest->AddPoint(pos - width * nnor);
369 dest->AddEdge(stNo[RIGHT], midNo);
370 dest->AddEdge(midNo, enNo[RIGHT]);
374 stNo[LEFT] = dest->AddPoint(pos + width * pnor);
375 enNo[LEFT] = dest->AddPoint(pos + width * nnor);
385 int const n = dest->AddPoint (pos + l * biss);
386 dest->AddEdge (enNo[LEFT], n);
387 dest->AddEdge (n, stNo[LEFT]);
391 dest->AddEdge (enNo[LEFT], stNo[LEFT]);
397 stNo[LEFT] = dest->AddPoint(sx);
399 enNo[LEFT] = dest->AddPoint(ex);
401 RecRound(dest, enNo[LEFT], stNo[LEFT],
405 stNo[LEFT] = dest->AddPoint(pos + width * pnor);
406 enNo[LEFT] = dest->AddPoint(pos + width * nnor);
407 dest->AddEdge(enNo[LEFT], stNo[LEFT]);
413 Path::DoLeftJoin (Shape * dest, double width, JoinType join, Geom::Point pos,
426 leftEnNo = leftStNo = dest->AddPoint (pos + width * pnor);
431 leftStNo = dest->AddPoint (pos + width * pnor);
432 leftEnNo = dest->AddPoint (pos - width * pnor);
433 int nEdge=dest->AddEdge (leftEnNo, leftStNo);
434 if ( dest->hasBackData() ) {
435 dest->ebData[nEdge].pathID=pathID;
436 dest->ebData[nEdge].pieceID=pieceID;
437 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
455 leftEnNo=leftStNo=dest->AddPoint(x,y);
457 leftStNo = dest->AddPoint (pos + width * pnor);
458 leftEnNo = dest->AddPoint (pos + width * nnor);
459 // int midNo = dest->AddPoint (pos);
460 // int nEdge=dest->AddEdge (leftEnNo, midNo);
461 int nEdge=dest->AddEdge (leftEnNo, leftStNo);
462 if ( dest->hasBackData() ) {
463 dest->ebData[nEdge].pathID=pathID;
464 dest->ebData[nEdge].pieceID=pieceID;
465 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
467 // nEdge=dest->AddEdge (midNo, leftStNo);
468 // if ( dest->hasBackData() ) {
469 // dest->ebData[nEdge].pathID=pathID;
470 // dest->ebData[nEdge].pieceID=pieceID;
471 // dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
479 leftStNo = dest->AddPoint (pos + width * pnor);
480 leftEnNo = dest->AddPoint (pos + width * nnor);
490 int nleftStNo = dest->AddPoint (pos + l * biss);
491 int nEdge=dest->AddEdge (leftEnNo, nleftStNo);
492 if ( dest->hasBackData() ) {
493 dest->ebData[nEdge].pathID=pathID;
494 dest->ebData[nEdge].pieceID=pieceID;
495 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
497 nEdge=dest->AddEdge (nleftStNo, leftStNo);
498 if ( dest->hasBackData() ) {
499 dest->ebData[nEdge].pathID=pathID;
500 dest->ebData[nEdge].pieceID=pieceID;
501 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
510 int nleftStNo = dest->AddPoint (pos + emiter * biss + dec * tbiss);
511 int nleftEnNo = dest->AddPoint (pos + emiter * biss - dec * tbiss);
512 int nEdge=dest->AddEdge (nleftEnNo, nleftStNo);
513 if ( dest->hasBackData() ) {
514 dest->ebData[nEdge].pathID=pathID;
515 dest->ebData[nEdge].pieceID=pieceID;
516 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
518 nEdge=dest->AddEdge (leftEnNo, nleftEnNo);
519 if ( dest->hasBackData() ) {
520 dest->ebData[nEdge].pathID=pathID;
521 dest->ebData[nEdge].pieceID=pieceID;
522 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
524 nEdge=dest->AddEdge (nleftStNo, leftStNo);
525 if ( dest->hasBackData() ) {
526 dest->ebData[nEdge].pathID=pathID;
527 dest->ebData[nEdge].pieceID=pieceID;
528 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
535 leftStNo = dest->AddPoint (sx);
537 leftEnNo = dest->AddPoint (ex);
539 RecRound(dest, leftEnNo, leftStNo,
545 leftStNo = dest->AddPoint (pos + width * pnor);
546 leftEnNo = dest->AddPoint (pos + width * nnor);
547 int nEdge=dest->AddEdge (leftEnNo, leftStNo);
548 if ( dest->hasBackData() ) {
549 dest->ebData[nEdge].pathID=pathID;
550 dest->ebData[nEdge].pieceID=pieceID;
551 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
557 Path::DoRightJoin (Shape * dest, double width, JoinType join, Geom::Point pos,
570 rightEnNo = rightStNo = dest->AddPoint (pos - width*pnor);
575 rightEnNo = dest->AddPoint (pos + width*pnor);
576 rightStNo = dest->AddPoint (pos - width*pnor);
577 int nEdge=dest->AddEdge (rightStNo, rightEnNo);
578 if ( dest->hasBackData() ) {
579 dest->ebData[nEdge].pathID=pathID;
580 dest->ebData[nEdge].pieceID=pieceID;
581 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
590 rightStNo = dest->AddPoint (pos - width*pnor);
591 rightEnNo = dest->AddPoint (pos - width*nnor);
601 int nrightStNo = dest->AddPoint (pos - l * biss);
602 int nEdge=dest->AddEdge (rightStNo, nrightStNo);
603 if ( dest->hasBackData() ) {
604 dest->ebData[nEdge].pathID=pathID;
605 dest->ebData[nEdge].pieceID=pieceID;
606 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
608 nEdge=dest->AddEdge (nrightStNo, rightEnNo);
609 if ( dest->hasBackData() ) {
610 dest->ebData[nEdge].pathID=pathID;
611 dest->ebData[nEdge].pieceID=pieceID;
612 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
621 int nrightStNo = dest->AddPoint (pos - emiter*biss - dec*tbiss);
622 int nrightEnNo = dest->AddPoint (pos - emiter*biss + dec*tbiss);
623 int nEdge=dest->AddEdge (rightStNo, nrightStNo);
624 if ( dest->hasBackData() ) {
625 dest->ebData[nEdge].pathID=pathID;
626 dest->ebData[nEdge].pieceID=pieceID;
627 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
629 nEdge=dest->AddEdge (nrightStNo, nrightEnNo);
630 if ( dest->hasBackData() ) {
631 dest->ebData[nEdge].pathID=pathID;
632 dest->ebData[nEdge].pieceID=pieceID;
633 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
635 nEdge=dest->AddEdge (nrightEnNo, rightEnNo);
636 if ( dest->hasBackData() ) {
637 dest->ebData[nEdge].pathID=pathID;
638 dest->ebData[nEdge].pieceID=pieceID;
639 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
646 rightStNo = dest->AddPoint (sx);
648 rightEnNo = dest->AddPoint (ex);
650 RecRound(dest, rightStNo, rightEnNo,
655 rightStNo = dest->AddPoint (pos - width * pnor);
656 rightEnNo = dest->AddPoint (pos - width * nnor);
657 int nEdge=dest->AddEdge (rightStNo, rightEnNo);
658 if ( dest->hasBackData() ) {
659 dest->ebData[nEdge].pathID=pathID;
660 dest->ebData[nEdge].pieceID=pieceID;
661 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
678 rightEnNo=rightStNo=dest->AddPoint(x,y);
680 rightStNo = dest->AddPoint (pos - width*pnor);
681 rightEnNo = dest->AddPoint (pos - width*nnor);
682 // int midNo = dest->AddPoint (pos);
683 // int nEdge=dest->AddEdge (rightStNo, midNo);
684 int nEdge=dest->AddEdge (rightStNo, rightEnNo);
685 if ( dest->hasBackData() ) {
686 dest->ebData[nEdge].pathID=pathID;
687 dest->ebData[nEdge].pieceID=pieceID;
688 dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
690 // nEdge=dest->AddEdge (midNo, rightEnNo);
691 // if ( dest->hasBackData() ) {
692 // dest->ebData[nEdge].pathID=pathID;
693 // dest->ebData[nEdge].pieceID=pieceID;
694 // dest->ebData[nEdge].tSt=dest->ebData[nEdge].tEn=tID;
705 void Path::RecRound(Shape *dest, int sNo, int eNo, // start and end index
713 dest->AddEdge(sNo, eNo);
743 int mNo = dest->AddPoint(m);
744 dest->AddEdge(lastNo, mNo);
747 dest->AddEdge(lastNo, eNo);