Changeset 7

Show
Ignore:
Timestamp:
02/20/08 15:39:01 (10 months ago)
Author:
jpv
Message:

Amelioration des performances par la prise en compte du booléen aretescachees
lors du dessin

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/solides.pro

    r4 r7  
    11%! 
    22% PostScript prologue for pst-solides3d.tex. 
    3 % Version 3.02, 2008/01/17 
     3% Version 3.04, 2008/02/20 
    44% 
    55%% COPYRIGHT 2008 by Jean-Paul Vignault, Manuel Luque 
     
    41064106         /k1 F i j get_ij def              %% indice sommet1 
    41074107         /k2 F i j 1 add n mod get_ij def  %% indice sommet2 
    4108          A k1 k2 true put_ij 
    4109          A k2 k1 true put_ij 
     4108%         A k1 k2 true put_ij 
     4109%         A k2 k1 true put_ij 
    41104110      } for 
    41114111   } if 
     
    41304130} def 
    41314131 
    4132 %% syntaxe : solid drawsolid 
     4132%% syntaxe : solid array drawsolid 
     4133%% array est en option, il indique les faces triees 
    41334134/drawsolid { 
    4134 7 dict begin 
     41358 dict begin 
     4136   dup issolid not { 
     4137      /ordre exch def 
     4138   } if 
    41354139   /solid exch def 
    41364140   solid issolid not { 
     
    41464150      %% tableau des aretes 
    41474151      /A [ 
    4148          n { 
    4149             [n {false} repeat] 
    4150          } repeat 
    4151       ] def 
    4152  
    4153       peintrealgorithme { 
    4154          %% tri des indices des faces par distance decroissante 
    4155          [ 
    4156             0 1 F length 1 sub { 
    4157                /i exch def 
    4158                solid i solidcentreface 
    4159                GetCamPos 
    4160                distance3d 
    4161             } for 
    4162          ] doublequicksort pop reverse 
    4163       } { 
    4164          [ 
    4165             0 1 F length 1 sub { 
    4166             } for 
    4167          ] 
    4168       } ifelse 
    4169       /ordre exch def 
     4152         aretescachees { 
     4153            n { 
     4154               [n {false} repeat] 
     4155            } repeat 
     4156         } if 
     4157       ] def 
     4158 
     4159      currentdict /ordre known not { 
     4160         peintrealgorithme { 
     4161            %% tri des indices des faces par distance decroissante 
     4162            [ 
     4163               0 1 F length 1 sub { 
     4164                  /i exch def 
     4165                  solid i solidcentreface 
     4166                  GetCamPos 
     4167                  distance3d 
     4168               } for 
     4169            ] doublequicksort pop reverse 
     4170         } { 
     4171            [ 
     4172               0 1 F length 1 sub { 
     4173               } for 
     4174            ] 
     4175         } ifelse 
     4176         /ordre exch def 
     4177      } if 
    41704178 
    41714179      0 1 F length 1 sub { 
     
    42364244%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    42374245 
    4238 %%%%% ### dualpolyedreregulier ### 
     4246%%%%% ### dualpolyedre ### 
    42394247%% syntaxe : solid dualpolyedreregulier --> solid 
    42404248%% syntaxe : solid r dualpolyedreregulier --> solid