/nodedictknown {
3 dict begin
/litteral exch def
/node_name exch def
/node_name node_name (node_dict) append store
node_name cvlit cvx exec litteral known
end
} def
%% syntaxe : dir string dimnode -> renvoie la dimension, en unite jps,
%% du node "string" par rapport a la normale a la direction. note : dir est de
%% norme 1
/dimnode {
10 dict begin
/lenode exch def
/diru defpoint
diru normal /dirv defpoint
lenode /noderayon nodedictknown {
%% noeud circulaire
lenode /noderayon nodepoint 2 mul
} {
lenode /ddia nodedictknown {
%% noeud diamond ou oval
lenode /udia nodepoint /A defpoint
lenode /ldia nodepoint /B defpoint
lenode /rdia nodepoint /C defpoint
lenode /ddia nodepoint /D defpoint
/k1 A B vecteur dirv scalprod def
/k2 A C vecteur dirv scalprod def
/k3 A D vecteur dirv scalprod def
0 k1 max k2 max k3 max
0 k1 min k2 min k3 min
sub
} {
%% noeud rectangulaire
lenode /ul nodepoint /A defpoint
lenode /ur nodepoint /B defpoint
lenode /dl nodepoint /C defpoint
lenode /dr nodepoint /D defpoint
/k1 A B vecteur dirv scalprod abs def
/k2 A C vecteur dirv scalprod abs def
/k3 A D vecteur dirv scalprod abs def
0 k1 max k2 max k3 max
} ifelse
} ifelse
end
} def
%% syntaxe : dir tnode dimtnode -> renvoie la dimension, en unite jps,
%% du tnode par rapport a la normale a la direction. note : dir est de
%% norme 1
/dimsimpletnode {
10 dict begin
/letnode exch def
/diru defpoint
/contenu letnode get_contenu_noeud def
/mode letnode get_type_noeud def
/drawpicture false def
(tmpn@de) mode cvx exec
letnode get_optaffcontenu_array dup length 1 ge {
cvx /options_picture exch def
} {
pop
} ifelse
contenu 0 0 letnode get_affichage_noeud exec
diru (tmpn@de) dimnode
end
} def
%% 07/03/06 %% /nodedictknown {
%% 07/03/06 %% 3 dict begin
%% 07/03/06 %% /litteral exch def
%% 07/03/06 %% /node_name exch def
%% 07/03/06 %% /node_name node_name (node_dict) append store
%% 07/03/06 %% node_name cvlit cvx exec litteral known
%% 07/03/06 %% end
%% 07/03/06 %% } def
%% 07/03/06 %%
%% 07/03/06 %% %% syntaxe : dir string dimnode -> renvoie la dimension, en unite jps,
%% 07/03/06 %% %% du node "string" par rapport a la normale a la direction. note : dir est de
%% 07/03/06 %% %% norme 1
%% 07/03/06 %% /dimnode {
%% 07/03/06 %% 10 dict begin
%% 07/03/06 %% /lenode exch def
%% 07/03/06 %% /diru defpoint
%% 07/03/06 %% diru normal /dirv defpoint
%% 07/03/06 %% lenode /noderayon nodedictknown {
%% 07/03/06 %% %% noeud circulaire
%% 07/03/06 %% lenode /noderayon nodepoint 2 mul
%% 07/03/06 %% } {
%% 07/03/06 %% lenode /ddia nodedictknown {
%% 07/03/06 %% %% noeud diamond ou oval
%% 07/03/06 %% lenode /udia nodepoint /A defpoint
%% 07/03/06 %% lenode /ldia nodepoint /B defpoint
%% 07/03/06 %% lenode /rdia nodepoint /C defpoint
%% 07/03/06 %% lenode /ddia nodepoint /D defpoint
%% 07/03/06 %% /k1 A B vecteur dirv scalprod def
%% 07/03/06 %% /k2 A C vecteur dirv scalprod def
%% 07/03/06 %% /k3 A D vecteur dirv scalprod def
%% 07/03/06 %% 0 k1 max k2 max k3 max
%% 07/03/06 %% 0 k1 min k2 min k3 min
%% 07/03/06 %% sub
%% 07/03/06 %% } {
%% 07/03/06 %% %% noeud rectangulaire
%% 07/03/06 %% lenode /ul nodepoint /A defpoint
%% 07/03/06 %% lenode /ur nodepoint /B defpoint
%% 07/03/06 %% lenode /dl nodepoint /C defpoint
%% 07/03/06 %% lenode /dr nodepoint /D defpoint
%% 07/03/06 %% /k1 A B vecteur dirv scalprod def
%% 07/03/06 %% /k2 A C vecteur dirv scalprod def
%% 07/03/06 %% /k3 A D vecteur dirv scalprod def
%% 07/03/06 %% 0 k1 max k2 max k3 max
%% 07/03/06 %% 0 k1 min k2 min k3 min
%% 07/03/06 %% sub
%% 07/03/06 %% } ifelse
%% 07/03/06 %% } ifelse
%% 07/03/06 %% end
%% 07/03/06 %% } def
%% 07/03/06 %%
%% 07/03/06 %% %% syntaxe : dir tnode dimtnode -> renvoie la dimension, en unite jps,
%% 07/03/06 %% %% du tnode par rapport a la normale a la direction. note : dir est de
%% 07/03/06 %% %% norme 1
%% 07/03/06 %% /dimsimpletnode {
%% 07/03/06 %% 10 dict begin
%% 07/03/06 %% /letnode exch def
%% 07/03/06 %% /diru defpoint
%% 07/03/06 %% /contenu letnode get_contenu_noeud def
%% 07/03/06 %% /mode letnode get_type_noeud def
%% 07/03/06 %% /drawpicture false def
%% 07/03/06 %% (tmpn@de) mode cvx exec
%% 07/03/06 %% contenu 0 0 letnode get_affichage_noeud exec
%% 07/03/06 %% diru (tmpn@de) dimnode
%% 07/03/06 %% end
%% 07/03/06 %% } def
|