| | 488 | %% 15/05/2008 %% %% syntaxe : A solid i dessinefacecachee |
|---|
| | 489 | %% 15/05/2008 %% /dessinefacecachee { |
|---|
| | 490 | %% 15/05/2008 %% 6 dict begin |
|---|
| | 491 | %% 15/05/2008 %% /i exch def |
|---|
| | 492 | %% 15/05/2008 %% /solid exch def |
|---|
| | 493 | %% 15/05/2008 %% solid issolid not { |
|---|
| | 494 | %% 15/05/2008 %% (Error : mauvais type d argument dans dessinefacecachee) == |
|---|
| | 495 | %% 15/05/2008 %% quit |
|---|
| | 496 | %% 15/05/2008 %% } if |
|---|
| | 497 | %% 15/05/2008 %% /A exch def |
|---|
| | 498 | %% 15/05/2008 %% |
|---|
| | 499 | %% 15/05/2008 %% /F solid solidgetfaces def |
|---|
| | 500 | %% 15/05/2008 %% /S solid solidgetsommets def |
|---|
| | 501 | %% 15/05/2008 %% |
|---|
| | 502 | %% 15/05/2008 %% solid i solidfacevisible? not { |
|---|
| | 503 | %% 15/05/2008 %% %% face cachee => on prend chacune des aretes de la face et on |
|---|
| | 504 | %% 15/05/2008 %% %% regarde si elle est deja dessinee. |
|---|
| | 505 | %% 15/05/2008 %% 4 dict begin |
|---|
| | 506 | %% 15/05/2008 %% /n F i get length def %% nb de sommets de la face |
|---|
| | 507 | %% 15/05/2008 %% 0 1 n 1 sub { |
|---|
| | 508 | %% 15/05/2008 %% /k exch def |
|---|
| | 509 | %% 15/05/2008 %% /k1 F i k get_ij def %% indice sommet1 |
|---|
| | 510 | %% 15/05/2008 %% /k2 F i k 1 add n mod get_ij def %% indice sommet2 |
|---|
| | 511 | %% 15/05/2008 %% A k1 k2 get_ij not { |
|---|
| | 512 | %% 15/05/2008 %% gsave |
|---|
| | 513 | %% 15/05/2008 %% currentlinewidth .5 mul setlinewidth |
|---|
| | 514 | %% 15/05/2008 %% pointilles |
|---|
| | 515 | %% 15/05/2008 %% [S k1 getp3d |
|---|
| | 516 | %% 15/05/2008 %% S k2 getp3d] ligne3d |
|---|
| | 517 | %% 15/05/2008 %% A k1 k2 true put_ij |
|---|
| | 518 | %% 15/05/2008 %% A k2 k1 true put_ij |
|---|
| | 519 | %% 15/05/2008 %% grestore |
|---|
| | 520 | %% 15/05/2008 %% } if |
|---|
| | 521 | %% 15/05/2008 %% } for |
|---|
| | 522 | %% 15/05/2008 %% end |
|---|
| | 523 | %% 15/05/2008 %% } if |
|---|
| | 524 | %% 15/05/2008 %% end |
|---|
| | 525 | %% 15/05/2008 %% } def |
|---|
| | 526 | %% 15/05/2008 %% |
|---|
| | 527 | %% 15/05/2008 %% %% syntaxe : A solid i dessinefacevisible |
|---|
| | 528 | %% 15/05/2008 %% /dessinefacevisible { |
|---|
| | 529 | %% 15/05/2008 %% 8 dict begin |
|---|
| | 530 | %% 15/05/2008 %% /i exch def |
|---|
| | 531 | %% 15/05/2008 %% /solid exch def |
|---|
| | 532 | %% 15/05/2008 %% /A exch def |
|---|
| | 533 | %% 15/05/2008 %% solid issolid not { |
|---|
| | 534 | %% 15/05/2008 %% (Error : mauvais type d argument dans dessinefacevisible) == |
|---|
| | 535 | %% 15/05/2008 %% quit |
|---|
| | 536 | %% 15/05/2008 %% } if |
|---|
| | 537 | %% 15/05/2008 %% /F solid solidgetfaces def |
|---|
| | 538 | %% 15/05/2008 %% /S solid solidgetsommets def |
|---|
| | 539 | %% 15/05/2008 %% |
|---|
| | 540 | %% 15/05/2008 %% solid i solidfacevisible? { |
|---|
| | 541 | %% 15/05/2008 %% /n F i get length def %% nb de sommets de la face |
|---|
| | 542 | %% 15/05/2008 %% |
|---|
| | 543 | %% 15/05/2008 %% startest { |
|---|
| | 544 | %% 15/05/2008 %% %% choix de la couleur |
|---|
| | 545 | %% 15/05/2008 %% /lightcolor where { |
|---|
| | 546 | %% 15/05/2008 %% pop |
|---|
| | 547 | %% 15/05/2008 %% /coeff |
|---|
| | 548 | %% 15/05/2008 %% lightintensity |
|---|
| | 549 | %% 15/05/2008 %% solid i solidnormaleface normalize3d |
|---|
| | 550 | %% 15/05/2008 %% solid i solidcentreface lightsrc vecteur3d normalize3d |
|---|
| | 551 | %% 15/05/2008 %% scalprod3d mul |
|---|
| | 552 | %% 15/05/2008 %% 0 max 1 min |
|---|
| | 553 | %% 15/05/2008 %% def |
|---|
| | 554 | %% 15/05/2008 %% /fillstyle { |
|---|
| | 555 | %% 15/05/2008 %% lightcolor {coeff mul} apply setcolor fill |
|---|
| | 556 | %% 15/05/2008 %% } def |
|---|
| | 557 | %% 15/05/2008 %% solidgrid not { |
|---|
| | 558 | %% 15/05/2008 %% lightcolor {coeff mul} apply setcolor |
|---|
| | 559 | %% 15/05/2008 %% } if |
|---|
| | 560 | %% 15/05/2008 %% } { |
|---|
| | 561 | %% 15/05/2008 %% /lightsrc where { |
|---|
| | 562 | %% 15/05/2008 %% pop |
|---|
| | 563 | %% 15/05/2008 %% /coeff |
|---|
| | 564 | %% 15/05/2008 %% lightintensity |
|---|
| | 565 | %% 15/05/2008 %% solid i solidnormaleface normalize3d |
|---|
| | 566 | %% 15/05/2008 %% solid i solidcentreface lightsrc vecteur3d normalize3d |
|---|
| | 567 | %% 15/05/2008 %% scalprod3d mul |
|---|
| | 568 | %% 15/05/2008 %% 0 max 1 min |
|---|
| | 569 | %% 15/05/2008 %% def |
|---|
| | 570 | %% 15/05/2008 %% /lacouleur [ |
|---|
| | 571 | %% 15/05/2008 %% gsave |
|---|
| | 572 | %% 15/05/2008 %% solid solidgetfcolors i get cvx exec currentrgbcolor |
|---|
| | 573 | %% 15/05/2008 %% grestore |
|---|
| | 574 | %% 15/05/2008 %% ] def |
|---|
| | 575 | %% 15/05/2008 %% /fillstyle { |
|---|
| | 576 | %% 15/05/2008 %% lacouleur {coeff mul} apply setcolor fill |
|---|
| | 577 | %% 15/05/2008 %% } def |
|---|
| | 578 | %% 15/05/2008 %% solidgrid not { |
|---|
| | 579 | %% 15/05/2008 %% lacouleur {coeff mul} apply setcolor |
|---|
| | 580 | %% 15/05/2008 %% } if |
|---|
| | 581 | %% 15/05/2008 %% } { |
|---|
| | 582 | %% 15/05/2008 %% % solid F i get length affectecouleursolid_ncotes |
|---|
| | 583 | %% 15/05/2008 %% solid i affectecouleursolid_facei |
|---|
| | 584 | %% 15/05/2008 %% } ifelse |
|---|
| | 585 | %% 15/05/2008 %% |
|---|
| | 586 | %% 15/05/2008 %% } ifelse |
|---|
| | 587 | %% 15/05/2008 %% } if |
|---|
| | 588 | %% 15/05/2008 %% |
|---|
| | 589 | %% 15/05/2008 %% /face_a_dessiner [ %% face visible : F [i] |
|---|
| | 590 | %% 15/05/2008 %% 0 1 n 1 sub { |
|---|
| | 591 | %% 15/05/2008 %% /j exch def |
|---|
| | 592 | %% 15/05/2008 %% solid j i solidgetsommetface |
|---|
| | 593 | %% 15/05/2008 %% } for |
|---|
| | 594 | %% 15/05/2008 %% ] def |
|---|
| | 595 | %% 15/05/2008 %% face_a_dessiner polygone3d |
|---|
| | 596 | %% 15/05/2008 %% /lignedeniveau [] def |
|---|
| | 597 | %% 15/05/2008 %% |
|---|
| | 598 | %% 15/05/2008 %% %% trace de la ligne de niveau |
|---|
| | 599 | %% 15/05/2008 %% tracelignedeniveau? { |
|---|
| | 600 | %% 15/05/2008 %% gsave |
|---|
| | 601 | %% 15/05/2008 %% linewidthlignedeniveau setlinewidth |
|---|
| | 602 | %% 15/05/2008 %% couleurlignedeniveau |
|---|
| | 603 | %% 15/05/2008 %% 0 1 n 1 sub { |
|---|
| | 604 | %% 15/05/2008 %% /j exch def |
|---|
| | 605 | %% 15/05/2008 %% face_a_dessiner j getp3d |
|---|
| | 606 | %% 15/05/2008 %% face_a_dessiner j 1 add n mod getp3d |
|---|
| | 607 | %% 15/05/2008 %% hauteurlignedeniveau segment_inter_planz { |
|---|
| | 608 | %% 15/05/2008 %% 1 dict begin |
|---|
| | 609 | %% 15/05/2008 %% /table exch def |
|---|
| | 610 | %% 15/05/2008 %% /lignedeniveau [ |
|---|
| | 611 | %% 15/05/2008 %% lignedeniveau aload pop |
|---|
| | 612 | %% 15/05/2008 %% table 0 getp3d |
|---|
| | 613 | %% 15/05/2008 %% table length 4 ge { |
|---|
| | 614 | %% 15/05/2008 %% table 1 getp3d |
|---|
| | 615 | %% 15/05/2008 %% } if |
|---|
| | 616 | %% 15/05/2008 %% ] store |
|---|
| | 617 | %% 15/05/2008 %% end |
|---|
| | 618 | %% 15/05/2008 %% } if |
|---|
| | 619 | %% 15/05/2008 %% } for |
|---|
| | 620 | %% 15/05/2008 %% lignedeniveau length 4 ge |
|---|
| | 621 | %% 15/05/2008 %% {lignedeniveau ligne3d} |
|---|
| | 622 | %% 15/05/2008 %% if |
|---|
| | 623 | %% 15/05/2008 %% grestore |
|---|
| | 624 | %% 15/05/2008 %% } if |
|---|
| | 625 | %% 15/05/2008 %% |
|---|
| | 626 | %% 15/05/2008 %% %% on marque les aretes |
|---|
| | 627 | %% 15/05/2008 %% aretescachees { |
|---|
| | 628 | %% 15/05/2008 %% 0 1 n 1 sub { |
|---|
| | 629 | %% 15/05/2008 %% /j exch def |
|---|
| | 630 | %% 15/05/2008 %% /k1 F i j get_ij def %% indice sommet1 |
|---|
| | 631 | %% 15/05/2008 %% /k2 F i j 1 add n mod get_ij def %% indice sommet2 |
|---|
| | 632 | %% 15/05/2008 %% A k1 k2 true put_ij |
|---|
| | 633 | %% 15/05/2008 %% A k2 k1 true put_ij |
|---|
| | 634 | %% 15/05/2008 %% } for |
|---|
| | 635 | %% 15/05/2008 %% } if |
|---|
| | 636 | %% 15/05/2008 %% } if |
|---|
| | 637 | %% 15/05/2008 %% end |
|---|
| | 638 | %% 15/05/2008 %% } def |
|---|
| | 639 | |
|---|
| | 640 | %% 27/05/08 %% %% syntaxe : solid i affectecouleursolid_facei --> si la couleur de |
|---|
| | 641 | %% 27/05/08 %% %% la face i est definie, affecte fillstyle a cette couleur |
|---|
| | 642 | %% 27/05/08 %% /affectecouleursolid_facei { |
|---|
| | 643 | %% 27/05/08 %% 3 dict begin |
|---|
| | 644 | %% 27/05/08 %% /i exch def |
|---|
| | 645 | %% 27/05/08 %% /solid exch def |
|---|
| | 646 | %% 27/05/08 %% solid solidgetfcolors /FC exch def |
|---|
| | 647 | %% 27/05/08 %% FC length 1 sub i ge { |
|---|
| | 648 | %% 27/05/08 %% FC i get length 1 ge { |
|---|
| | 649 | %% 27/05/08 %% /fillstyle FC i get ( fill) append cvx |
|---|
| | 650 | %% 27/05/08 %% true |
|---|
| | 651 | %% 27/05/08 %% } { |
|---|
| | 652 | %% 27/05/08 %% false |
|---|
| | 653 | %% 27/05/08 %% } ifelse |
|---|
| | 654 | %% 27/05/08 %% } { |
|---|
| | 655 | %% 27/05/08 %% false |
|---|
| | 656 | %% 27/05/08 %% } ifelse |
|---|
| | 657 | %% 27/05/08 %% end |
|---|
| | 658 | %% 27/05/08 %% {def} if |
|---|
| | 659 | %% 27/05/08 %% } def |
|---|
| | 660 | |
|---|
| | 661 | %% 27/05/08 %% %% syntaxe : A solid i dessinefacevisible |
|---|
| | 662 | %% 27/05/08 %% /dessinefacevisible { |
|---|
| | 663 | %% 27/05/08 %% 8 dict begin |
|---|
| | 664 | %% 27/05/08 %% /i exch def |
|---|
| | 665 | %% 27/05/08 %% /solid exch def |
|---|
| | 666 | %% 27/05/08 %% /A exch def |
|---|
| | 667 | %% 27/05/08 %% solid issolid not { |
|---|
| | 668 | %% 27/05/08 %% (Error : mauvais type d argument dans dessinefacevisible) == |
|---|
| | 669 | %% 27/05/08 %% quit |
|---|
| | 670 | %% 27/05/08 %% } if |
|---|
| | 671 | %% 27/05/08 %% /F solid solidgetfaces def |
|---|
| | 672 | %% 27/05/08 %% /S solid solidgetsommets def |
|---|
| | 673 | %% 27/05/08 %% |
|---|
| | 674 | %% 27/05/08 %% solid i solidfacevisible? { |
|---|
| | 675 | %% 27/05/08 %% /n F i get length def %% nb de sommets de la face |
|---|
| | 676 | %% 27/05/08 %% |
|---|
| | 677 | %% 27/05/08 %% startest { |
|---|
| | 678 | %% 27/05/08 %% %% choix de la couleur |
|---|
| | 679 | %% 27/05/08 %% /lightcolor where { |
|---|
| | 680 | %% 27/05/08 %% pop |
|---|
| | 681 | %% 27/05/08 %% /coeff |
|---|
| | 682 | %% 27/05/08 %% lightintensity |
|---|
| | 683 | %% 27/05/08 %% solid i solidnormaleface normalize3d |
|---|
| | 684 | %% 27/05/08 %% solid i solidcentreface lightsrc vecteur3d normalize3d |
|---|
| | 685 | %% 27/05/08 %% scalprod3d mul |
|---|
| | 686 | %% 27/05/08 %% 0 max 1 min |
|---|
| | 687 | %% 27/05/08 %% def |
|---|
| | 688 | %% 27/05/08 %% /fillstyle { |
|---|
| | 689 | %% 27/05/08 %% lightcolor {coeff mul} apply setcolor fill |
|---|
| | 690 | %% 27/05/08 %% } def |
|---|
| | 691 | %% 27/05/08 %% solidgrid not { |
|---|
| | 692 | %% 27/05/08 %% lightcolor {coeff mul} apply setcolor |
|---|
| | 693 | %% 27/05/08 %% } if |
|---|
| | 694 | %% 27/05/08 %% } { |
|---|
| | 695 | %% 27/05/08 %% /lightsrc where { |
|---|
| | 696 | %% 27/05/08 %% pop |
|---|
| | 697 | %% 27/05/08 %% /coeff |
|---|
| | 698 | %% 27/05/08 %% lightintensity |
|---|
| | 699 | %% 27/05/08 %% solid i solidnormaleface normalize3d |
|---|
| | 700 | %% 27/05/08 %% solid i solidcentreface lightsrc vecteur3d normalize3d |
|---|
| | 701 | %% 27/05/08 %% scalprod3d mul |
|---|
| | 702 | %% 27/05/08 %% 0 max 1 min |
|---|
| | 703 | %% 27/05/08 %% def |
|---|
| | 704 | %% 27/05/08 %% /lacouleur [ |
|---|
| | 705 | %% 27/05/08 %% gsave |
|---|
| | 706 | %% 27/05/08 %% solid solidgetfcolors i get cvx exec currentrgbcolor |
|---|
| | 707 | %% 27/05/08 %% grestore |
|---|
| | 708 | %% 27/05/08 %% ] def |
|---|
| | 709 | %% 27/05/08 %% /fillstyle { |
|---|
| | 710 | %% 27/05/08 %% lacouleur {coeff mul} apply setcolor fill |
|---|
| | 711 | %% 27/05/08 %% } def |
|---|
| | 712 | %% 27/05/08 %% solidgrid not { |
|---|
| | 713 | %% 27/05/08 %% lacouleur {coeff mul} apply setcolor |
|---|
| | 714 | %% 27/05/08 %% } if |
|---|
| | 715 | %% 27/05/08 %% } { |
|---|
| | 716 | %% 27/05/08 %% solid i affectecouleursolid_facei |
|---|
| | 717 | %% 27/05/08 %% } ifelse |
|---|
| | 718 | %% 27/05/08 %% |
|---|
| | 719 | %% 27/05/08 %% } ifelse |
|---|
| | 720 | %% 27/05/08 %% } if |
|---|
| | 721 | %% 27/05/08 %% |
|---|
| | 722 | %% 27/05/08 %% /face_a_dessiner [ %% face visible : F [i] |
|---|
| | 723 | %% 27/05/08 %% 0 1 n 1 sub { |
|---|
| | 724 | %% 27/05/08 %% /j exch def |
|---|
| | 725 | %% 27/05/08 %% solid j i solidgetsommetface |
|---|
| | 726 | %% 27/05/08 %% } for |
|---|
| | 727 | %% 27/05/08 %% ] def |
|---|
| | 728 | %% 27/05/08 %% face_a_dessiner polygone3d |
|---|
| | 729 | %% 27/05/08 %% |
|---|
| | 730 | %% 27/05/08 %% %% on marque les aretes |
|---|
| | 731 | %% 27/05/08 %% aretescachees { |
|---|
| | 732 | %% 27/05/08 %% 0 1 n 1 sub { |
|---|
| | 733 | %% 27/05/08 %% /j exch def |
|---|
| | 734 | %% 27/05/08 %% /k1 F i j get_ij def %% indice sommet1 |
|---|
| | 735 | %% 27/05/08 %% /k2 F i j 1 add n mod get_ij def %% indice sommet2 |
|---|
| | 736 | %% 27/05/08 %% A k1 k2 true put_ij |
|---|
| | 737 | %% 27/05/08 %% A k2 k1 true put_ij |
|---|
| | 738 | %% 27/05/08 %% } for |
|---|
| | 739 | %% 27/05/08 %% } if |
|---|
| | 740 | %% 27/05/08 %% |
|---|
| | 741 | %% 27/05/08 %% |
|---|
| | 742 | %% 27/05/08 %% %% trace de la ligne de niveau |
|---|
| | 743 | %% 27/05/08 %% solidintersectiontype 0 ge { |
|---|
| | 744 | %% 27/05/08 %% 0 1 solidintersectionplan length 1 sub { |
|---|
| | 745 | %% 27/05/08 %% /k exch def |
|---|
| | 746 | %% 27/05/08 %% /lignedeniveau [] def |
|---|
| | 747 | %% 27/05/08 %% gsave |
|---|
| | 748 | %% 27/05/08 %% k solidintersectionlinewidth length lt { |
|---|
| | 749 | %% 27/05/08 %% solidintersectionlinewidth k get setlinewidth |
|---|
| | 750 | %% 27/05/08 %% } { |
|---|
| | 751 | %% 27/05/08 %% solidintersectionlinewidth 0 get setlinewidth |
|---|
| | 752 | %% 27/05/08 %% } ifelse |
|---|
| | 753 | %% 27/05/08 %% k solidintersectioncolor length lt { |
|---|
| | 754 | %% 27/05/08 %% solidintersectioncolor k get cvx exec |
|---|
| | 755 | %% 27/05/08 %% } { |
|---|
| | 756 | %% 27/05/08 %% solidintersectioncolor 0 get cvx exec |
|---|
| | 757 | %% 27/05/08 %% } ifelse |
|---|
| | 758 | %% 27/05/08 %% 0 1 n 1 sub { |
|---|
| | 759 | %% 27/05/08 %% /j exch def |
|---|
| | 760 | %% 27/05/08 %% face_a_dessiner j getp3d |
|---|
| | 761 | %% 27/05/08 %% face_a_dessiner j 1 add n mod getp3d |
|---|
| | 762 | %% 27/05/08 %% solidintersectionplan k get segment_inter_plan { |
|---|
| | 763 | %% 27/05/08 %% 1 dict begin |
|---|
| | 764 | %% 27/05/08 %% /table exch def |
|---|
| | 765 | %% 27/05/08 %% /lignedeniveau [ |
|---|
| | 766 | %% 27/05/08 %% lignedeniveau aload pop |
|---|
| | 767 | %% 27/05/08 %% table 0 getp3d |
|---|
| | 768 | %% 27/05/08 %% table length 4 ge { |
|---|
| | 769 | %% 27/05/08 %% table 1 getp3d |
|---|
| | 770 | %% 27/05/08 %% } if |
|---|
| | 771 | %% 27/05/08 %% ] store |
|---|
| | 772 | %% 27/05/08 %% end |
|---|
| | 773 | %% 27/05/08 %% } if |
|---|
| | 774 | %% 27/05/08 %% } for |
|---|
| | 775 | %% 27/05/08 %% |
|---|
| | 776 | %% 27/05/08 %% %% dessin de la ligne |
|---|
| | 777 | %% 27/05/08 %% lignedeniveau length 4 ge { |
|---|
| | 778 | %% 27/05/08 %% solid i solidisinface { |
|---|
| | 779 | %% 27/05/08 %% pointilles |
|---|
| | 780 | %% 27/05/08 %% } if |
|---|
| | 781 | %% 27/05/08 %% lignedeniveau ligne3d |
|---|
| | 782 | %% 27/05/08 %% } if |
|---|
| | 783 | %% 27/05/08 %% grestore |
|---|
| | 784 | %% 27/05/08 %% } for |
|---|
| | 785 | %% 27/05/08 %% } if |
|---|
| | 786 | %% 27/05/08 %% |
|---|
| | 787 | %% 27/05/08 %% } if |
|---|
| | 788 | %% 27/05/08 %% end |
|---|
| | 789 | %% 27/05/08 %% } def |
|---|
| | 790 | %% 27/05/08 %% |
|---|
| | 791 | %% 27/05/08 %% %% syntaxe : A solid i dessinefacecachee |
|---|
| | 792 | %% 27/05/08 %% /dessinefacecachee { |
|---|
| | 793 | %% 27/05/08 %% 6 dict begin |
|---|
| | 794 | %% 27/05/08 %% /i exch def |
|---|
| | 795 | %% 27/05/08 %% /solid exch def |
|---|
| | 796 | %% 27/05/08 %% solid issolid not { |
|---|
| | 797 | %% 27/05/08 %% (Error : mauvais type d argument dans dessinefacecachee) == |
|---|
| | 798 | %% 27/05/08 %% quit |
|---|
| | 799 | %% 27/05/08 %% } if |
|---|
| | 800 | %% 27/05/08 %% /A exch def |
|---|
| | 801 | %% 27/05/08 %% |
|---|
| | 802 | %% 27/05/08 %% /F solid solidgetfaces def |
|---|
| | 803 | %% 27/05/08 %% /S solid solidgetsommets def |
|---|
| | 804 | %% 27/05/08 %% |
|---|
| | 805 | %% 27/05/08 %% solid i solidfacevisible? not { |
|---|
| | 806 | %% 27/05/08 %% %% face cachee => on prend chacune des aretes de la face et on |
|---|
| | 807 | %% 27/05/08 %% %% regarde si elle est deja dessinee. |
|---|
| | 808 | %% 27/05/08 %% 4 dict begin |
|---|
| | 809 | %% 27/05/08 %% /n F i get length def %% nb de sommets de la face |
|---|
| | 810 | %% 27/05/08 %% 0 1 n 1 sub { |
|---|
| | 811 | %% 27/05/08 %% /k exch def |
|---|
| | 812 | %% 27/05/08 %% /k1 F i k get_ij def %% indice sommet1 |
|---|
| | 813 | %% 27/05/08 %% /k2 F i k 1 add n mod get_ij def %% indice sommet2 |
|---|
| | 814 | %% 27/05/08 %% A k1 k2 get_ij not { |
|---|
| | 815 | %% 27/05/08 %% gsave |
|---|
| | 816 | %% 27/05/08 %% currentlinewidth .5 mul setlinewidth |
|---|
| | 817 | %% 27/05/08 %% pointilles |
|---|
| | 818 | %% 27/05/08 %% [S k1 getp3d |
|---|
| | 819 | %% 27/05/08 %% S k2 getp3d] ligne3d |
|---|
| | 820 | %% 27/05/08 %% A k1 k2 true put_ij |
|---|
| | 821 | %% 27/05/08 %% A k2 k1 true put_ij |
|---|
| | 822 | %% 27/05/08 %% grestore |
|---|
| | 823 | %% 27/05/08 %% } if |
|---|
| | 824 | %% 27/05/08 %% } for |
|---|
| | 825 | %% 27/05/08 %% |
|---|
| | 826 | %% 27/05/08 %% %% trace de la ligne de niveau |
|---|
| | 827 | %% 27/05/08 %% solidintersectiontype 0 ge { |
|---|
| | 828 | %% 27/05/08 %% /face_a_dessiner [ %% face visible : F [i] |
|---|
| | 829 | %% 27/05/08 %% 0 1 n 1 sub { |
|---|
| | 830 | %% 27/05/08 %% /j exch def |
|---|
| | 831 | %% 27/05/08 %% solid j i solidgetsommetface |
|---|
| | 832 | %% 27/05/08 %% } for |
|---|
| | 833 | %% 27/05/08 %% ] def |
|---|
| | 834 | %% 27/05/08 %% 0 1 solidintersectionplan length 1 sub { |
|---|
| | 835 | %% 27/05/08 %% /k exch def |
|---|
| | 836 | %% 27/05/08 %% /lignedeniveau [] def |
|---|
| | 837 | %% 27/05/08 %% gsave |
|---|
| | 838 | %% 27/05/08 %% pointilles |
|---|
| | 839 | %% 27/05/08 %% k solidintersectionlinewidth length lt { |
|---|
| | 840 | %% 27/05/08 %% solidintersectionlinewidth k get setlinewidth |
|---|
| | 841 | %% 27/05/08 %% } { |
|---|
| | 842 | %% 27/05/08 %% solidintersectionlinewidth 0 get setlinewidth |
|---|
| | 843 | %% 27/05/08 %% } ifelse |
|---|
| | 844 | %% 27/05/08 %% k solidintersectioncolor length lt { |
|---|
| | 845 | %% 27/05/08 %% solidintersectioncolor k get cvx exec |
|---|
| | 846 | %% 27/05/08 %% } { |
|---|
| | 847 | %% 27/05/08 %% solidintersectioncolor 0 get cvx exec |
|---|
| | 848 | %% 27/05/08 %% } ifelse |
|---|
| | 849 | %% 27/05/08 %% 0 1 n 1 sub { |
|---|
| | 850 | %% 27/05/08 %% /j exch def |
|---|
| | 851 | %% 27/05/08 %% face_a_dessiner j getp3d |
|---|
| | 852 | %% 27/05/08 %% face_a_dessiner j 1 add n mod getp3d |
|---|
| | 853 | %% 27/05/08 %% solidintersectionplan k get segment_inter_plan { |
|---|
| | 854 | %% 27/05/08 %% 1 dict begin |
|---|
| | 855 | %% 27/05/08 %% /table exch def |
|---|
| | 856 | %% 27/05/08 %% table length 6 eq { |
|---|
| | 857 | %% 27/05/08 %% /lignedeniveau table store |
|---|
| | 858 | %% 27/05/08 %% exit |
|---|
| | 859 | %% 27/05/08 %% } { |
|---|
| | 860 | %% 27/05/08 %% /lignedeniveau [ |
|---|
| | 861 | %% 27/05/08 %% lignedeniveau aload pop |
|---|
| | 862 | %% 27/05/08 %% table 0 getp3d |
|---|
| | 863 | %% 27/05/08 %% ] store |
|---|
| | 864 | %% 27/05/08 %% } ifelse |
|---|
| | 865 | %% 27/05/08 %% end |
|---|
| | 866 | %% 27/05/08 %% } if |
|---|
| | 867 | %% 27/05/08 %% } for |
|---|
| | 868 | %% 27/05/08 %% |
|---|
| | 869 | %% 27/05/08 %% %% dessin de la ligne |
|---|
| | 870 | %% 27/05/08 %% lignedeniveau length 4 ge { |
|---|
| | 871 | %% 27/05/08 %% [lignedeniveau aload pop sortp3d] ligne3d |
|---|
| | 872 | %% 27/05/08 %% } if |
|---|
| | 873 | %% 27/05/08 %% grestore |
|---|
| | 874 | %% 27/05/08 %% } for |
|---|
| | 875 | %% 27/05/08 %% } if |
|---|
| | 876 | %% 27/05/08 %% |
|---|
| | 877 | %% 27/05/08 %% end |
|---|
| | 878 | %% 27/05/08 %% } if |
|---|
| | 879 | %% 27/05/08 %% end |
|---|
| | 880 | %% 27/05/08 %% } def |
|---|