From e92a34caec5eab0a4c9409d6f0b8372d43dd0684 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 5 Mar 2014 23:17:53 +0000 Subject: pst-intersect (4mar14) git-svn-id: svn://tug.org/texlive/trunk@33099 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/generic/pst-intersect/pst-intersect.tex | 107 ++++++++++++--------- 1 file changed, 61 insertions(+), 46 deletions(-) (limited to 'Master/texmf-dist/tex/generic/pst-intersect') diff --git a/Master/texmf-dist/tex/generic/pst-intersect/pst-intersect.tex b/Master/texmf-dist/tex/generic/pst-intersect/pst-intersect.tex index 25ef91c07fd..099d487e748 100644 --- a/Master/texmf-dist/tex/generic/pst-intersect/pst-intersect.tex +++ b/Master/texmf-dist/tex/generic/pst-intersect/pst-intersect.tex @@ -9,7 +9,7 @@ %% This is a generated file. %% %% Project: pst-intersect -%% Version: 0.1 (2014/02/19) +%% Version: 0.3 (2014/03/04) %% %% Copyright (C) 2007-2014 by Christoph Bersch %% @@ -45,43 +45,6 @@ \def\pst@intersectdict{tx@IntersectDict begin } \def\PIT@dict#1{\pst@intersectdict #1 end} \def\PIT@Verb#1{\pst@Verb{\PIT@dict{#1} }}% - -\def\pssavebezier{\pst@object{pssavebezier}} -\def\pssavebezier@i#1{% - \begin@OpenObj - \PIT@checkname{#1}% - \addto@pscode{ /\PIT@name{#1} }% - \pst@getcoors[\pssavebezier@ii%] -}% -\def\pssavebezier@ii{% - \addto@pscode{% - counttomark 20 gt { counttomark 20 sub { pop } repeat } if - counttomark 2 idiv 1 sub - \psk@plotpoints\space exch - \txFunc@BezierCurve - \ifshowpoints \txFunc@BezierShowPoints \else pop \fi - tx@FuncDict begin Points aload pop end - }% - \let\use@pscode\PIT@use@pscode - \end@OpenObj - \PIT@Verb{% - [ count 1 sub 1 roll ] ArrayToPointArray def - }% -\ignorespaces}% -\def\psGetIsectCenter#1#2#3{% - \pst@intersectdict - \PIT@name{#1} /\PIT@name{#2@t} get #3 1 sub get - \PIT@name{#1} /\PIT@name{#2} get - dup IsPath { - PreparePath exch dup 3 1 roll cvi get - } if - PointArrayToArray - tx@FuncDict begin 2 dict begin - dup length 2 idiv 1 sub /BezierType exch def /Points exch def GetBezierCoor - end end - end - \tx@UserCoor /#2#3.y exch def /#2#3.x exch def -}% \define@key[psset]{intersect}{tstart}{% \pst@checknum{#1}\PIT@key@tstart } @@ -99,6 +62,7 @@ }% \newif\PIT@saveintersections \define@boolkey[psset]{intersect}[PIT@]{saveintersections}[true]{} + \psset[intersect]{% tstart=-1, tstop=-1, @@ -135,6 +99,28 @@ \@pstrickserr{Unexpected empty argument!}\@ehpb \fi }% +\def\pssavebezier{\pst@object{pssavebezier}} +\def\pssavebezier@i#1{% + \begin@OpenObj + \PIT@checkname{#1}% + \addto@pscode{ /\PIT@name{#1} }% + \pst@getcoors[\pssavebezier@ii%] +}% +\def\pssavebezier@ii{% + \addto@pscode{% + counttomark 20 gt { counttomark 20 sub { pop } repeat } if + counttomark 2 idiv 1 sub + \psk@plotpoints\space exch + \txFunc@BezierCurve + \ifshowpoints \txFunc@BezierShowPoints \else pop \fi + tx@FuncDict begin Points aload pop end + }% + \let\use@pscode\PIT@use@pscode + \end@OpenObj + \PIT@Verb{% + [ count 1 sub 1 roll ] ArrayToPointArray def + }% +\ignorespaces}% \def\pssavepath{\pst@object{pssavepath}}% \long\def\pssavepath@i#1#2{% \begin@SpecialObj @@ -189,7 +175,6 @@ } if ToUnitInterval Portion { aload pop } forall - % reverse the point order counttomark -2 4 { 2 roll } for counttomark 2 sub 2 idiv \psk@plotpoints @@ -319,14 +304,23 @@ \PIT@@name\space /Points get ArrayToPointArray end - tx@NodeDict begin - dup length 1 1 3 -1 roll { - 2 copy 1 sub get cvx - false 3 -1 roll (N@\PIT@key@name) exch 20 string cvs - \pst@intersectdict strcat end cvn + dup length 1 1 3 -1 roll { + 2 copy 1 sub get + \ifPst@saveNodeCoors + \pst@intersectdict + 2 copy aload pop \tx@UserCoor 3 -1 roll + 20 string cvs (N-\PIT@key@name) exch strcat dup + (.y) strcat cvn exch (.x) strcat cvn + end + 4 -1 roll def exch def + \fi + cvx + false 3 -1 roll (N@\PIT@key@name) exch 20 string cvs + \pst@intersectdict strcat end cvn + tx@NodeDict begin 10 {InitPnode} /NodeScale {} def NewNode - } for - end + end + } for pop }% \fi @@ -341,6 +335,27 @@ \end@SpecialObj \fi }% +\def\psGetIsectCenter#1#2#3{% + \pst@intersectdict + \ifx\\#2\\% + \PIT@name{#1} /Points get dup #3 1 sub 2 mul get exch #3 2 mul 1 sub get + \else + \PIT@name{#1} /\PIT@name{#2@t} get #3 1 sub get + \PIT@name{#1} /\PIT@name{#2} get + dup IsPath { + PreparePath dup length 1 sub + 3 -1 roll dup dup + cvi sub 4 1 roll + cvi sub get + } if + PointArrayToArray + tx@FuncDict begin 2 dict begin + dup length 2 idiv 1 sub /BezierType exch def /Points exch def GetBezierCoor + end end + \fi + end + \tx@UserCoor /I-#1#3.y exch def /I-#1#3.x exch def +}% \catcode`\@=\PstAtCode\relax \endinput %% -- cgit v1.2.3