Lines Matching refs:no
381 int no = qrsData[oBord].ind;
382 if ( no >= 0 ) {
383 qrsData[no].bord = nBord;
384 qrsData[no].x = x;
386 qrsData[nBord].ind = no;
389 return no;
396 int no = nbQRas++;
397 qrsData[no].bord = bord;
398 qrsData[no].x = x;
399 qrsData[bord].ind = no;
400 qrsData[no].prev = -1;
401 qrsData[no].next = -1;
403 if ( no < 0 || no >= nbQRas ) {
408 firstQRas = lastQRas = no;
409 qrsData[no].prev = -1;
410 qrsData[no].next = -1;
411 return no;
417 while ( c >= 0 && c < nbQRas && CmpQRs(qrsData[c],qrsData[no]) < 0 ) {
422 qrsData[no].prev = lastQRas;
423 qrsData[lastQRas].next = no;
424 lastQRas = no;
426 qrsData[no].prev = qrsData[c].prev;
427 if ( qrsData[no].prev >= 0 ) {
428 qrsData[qrsData[no].prev].next=no;
430 firstQRas = no;
433 qrsData[no].next = c;
434 qrsData[c].prev = no;
439 int stTst = CmpQRs(qrsData[c],qrsData[no]);
442 qrsData[no].prev = qrsData[c].prev;
443 if ( qrsData[no].prev >= 0 ) {
444 qrsData[qrsData[no].prev].next = no;
446 firstQRas = no;
449 qrsData[no].next = c;
450 qrsData[c].prev = no;
454 while ( c >= 0 && c < nbQRas && CmpQRs(qrsData[c],qrsData[no]) > 0 ) {
459 qrsData[no].next = firstQRas;
460 qrsData[firstQRas].prev = no; // firstQRas != -1
461 firstQRas = no;
463 qrsData[no].next = qrsData[c].next;
464 if ( qrsData[no].next >= 0 ) {
465 qrsData[qrsData[no].next].prev = no;
467 lastQRas = no;
469 qrsData[no].prev = c;
470 qrsData[c].next = no;
475 while ( c >= 0 && c < nbQRas && CmpQRs(qrsData[c],qrsData[no]) < 0 ) {
480 qrsData[no].prev = lastQRas;
481 qrsData[lastQRas].next = no;
482 lastQRas = no;
484 qrsData[no].prev = qrsData[c].prev;
485 if ( qrsData[no].prev >= 0 ) {
486 qrsData[qrsData[no].prev].next = no;
488 firstQRas = no;
491 qrsData[no].next = c;
492 qrsData[c].prev = no;
497 return no;
504 int no = qrsData[bord].ind;
505 if ( no < 0 || no >= nbQRas ) {
509 if ( qrsData[no].prev >= 0 ) {
510 qrsData[qrsData[no].prev].next=qrsData[no].next;
513 if ( qrsData[no].next >= 0 ) {
514 qrsData[qrsData[no].next].prev = qrsData[no].prev;
517 if ( no == firstQRas ) {
518 firstQRas = qrsData[no].next;
521 if ( no == lastQRas ) {
522 lastQRas = qrsData[no].prev;
525 qrsData[no].prev = qrsData[no].next = -1;
527 int savInd = qrsData[no].ind;
528 qrsData[no] = qrsData[--nbQRas];
529 qrsData[no].ind = savInd;
530 qrsData[qrsData[no].bord].ind = no;
535 firstQRas = no;
538 lastQRas = no;
540 if ( qrsData[no].prev >= 0 ) {
541 qrsData[qrsData[no].prev].next = no;
543 if ( qrsData[no].next >= 0 ) {
544 qrsData[qrsData[no].next].prev = no;
980 // doesn't behave correctly; no way i know to do this without a ConvertToShape()
1399 // doesn't behave correctly; no way i know to do this without a ConvertToShape()
1619 void Shape::CreateEdge(int no, float to, float step)
1623 if ( getEdge(no).st < getEdge(no).en ) {
1624 cPt = getEdge(no).st;
1625 swrData[no].sens = true;
1626 dir = getEdge(no).dx;
1628 cPt = getEdge(no).en;
1629 swrData[no].sens = false;
1630 dir = -getEdge(no).dx;
1633 swrData[no].lastX = swrData[no].curX = getPoint(cPt).x[0];
1634 swrData[no].lastY = swrData[no].curY = getPoint(cPt).x[1];
1637 swrData[no].dxdy = 0;
1639 swrData[no].dxdy = dir[0]/dir[1];
1643 swrData[no].dydx = 0;
1645 swrData[no].dydx = dir[1]/dir[0];
1648 swrData[no].calcX = swrData[no].curX + (to - step - swrData[no].curY) * swrData[no].dxdy;
1649 swrData[no].guess = -1;
1653 void Shape::AvanceEdge(int no, float to, bool exact, float step)
1658 if ( swrData[no].sens ) {
1659 stp = getPoint(getEdge(no).st).x;
1660 dir = getEdge(no).dx;
1662 stp = getPoint(getEdge(no).en).x;
1663 dir = -getEdge(no).dx;
1667 swrData[no].calcX = stp[0] + dir[0];
1669 swrData[no].calcX = stp[0] + ((to - stp[1]) * dir[0]) / dir[1];
1672 swrData[no].calcX += step * swrData[no].dxdy;
1675 swrData[no].lastX = swrData[no].curX;
1676 swrData[no].lastY = swrData[no].curY;
1677 swrData[no].curX = swrData[no].calcX;
1678 swrData[no].curY = to;
1685 void Shape::DestroyEdge(int no, float to, FloatLigne* line)
1687 if ( swrData[no].sens ) {
1689 if ( swrData[no].curX < swrData[no].lastX ) {
1691 swrData[no].guess = line->AddBordR(swrData[no].curX,
1692 to - swrData[no].curY,
1693 swrData[no].lastX,
1694 to - swrData[no].lastY,
1695 -swrData[no].dydx,
1696 swrData[no].guess);
1698 } else if ( swrData[no].curX > swrData[no].lastX ) {
1700 swrData[no].guess = line->AddBord(swrData[no].lastX,
1701 -(to - swrData[no].lastY),
1702 swrData[no].curX,
1703 -(to - swrData[no].curY),
1704 swrData[no].dydx,
1705 swrData[no].guess);
1710 if ( swrData[no].curX < swrData[no].lastX ) {
1712 swrData[no].guess = line->AddBordR(swrData[no].curX,
1713 -(to - swrData[no].curY),
1714 swrData[no].lastX,
1715 -(to - swrData[no].lastY),
1716 swrData[no].dydx,
1717 swrData[no].guess);
1719 } else if ( swrData[no].curX > swrData[no].lastX ) {
1721 swrData[no].guess = line->AddBord(swrData[no].lastX,
1722 to - swrData[no].lastY,
1723 swrData[no].curX,
1724 to - swrData[no].curY,
1725 -swrData[no].dydx,
1726 swrData[no].guess);
1733 void Shape::AvanceEdge(int no, float to, FloatLigne *line, bool exact, float step)
1735 AvanceEdge(no,to,exact,step);
1737 if ( swrData[no].sens ) {
1739 if ( swrData[no].curX < swrData[no].lastX ) {
1741 swrData[no].guess = line->AddBordR(swrData[no].curX,
1742 to - swrData[no].curY,
1743 swrData[no].lastX,
1744 to - swrData[no].lastY,
1745 -swrData[no].dydx,
1746 swrData[no].guess);
1748 } else if ( swrData[no].curX > swrData[no].lastX ) {
1750 swrData[no].guess = line->AddBord(swrData[no].lastX,
1751 -(to - swrData[no].lastY),
1752 swrData[no].curX,
1753 -(to - swrData[no].curY),
1754 swrData[no].dydx,
1755 swrData[no].guess);
1760 if ( swrData[no].curX < swrData[no].lastX ) {
1762 swrData[no].guess = line->AddBordR(swrData[no].curX,
1763 -(to - swrData[no].curY),
1764 swrData[no].lastX,
1765 -(to - swrData[no].lastY),
1766 swrData[no].dydx,
1767 swrData[no].guess);
1769 } else if ( swrData[no].curX > swrData[no].lastX ) {
1771 swrData[no].guess = line->AddBord(swrData[no].lastX,
1772 to - swrData[no].lastY,
1773 swrData[no].curX,
1774 to - swrData[no].curY,
1775 -swrData[no].dydx,
1776 swrData[no].guess);
1782 void Shape::DestroyEdge(int no, BitLigne *line)
1784 if ( swrData[no].sens ) {
1786 if ( swrData[no].curX < swrData[no].lastX ) {
1788 line->AddBord(swrData[no].curX, swrData[no].lastX, false);
1790 } else if ( swrData[no].curX > swrData[no].lastX ) {
1792 line->AddBord(swrData[no].lastX,swrData[no].curX,false);
1797 if ( swrData[no].curX < swrData[no].lastX ) {
1799 line->AddBord(swrData[no].curX, swrData[no].lastX, false);
1801 } else if ( swrData[no].curX > swrData[no].lastX ) {
1803 line->AddBord(swrData[no].lastX, swrData[no].curX, false);
1810 void Shape::AvanceEdge(int no, float to, BitLigne *line, bool exact, float step)
1812 AvanceEdge(no, to, exact, step);
1814 if ( swrData[no].sens ) {
1816 if ( swrData[no].curX < swrData[no].lastX ) {
1818 line->AddBord(swrData[no].curX, swrData[no].lastX, false);
1820 } else if ( swrData[no].curX > swrData[no].lastX ) {
1822 line->AddBord(swrData[no].lastX, swrData[no].curX, false);
1827 if ( swrData[no].curX < swrData[no].lastX ) {
1829 line->AddBord(swrData[no].curX, swrData[no].lastX, false);
1831 } else if ( swrData[no].curX > swrData[no].lastX ) {
1833 line->AddBord(swrData[no].lastX, swrData[no].curX, false);
1839 void Shape::DestroyEdge(int no, AlphaLigne* line)
1841 if ( swrData[no].sens ) {
1843 if ( swrData[no].curX <= swrData[no].lastX ) {
1845 line->AddBord(swrData[no].curX,
1847 swrData[no].lastX,
1848 swrData[no].curY - swrData[no].lastY,
1849 -swrData[no].dydx);
1851 } else if ( swrData[no].curX > swrData[no].lastX ) {
1853 line->AddBord(swrData[no].lastX,
1855 swrData[no].curX,
1856 swrData[no].curY - swrData[no].lastY,
1857 swrData[no].dydx);
1862 if ( swrData[no].curX <= swrData[no].lastX ) {
1864 line->AddBord(swrData[no].curX,
1866 swrData[no].lastX,
1867 swrData[no].lastY - swrData[no].curY,
1868 swrData[no].dydx);
1870 } else if ( swrData[no].curX > swrData[no].lastX ) {
1872 line->AddBord(swrData[no].lastX,
1874 swrData[no].curX,
1875 swrData[no].lastY - swrData[no].curY,
1876 -swrData[no].dydx);
1882 void Shape::AvanceEdge(int no, float to, AlphaLigne *line, bool exact, float step)
1884 AvanceEdge(no,to,exact,step);
1886 if ( swrData[no].sens ) {
1888 if ( swrData[no].curX <= swrData[no].lastX ) {
1890 line->AddBord(swrData[no].curX,
1892 swrData[no].lastX,
1893 swrData[no].curY - swrData[no].lastY,
1894 -swrData[no].dydx);
1896 } else if ( swrData[no].curX > swrData[no].lastX ) {
1898 line->AddBord(swrData[no].lastX,
1900 swrData[no].curX,
1901 swrData[no].curY - swrData[no].lastY,
1902 swrData[no].dydx);
1907 if ( swrData[no].curX <= swrData[no].lastX ) {
1909 line->AddBord(swrData[no].curX,
1911 swrData[no].lastX,
1912 swrData[no].lastY - swrData[no].curY,
1913 swrData[no].dydx);
1915 } else if ( swrData[no].curX > swrData[no].lastX ) {
1917 line->AddBord(swrData[no].lastX,
1919 swrData[no].curX,
1920 swrData[no].lastY - swrData[no].curY,
1921 -swrData[no].dydx);