Changeset 37946
- Timestamp:
- Mar 4, 2015, 3:19:26 AM (11 years ago)
- Location:
- branches/eam_branches/ipp-20150112/Ohana/src/kapa2/src
- Files:
-
- 3 edited
-
DrawObjects.c (modified) (8 diffs)
-
PSObjects.c (modified) (10 diffs)
-
bDrawObjects.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20150112/Ohana/src/kapa2/src/DrawObjects.c
r37944 r37946 712 712 void DrawXErrors (KapaGraphWidget *graph, Gobjects *object) { 713 713 714 int i, bar ;715 float *x, *y, * dxm, *dxp;714 int i, bar, dz, ds, D; 715 float *x, *y, *z, *dxm, *dxp; 716 716 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 717 717 double sx0, sy0, sx1, sy1, sz, sx10, sx11, X0, X1, Y0, Y1; 718 719 int scaleSize = (object[0].size < 0); 718 720 719 721 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); … … 730 732 by = byi + byj; 731 733 732 x = object[0].x; y = object[0].y; dxp = object[0].dxp; dxm = object[0].dxm; 734 ds = 0.5 * (graphic->dx + graphic->dy) * 0.003 * object[0].size; 735 dz = 0.5 * (graphic->dx + graphic->dy) * 0.010; 736 737 x = object[0].x; y = object[0].y; dxp = object[0].dxp; dxm = object[0].dxm; z = object[0].z; 733 738 bar = object[0].ebar; sz = object[0].size*graph[0].axis[1].dfy*0.03; 734 739 … … 738 743 Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 739 744 745 /// XXX NOTE : D should be modified by (mxi,myi) for tilted axes dx = D*(mxi/mx), dy = D*(myi/mx) 746 740 747 for (i = 0; i < object[0].Npts; i++) { 741 if (!(finite(x[i]) && finite(y[i]) && finite(dxp[i]))) continue; 742 sx0 = x[i]*mxi + y[i]*mxj + bx + XCENTER; 748 // for open circles, only go to the outer radius 749 D = 0; 750 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; } 751 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; } 752 if (object[0].ptype == 5) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 753 if (object[0].ptype == 15) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 754 if (!(finite(x[i]) && finite(y[i]) && finite(dxp[i]))) goto skip_dxp; 755 if (D > fabs(dxp[i]*mxi)) goto skip_dxp; 756 sx0 = x[i]*mxi + y[i]*mxj + bx + XCENTER + D; 743 757 sy0 = x[i]*myi + y[i]*myj + by + YCENTER; 744 sx1 = (x[i] + dxp[i])*mxi + y[i]*mxj + bx + XCENTER;745 sy1 = (x[i] + dxp[i])*myi + y[i]*myj + by + YCENTER;758 sx1 = sx0 + dxp[i]*mxi - D; 759 sy1 = sy0 + dxp[i]*myi; 746 760 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 747 761 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 756 770 } 757 771 } 772 skip_dxp: 758 773 if (!(finite(x[i]) && finite(y[i]) && finite(dxm[i]))) continue; 759 sx0 = x[i]*mxi + y[i]*mxj + bx + XCENTER; 774 if (D > fabs(dxm[i]*mxi)) continue; 775 sx0 = x[i]*mxi + y[i]*mxj + bx + XCENTER - D; 760 776 sy0 = x[i]*myi + y[i]*myj + by + YCENTER; 761 sx1 = (x[i] - dxm[i])*mxi + y[i]*mxj + bx + XCENTER;762 sy1 = (x[i] - dxm[i])*myi + y[i]*myj + by + YCENTER;777 sx1 = sx0 - dxm[i]*mxi + D; 778 sy1 = sy0 - dxm[i]*myi; 763 779 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 764 780 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 779 795 void DrawYErrors (KapaGraphWidget *graph, Gobjects *object) { 780 796 781 int i, bar ;782 float *x, *y, * dym, *dyp;797 int i, bar, dz, ds, D; 798 float *x, *y, *z, *dym, *dyp; 783 799 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 784 800 double sx0, sy0, sx1, sy1, sz, sx10, sx11, X0, X1, Y0, Y1; 801 802 int scaleSize = (object[0].size < 0); 785 803 786 804 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); … … 797 815 by = byi + byj; 798 816 799 x = object[0].x; y = object[0].y; dyp = object[0].dyp; dym = object[0].dym; 817 ds = 0.5 * (graphic->dx + graphic->dy) * 0.003 * object[0].size; 818 dz = 0.5 * (graphic->dx + graphic->dy) * 0.010; 819 820 x = object[0].x; y = object[0].y; dyp = object[0].dyp; dym = object[0].dym; z = object[0].z; 800 821 bar = object[0].ebar; sz = object[0].size*graph[0].axis[0].dfx*0.03; 801 822 … … 805 826 Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 806 827 828 /// XXX NOTE : D should be modified by (mxi,myi) for tilted axes dx = D*(mxi/mx), dy = D*(myi/mx) 829 807 830 for (i = 0; i < object[0].Npts; i++) { 808 if (!(finite(x[i]) && finite(y[i]) && finite(dyp[i]))) continue; 831 // for open circles, only go to the outer radius 832 D = 0; 833 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; } 834 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; } 835 if (object[0].ptype == 5) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 836 if (object[0].ptype == 15) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 837 if (!(finite(x[i]) && finite(y[i]) && finite(dyp[i]))) goto skip_dyp; 838 if (D > fabs(dyp[i]*myj)) goto skip_dyp; 809 839 sx0 = x[i]*mxi + y[i]*mxj + bx + XCENTER; 810 sy0 = x[i]*myi + y[i]*myj + by + YCENTER ;840 sy0 = x[i]*myi + y[i]*myj + by + YCENTER - D; 811 841 sx1 = sx0 + dyp[i]*mxj; 812 sy1 = sy0 + dyp[i]*myj ;842 sy1 = sy0 + dyp[i]*myj + D; 813 843 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 814 844 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 823 853 } 824 854 } 855 skip_dyp: 825 856 if (!(finite(x[i]) && finite(y[i]) && finite(dym[i]))) continue; 857 if (object[0].ptype == 5) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 858 if (object[0].ptype == 15) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 859 if (D > fabs(dym[i]*myj)) continue; 826 860 sx0 = x[i]*mxi + y[i]*mxj + bx + XCENTER; 827 sy0 = x[i]*myi + y[i]*myj + by + YCENTER ;828 sx1 = x[i]*mxi + (y[i] - dym[i])*mxj + bx + XCENTER;829 sy1 = x[i]*myi + (y[i] - dym[i])*myj + by + YCENTER;861 sy0 = x[i]*myi + y[i]*myj + by + YCENTER + D; 862 sx1 = sx0 - dym[i]*mxj; 863 sy1 = sy0 - dym[i]*myj - D; 830 864 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 831 865 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || -
branches/eam_branches/ipp-20150112/Ohana/src/kapa2/src/PSObjects.c
r37944 r37946 610 610 void PSXErrors (KapaGraphWidget *graph, Gobjects *object, FILE *f) { 611 611 612 int i, bar ;613 float *x, *y, * dxm, *dxp;612 int i, bar, dz, ds, D; 613 float *x, *y, *z, *dxm, *dxp; 614 614 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 615 615 double sx0, sy0, sx1, sy1, sz, sx10, sx11; 616 617 int scaleSize = (object[0].size < 0); 616 618 617 619 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); … … 628 630 by = byi + byj; 629 631 630 x = object[0].x; y = object[0].y; dxp = object[0].dxp; dxm = object[0].dxm; 632 ds = 0.5 * (graphic->dx + graphic->dy) * 0.003 * object[0].size; 633 dz = 0.5 * (graphic->dx + graphic->dy) * 0.010; 634 635 x = object[0].x; y = object[0].y; dxp = object[0].dxp; dxm = object[0].dxm; z = object[0].z; 631 636 bar = object[0].ebar; sz = object[0].size*graph[0].axis[1].dfy*0.03; 632 637 … … 636 641 double Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 637 642 643 /// XXX NOTE : D should be modified by (mxi,myi) for tilted axes dx = D*(mxi/mx), dy = D*(myi/mx) 644 638 645 for (i = 0; i < object[0].Npts; i++) { 639 if (!(finite(x[i]) && finite(y[i]) && finite(dxp[i]))) continue; 640 sx0 = x[i]*mxi + y[i]*mxj + bx; 646 // for open circles, only go to the outer radius 647 D = 0; 648 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; } 649 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; } 650 if (object[0].ptype == 5) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 651 if (object[0].ptype == 15) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 652 if (!(finite(x[i]) && finite(y[i]) && finite(dxp[i]))) goto skip_dxp; 653 if (D > fabs(dxp[i]*mxi)) goto skip_dxp; 654 sx0 = x[i]*mxi + y[i]*mxj + bx + D; 641 655 sy0 = x[i]*myi + y[i]*myj + by; 642 sx1 = (x[i] + dxp[i])*mxi + y[i]*mxj + bx;643 sy1 = (x[i] + dxp[i])*myi + y[i]*myj + by;656 sx1 = sx0 + dxp[i]*mxi - D; 657 sy1 = sy0 + dxp[i]*myi; 644 658 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 645 659 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 648 662 { 649 663 ClipLinePS (sx0, sy0, sx1, sy1, X0, Y0, X1, Y1, f); 650 // DrawLine (sx0, sy0, sx1, sy1);651 664 if (bar) { 652 665 sx10 = sy1 - sz; 653 666 sx11 = sy1 + sz; 654 667 ClipLinePS (sx1, sx10, sx1, sx11, X0, Y0, X1, Y1, f); 655 // DrawLine (sx1, sx10, sx1, sx11);656 }657 }668 } 669 } 670 skip_dxp: 658 671 if (!(finite(x[i]) && finite(y[i]) && finite(dxm[i]))) continue; 659 sx0 = x[i]*mxi + y[i]*mxj + bx; 672 if (D > fabs(dxm[i]*mxi)) continue; 673 sx0 = x[i]*mxi + y[i]*mxj + bx - D; 660 674 sy0 = x[i]*myi + y[i]*myj + by; 661 sx1 = (x[i] - dxm[i])*mxi + y[i]*mxj + bx;662 sy1 = (x[i] - dxm[i])*myi + y[i]*myj + by;675 sx1 = sx0 - dxm[i]*mxi + D; 676 sy1 = sy0 - dxm[i]*myi; 663 677 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 664 678 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 667 681 { 668 682 ClipLinePS (sx0, sy0, sx1, sy1, X0, Y0, X1, Y1, f); 669 // DrawLine (sx0, sy0, sx1, sy1);670 683 if (bar) { 671 684 sx10 = sy1 - sz; 672 685 sx11 = sy1 + sz; 673 686 ClipLinePS (sx1, sx10, sx1, sx11, X0, Y0, X1, Y1, f); 674 // DrawLine (sx1, sx10, sx1, sx11);675 687 } 676 688 } … … 682 694 void PSYErrors (KapaGraphWidget *graph, Gobjects *object, FILE *f) { 683 695 684 int i, bar ;685 float *x, *y, * dym, *dyp;696 int i, bar, dz, ds, D; 697 float *x, *y, *z, *dym, *dyp; 686 698 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 687 699 double sx0, sy0, sx1, sy1, sz, sx10, sx11; 688 700 701 int scaleSize = (object[0].size < 0); 702 689 703 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); 690 704 mxj = graph[0].axis[1].dfx / (object[0].y1 - object[0].y0); … … 700 714 by = byi + byj; 701 715 702 x = object[0].x; y = object[0].y; dyp = object[0].dyp; dym = object[0].dym; 716 ds = 0.5 * (graphic->dx + graphic->dy) * 0.003 * object[0].size; 717 dz = 0.5 * (graphic->dx + graphic->dy) * 0.010; 718 719 x = object[0].x; y = object[0].y; dyp = object[0].dyp; dym = object[0].dym; z = object[0].z; 703 720 bar = object[0].ebar; sz = object[0].size*graph[0].axis[0].dfx*0.03; 704 721 … … 708 725 double Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 709 726 727 /// XXX NOTE : D should be modified by (mxi,myi) for tilted axes dx = D*(mxi/mx), dy = D*(myi/mx) 728 710 729 for (i = 0; i < object[0].Npts; i++) { 711 if (!(finite(x[i]) && finite(y[i]) && finite(dyp[i]))) continue; 730 // for open circles, only go to the outer radius 731 D = 0; 732 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; } 733 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; } 734 if (object[0].ptype == 5) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 735 if (object[0].ptype == 15) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 736 if (!(finite(x[i]) && finite(y[i]) && finite(dyp[i]))) goto skip_dyp; 737 if (D > fabs(dyp[i]*myj)) goto skip_dyp; 712 738 sx0 = x[i]*mxi + y[i]*mxj + bx; 713 sy0 = x[i]*myi + y[i]*myj + by ;714 sx1 = x[i]*mxi + (y[i] + dyp[i])*mxj + bx;715 sy1 = x[i]*myi + (y[i] + dyp[i])*myj + by;739 sy0 = x[i]*myi + y[i]*myj + by - D; 740 sx1 = sx0 + dyp[i]*mxj; 741 sy1 = sy0 + dyp[i]*myj + D; 716 742 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 717 743 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 720 746 { 721 747 ClipLinePS (sx0, sy0, sx1, sy1, X0, Y0, X1, Y1, f); 722 // DrawLine (sx0, sy0, sx1, sy1);723 748 if (bar) { 724 749 sx10 = sx1 - sz; 725 750 sx11 = sx1 + sz; 726 751 ClipLinePS (sx10, sy1, sx11, sy1, X0, Y0, X1, Y1, f); 727 // DrawLine (sx10, sy1, sx11, sy1);728 }729 }752 } 753 } 754 skip_dyp: 730 755 if (!(finite(x[i]) && finite(y[i]) && finite(dym[i]))) continue; 756 if (object[0].ptype == 5) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 757 if (object[0].ptype == 15) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 758 if (D > fabs(dym[i]*myj)) continue; 731 759 sx0 = x[i]*mxi + y[i]*mxj + bx; 732 sy0 = x[i]*myi + y[i]*myj + by ;733 sx1 = x[i]*mxi + (y[i] - dym[i])*mxj + bx;734 sy1 = x[i]*myi + (y[i] - dym[i])*myj + by;760 sy0 = x[i]*myi + y[i]*myj + by + D; 761 sx1 = sx0 - dym[i]*mxj; 762 sy1 = sy0 - dym[i]*myj - D; 735 763 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 736 764 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 739 767 { 740 768 ClipLinePS (sx0, sy0, sx1, sy1, X0, Y0, X1, Y1, f); 741 // DrawLine (sx0, sy0, sx1, sy1);742 769 if (bar) { 743 770 sx10 = sx1 - sz; 744 771 sx11 = sx1 + sz; 745 772 ClipLinePS (sx10, sy1, sx11, sy1, X0, Y0, X1, Y1, f); 746 // DrawLine (sx10, sy1, sx11, sy1);747 773 } 748 774 } -
branches/eam_branches/ipp-20150112/Ohana/src/kapa2/src/bDrawObjects.c
r37944 r37946 656 656 void bDrawXErrors (bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object) { 657 657 658 int i, bar ;659 float *x, *y, * dxm, *dxp;658 int i, bar, dz, ds, D; 659 float *x, *y, *z, *dxm, *dxp; 660 660 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 661 661 double sx0, sy0, sx1, sy1, sz, sx10, sx11; 662 663 int scaleSize = (object[0].size < 0); 662 664 663 665 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); … … 674 676 by = byi + byj; 675 677 676 x = object[0].x; y = object[0].y; dxp = object[0].dxp; dxm = object[0].dxm; 678 ds = 0.5 * (graphic->dx + graphic->dy) * 0.003 * object[0].size; 679 dz = 0.5 * (graphic->dx + graphic->dy) * 0.010; 680 681 x = object[0].x; y = object[0].y; dxp = object[0].dxp; dxm = object[0].dxm; z = object[0].z; 677 682 bar = object[0].ebar; sz = object[0].size*graph[0].axis[1].dfy*0.03; 678 683 … … 682 687 double Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 683 688 689 /// XXX NOTE : D should be modified by (mxi,myi) for tilted axes dx = D*(mxi/mx), dy = D*(myi/mx) 690 684 691 for (i = 0; i < object[0].Npts; i++) { 685 if (!(finite(x[i]) && finite(y[i]) && finite(dxp[i]))) continue; 686 sx0 = x[i]*mxi + y[i]*mxj + bx; 692 // for open circles, only go to the outer radius 693 D = 0; 694 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; } 695 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; } 696 if (object[0].ptype == 5) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 697 if (object[0].ptype == 15) { D = scaleSize ? 0.66*dz*z[i] : 0.66*ds; } 698 if (!(finite(x[i]) && finite(y[i]) && finite(dxp[i]))) goto skip_dxp; 699 if (D > fabs(dxp[i]*mxi)) goto skip_dxp; 700 sx0 = x[i]*mxi + y[i]*mxj + bx + D; 687 701 sy0 = x[i]*myi + y[i]*myj + by; 688 sx1 = (x[i] + dxp[i])*mxi + y[i]*mxj + bx;689 sy1 = (x[i] + dxp[i])*myi + y[i]*myj + by;702 sx1 = sx0 + dxp[i]*mxi - D; 703 sy1 = sy0 + dxp[i]*myi; 690 704 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 691 705 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 694 708 { 695 709 bDrawClipLine (buffer, sx0, sy0, sx1, sy1, X0, Y0, X1, Y1); 696 // DrawLine (buffer, sx0, sy0, sx1, sy1);697 710 if (bar) { 698 711 sx10 = sy1 - sz; 699 712 sx11 = sy1 + sz; 700 713 bDrawClipLine (buffer, sx1, sx10, sx1, sx11, X0, Y0, X1, Y1); 701 // DrawLine (buffer, sx1, sx10, sx1, sx11); 702 }703 }714 } 715 } 716 skip_dxp: 704 717 if (!(finite(x[i]) && finite(y[i]) && finite(dxm[i]))) continue; 705 sx0 = x[i]*mxi + y[i]*mxj + bx; 718 if (D > fabs(dxm[i]*mxi)) continue; 719 sx0 = x[i]*mxi + y[i]*mxj + bx - D; 706 720 sy0 = x[i]*myi + y[i]*myj + by; 707 sx1 = (x[i] - dxm[i])*mxi + y[i]*mxj + bx;708 sy1 = (x[i] - dxm[i])*myi + y[i]*myj + by;721 sx1 = sx0 - dxm[i]*mxi + D; 722 sy1 = sy0 - dxm[i]*myi; 709 723 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 710 724 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 713 727 { 714 728 bDrawClipLine (buffer, sx0, sy0, sx1, sy1, X0, Y0, X1, Y1); 715 // DrawLine (buffer, sx0, sy0, sx1, sy1);716 729 if (bar) { 717 730 sx10 = sy1 - sz; 718 731 sx11 = sy1 + sz; 719 732 bDrawClipLine (buffer, sx1, sx10, sx1, sx11, X0, Y0, X1, Y1); 720 // DrawLine (buffer, sx1, sx10, sx1, sx11);721 733 } 722 734 } … … 727 739 void bDrawYErrors (bDrawBuffer *buffer, KapaGraphWidget *graph, Gobjects *object) { 728 740 729 int i, bar ;730 float *x, *y, * dym, *dyp;741 int i, bar, dz, ds, D; 742 float *x, *y, *z, *dym, *dyp; 731 743 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 732 744 double sx0, sy0, sx1, sy1, sz, sx10, sx11; 733 745 746 int scaleSize = (object[0].size < 0); 747 734 748 mxi = graph[0].axis[0].dfx / (object[0].x1 - object[0].x0); 735 749 mxj = graph[0].axis[1].dfx / (object[0].y1 - object[0].y0); … … 745 759 by = byi + byj; 746 760 747 x = object[0].x; y = object[0].y; dyp = object[0].dyp; dym = object[0].dym; 761 ds = 0.5 * (graphic->dx + graphic->dy) * 0.003 * object[0].size; 762 dz = 0.5 * (graphic->dx + graphic->dy) * 0.010; 763 764 x = object[0].x; y = object[0].y; dyp = object[0].dyp; dym = object[0].dym; z = object[0].z; 748 765 bar = object[0].ebar; sz = object[0].size*graph[0].axis[0].dfx*0.03; 749 766 … … 753 770 double Y1 = graph[0].axis[1].fy + graph[0].axis[1].dfy; 754 771 772 /// XXX NOTE : D should be modified by (mxi,myi) for tilted axes dx = D*(mxi/mx), dy = D*(myi/mx) 773 755 774 for (i = 0; i < object[0].Npts; i++) { 756 if (!(finite(x[i]) && finite(y[i]) && finite(dyp[i]))) continue; 775 // for open circles, only go to the outer radius 776 D = 0; 777 if (object[0].ptype == 7) { D = scaleSize ? dz*z[i] : ds; } 778 if (object[0].ptype == 1) { D = scaleSize ? dz*z[i] : ds; } 779 if (object[0].ptype == 5) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 780 if (object[0].ptype == 15) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 781 if (!(finite(x[i]) && finite(y[i]) && finite(dyp[i]))) goto skip_dyp; 782 if (D > fabs(dyp[i]*myj)) goto skip_dyp; 757 783 sx0 = x[i]*mxi + y[i]*mxj + bx; 758 sy0 = x[i]*myi + y[i]*myj + by ;759 sx1 = x[i]*mxi + (y[i] + dyp[i])*mxj + bx;760 sy1 = x[i]*myi + (y[i] + dyp[i])*myj + by;784 sy0 = x[i]*myi + y[i]*myj + by - D; 785 sx1 = sx0 + dyp[i]*mxj; 786 sy1 = sy0 + dyp[i]*myj + D; 761 787 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 762 788 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 765 791 { 766 792 bDrawClipLine (buffer, sx0, sy0, sx1, sy1, X0, Y0, X1, Y1); 767 // DrawLine (buffer, sx0, sy0, sx1, sy1);768 793 if (bar) { 769 794 sx10 = sx1 - sz; 770 795 sx11 = sx1 + sz; 771 796 bDrawClipLine (buffer, sx10, sy1, sx11, sy1, X0, Y0, X1, Y1); 772 // DrawLine (buffer, sx10, sy1, sx11, sy1); 773 }774 }797 } 798 } 799 skip_dyp: 775 800 if (!(finite(x[i]) && finite(y[i]) && finite(dym[i]))) continue; 801 if (object[0].ptype == 5) { D = scaleSize ? 0.58*dz*z[i] : 0.58*ds; } 802 if (object[0].ptype == 15) { D = scaleSize ? 1.15*dz*z[i] : 1.15*ds; } 803 if (D > fabs(dym[i]*myj)) continue; 776 804 sx0 = x[i]*mxi + y[i]*mxj + bx; 777 sy0 = x[i]*myi + y[i]*myj + by ;778 sx1 = x[i]*mxi + (y[i] - dym[i])*mxj + bx;779 sy1 = x[i]*myi + (y[i] - dym[i])*myj + by;805 sy0 = x[i]*myi + y[i]*myj + by + D; 806 sx1 = sx0 - dym[i]*mxj; 807 sy1 = sy0 - dym[i]*myj - D; 780 808 if (((sx0 > graph[0].axis[0].fx) && (sx0 < graph[0].axis[0].fx + graph[0].axis[0].dfx) && 781 809 (sy0 < graph[0].axis[1].fy) && (sy0 > graph[0].axis[1].fy + graph[0].axis[1].dfy)) || … … 784 812 { 785 813 bDrawClipLine (buffer, sx0, sy0, sx1, sy1, X0, Y0, X1, Y1); 786 // DrawLine (buffer, sx0, sy0, sx1, sy1);787 814 if (bar) { 788 815 sx10 = sx1 - sz; 789 816 sx11 = sx1 + sz; 790 817 bDrawClipLine (buffer, sx10, sy1, sx11, sy1, X0, Y0, X1, Y1); 791 // DrawLine (buffer, sx10, sy1, sx11, sy1);792 818 } 793 819 }
Note:
See TracChangeset
for help on using the changeset viewer.
