home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-05-26 | 73.1 KB | 1,993 lines |
- Newsgroups: comp.sources.x
- From: envbvs@epb9.lbl.gov (Brian V. Smith)
- Subject: v19i117: xfig - Draw amd manipulate objects in an X-Window, Part05/27
- Message-ID: <1993May21.021310.5213@sparky.imd.sterling.com>
- X-Md4-Signature: f904a840db4f4366ca20436fcd483a15
- Sender: chris@sparky.imd.sterling.com (Chris Olson)
- Organization: Sterling Software
- Date: Fri, 21 May 1993 02:13:10 GMT
- Approved: chris@sparky.imd.sterling.com
-
- Submitted-by: envbvs@epb9.lbl.gov (Brian V. Smith)
- Posting-number: Volume 19, Issue 117
- Archive-name: xfig/part05
- Environment: X11
- Supersedes: xfig: Volume 16, Issue 6-30,39
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 5 (of 27)."
- # Contents: Examples/circuit.fig.uu Examples/experiment.fig.uu
- # Examples/flow.fig.uu Examples/housecheck.fig.uu
- # Examples/orifices.fig.uu d_intspline.c e_delete.c e_deletept.c
- # f_save.c w_mousefun.c
- # Wrapped by envbvs@epb9.lbl.gov.lbl.gov on Mon May 3 12:05:48 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'Examples/circuit.fig.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Examples/circuit.fig.uu'\"
- else
- echo shar: Extracting \"'Examples/circuit.fig.uu'\" \(6494 characters\)
- sed "s/^X//" >'Examples/circuit.fig.uu' <<'END_OF_FILE'
- Xbegin 444 circuit.fig
- XM(T9)1R`R+C$*.#`@,@HQ(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@
- XM-SDS(#$V-"`T(#0@-SDS(#$V-"`W.3<@,38U"C$@,R`P(#$@+3$@,"`P(#(Q
- XM(#`N,#`P(#$@,"XP,#`@-34T(#,R."`S(#,@-34T(#,R."`U-3<@,S(X"C$@
- XM,R`P(#$@+3$@,"`P(#(Q(#`N,#`P(#$@,"XP,#`@,C$U(#0R."`S(#,@,C$U
- XM(#0R."`R,3@@-#(X"C$@,R`P(#$@+3$@,"`P(#(Q(#`N,#`P(#$@,"XP,#`@
- XM,38Y(#0W-2`S(#,@,38Y(#0W-2`Q-S(@-#<U"C$@,R`P(#$@+3$@,"`P(#`@
- XM,"XP,#`@,2`P+C`P,"`T-2`T-S0@-"`T(#0U(#0W-"`T.2`T-S0*,2`S(#`@
- XM,2`M,2`P(#`@,"`P+C`P,"`Q(#`N,#`P(#0U(#0R.2`T(#0@-#4@-#(Y(#0Y
- XM(#0S,`HQ(#,@,"`Q("TQ(#`@,"`R,2`P+C`P,"`Q(#`N,#`P(#0Q-"`S,#0@
- XM,R`S(#0Q-"`S,#0@-#$W(#,P-`HQ(#,@,"`Q("TQ(#`@,"`R,2`P+C`P,"`Q
- XM(#`N,#`P(#0Q-2`T-"`S(#,@-#$U(#0T(#0Q."`T-`HQ(#,@,"`Q("TQ(#`@
- XM,"`R,2`P+C`P,"`Q(#`N,#`P(#4U-"`S,#4@,R`S(#4U-"`S,#4@-34W(#,P
- XM-0HQ(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@.#0@-#<T(#0@-"`X
- XM-"`T-S0@.#@@-#<U"C$@,R`P(#$@+3$@,"`P(#`@,"XP,#`@,2`P+C`P,"`Q
- XM-#0@-#<T(#0@-"`Q-#0@-#<T(#$T."`T-S0*,2`S(#`@,2`M,2`P(#`@,"`P
- XM+C`P,"`Q(#`N,#`P(#$Y,B`T-S0@-"`T(#$Y,B`T-S0@,3DV(#0W-0HQ(#,@
- XM,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@,C,X(#0W-"`T(#0@,C,X(#0W
- XM-"`R-#(@-#<U"C$@,R`P(#$@+3$@,"`P(#`@,"XP,#`@,2`P+C`P,"`Q.3(@
- XM-30Y(#0@-"`Q.3(@-30Y(#$Y-B`U-3`*,2`S(#`@,2`M,2`P(#`@,"`P+C`P
- XM,"`Q(#`N,#`P(#(S."`U-#D@-"`T(#(S."`U-#D@,C0R(#4U,`HQ(#,@,"`Q
- XM("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@-SDS(#DT(#0@-"`W.3,@.30@-SDW
- XM(#DU"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`W-30@,38T(#<X
- XM.2`Q-C0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*
- XM"2`U-30@,S(Y(#4Y-"`S,CD@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
- XM,"XP,#`@,"`P(#`*"2`U-30@,S`T(#4U-"`S.3D@-3DT(#,Y.2`Y.3DY(#DY
- XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,Q-"`S-30@-3DT
- XM(#,U-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)
- XM(#(Q-"`T,CD@-#,T(#0R.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P
- XM+C`P,"`P(#`@,`H)(#$V.2`T-S0@,38Y(#4T.2`Q.#D@-30Y(#DY.3D@.3DY
- XM.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,C$T(#,X-"`R,30@
- XM-#(Y(#0Y(#0R.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
- XM(#`@,`H)(#(T,R`T-S0@,C<T(#0W-"`R-S0@,S@U(#DY.3D@.3DY.0HR(#$@
- XM,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-#$T(#,P,R`T,30@,C@T(#0R
- XM,2`R-S,@-#`V(#(V,R`T,C$@,C4S(#0P-B`R-#,@-#(Q(#(S,R`T,#8@,C(S
- XM"@D@-#(Q(#(Q,R`T,#8@,C`S(#0Q-"`Q.3,@-#$T(#$W,R`Y.3DY(#DY.3D*
- XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,0H),"`P(#$N,#`P(#0N,#`P
- XM(#@N,#`P"@D@-#(T(#(S-"`U.30@,C,T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ
- XM(#`@,"`P(#`N,#`P(#`@,"`P"@D@-#$T(#0T(#0Q-"`V,R`T,#<@-S0@-#(R
- XM(#@T(#0P-R`Y-"`T,C(@,3`T(#0P-R`Q,30@-#(R(#$R-`H)(#0P-R`Q,S0@
- XM-#(R(#$T-"`T,30@,34T(#0Q-"`Q-S0@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@
- XM,"`P(#`@,"XP,#`@,"`P(#`*"2`Q-S0@,C0@,3<T(#,X-"`S,30@,S@T(#,Q
- XM-"`R-"`Q-S0@,C0@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@,"`P(#`@,"XP,#`@
- XM,"`P(#`*"2`U.30@,C0@-3DT(#0R-"`W-30@-#(T(#<U-"`R-"`U.30@,C0@
- XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`S,30@
- XM-#0@-3DT(#0T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`R,2`P+C`P,"`P
- XM(#`@,`H)(#,Q-2`S,#0@-3DT(#,P-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
- XM(#`@,"`P+C`P,"`P(#`@,`H)(#<Y(#0W-"`T.2`T-S0@.3DY.2`Y.3DY"C(@
- XM,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q-#D@-#<U(#$X.2`T-S4@
- XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q.34@
- XM-#<Q(#(S-2`T-3`@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@
- XM,"`P(#`*"2`Q.34@-30V(#(S-2`U,C4@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@
- XM,"`P(#`@,"XP,#`@,"`P(#`*"2`R-#0@-30Y(#0S-"`U-#D@.3DY.2`Y.3DY
- XM"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`W-30@.30@-S@Y(#DT
- XM(#DY.3D@.3DY.0HS(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,`H)(#0S-"`T
- XM,CD@-#4T(#0S.2`T,S0@-#4Y(#0Q-"`T-30@-#,T(#0T-"`T-30@-#4Y(#0S
- XM-"`T-SD@-#$T(#0W-"`T,S0@-#8T(#0U-"`T-SD@-#,T(#0Y.2`T,30@-#DT
- XM(#0S-"`T.#0@-#4T(#0Y.2`T,S0@-3$Y(#0Q-"`U,30@-#,T(#4P-"`T-30@
- XM-3$Y(#0S-"`U,SD@-#$T(#4S-"`T,S0@-3(T(#0U-"`U,SD@-#,T(#4T.2`Y
- XM.3DY(#DY.3D*"2`M-C4N,#`P("TU,"XP,#`@-#0X+C$S-B`T,S$N,3<V(#0U
- XM,RXQ,S8@-#,S+C8W-B`T-34N-#4W(#0T-RXY-SD*"2`T-#(N,34V(#0U-BXW
- XM-#$@-#(X+C`U-B`T-C`N-C0W(#0Q-"XT,CD@-#4W+CDQ,"`T,3,N-3,T(#0T
- XM.2XW-3D*"2`T,C<N,#DW(#0T,RXS-S@@-#0Q+C<Q-R`T-#0N-CDV(#0U,RXS
- XM-C$@-#4P+C`Q-"`T-30N-S(S(#0V.2XQ-C<*"2`T-#(N,34V(#0W-BXW-#$@
- XM-#(X+C`U-B`T.#`N-C0W(#0Q-"XT,CD@-#<W+CDQ,"`T,3,N-3,T(#0V.2XW
- XM-3D*"2`T,C<N,#DW(#0V,RXS-S@@-#0Q+C<Q-R`T-C0N-CDV(#0U,RXS-C$@
- XM-#<P+C`Q-"`T-30N-S(S(#0X.2XQ-C<*"2`T-#(N,34V(#0Y-BXW-#$@-#(X
- XM+C`U-B`U,#`N-C0W(#0Q-"XT,CD@-#DW+CDQ,"`T,3,N-3,T(#0X.2XW-3D*
- XM"2`T,C<N,#DW(#0X,RXS-S@@-#0Q+C<Q-R`T.#0N-CDV(#0U,RXS-C$@-#DP
- XM+C`Q-"`T-30N-S(S(#4P.2XQ-C<*"2`T-#(N,34V(#4Q-BXW-#$@-#(X+C`U
- XM-B`U,C`N-C0W(#0Q-"XT,CD@-3$W+CDQ,"`T,3,N-3,T(#4P.2XW-3D*"2`T
- XM,C<N,#DW(#4P,RXS-S@@-#0Q+C<Q-R`U,#0N-CDV(#0U,RXS-C$@-3$P+C`Q
- XM-"`T-30N-S(S(#4R.2XQ-C<*"2`T-#(N,34V(#4S-BXW-#$@-#(X+C`U-B`U
- XM-#`N-C0W(#0Q-"XT,CD@-3,W+CDQ,"`T,3,N-3,T(#4R.2XW-3D*"2`T,C<N
- XM,#DW(#4R,RXS-S@@-#0Q+C<Q-R`U,C0N-CDV(#0U-"XV-#D@-3,Q+C@P,"`T
- XM-3,N-38U(#4T,RXX,S`*"2`T-#@N-38U(#4T-BXS,S`@+38U+C`P,"`M-3`N
- XM,#`P"C,@,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P"@D@.#8@-#<Q(#$P-"`T
- XM-30@,3(T(#0Y-"`Q-#(@-#<V(#DY.3D@.3DY.0H)("TR-34N,#`P(#4U+C`P
- XM,"`Y,RXU,#0@-#4W+C$X.2`Y."XP,#0@-#4R+CDS.2`Q,3@N-#0Q(#0U-BXU
- XM-34*"2`Q,#DN.#`T(#0Y,2XV.38@,3,P+C`V,2`T.30N.3@S(#$S-"XU-C$@
- XM-#DP+C0X,R`M,C4U+C`P,"`U-2XP,#`*-"`P(#`@,3(@,"`M,2`P(#`N,#`P
- XM(#0@,3(@,S0@,C`Y(#$Y-"!3=7!P;'D!"C0@,"`P(#$R(#`@+3$@,"`P+C`P
- XM,"`T(#D@,S(@,C`Y(#$V.2!0;W=E<@$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P
- XM(#0@.2`T,B`R,30@,30T("LO+2`Q-78@`0HT(#`@,"`Q,B`P("TQ(#`@,"XP
- XM,#`@-"`Y(#0T(#(V(#0U-R`Q,C!604,!"C0@,"`P(#$R(#`@+3$@,"`P+C`P
- XM,"`T(#$R(#(Y(#0Q.2`Q-S0@*"LU=BD!"C0@,"`P(#$R(#`@+3$@,"`P+C`P
- XM,"`T(#D@-S0@-#(Y(#(Q.2`Q,&L@;75L=&DM='5R;@$*-"`P(#`@,3(@,"`M
- XM,2`P(#`N,#`P(#0@.2`Q."`T,CD@,3`T(#(R:P$*-"`P(#`@,3(@,"`M,2`P
- XM(#`N,#`P(#0@.2`R-B`R-CD@,S4Y("TQ-78!"C0@,"`P(#$R(#`@+3$@,"`P
- XM+C`P,"`T(#D@,C8@-C`T(#,U.2`M,35V`0HT(#`@,"`Q,B`P("TQ(#`@,"XP
- XM,#`@-"`Y(#4V(#8P-"`S.3D@0V%S92!'3D0!"C0@,"`P(#$R(#`@+3$@,"`P
- XM+C`P,"`T(#D@-#0@-C`T(#,S-"!#;VUM;VX!"C0@,"`P(#$R(#`@+3$@,"`P
- XM+C`P,"`T(#D@-#0@-C`T(#,P.2!#;VUM;VX!"C0@,"`P(#$R(#`@+3$@,"`P
- XM+C`P,"`T(#D@-C8@-C`T(#(S.2`P+35V($-O;G1R;VP!"C0@,"`P(#$R(#`@
- XM+3$@,"`P+C`P,"`T(#D@,C4@-3DY(#0Y("LQ-78!"C0@,"`P(#$R(#`@+3$@
- XM,"`P+C`P,"`T(#D@,C<@,C8Y(#,P.2!'3D0!"C0@,"`P(#$R(#`@+3$@,"`P
- XM+C`P,"`T(#D@,C4@,C8Y(#0Y("LQ-78!"C0@,"`P(#$R(#`@+3$@,"`P+C`P
- XM,"`T(#D@-#8@-#8Y(#0X-"!3;VQE;F]I9"`!"C0@,"`P(#$R(#`@+3$@,"`P
- XM+C`P,"`T(#D@,S`@-#<T(#4P-"!686QV90$*-"`P(#`@,3(@,"`M,2`P(#`N
- XM,#`P(#0@.2`Q-R`R,#0@,S<Y($%#`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@
- XM-"`Y(#$W(#(V-"`S-SD@04,!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#4@
- XM-R`W-#$@.3<@*P$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`R-B`W,#`@
- XM,3$V(#`M-78!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#,U(#8Y,"`Q
- XM,S@@3W5T<'5T`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#0T(#8X,"`Q
- XM-C4@0V]M;6]N`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#0T(#<Y(#4Q
- X+.2`R02!&=7-E`0HT
- X`
- Xend
- END_OF_FILE
- if test 6494 -ne `wc -c <'Examples/circuit.fig.uu'`; then
- echo shar: \"'Examples/circuit.fig.uu'\" unpacked with wrong size!
- fi
- # end of 'Examples/circuit.fig.uu'
- fi
- if test -f 'Examples/experiment.fig.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Examples/experiment.fig.uu'\"
- else
- echo shar: Extracting \"'Examples/experiment.fig.uu'\" \(7187 characters\)
- sed "s/^X//" >'Examples/experiment.fig.uu' <<'END_OF_FILE'
- Xbegin 444 experiment.fig
- XM(T9)1R`R+C$*.#`@,@HQ(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@
- XM-#,T(#$P.2`U(#4@-#,T(#$P.2`T,SD@,3`Y"C$@,R`P(#$@+3$@,"`P(#`@
- XM,"XP,#`@,2`P+C`P,"`U-3D@,3@T(#4@-2`U-3D@,3@T(#4V-"`Q.#0*,2`S
- XM(#`@,2`M,2`P(#`@,"`P+C`P,"`Q(#`N,#`P(#4U.2`Q,C0@-2`U(#4U.2`Q
- XM,C0@-38T(#$R-`HQ(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@-#`Y
- XM(#$U-"`U(#4@-#`Y(#$U-"`T,30@,34T"C$@,R`P(#(@+3$@,"`P(#`@,"XP
- XM,#`@,2`P+C`P,"`Q,30@,34T(#(P(#(P(#$Q-"`Q-30@,3,T(#$U-`HR(#$@
- XM,"`R("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@.30@,34T(#<Y(#$U-"`Y.3DY
- XM(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#$@,`H),"`P(#(N,#`P
- XM(#@N,#`P(#$V+C`P,`H)(#<S-"`R-C0@-S,T(#(X-"`Y.3DY(#DY.3D*,B`Q
- XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0S,2`Q,3(@-#,W(#$P-B`Y
- XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0S,2`Q
- XM,#8@-#,X(#$Q,R`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
- XM(#`@,`H)(#4U-B`Q.#<@-38R(#$X,2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
- XM(#`@,"`P+C`P,"`P(#`@,`H)(#4U-B`Q.#$@-38S(#$X."`Y.3DY(#DY.3D*
- XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#4U-B`Q,C$@-38S(#$R
- XM."`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#4U
- XM-B`Q,C<@-38R(#$R,2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P
- XM,"`P(#`@,`H)(#0P-B`Q-3$@-#$S(#$U."`Y.3DY(#DY.3D*,B`Q(#`@,2`M
- XM,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0P-B`Q-3<@-#$R(#$U,2`Y.3DY(#DY
- XM.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$P.2`Q-S0@,3`T
- XM(#$X-"`Q,C0@,3@T(#$Q.2`Q-S0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P
- XM(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#$P-"`Q
- XM-30@,3(T(#$U-"`Y.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P
- XM(#`@,`H)(#$U-"`Q,S0@,34T(#$W-"`Q-S0@,3<T(#$W-"`Q,S0@,34T(#$S
- XM-"`Y.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$Y
- XM-"`Q,S0@,3DT(#$W-"`R,S0@,3<T(#(S-"`Q,S0@,3DT(#$S-"`Y.3DY(#DY
- XM.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(U-"`Q,S0@,C4T
- XM(#$W-"`R.30@,3<T(#(Y-"`Q,S0@,C4T(#$S-"`Y.3DY(#DY.3D*,B`R(#`@
- XM,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,Q-"`Q,S0@,S$T(#$W-"`S-30@
- XM,3<T(#,U-"`Q,S0@,S$T(#$S-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@
- XM,"`P+C`P,"`P(#`@,`H)(#$S-"`Q-30@,34T(#$U-"`Y.3DY(#DY.3D*,B`Q
- XM(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$W-"`Q-30@,3DT(#$U-"`Y
- XM.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(S-"`Q
- XM-30@,C4T(#$U-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P
- XM(#`@,`H)(#(Y-"`Q-30@,S$T(#$U-"`Y.3DY(#DY.3D*,B`R(#`@,B`M,2`P
- XM(#`@,"`P+C`P,"`P(#`@,`H)(#0Q-"`Q,S0@-#4T(#$S-"`T-30@,3DT(#0Q
- XM-"`Q.30@-#$T(#$S-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P
- XM,"`P(#`@,`H)(#,U-"`Q-30@-#`T(#$U-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M
- XM,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0U-"`Q-30@-3$T(#$U-"`Y.3DY(#DY
- XM.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,X-"`Q-30@,S@T
- XM(#$P.2`T,CD@,3`Y(#DY.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P(#`N,#`P
- XM(#`@,"`P"@D@-#,Y(#$P.2`T.#0@,3`Y(#0X-"`Q-30@.3DY.2`Y.3DY"C(@
- XM,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`U-30@,3(T(#4Q-"`Q,C0@
- XM-3$T(#$X-"`U-30@,3@T(#DY.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P(#`N
- XM,#`P(#`@,"`P"@D@-38T(#$R-"`V-S0@,3(T(#8W-"`Q-S0@-C(T(#$W-"`Y
- XM.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#8P.2`Q
- XM-C0@-C(T(#$V-"`V,C0@,3DY(#8P.2`Q.3D@-C`Y(#$V-"`Y.3DY(#DY.3D*
- XM,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#4V-"`Q.#0@-C`Y(#$X
- XM-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#8W
- XM-"`Q-30@-S,T(#$U-"`W,S0@-#0T(#4S-"`T-#0@.3DY.2`Y.3DY"C(@,R`P
- XM(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`U,S0@-#$T(#0X-"`T,30@-#@T
- XM(#0S.2`T-#0@-#,Y(#0T-"`T,30@,SDT(#0Q-"`S.30@-#<T(#0T-"`T-S0*
- XM"2`T-#0@-#0Y(#0X-"`T-#D@-#@T(#0W-"`U,S0@-#<T(#4S-"`T,30@.3DY
- XM.2`Y.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P
- XM,"`T+C`P,"`X+C`P,`H)(#,Y-"`T-#0@,S$T(#0T-"`Y.3DY(#DY.3D*,B`Q
- XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$V-"`Q,S0@,34T(#$T-"`Y
- XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$W-"`Q
- XM,S0@,34T(#$U-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
- XM(#`@,`H)(#$W-"`Q-#0@,34T(#$V-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
- XM(#`@,"`P+C`P,"`P(#`@,`H)(#$W-"`Q-30@,34T(#$W-"`Y.3DY(#DY.3D*
- XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$W-"`Q-C0@,38T(#$W
- XM-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,0H),"`P
- XM(#$N,#`P(#0N,#`P(#@N,#`P"@D@,S8Y(#$T.2`S-CD@.#D@.3DY.2`Y.3DY
- XM"C(@,B`Q(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`U.#0@,3,Y(#4X-"`R
- XM,#D@-C0T(#(P.2`V-#0@,3,Y(#4X-"`Q,SD@.3DY.2`Y.3DY"C(@,2`P(#$@
- XM+3$@,"`P(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)
- XM(#0V-"`T,#0@-#8T(#0S-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P
- XM+C`P,"`P(#`@,0H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@-#`Y(#0U.2`T
- XM,#D@-#DY(#,X-"`U,30@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP
- XM,#`@,"`P(#$*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#4Q.2`T-3D@-3$Y
- XM(#0Y.2`U-#0@-3$T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P
- XM(#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`T,S0@,3DY(#0S-"`R
- XM-30@.3DY.2`Y.3DY"C0@,2`P(#$V(#`@+3$@,"`P+C`P,"`T(#$U(#$V,"`S
- XM-SD@-#0@17AP97)I;65N=&%L($%P<&%R871U<P$*-"`Q(#`@,3(@,"`M,2`P
- XM(#`N,#`P(#0@,3(@,34R(#8S-"`T-C0@2'5M:61I='D@86YD($\@(&-O;F-E
- XM;G1R871I;VX!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#(X(#$Q-"`Q
- XM,C0@4'5M<`$*-"`R(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`T."`V.2`Q-3<@
- XM4F]O;2!!:7(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,S@@,38T(#$Y
- XM-"!087)T:6-L90$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`T,"`Q-C0@
- XM,C`Y(%!R969I;'1E<@$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@-#,@
- XM,38T(#(R-"`H8V]A<G-E*0$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`T
- XM."`R,30@,3(T(%-I;&EC82!'96P!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T
- XM(#D@-#$@,C$T(#$Y-"!296UO=F4!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T
- XM(#D@,C0@,C$T(#(P.2!(("!/`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W
- XM(#4@,C$T(#(Q-"`R`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#,R(#(W
- XM-"`Q,C0@4'5R869I;`$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`T,2`R
- XM-S0@,3DT(%)E;6]V90$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`U,"`R
- XM-S0@,C`Y($Y/("`K4T\@`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@
- XM,C8Y(#(Q-"`R`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,S`P(#(Q
- XM-"`R`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#0Y(#,S-"`Q,30@06-T
- XM:79A=&5D`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#,V(#,S-"`Q,CD@
- XM0V%R8F]N`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#0Q(#,S-"`Q.30@
- XM4F5M;W9E`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#4S(#,S-"`R,#D@
- XM3R`@86YD($A#`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,S$W(#(Q
- XM-"`S`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q,B`W,R`S-CD@.#0@1')Y
- XM+"!#;&5A;B!!:7(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,S`@-#,T
- XM(#$R.2!686QV90$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,S@@-#,T
- XM(#DY($)Y<&%S<P$*-"`R(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`S,"`T,#D@
- XM,3<T(%9A;'9E`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#,P(#4U.2`Q
- XM,30@5F%L=F4!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,S`@-34Y(#$W
- XM-"!686QV90$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`S.2`V,30@,34Y
- XM($)U8F)L97(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#$Q-2`V,S0@
- XM-#,Y($%I<B!3=')E86T@=VET:"!P<F]P97(!"C0@,2`P(#$P(#`@+3$@,"`P
- XM+C`P,"`T(#<@-2`V-#`@-#8Y(#,!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T
- XM(#D@-#8@-#8T(#,Y.2!497-T(%-L;W0!"C0@,B`P(#$R(#`@+3$@,"`P+C`P
- XM,"`T(#D@-#,@,S`T(#0T.2!4;R!(;V]D`0HT(#(@,"`Q,B`P("TQ(#`@,"XP
- XM,#`@-"`Q,B`W,"`S-SD@-3$Y(%-A;7!L:6YG(%!O<G0!"C0@,B`P(#$R(#`@
- XM+3$@,"`P+C`P,"`T(#$Q(#4Q(#,W.2`U,SD@3R`@+"!4+"!22`$*-"`R(#`@
- XM,3`@,"`M,2`P(#`N,#`P(#0@-R`U(#,S-R`U-#4@,P$*-"`P(#`@,3(@,"`M
- XM,2`P(#`N,#`P(#0@,3(@-S`@-30Y(#4Q.2!386UP;&EN9R!0;W)T`0HT(#`@
- XM,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q,2`U,2`U-#D@-3,Y($\@("P@5"P@4D@!
- XM"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`U-3@@-30U(#,!"C0@,2`P
- XM(#$R(#`@+3$@,"`P+C`P,"`T(#D@.#<@-#,T(#(W-"!/>F]N92!'96YE<F%T
- XM;W(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#DT(#0S-"`R.30@*%5L
- X1=')A=FEO;&5T($QA;7`I`0H@
- X`
- Xend
- END_OF_FILE
- if test 7187 -ne `wc -c <'Examples/experiment.fig.uu'`; then
- echo shar: \"'Examples/experiment.fig.uu'\" unpacked with wrong size!
- fi
- # end of 'Examples/experiment.fig.uu'
- fi
- if test -f 'Examples/flow.fig.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Examples/flow.fig.uu'\"
- else
- echo shar: Extracting \"'Examples/flow.fig.uu'\" \(5945 characters\)
- sed "s/^X//" >'Examples/flow.fig.uu' <<'END_OF_FILE'
- Xbegin 444 flow.fig
- XM(T9)1R`R+C$*.#`@,@HU(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,2`P(#DR
- XM+C0P.2`R.38N.34U(#$U.2`R-S0@,30T(#(T.2`Q,C0@,C,T"@DP(#`@,2XP
- XM,#`@-"XP,#`@."XP,#`*-2`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,2`S
- XM-#0N,C(W(#(W.2XV.#(@,S`T(#(P.2`S,S0@,3DY(#,W-"`R,#0*"3`@,"`Q
- XM+C`P,"`T+C`P,"`X+C`P,`HU(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`Q
- XM(#0P,RXX.3$@,S`P+C0Q,R`S,SD@,C8Y(#,U.2`R-#0@,SDT(#(R.0H),"`P
- XM(#$N,#`P(#0N,#`P(#@N,#`P"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P
- XM(#`*"2`R,SD@,3$Y(#,S.2`Q,3D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P
- XM(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#$U.2`S
- XM-SD@,34Y(#0U.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
- XM(#$@,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,C@Y(#4Y(#(X.2`Y-"`Y
- XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#$@,`H),"`P(#$N
- XM,#`P(#0N,#`P(#@N,#`P"@D@,30Y(#4Y(#$T.2`Y-"`Y.3DY(#DY.3D*,B`Q
- XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,0H),"`P(#$N,#`P(#0N,#`P(#@N
- XM,#`P"@D@-#(Y(#0Q-"`T,CD@,S<Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
- XM,"`P(#`N,#`P(#`@,"`P"@D@-#(Y(#DY(#0R.2`U.2`U-3D@-3D@-34Y(#0Y
- XM.2`T,CD@-#DY(#0R.2`T-3D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
- XM,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#0R.2`Q,SD@
- XM-#(Y(#$W-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#$@
- XM,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,C@Y(#$S.2`R.#D@,3<T(#DY
- XM.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,2`P"@DP(#`@,2XP
- XM,#`@-"XP,#`@."XP,#`*"2`Q-#D@,3,Y(#$T.2`Q-S0@.3DY.2`Y.3DY"C(@
- XM,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`S-SD@-#$Y(#0W.2`T,3D@
- XM-#<Y(#0U.2`S-SD@-#4Y(#,W.2`T,3D@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@
- XM,"`P(#`@,"XP,#`@,"`P(#`*"2`S-SD@.3D@-#<Y(#DY(#0W.2`Q,SD@,S<Y
- XM(#$S.2`S-SD@.3D@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@,"`P(#`@,"XP,#`@
- XM,"`P(#`*"2`R,SD@.3D@,S,Y(#DY(#,S.2`Q,SD@,C,Y(#$S.2`R,SD@.3D@
- XM.3DY.2`Y.3DY"C(@,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Y.2`Y
- XM.2`Q.3D@.3D@,3DY(#$S.2`Y.2`Q,SD@.3D@.3D@.3DY.2`Y.3DY"C(@,B`P
- XM(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`W.2`Q-SD@-#DY(#$W.2`T.3D@
- XM,S<Y(#<Y(#,W.2`W.2`Q-SD@.3DY.2`Y.3DY"C,@,R`P(#$@+3$@,"`P(#`@
- XM,"XP,#`@,"`P"@D@,C0Y(#(P.2`R,30@,C(T(#(P.2`R-#0@,C(T(#(V.2`S
- XM,30@,C4Y(#,Q.2`R,CD@,CDT(#(P.2`R-#D@,C`Y(#DY.3D@.3DY.0H)(#(U
- XM.2XU,S<@,C`V+C@S-R`R-#`N,#@S(#(Q,"XX,S`@,C(Q+C`S.2`R,34N-S,U
- XM(#(Q,"XQ.#D@,C(X+C0W-0H)(#(P."XQ.#(@,C,X+C4P,2`R,3`N,34W(#(U
- XM,2XW-S<@,C$U+C<W,B`R-C0N.3(U(#(T.2XU-30@,C@Q+C8U-@H)(#(Y,2XW
- XM,#$@,C@P+C$Q-2`S,C$N-#@Y(#(U,2XY,#@@,S(R+C(Y."`R,S<N-C$Y(#,Q
- XM-2XU,C@@,C$Y+CDR-PH)(#,P,2XX,3D@,C$Q+C<T,R`R.#,N,#$P(#(P-2XQ
- XM-#4@,C4Y+C4S-R`R,#8N.#,W(#(T,"XP.#,@,C$P+C@S,`HS(#,@,"`Q("TQ
- XM(#`@,"`P(#`N,#`P(#`@,`H)(#$P.2`R.#D@,3$T(#,R-"`Q-SD@,S,T(#(Q
- XM-"`S,30@,C`T(#(W.2`Q-CD@,C<T(#$P.2`R.#D@.3DY.2`Y.3DY"@D@,3(Q
- XM+C<T-R`R-S`N,#0R(#$P,2XW,3,@,CDY+C@S."`Q,#4N-C0T(#,Q-2XU-30@
- XM,3(Y+C4T,R`S,SDN-S$Q"@D@,38R+C(X,B`S,S<N,#DY(#$X.2XR-#@@,S,R
- XM+C$P,2`R,#@N-S4U(#,R-BXX.#`@,C$X+C<S-B`S,#(N,S8Y"@D@,C$R+C8W
- XM."`R.#8N-38Y(#$Y-2XU-S$@,C<Q+C8T.2`Q-S<N-#`V(#(W,RXU-C8@,34T
- XM+C(Y-B`R-S0N-S4Y"@D@,3(Q+C<T-R`R-S`N,#0R(#$P,2XW,3,@,CDY+C@S
- XM.`HS(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,`H)(#(Y.2`R-CD@,C4T(#(Y
- XM.2`R-#0@,S4T(#,S-"`S-3D@-#,T(#,U.2`T-3D@,S`Y(#0R.2`R-SD@,CDY
- XM(#(V.2`Y.3DY(#DY.3D*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@-3(@
- XM,C8T(#(U.2!#:&5M:7-T<GD!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R
- XM(#8T(#(U.2`R-#0@071M;W-P:&5R:6,!"C0@,2`P(#$R(#`@+3$@,"`P+C`P
- XM,"`T(#D@,S(@,C4Y(#(R.2!);F1O;W(!"C0@,"`P(#$P(#`@+3$@,"`P+C`P
- XM,"`T(#<@-2`Q-#(@-#(P(#,!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@
- XM-B`Q,S0@-#$Q('$!"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@,R`T-C(@
- XM,38V(&D!"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`T-#0@,38W(#(!
- XM"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`S,C`@,38V(#`!"C0@,"`P
- XM(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`S,#,@,38V(#$!"C0@,"`P(#$P(#`@
- XM+3$@,"`P+C`P,"`T(#<@-R`T.3<@,38U(%(!"C0@,"`P(#$P(#`@+3$@,"`P
- XM+C`P,"`T(#<@,3@@,S4R(#$V-R!-5@$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P
- XM(#0@,3(@-S8@-#,V(#$V,2!Q("`@0R`@("@Q+48@("`@*0$*-"`P(#`@,3(@
- XM,"`M,2`P(#`N,#`P(#0@,3(@.#(@,CDT(#$V,2!Q("`@0R`@("@Q+48@("`@
- XM("`I`0HT(#`@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#8@,C$R(#$V."!%`0HT
- XM(#`@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,3@Q(#$V-R`P`0HT(#`@,"`Q
- XM,"`P("TQ(#`@,"XP,#`@-"`W(#4@,38S(#$V-R`P`0HT(#`@,"`Q,B`P("TQ
- XM(#`@,"XP,#`@-"`Q,B`W,R`Q-30@,38R('$@("!#("`@*#$M1B`@("D!"C0@
- XM,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@,R`T-C0@-#@T(&D!"C0@,"`P(#$P
- XM(#`@+3$@,"`P+C`P,"`T(#<@-2`T-#<@-#@U(#(!"C0@,"`P(#$P(#`@+3$@
- XM,"`P+C`P,"`T(#<@-2`S,3D@.#8@,`$*-"`P(#`@,3`@,"`M,2`P(#`N,#`P
- XM(#0@-R`U(#,P,B`X-B`Q`0HT(#`@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@
- XM,3<Y(#@V(#`!"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`Q-C(@.#8@
- XM,`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,C,@-#,Y(#0W.2!Q("`@
- XM0P$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,C,@,CDT(#<Y('$@("!#
- XM`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q,B`R,R`Q-30@-SD@<2`@($,!
- XM"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@-#(@,34Y(#4R-"!%>&AA=7-T
- XM`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#$Q-B`Q-3D@-3`T($UE8VAA
- XM;FEC86P@5F5N=&EL871I;VX!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R
- XM(#DV(#$U.2`T.#0@17AF:6QT<F%T:6YG($%I<B!A;F0!"C0@,2`P(#$R(#`@
- XM+3$@,"`P+C`P,"`T(#D@,C`@-#(Y(#0U-"!&86X!"C0@,2`P(#$R(#`@+3$@
- XM,"`P+C`P,"`T(#D@-C4@-#(Y(#0S-"!296-I<F-U;&%T:6]N`0HT(#$@,"`Q
- XM,B`P("TQ(#`@,"XP,#`@-"`Y(#,Q(#$T.2`Q,S0@3&5A:W,!"C0@,2`P(#$R
- XM(#`@+3$@,"`P+C`P,"`T(#$R(#0W(#$T.2`Q,3D@16YV96QO<&4!"C0@,2`P
- XM(#$R(#`@+3$@,"`P+C`P,"`T(#D@-34@,C@Y(#$S-"!);G1A:V4@1F%N`0HT
- XM(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#(X(#(X.2`Q,30@1FEL=&5R`0HT
- XM(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#(X(#0R.2`Q,C0@1FEL=&5R`0HT
- XM(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#<X(#0Y-"`T.2!296-I<F-U;&%T
- XM960@86ER`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#4V(#(X.2`U-"!6
- XM96YT:6QA=&EO;@$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`U-R`R.#D@
- XM,SD@365C:&%N:6-A;`$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@-C@@
- XM,34Q(#4Q($EN9FEL=')A=&EN9R!A:7(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P
- XM,"`T(#$R(#$Q-B`S,SD@,S,Y($1E<&]S:71I;VX@;VX@4W5R9F%C97,!"C0@
- XM,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,R`S-C0@,S`Y(&D!"C0@,"`P(#$R
- XM(#`@+3$@,"`P+C`P,"`T(#D@,R`S-#D@,S`Y(&D!"C0@,"`P(#$R(#`@+3$@
- XM,"`P+C`P,"`T(#D@,R`S,CD@,S`Y(&D!"C0@,"`P(#$V(#`@+3$@,"`P+C`P
- XM,"`T(#$Q(#,Y(#,Q.2`S,#0@:R!!($,!"C0@,"`S,B`R-"`P("TQ(#`@,"XP
- XM,#`@-"`Y(#8@,CDY(#,P-"!3`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y
- X5(#0P(#$U.2`S,3`@4V]U<F-E<P$*
- X`
- Xend
- END_OF_FILE
- if test 5945 -ne `wc -c <'Examples/flow.fig.uu'`; then
- echo shar: \"'Examples/flow.fig.uu'\" unpacked with wrong size!
- fi
- # end of 'Examples/flow.fig.uu'
- fi
- if test -f 'Examples/housecheck.fig.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Examples/housecheck.fig.uu'\"
- else
- echo shar: Extracting \"'Examples/housecheck.fig.uu'\" \(6847 characters\)
- sed "s/^X//" >'Examples/housecheck.fig.uu' <<'END_OF_FILE'
- Xbegin 444 housecheck.fig
- XM(T9)1R`R+C$*.#`@,@HR(#0@,"`S("TQ(#`@,"`P(#`N,#`P(#$V(#`@,`H)
- XM(#,Y(#$T(#,Y(#@T(#8P.2`X-"`V,#D@,30@,SD@,30@.3DY.2`Y.3DY"C(@
- XM-"`P(#,@+3$@,"`P(#`@,"XP,#`@,38@,"`P"@D@,SD@.30@,SD@-S(T(#8P
- XM.2`W,C0@-C`Y(#DT(#,Y(#DT(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P
- XM(#`N,#`P(#`@,"`P"@D@.3D@,S8T(#$P.2`S-C0@,3`Y(#,W-"`Y.2`S-S0@
- XM.3D@,S8T(#DY.3D@.3DY.0HR(#(@,"`R("TQ(#`@,"`P(#`N,#`P(#`@,"`P
- XM"@D@-S0@,S,Y(#<T(#,U-"`X.2`S-30@.#D@,S,Y(#<T(#,S.2`Y.3DY(#DY
- XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0X-"`S.2`U-S0@
- XM,SD@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Y
- XM.2`Q-CD@,3`Y(#$V.2`Q,#D@,3<Y(#DY(#$W.2`Y.2`Q-CD@.3DY.2`Y.3DY
- XM"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`R,CD@-S0@-3<T(#<T
- XM(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,30T
- XM(#,Y(#0R.2`S.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P
- XM(#`@,`H)(#DY(#$S.2`Q,#D@,3,Y(#$P.2`Q-#D@.3D@,30Y(#DY(#$S.2`Y
- XM.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<T(#$Q
- XM-"`W-"`Q,CD@.#D@,3(Y(#@Y(#$Q-"`W-"`Q,30@.3DY.2`Y.3DY"C(@,B`P
- XM(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Y.2`Q-30@,3`Y(#$U-"`Q,#D@
- XM,38T(#DY(#$V-"`Y.2`Q-30@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
- XM,"XP,#`@,"`P(#`*"2`U,S0@,3(Y(#4X.2`Q,CD@.3DY.2`Y.3DY"C(@,B`P
- XM(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`S,#0@,3$T(#,P-"`Q,CD@,S$Y
- XM(#$R.2`S,3D@,3$T(#,P-"`Q,30@.3DY.2`Y.3DY"C(@,B`P(#(@+3$@,"`P
- XM(#`@,"XP,#`@,"`P(#`*"2`W-"`Q.30@-S0@,C`Y(#@Y(#(P.2`X.2`Q.30@
- XM-S0@,3DT(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P
- XM"@D@.3D@,C0Y(#$P.2`R-#D@,3`Y(#(U.2`Y.2`R-3D@.3D@,C0Y(#DY.3D@
- XM.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@.3D@,C,T(#$P
- XM.2`R,S0@,3`Y(#(T-"`Y.2`R-#0@.3D@,C,T(#DY.3D@.3DY.0HR(#(@,"`R
- XM("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-S0@,C<T(#<T(#(X.2`X.2`R.#D@
- XM.#D@,C<T(#<T(#(W-"`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P
- XM,"`P(#`@,`H)(#DY(#(Y.2`Q,#D@,CDY(#$P.2`S,#D@.3D@,S`Y(#DY(#(Y
- XM.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#DY
- XM(#,Q-"`Q,#D@,S$T(#$P.2`S,C0@.3D@,S(T(#DY(#,Q-"`Y.3DY(#DY.3D*
- XM,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<T(#8W.2`W-"`V.30@
- XM.#D@-CDT(#@Y(#8W.2`W-"`V-SD@.3DY.2`Y.3DY"C(@,B`P(#(@+3$@,"`P
- XM(#`@,"XP,#`@,"`P(#`*"2`W-"`S.#D@-S0@-#`T(#@Y(#0P-"`X.2`S.#D@
- XM-S0@,S@Y(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P
- XM"@D@.3D@-#$T(#$P.2`T,30@,3`Y(#0R-"`Y.2`T,C0@.3D@-#$T(#DY.3D@
- XM.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@.3D@-C(T(#$P
- XM.2`V,C0@,3`Y(#8S-"`Y.2`V,S0@.3D@-C(T(#DY.3D@.3DY.0HR(#(@,"`R
- XM("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-S0@-3DY(#<T(#8Q-"`X.2`V,30@
- XM.#D@-3DY(#<T(#4Y.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P
- XM,"`P(#`@,`H)(#DY(#8S.2`Q,#D@-C,Y(#$P.2`V-#D@.3D@-C0Y(#DY(#8S
- XM.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#DY
- XM(#8U-"`Q,#D@-C4T(#$P.2`V-C0@.3D@-C8T(#DY(#8U-"`Y.3DY(#DY.3D*
- XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,W-"`V-C0@-#<T(#8V
- XM-"`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#DY
- XM(#4P.2`Q,#D@-3`Y(#$P.2`U,3D@.3D@-3$Y(#DY(#4P.2`Y.3DY(#DY.3D*
- XM,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#DY(#0Y-"`Q,#D@-#DT
- XM(#$P.2`U,#0@.3D@-3`T(#DY(#0Y-"`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P
- XM(#`@,"`P+C`P,"`P(#`@,`H)(#DY(#0W.2`Q,#D@-#<Y(#$P.2`T.#D@.3D@
- XM-#@Y(#DY(#0W.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P
- XM(#`@,`H)(#DY(#0V-"`Q,#D@-#8T(#$P.2`T-S0@.3D@-#<T(#DY(#0V-"`Y
- XM.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<T(#0S
- XM.2`W-"`T-30@.#D@-#4T(#@Y(#0S.2`W-"`T,SD@.3DY.2`Y.3DY"C(@,B`P
- XM(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`W-"`U,S0@-S0@-30Y(#@Y(#4T
- XM.2`X.2`U,S0@-S0@-3,T(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N
- XM,#`P(#`@,"`P"@D@.3D@-34Y(#$P.2`U-3D@,3`Y(#4V.2`Y.2`U-CD@.3D@
- XM-34Y(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@
- XM.3D@-3<T(#$P.2`U-S0@,3`Y(#4X-"`Y.2`U.#0@.3D@-3<T(#DY.3D@.3DY
- XM.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,S,Y(#(T.2`S-#D@
- XM,C0Y(#,T.2`R-3D@,S,Y(#(U.2`S,SD@,C0Y(#DY.3D@.3DY.0HR(#(@,"`Q
- XM("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,S,Y(#(S-"`S-#D@,C,T(#,T.2`R
- XM-#0@,S,Y(#(T-"`S,SD@,C,T(#DY.3D@.3DY.0HT(#`@,"`Q,B`P("TQ(#`@
- XM,"XP,#`@-"`Q,B`Q-S`@,3$Y(#(T-"!3:7IE("`M("!,87)G92`@+R`@365D
- XM:75M("`O("!3;6%L;`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,3(X
- XM(#$Q.2`S-S0@3&%R9V4@("\@($UE9&EU;2`@+R`@4VUA;&P!"C0@,"`P(#$T
- XM(#`@+3$@,"`P+C`P,"`T(#$S(#$U,2`Y.2`S-30@1&EN:6YG(%)O;VT@("T@
- XM(%EE<R`@+R`@3F\!"C0@,"`P(#$T(#`@+3$@,"`P+C`P,"`T(#$P(#<P(#DY
- XM(#(R.2!"961R;V]M(",Q`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q,"`S
- XM-"`T,SD@,SD@4')I8V4Z`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#8T
- XM(#$Q.2`Q-SD@3&EN96X@0VQO<V5T`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@
- XM-"`Q,R`Q,S@@-CD@-S0@1&ES=&EN9W5I<VAI;F<@1F5A='5R97,Z`0HT(#`@
- XM,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q,"`U,R`V.2`S.2!!9&1R97-S.@$*-"`P
- XM(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,3$T(#$Q.2`Q-#D@4&QU;6)I;F<@
- XM+2`@3F5W("\@3VQD`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q,"`Q,C`@
- XM.3D@,3(Y($)A=&AR;V]M<SH@("`Q("`Q*R`@(#(!"C0@,"`P(#$R(#`@+3$@
- XM,"`P+C`P,"`T(#D@-S(@,3$Y(#$V-"!4=6(@("\@(%-H;W=E<@$*-"`P(#`@
- XM,30@,"`M,2`P(#`N,#`P(#0@,30@,3<S(#,R.2`Q,CD@5&5R;6ET92!297!O
- XM<G0Z("`@665S("`O($YO("`@("0!"C0@,"`P(#$T(#`@+3$@,"`P+C`P,"`T
- XM(#$P(#$Q.2`Y.2`R,#D@0F5D<F]O;7,Z("`@,B`@(#(K("`@,P$*-"`P(#`@
- XM,3(@,"`M,2`P(#`N,#`P(#0@,3(@,3@W(#$Q.2`R-3D@0VQO<V5T<R`@+2`@
- XM3&%R9V4@("\@($UE9&EU;2`@+R`@4VUA;&P!"C0@,"`P(#$T(#`@+3$@,"`P
- XM+C`P,"`T(#$S(#<S(#$P,"`R.#D@3&EV:6YG(%)O;VT!"C0@,"`P(#$R(#`@
- XM+3$@,"`P+C`P,"`T(#$R(#$R."`Q,3D@,S`Y($QA<F=E("`O("!-961I=6T@
- XM("\@(%-M86QL`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q,B`T-R`Q,3D@
- XM,S(V($9I<F5P;&%C90$*-"`P(#`@,30@,"`M,2`P(#`N,#`P(#0@,3,@,3$Q
- XM(#DY(#8Y-"!,875N9')Y("!997,@("\@($YO`0HT(#`@,"`Q-"`P("TQ(#`@
- XM,"XP,#`@-"`Q,R`Y,2`Y.2`T,#0@2&5A=&EN9R!3>7-T96T!"C0@,"`P(#$R
- XM(#`@+3$@,"`P+C`P,"`T(#D@,3`V(#$Q.2`T,C0@1FQO;W(@+R!786QL("\@
- XM0V5N=')A;`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Y,2`Q,3D@-C,T
- XM(%)O;V8@+2`@3F5W("\@3VQD`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q
- XM,"`S,R`Y.2`V,30@3W1H97(!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R
- XM(#$X-B`Q,3D@-C0Y(%=I<FEN9R`@+2`@3F5W("\@3VQD("`@(#$Q,%8@("\@
- XM(#(R,%8!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#(S-2`Q,3D@-C8T
- XM(%=I;F1O=W,@("T@($-A<V5M96YT("\@1&]U8FQE($AU;F<@+R!/=&AE<CH!
- XM"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,3$W(#$Q.2`U,3D@4W1O=F4@
- XM("T@($=A<R`O($5L96-T<FEC`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q
- XM,B`Q.34@,3$Y(#4P-"!#86)I;F5T<R`M("!-86YY("\@1F5W("`@("!.97<@
- XM("\@($]L9`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,S,@,3$Y(#0X
- XM.2!086YT<GD!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#(R."`Q,3D@
- XM-#<T(%-I;FL@+2`@3&%R9V4@+R!3;6%L;"`@("`@4&]R8V5L86EN("`O("!3
- XM=&%I;FQE<W,!"C0@,"`P(#$T(#`@+3$@,"`P+C`P,"`T(#$P(#0U(#DY(#0U
- XM-"!+:71C:&5N`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q,"`T-"`Y.2`U
- XM-#D@3W5T<VED90$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,30U(#$Q
- XM.2`U-CD@1V%R86=E("`M("!/;F4@8V%R("\@5'=O(&-A<@$*-"`P(#`@,3(@
- XM,"`M,2`P(#`N,#`P(#0@,3(@,30W(#$Q.2`U.#0@66%R9"`@3&%R9V4@+R!-
- XM961I=6T@+R!3;6%L;`$*-"`P(#`@,30@,"`M,2`P(#`N,#`P(#0@,3`@-S`@
- XM,S,Y(#(R.2!"961R;V]M(",R`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q
- XM,B`Q-S`@,S4Y(#(T-"!3:7IE("`M("!,87)G92`@+R`@365D:75M("`O("!3
- XM;6%L;`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,3@W(#,U.2`R-3D@
- XH0VQO<V5T<R`@+2`@3&%R9V4@("\@($UE9&EU;2`@+R`@4VUA;&P!"B`R
- X`
- Xend
- END_OF_FILE
- if test 6847 -ne `wc -c <'Examples/housecheck.fig.uu'`; then
- echo shar: \"'Examples/housecheck.fig.uu'\" unpacked with wrong size!
- fi
- # end of 'Examples/housecheck.fig.uu'
- fi
- if test -f 'Examples/orifices.fig.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Examples/orifices.fig.uu'\"
- else
- echo shar: Extracting \"'Examples/orifices.fig.uu'\" \(6969 characters\)
- sed "s/^X//" >'Examples/orifices.fig.uu' <<'END_OF_FILE'
- Xbegin 444 orifices.fig
- XM(T9)1R`R+C$*.#`@,@HU(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,2`Q(#$Y
- XM,2XW,#`@-#4Y+C4P,"`Q-C<@-#0S(#$V,B`T-C`@,38W(#0W-@H),"`P(#$N
- XM,#`P(#0N,#`P(#@N,#`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*-2`Q(#(@
- XM,2`M,2`P(#`@,"`P+C`P,"`P(#`@,"`Q-C@N,S(V(#$X.2XY-S@@,38Y(#$V
- XM-"`Q.#@@,3<S(#$Y-"`Q.30*-2`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@
- XM,"`Q-C4N,S0P(#$Y,BXV-C`@,34Y(#$T.2`Q.3@@,38S(#(P.2`Q.3D*-2`Q
- XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,"`Q-C$N-C`P(#$Y-BXT,#`@,34Y
- XM(#$W.2`Q-S4@,3@U(#$W.2`Q.3D*-2`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`Q
- XM(#$@,2`Q-#DN-C$Q(#,T-"XY-#0@,38S(#,U.2`Q-CD@,S0T(#$V,B`S,S`*
- XM"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P
- XM"C4@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#$@,3<P+C@U.2`Y-BXR,#0@
- XM,34S(#$P.2`Q-#D@.30@,34U(#@Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*
- XM"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P
- XM(#`@,2`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q.30@-#4Y(#(Q.2`T
- XM-3D@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q
- XM-S0@-#0T(#$W-"`T-S0@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP
- XM,#`@,"`P(#`*"2`Q-#D@-#(Y(#$T.2`T.#D@.3DY.2`Y.3DY"C(@,2`P(#$@
- XM+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q,3D@-#@Y(#$T.2`T.#D@,3<T(#0W
- XM-"`R,#D@-#<T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
- XM,"`P"@D@,3$Y(#0R.2`Q-#D@-#(Y(#$W-"`T-#0@,C`Y(#0T-"`Y.3DY(#DY
- XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#$@,0H),"`P(#$N,#`P(#0N
- XM,#`P(#@N,#`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`R,#0@,S$V(#(P
- XM-"`S-S$@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#$*
- XM"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P
- XM"@D@,3,T(#,S-B`Q,S0@,S4Q(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P
- XM(#`N,#`P(#`@,"`P"@D@,3$Y(#,U-"`Q-30@,S4T(#$W.2`S-S0@,C(Y(#,W
- XM-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$Q
- XM.2`S,S0@,34T(#,S-"`Q-SD@,S$T(#(R.2`S,30@.3DY.2`Y.3DY"C(@,2`P
- XM(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#$*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P
- XM,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,3@Q(#(S.2`R,#8@,C,Y(#DY
- XM.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,C`Y(#(R
- XM.2`R,#D@,C0Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
- XM,"`P"@D@,3<Y(#(R.2`Q-SD@,C0Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
- XM,"`P(#`N,#`P(#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q-SD@
- XM,3<P(#$V,R`Q.3@@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@
- XM,"`P(#`*"2`Q.30@,3DT(#$Y-"`R,3D@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@
- XM,"`P(#`@,"XP,#`@,"`P(#`*"2`Q,SD@,38T(#$V.2`Q-C0@.3DY.2`Y.3DY
- XM"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`R,#D@,3DY(#(P.2`R
- XM,3D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q
- XM-SD@,3DY(#$W.2`R,3D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP
- XM,#`@,"`P(#`*"2`Q,SD@,3<Y(#$U.2`Q-SD@.3DY.2`Y.3DY"C(@,2`P(#$@
- XM+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q,SD@,30Y(#$U.2`Q-#D@.3DY.2`Y
- XM.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q-SD@,S$T(#$W
- XM.2`S-S0@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*
- XM"2`Q-30@,S,T(#$U-"`S-30@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
- XM,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#@Y(#,T-"`Q
- XM,30@,S0T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,2`P
- XM"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q-SD@.30@,C`T(#DT(#DY.3D@
- XM.3DY.0HR(#$@,B`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,38T(#@T(#$V
- XM-"`Q,#0@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*
- XM"2`Q,SD@-C0@,3,Y(#$R-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P
- XM+C`P,"`P(#`@,`H)(#$Y.2`X-"`Q-C0@.#0@,3,Y(#8T(#$R.2`V-"`Q,CD@
- XM,3(T(#$S.2`Q,C0@,38T(#$P-"`Q.3D@,3`T(#DY.3D@.3DY.0HR(#$@,"`Q
- XM("TQ(#`@,"`P(#`N,#`P(#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*
- XM"2`Q.#0@-30T(#$U-"`U-#0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
- XM,"XP,#`@,"`P(#$*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#$S.2`U-30@
- XM,3(T(#4U-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@
- XM,0H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,38Y(#4W-"`Q-CD@-3@Y(#DY
- XM.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,38Y(#4U
- XM-"`Q-CD@-3DT(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
- XM,2`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q,3D@-34T(#(Q.2`U-30@
- XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q
- XM+C`P,"`T+C`P,"`X+C`P,`H)(#,U-"`Y-"`T-30@.30@.3DY.2`Y.3DY"C(@
- XM,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X
- XM+C`P,`H)(#0P-"`Y-"`T,#0@,3,T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
- XM,"`P(#`N,#`P(#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`S-S0@
- XM.30@,S4Y(#DT(#DY.3D@.3DY.0HS(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@
- XM,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,S<T(#DY(#,X-B`Y.2`S.30@
- XM,3`T(#,Y.2`Q,3$@,SDY(#$R-"`Y.3DY(#DY.3D*"2`P+C`P,"`P+C`P,"`S
- XM.#`N.#0U(#DX+C,X,B`S.#,N.#0U(#DX+C,X,B`S.#@N,C4Y(#DY+C8T.`H)
- XM(#,Y,BXS-C(@,3`R+C0V,"`S.34N-#DT(#$P-2XT,#0@,SDX+C,S,R`Q,#@N
- XM.3$Y(#,Y.2XW-38@,3$S+C,U.0H)(#,Y.2XW-38@,3$V+C8P.2`P+C`P,"`P
- XM+C`P,`HS(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,`H)(#$S.2`Q-C0@,3,T
- XM(#$V.2`Q,SD@,3<Y(#DY.3D@.3DY.0H)(#`N,#`P(#`N,#`P(#$S-2XU,S(@
- XM,38V+C`Q-"`Q,S0N,C@R(#$V-RXR-C0@,3,S+C4U-2`Q-S$N-S0U"@D@,3,T
- XM+C@P-2`Q-S0N,C0U(#`N,#`P(#`N,#`P"C,@,B`P(#$@+3$@,"`P(#`@,"XP
- XM,#`@,"`P"@D@,3,Y(#$T.2`Q,S0@,34T(#$T-"`Q-CD@,3,Y(#$W.2`Y.3DY
- XM(#DY.3D*"2`P+C`P,"`P+C`P,"`Q,S4N-#,T(#$U,"XX.3`@,3,T+C$X-"`Q
- XM-3(N,30P(#$S,RXS-S0@,38P+C,R,PH)(#$T,RXV-C$@,38S+C4V-"`Q-#0N
- XM,34W(#$W,2XU,C@@,30R+CDP-R`Q-S0N,#(X(#`N,#`P(#`N,#`P"C,@,B`P
- XM(#$@+3$@,"`P(#`@,"XP,#`@,"`P"@D@,3DT(#(Q.2`Q.3D@,C(T(#(P.2`R
- XM,3D@.3DY.2`Y.3DY"@D@,"XP,#`@,"XP,#`@,3DV+C`Q-"`R,C(N-#8X(#$Y
- XM-RXR-C0@,C(S+C<Q."`R,#$N-S0U(#(R-"XT-#4*"2`R,#0N,C0U(#(R,RXQ
- XM.34@,"XP,#`@,"XP,#`*,R`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`*"2`Q
- XM-SD@,C$Y(#$X.2`R,C0@,3DY(#(Q-"`R,#D@,C$Y(#DY.3D@.3DY.0H)(#`N
- XM,#`P(#`N,#`P(#$X,RXW-34@,C(S+C$Y-2`Q.#8N,C4U(#(R-"XT-#4@,3DS
- XM+C8R.2`R,C,N,C0Y"@D@,3DT+C,W,2`R,30N-S4Q(#(P,2XW-#4@,C$S+C4U
- XM-2`R,#0N,C0U(#(Q-"XX,#4@,"XP,#`@,"XP,#`*-"`Q(#,R(#$R(#`@+3$@
- XM,"`P+C`P,"`T(#@@-B`Q-34@-#8U('$!"C0@,2`P(#$R(#`@+3$@,"`P+C`P
- XM,"`T(#8@-B`R,CD@-#8T('8!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#8@
- XM-B`W.2`S-#D@=@$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@-B`V(#(Q-"`Y
- XM.2!V`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#D@,3DT(#(U.2!$`0HT
- XM(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`V(#0@,34T(#(P-R!R`0HT(#$@,S(@
- XM,3(@,"`M,2`P(#`N,#`P(#0@."`V(#$W,R`S-#@@<0$*-"`Q(#`@,3`@,"`M
- XM,2`P(#`N,#`P(#0@-R`U(#(Q,B`X,B`P`0HT(#$@,"`Q,"`P("TQ(#`@,"XP
- XM,#`@-"`W(#4@,3(W(#8S(#$!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@
- XM.2`R,#,@-SD@00$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Y(#$R,"`U
- XM.2!!`0HT(#$@,S(@,3(@,"`M,2`P(#`N,#`P(#0@."`V(#$T-2`Y."!Q`0HT
- XM(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,3,V(#,R-B`Q`0HT(#$@,"`Q
- XM,B`P("TQ(#`@,"XP,#`@-"`Y(#D@,3(Y(#,R,"!!`0HT(#$@,"`Q,B`P("TQ
- XM(#`@,"XP,#`@-"`Y(#D@,C$T(#,T.2!!`0HT(#$@,"`Q,"`P("TQ(#`@,"XP
- XM,#`@-"`W(#4@,C(S(#,U-"`R`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y
- XM(#D@,3(Y(#0W-2!!`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,3,V
- XM(#0X,2`Q`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,3DS(#0W,B`R
- XM`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#D@,3@T(#0V-R!!`0HT(#$@
- XM,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,C(R(#4T.2`S`0HT(#$@,"`Q,"`P
- XM("TQ(#`@,"XP,#`@-"`W(#4@,3(V(#4T.2`Q`0HT(#$@,"`Q,B`P("TQ(#`@
- XM,"XP,#`@-"`Q,2`Y(#(Q-"`U-#0@40$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P
- XM(#0@,3$@.2`Q,3D@-30T(%$!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$Q
- XM(#D@,S4T(#@T(%$!"C0@,2`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`S-C$@
- XM.#D@,0$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3$@.2`T,3D@,3,T(%$!
- XH"C0@,2`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`T,C<@,3,Y(#,!"C,T
- X`
- Xend
- END_OF_FILE
- if test 6969 -ne `wc -c <'Examples/orifices.fig.uu'`; then
- echo shar: \"'Examples/orifices.fig.uu'\" unpacked with wrong size!
- fi
- # end of 'Examples/orifices.fig.uu'
- fi
- if test -f 'd_intspline.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'d_intspline.c'\"
- else
- echo shar: Extracting \"'d_intspline.c'\" \(7166 characters\)
- sed "s/^X//" >'d_intspline.c' <<'END_OF_FILE'
- X/*
- X * FIG : Facility for Interactive Generation of figures
- X * Copyright (c) 1985 by Supoj Sutanthavibul
- X *
- X * "Permission to use, copy, modify, distribute, and sell this software and its
- X * documentation for any purpose is hereby granted without fee, provided that
- X * the above copyright notice appear in all copies and that both the copyright
- X * notice and this permission notice appear in supporting documentation.
- X * No representations are made about the suitability of this software for
- X * any purpose. It is provided "as is" without express or implied warranty."
- X */
- X
- X#include "fig.h"
- X#include "resources.h"
- X#include "mode.h"
- X#include "object.h"
- X#include "paintop.h"
- X#include "u_create.h"
- X#include "u_elastic.h"
- X#include "u_list.h"
- X#include "w_canvas.h"
- X#include "w_mousefun.h"
- X
- Xstatic int create_intsplineobject();
- Xstatic int init_intspline_drawing();
- X
- Xintspline_drawing_selected()
- X{
- X set_mousefun("first point", "", "");
- X canvas_kbd_proc = null_proc;
- X canvas_locmove_proc = null_proc;
- X canvas_leftbut_proc = init_intspline_drawing;
- X canvas_middlebut_proc = null_proc;
- X canvas_rightbut_proc = null_proc;
- X set_cursor(arrow_cursor);
- X reset_action_on();
- X}
- X
- Xstatic
- Xinit_intspline_drawing(x, y)
- X int x, y;
- X{
- X min_num_points = 3;
- X init_trace_drawing(x, y);
- X canvas_middlebut_save = create_intsplineobject;
- X return_proc = intspline_drawing_selected;
- X}
- X
- Xstatic
- Xcreate_intsplineobject(x, y)
- X int x, y;
- X{
- X F_spline *spline;
- X
- X if (x != fix_x || y != fix_y || num_point < min_num_points) {
- X get_intermediatepoint(x, y);
- X }
- X elastic_line();
- X if ((spline = create_spline()) == NULL) {
- X if (num_point == 1) {
- X free((char *) cur_point);
- X cur_point = NULL;
- X }
- X free((char *) first_point);
- X first_point = NULL;
- X return;
- X }
- X spline->style = cur_linestyle;
- X spline->thickness = cur_linewidth;
- X spline->style_val = cur_styleval * (cur_linewidth + 1) / 2;
- X spline->color = cur_color;
- X spline->depth = cur_depth;
- X spline->fill_style = cur_fillstyle;
- X /*
- X * The current fill style is saved in all intspline objects (but support
- X * for filling may not be available in all fig2dev languages).
- X */
- X spline->pen = 0;
- X spline->points = first_point;
- X spline->controls = NULL;
- X spline->next = NULL;
- X cur_x = cur_y = fix_x = fix_y = 0; /* used in elastic_moveline */
- X elastic_moveline(spline->points); /* erase control vector */
- X /* initialize to no arrows - changed below if necessary */
- X spline->for_arrow = NULL;
- X spline->back_arrow = NULL;
- X if (cur_mode == F_CLOSED_INTSPLINE) {
- X spline->type = T_CLOSED_INTERP;
- X num_point++;
- X append_point(first_point->x, first_point->y, &cur_point);
- X } else {
- X spline->type = T_OPEN_INTERP;
- X if (autoforwardarrow_mode)
- X spline->for_arrow = forward_arrow();
- X if (autobackwardarrow_mode)
- X spline->back_arrow = backward_arrow();
- X }
- X make_control_points(spline);
- X draw_intspline(spline, PAINT);
- X if (appres.DEBUG) {
- X int xmin, ymin, xmax, ymax;
- X
- X spline_bound(spline, &xmin, &ymin, &xmax, &ymax);
- X elastic_box(xmin, ymin, xmax, ymax);
- X }
- X add_spline(spline);
- X intspline_drawing_selected();
- X draw_mousefun_canvas();
- X}
- X
- X/* Tension : 0 (min) -> 1 (max) */
- X
- Xcreate_control_list(s)
- X F_spline *s;
- X{
- X F_point *p;
- X F_control *cp;
- X
- X if ((cp = create_cpoint()) == NULL)
- X return (-1);
- X
- X s->controls = cp;
- X for (p = s->points->next; p != NULL; p = p->next) {
- X if ((cp->next = create_cpoint()) == NULL)
- X return (-1);
- X cp = cp->next;
- X }
- X cp->next = NULL;
- X return (1);
- X}
- X
- Xmake_control_points(s)
- X F_spline *s;
- X{
- X if (-1 == create_control_list(s))
- X return;
- X
- X remake_control_points(s);
- X}
- X
- Xremake_control_points(s)
- X F_spline *s;
- X{
- X if (s->type == T_CLOSED_INTERP)
- X compute_cp(s->points, s->controls, CLOSED_PATH);
- X else
- X compute_cp(s->points, s->controls, OPEN_PATH);
- X}
- X
- X#define T 0.45
- X#define _2xPI 6.2832
- X#define _1dSQR2 0.7071
- X#define _SQR2 1.4142
- X
- Xcompute_cp(points, controls, path)
- X F_point *points;
- X F_control *controls;
- X int path;
- X{
- X F_control *cp, *cpn;
- X F_point *p, *p2, *pk;/* Pk is the next-to-last point. */
- X float dx, dy;
- X float x1, y1, x2, y2, x3, y3;
- X float l1, l2, theta1, theta2;
- X
- X x1 = points->x;
- X y1 = points->y;
- X pk = p2 = points->next;
- X x2 = p2->x;
- X y2 = p2->y;
- X p = p2->next;
- X x3 = p->x;
- X y3 = p->y;
- X
- X dx = x1 - x2;
- X dy = y2 - y1;
- X l1 = sqrt((double) (dx * dx + dy * dy));
- X if (l1 == 0.0)
- X theta1 = 0.0;
- X else
- X theta1 = atan2((double) dy, (double) dx);
- X dx = x3 - x2;
- X dy = y2 - y3;
- X l2 = sqrt((double) (dx * dx + dy * dy));
- X if (l2 == 0.0)
- X theta2 = 0.0;
- X else
- X theta2 = atan2((double) dy, (double) dx);
- X /* -PI <= theta1, theta2 <= PI */
- X if (theta1 < 0)
- X theta1 += _2xPI;
- X if (theta2 < 0)
- X theta2 += _2xPI;
- X /* 0 <= theta1, theta2 < 2PI */
- X
- X cp = controls->next;
- X control_points(x2, y2, l1, l2, theta1, theta2, T, cp);
- X /* control points for (x2, y2) */
- X if (path == OPEN_PATH) {
- X controls->lx = 0.0;
- X controls->ly = 0.0;
- X controls->rx = (x1 + 3 * cp->lx) / 4;
- X controls->ry = (y1 + 3 * cp->ly) / 4;
- X cp->lx = (3 * cp->lx + x2) / 4;
- X cp->ly = (3 * cp->ly + y2) / 4;
- X }
- X while (1) {
- X x2 = x3;
- X y2 = y3;
- X l1 = l2;
- X if (theta2 >= M_PI)
- X theta1 = theta2 - M_PI;
- X else
- X theta1 = theta2 + M_PI;
- X if ((p = p->next) == NULL)
- X break;
- X pk = pk->next;
- X x3 = p->x;
- X y3 = p->y;
- X dx = x3 - x2;
- X dy = y2 - y3;
- X l2 = sqrt((double) (dx * dx + dy * dy));
- X if (l2 == 0.0)
- X theta2 = 0.0;
- X else
- X theta2 = atan2((double) dy, (double) dx);
- X if (theta2 < 0)
- X theta2 += _2xPI;
- X cp = cp->next;
- X control_points(x2, y2, l1, l2, theta1, theta2, T, cp);
- X };
- X
- X if (path == CLOSED_PATH) {
- X dx = p2->x - x2;
- X dy = y2 - p2->y;
- X l2 = sqrt((double) (dx * dx + dy * dy));
- X theta2 = atan2((double) dy, (double) dx);
- X if (theta2 < 0)
- X theta2 += _2xPI;
- X cp = cp->next;
- X control_points(x2, y2, l1, l2, theta1, theta2, T, cp);
- X controls->lx = cp->lx;
- X controls->ly = cp->ly;
- X controls->rx = cp->rx;
- X controls->ry = cp->ry;
- X } else {
- X cpn = cp->next;
- X cpn->lx = (3 * cp->rx + x2) / 4;
- X cpn->ly = (3 * cp->ry + y2) / 4;
- X cpn->rx = 0.0;
- X cpn->ry = 0.0;
- X cp->rx = (pk->x + 3 * cp->rx) / 4;
- X cp->ry = (pk->y + 3 * cp->ry) / 4;
- X }
- X}
- X
- X/*
- X * The parameter t is the tension. It must range in [0, 1]. The bigger the
- X * value of t, the higher the tension.
- X */
- X
- Xcontrol_points(x, y, l1, l2, theta1, theta2, t, cp)
- X float x, y, l1, l2, theta1, theta2, t;
- X F_control *cp;
- X{
- X float s, theta, r = 1 - t;
- X
- X /* 0 <= theta1, theta2 < 2PI */
- X
- X theta = (theta1 + theta2) / 2;
- X
- X if (theta1 > theta2) {
- X s = sin((double) (theta - theta2));
- X theta1 = theta + M_PI_2;
- X theta2 = theta - M_PI_2;
- X } else {
- X s = sin((double) (theta2 - theta));
- X theta1 = theta - M_PI_2;
- X theta2 = theta + M_PI_2;
- X }
- X if (s > _1dSQR2)
- X s = _SQR2 - s;
- X s *= r;
- X l1 *= s;
- X l2 *= s;
- X cp->lx = x + l1 * cos((double) theta1);
- X cp->ly = y - l1 * sin((double) theta1);
- X cp->rx = x + l2 * cos((double) theta2);
- X cp->ry = y - l2 * sin((double) theta2);
- X}
- END_OF_FILE
- if test 7166 -ne `wc -c <'d_intspline.c'`; then
- echo shar: \"'d_intspline.c'\" unpacked with wrong size!
- fi
- # end of 'd_intspline.c'
- fi
- if test -f 'e_delete.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'e_delete.c'\"
- else
- echo shar: Extracting \"'e_delete.c'\" \(6081 characters\)
- sed "s/^X//" >'e_delete.c' <<'END_OF_FILE'
- X/*
- X * FIG : Facility for Interactive Generation of figures
- X * Copyright (c) 1985 by Supoj Sutanthavibul
- X *
- X * "Permission to use, copy, modify, distribute, and sell this software and its
- X * documentation for any purpose is hereby granted without fee, provided that
- X * the above copyright notice appear in all copies and that both the copyright
- X * notice and this permission notice appear in supporting documentation.
- X * No representations are made about the suitability of this software for
- X * any purpose. It is provided "as is" without express or implied warranty."
- X */
- X
- X#include "fig.h"
- X#include "resources.h"
- X#include "mode.h"
- X#include "object.h"
- X#include "paintop.h"
- X#include "u_create.h"
- X#include "u_draw.h"
- X#include "u_elastic.h"
- X#include "u_search.h"
- X#include "u_list.h"
- X#include "u_undo.h"
- X#include "w_canvas.h"
- X#include "w_mousefun.h"
- X#include "w_setup.h"
- X
- Xstatic int init_delete();
- Xstatic int init_delete_region(), delete_region(), cancel_delete_region();
- Xstatic int init_delete_to_scrap();
- X
- Xdelete_selected()
- X{
- X set_mousefun("delete object", "delete region", "del to cut buf");
- X canvas_kbd_proc = null_proc;
- X canvas_locmove_proc = null_proc;
- X init_searchproc_left(init_delete);
- X init_searchproc_right(init_delete_to_scrap);
- X canvas_leftbut_proc = object_search_left;
- X canvas_rightbut_proc = object_search_right;
- X canvas_middlebut_proc = init_delete_region;
- X set_cursor(buster_cursor);
- X reset_action_on();
- X}
- X
- Xstatic
- Xinit_delete(p, type, x, y, px, py)
- X char *p;
- X int type;
- X int x, y;
- X int px, py;
- X{
- X switch (type) {
- X case O_COMPOUND:
- X cur_c = (F_compound *) p;
- X delete_compound(cur_c);
- X redisplay_compound(cur_c);
- X break;
- X case O_POLYLINE:
- X cur_l = (F_line *) p;
- X delete_line(cur_l);
- X redisplay_line(cur_l);
- X break;
- X case O_TEXT:
- X cur_t = (F_text *) p;
- X delete_text(cur_t);
- X redisplay_text(cur_t);
- X break;
- X case O_ELLIPSE:
- X cur_e = (F_ellipse *) p;
- X delete_ellipse(cur_e);
- X redisplay_ellipse(cur_e);
- X break;
- X case O_ARC:
- X cur_a = (F_arc *) p;
- X delete_arc(cur_a);
- X redisplay_arc(cur_a);
- X break;
- X case O_SPLINE:
- X cur_s = (F_spline *) p;
- X delete_spline(cur_s);
- X redisplay_spline(cur_s);
- X break;
- X default:
- X return;
- X }
- X}
- X
- Xstatic
- Xinit_delete_region(x, y)
- X int x, y;
- X{
- X init_box_drawing(x, y);
- X set_mousefun("", "final corner", "cancel");
- X draw_mousefun_canvas();
- X canvas_leftbut_proc = null_proc;
- X canvas_middlebut_proc = delete_region;
- X canvas_rightbut_proc = cancel_delete_region;
- X}
- X
- Xstatic
- Xcancel_delete_region()
- X{
- X elastic_box(fix_x, fix_y, cur_x, cur_y);
- X delete_selected();
- X draw_mousefun_canvas();
- X}
- X
- Xstatic
- Xdelete_region(x, y)
- X int x, y;
- X{
- X F_compound *c;
- X
- X if ((c = create_compound()) == NULL)
- X return;
- X
- X elastic_box(fix_x, fix_y, cur_x, cur_y);
- X c->nwcorner.x = min2(fix_x, x);
- X c->nwcorner.y = min2(fix_y, y);
- X c->secorner.x = max2(fix_x, x);
- X c->secorner.y = max2(fix_y, y);
- X tag_obj_in_region(c->nwcorner.x,c->nwcorner.y,c->secorner.x,c->secorner.y);
- X if (compose_compound(c) == 0) {
- X free((char *) c);
- X delete_selected();
- X draw_mousefun_canvas();
- X put_msg("Empty region, figure unchanged");
- X return;
- X }
- X clean_up();
- X toggle_markers_in_compound(c);
- X set_tags(c,0);
- X set_latestobjects(c);
- X tail(&objects, &object_tails);
- X append_objects(&objects, &saved_objects, &object_tails);
- X cut_objects(&objects, &object_tails);
- X set_action_object(F_DELETE, O_ALL_OBJECT);
- X set_modifiedflag();
- X redisplay_compound(c);
- X delete_selected();
- X draw_mousefun_canvas();
- X}
- X
- Xstatic
- Xinit_delete_to_scrap(p, type, x, y, px, py)
- X char *p;
- X int type;
- X int x, y;
- X int px, py;
- X{
- X extern char cut_buf_name[];
- X extern char file_header[];
- X
- X FILE *fp;
- X struct stat file_status;
- X
- X if (stat(cut_buf_name, &file_status) == 0) { /* file exists */
- X if (file_status.st_mode & S_IFDIR) {
- X put_msg("Error: \"%s\" is a directory", cut_buf_name);
- X return;
- X }
- X if (file_status.st_mode & S_IWRITE) { /* writing is permitted */
- X if (file_status.st_uid != geteuid()) {
- X put_msg("Error: access denied to cut file");
- X return;
- X }
- X } else {
- X put_msg("Error: cut file is read only");
- X return;
- X }
- X } else if (errno != ENOENT) {
- X put_msg("Error: cut file didn't pass stat check");
- X return; /* file does exist but stat fails */
- X }
- X if ((fp = fopen(cut_buf_name, "w")) == NULL) {
- X put_msg("Error: couldn't open cut file %s", sys_errlist[errno]);
- X return;
- X } else {
- X (void) fprintf(fp, "%s\n", file_header);
- X (void) fprintf(fp, "%d %d\n", PIX_PER_INCH, 2);
- X }
- X
- X switch (type) {
- X case O_COMPOUND:
- X cur_c = (F_compound *) p;
- X write_compound(fp, cur_c);
- X delete_compound(cur_c);
- X redisplay_compound(cur_c);
- X break;
- X case O_POLYLINE:
- X cur_l = (F_line *) p;
- X write_line(fp, cur_l);
- X delete_line(cur_l);
- X redisplay_line(cur_l);
- X break;
- X case O_TEXT:
- X cur_t = (F_text *) p;
- X write_text(fp, cur_t);
- X delete_text(cur_t);
- X redisplay_text(cur_t);
- X break;
- X case O_ELLIPSE:
- X cur_e = (F_ellipse *) p;
- X write_ellipse(fp, cur_e);
- X delete_ellipse(cur_e);
- X redisplay_ellipse(cur_e);
- X break;
- X case O_ARC:
- X cur_a = (F_arc *) p;
- X write_arc(fp, cur_a);
- X delete_arc(cur_a);
- X redisplay_arc(cur_a);
- X break;
- X case O_SPLINE:
- X cur_s = (F_spline *) p;
- X write_spline(fp, cur_s);
- X delete_spline(cur_s);
- X redisplay_spline(cur_s);
- X break;
- X default:
- X fclose(fp);
- X return;
- X }
- X put_msg("Object deleted to scrap");
- X fclose(fp);
- X}
- X
- Xdelete_all()
- X{
- X clean_up();
- X set_action_object(F_DELETE, O_ALL_OBJECT);
- X
- X /*
- X * Aggregate assignment between variables is allowed, but not from
- X * constant (weird!?)
- X */
- X
- X set_latestobjects(&objects);
- X
- X objects.arcs = NULL;
- X objects.compounds = NULL;
- X objects.ellipses = NULL;
- X objects.lines = NULL;
- X objects.splines = NULL;
- X objects.texts = NULL;
- X
- X object_tails.arcs = NULL;
- X object_tails.compounds = NULL;
- X object_tails.ellipses = NULL;
- X object_tails.lines = NULL;
- X object_tails.splines = NULL;
- X object_tails.texts = NULL;
- X}
- END_OF_FILE
- if test 6081 -ne `wc -c <'e_delete.c'`; then
- echo shar: \"'e_delete.c'\" unpacked with wrong size!
- fi
- # end of 'e_delete.c'
- fi
- if test -f 'e_deletept.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'e_deletept.c'\"
- else
- echo shar: Extracting \"'e_deletept.c'\" \(6062 characters\)
- sed "s/^X//" >'e_deletept.c' <<'END_OF_FILE'
- X/*
- X * FIG : Facility for Interactive Generation of figures
- X * Copyright (c) 1985 by Supoj Sutanthavibul
- X *
- X * "Permission to use, copy, modify, distribute, and sell this software and its
- X * documentation for any purpose is hereby granted without fee, provided that
- X * the above copyright notice appear in all copies and that both the copyright
- X * notice and this permission notice appear in supporting documentation.
- X * No representations are made about the suitability of this software for
- X * any purpose. It is provided "as is" without express or implied warranty."
- X */
- X
- X#include "fig.h"
- X#include "resources.h"
- X#include "mode.h"
- X#include "object.h"
- X#include "paintop.h"
- X#include "u_search.h"
- X#include "w_canvas.h"
- X#include "w_mousefun.h"
- X
- Xstatic int init_delete_point();
- X
- Xdelete_point_selected()
- X{
- X set_mousefun("delete point", "", "");
- X canvas_kbd_proc = null_proc;
- X canvas_locmove_proc = null_proc;
- X init_searchproc_left(init_delete_point);
- X canvas_leftbut_proc = point_search_left;
- X canvas_middlebut_proc = null_proc;
- X canvas_rightbut_proc = null_proc;
- X set_cursor(pick9_cursor);
- X}
- X
- Xstatic
- Xinit_delete_point(obj, type, x, y, p, q)
- X char *obj;
- X int type, x, y;
- X F_point *p, *q;
- X{
- X int n;
- X
- X switch (type) {
- X case O_POLYLINE:
- X cur_l = (F_line *) obj;
- X /* the search routine will ensure we don't have a box */
- X n = num_points(cur_l->points);
- X if (cur_l->type == T_POLYGON) {
- X if (n <= 4) { /* count first pt twice for closed object */
- X put_msg("A polygon cannot have less than 3 points");
- X return;
- X }
- X } else if (n <= 1) {
- X /* alternative would be to remove the dot altogether */
- X put_msg("A dot must have at least 1 point");
- X return;
- X }
- X linepoint_deleting(cur_l, p, q);
- X break;
- X case O_SPLINE:
- X cur_s = (F_spline *) obj;
- X n = num_points(cur_s->points);
- X if (closed_spline(cur_s)) {
- X if (n <= 4) { /* count first pt twice for closed object */
- X put_msg("A closed spline cannot have less than 3 points");
- X return;
- X }
- X } else if (normal_spline(cur_s)) {
- X if (n <= 2) {
- X put_msg("A spline cannot have less than 2 points");
- X return;
- X }
- X } else if (n <= 3) { /* it must be an open interpolated spline */
- X put_msg("An interpolated spline cannot have less than 3 points");
- X return;
- X }
- X splinepoint_deleting(cur_s, p, q);
- X break;
- X default:
- X return;
- X }
- X}
- X
- X/************************** spline *******************************/
- X
- Xsplinepoint_deleting(spline, prev_point, selected_point)
- X F_spline *spline;
- X F_point *prev_point, *selected_point;
- X{
- X F_point *p, *next_point;
- X
- X next_point = selected_point->next;
- X set_temp_cursor(wait_cursor);
- X if (closed_spline(spline)) {
- X mask_toggle_splinemarker(spline);
- X draw_spline(spline, ERASE); /* erase the spline */
- X if (prev_point == NULL) {
- X /* The deleted point is the first point */
- X spline->points = next_point;
- X for (prev_point = next_point, p = prev_point->next;
- X p->next != NULL;
- X prev_point = p, p = p->next);
- X /*
- X * prev_point now points at next to last point (the last point is
- X * a copy of the first).
- X */
- X p->x = spline->points->x;
- X p->y = spline->points->y;
- X next_point = p;
- X /*
- X * next_point becomes the last point. If this operation (point
- X * deletion) is reversed (undo), the selected_point will not be
- X * inserted into it original place, but will be between
- X * prev_point and next_point.
- X */
- X } else
- X prev_point->next = next_point;
- X } else { /* open spline */
- X mask_toggle_splinemarker(spline);
- X draw_spline(spline, ERASE); /* erase the spline */
- X if (prev_point == NULL)
- X spline->points = next_point;
- X else
- X prev_point->next = next_point;
- X }
- X if (int_spline(spline)) {
- X F_control *c;
- X
- X c = spline->controls;
- X spline->controls = c->next;
- X c->next = NULL;
- X free((char *) c);
- X remake_control_points(spline);
- X }
- X draw_spline(spline, PAINT);
- X mask_toggle_splinemarker(spline);
- X clean_up();
- X set_action_object(F_DELETE_POINT, O_SPLINE);
- X set_latestspline(spline);
- X set_last_prevpoint(prev_point);
- X set_last_selectedpoint(selected_point);
- X set_last_nextpoint(next_point);
- X set_modifiedflag();
- X reset_cursor();
- X}
- X
- X/*************************** line ********************************/
- X
- X/*
- X * In deleting a point selected_point, linepoint_deleting uses prev_point and
- X * next_point of the point. The relationship between the three points is:
- X * prev_point->selected_point->next_point except when selected_point is the
- X * first point in the list, in which case prev_point will be NULL.
- X */
- Xlinepoint_deleting(line, prev_point, selected_point)
- X F_line *line;
- X F_point *prev_point, *selected_point;
- X{
- X F_point *p, *next_point;
- X
- X next_point = selected_point->next;
- X mask_toggle_linemarker(line);
- X draw_line(line, ERASE); /* erase the line */
- X if (line->type == T_POLYGON) {
- X if (prev_point == NULL) {
- X /* The deleted point is the first point */
- X line->points = next_point;
- X for (prev_point = next_point, p = prev_point->next;
- X p->next != NULL;
- X prev_point = p, p = p->next);
- X /*
- X * prev_point now points at next to last point (the last point is
- X * a copy of the first).
- X */
- X p->x = next_point->x;
- X p->y = next_point->y;
- X next_point = p;
- X /*
- X * next_point becomes the last point. If this operation (point
- X * deletion) is reversed (undo), the selected_point will not be
- X * inserted into it original place, but will be between
- X * prev_point and next_point.
- X */
- X } else
- X prev_point->next = next_point;
- X } else { /* polyline */
- X if (prev_point == NULL)
- X line->points = next_point;
- X else
- X prev_point->next = next_point;
- X }
- X draw_line(line, PAINT);
- X mask_toggle_linemarker(line);
- X clean_up();
- X set_modifiedflag();
- X set_action_object(F_DELETE_POINT, O_POLYLINE);
- X set_latestline(line);
- X set_last_prevpoint(prev_point);
- X set_last_selectedpoint(selected_point);
- X set_last_nextpoint(next_point);
- X}
- END_OF_FILE
- if test 6062 -ne `wc -c <'e_deletept.c'`; then
- echo shar: \"'e_deletept.c'\" unpacked with wrong size!
- fi
- # end of 'e_deletept.c'
- fi
- if test -f 'f_save.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'f_save.c'\"
- else
- echo shar: Extracting \"'f_save.c'\" \(6925 characters\)
- sed "s/^X//" >'f_save.c' <<'END_OF_FILE'
- X/*
- X * FIG : Facility for Interactive Generation of figures
- X * Copyright (c) 1985 by Supoj Sutanthavibul
- X *
- X * "Permission to use, copy, modify, distribute, and sell this software and its
- X * documentation for any purpose is hereby granted without fee, provided that
- X * the above copyright notice appear in all copies and that both the copyright
- X * notice and this permission notice appear in supporting documentation.
- X * No representations are made about the suitability of this software for
- X * any purpose. It is provided "as is" without express or implied warranty."
- X */
- X
- X#include "fig.h"
- X#include "resources.h"
- X#include "mode.h"
- X#include "object.h"
- X#include "w_setup.h"
- X
- Xextern int num_object;
- X
- Xwrite_file(file_name)
- X char *file_name;
- X{
- X FILE *fp;
- X
- X if (!ok_to_write(file_name, "SAVE"))
- X return (-1);
- X
- X if ((fp = fopen(file_name, "w")) == NULL) {
- X put_msg("Couldn't open file %s, %s", file_name, sys_errlist[errno]);
- X return (-1);
- X }
- X num_object = 0;
- X if (write_objects(fp)) {
- X put_msg("Error writing file %s, %s", file_name, sys_errlist[errno]);
- X return (-1);
- X }
- X put_msg("%d object(s) saved in \"%s\"", num_object, file_name);
- X return (0);
- X}
- X
- Xint
- Xwrite_objects(fp)
- X FILE *fp;
- X{
- X extern char file_header[];
- X F_arc *a;
- X F_compound *c;
- X F_ellipse *e;
- X F_line *l;
- X F_spline *s;
- X F_text *t;
- X
- X /*
- X * Number 2 means that the origin (0,0) is at the upper left corner of
- X * the screen (2nd quadrant)
- X */
- X
- X put_msg("Writing . . .");
- X fprintf(fp, "%s\n", file_header);
- X fprintf(fp, "%d %d\n", PIX_PER_INCH, 2);
- X for (a = objects.arcs; a != NULL; a = a->next) {
- X num_object++;
- X write_arc(fp, a);
- X }
- X for (c = objects.compounds; c != NULL; c = c->next) {
- X num_object++;
- X write_compound(fp, c);
- X }
- X for (e = objects.ellipses; e != NULL; e = e->next) {
- X num_object++;
- X write_ellipse(fp, e);
- X }
- X for (l = objects.lines; l != NULL; l = l->next) {
- X num_object++;
- X write_line(fp, l);
- X }
- X for (s = objects.splines; s != NULL; s = s->next) {
- X num_object++;
- X write_spline(fp, s);
- X }
- X for (t = objects.texts; t != NULL; t = t->next) {
- X num_object++;
- X write_text(fp, t);
- X }
- X if (ferror(fp)) {
- X fclose(fp);
- X return (-1);
- X }
- X if (fclose(fp) == EOF)
- X return (-1);
- X return (0);
- X}
- X
- Xwrite_arc(fp, a)
- X FILE *fp;
- X F_arc *a;
- X{
- X F_arrow *f, *b;
- X
- X fprintf(fp, "%d %d %d %d %d %d %d %d %.3f %d %d %d %.3f %.3f %d %d %d %d %d %d\n",
- X O_ARC, a->type, a->style, a->thickness,
- X a->color, a->depth, a->pen, a->fill_style,
- X a->style_val, a->direction,
- X ((f = a->for_arrow) ? 1 : 0), ((b = a->back_arrow) ? 1 : 0),
- X a->center.x, a->center.y,
- X a->point[0].x, a->point[0].y,
- X a->point[1].x, a->point[1].y,
- X a->point[2].x, a->point[2].y);
- X if (f)
- X fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", f->type, f->style,
- X f->thickness, f->wid, f->ht);
- X if (b)
- X fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", b->type, b->style,
- X b->thickness, b->wid, b->ht);
- X}
- X
- Xwrite_compound(fp, com)
- X FILE *fp;
- X F_compound *com;
- X{
- X F_arc *a;
- X F_compound *c;
- X F_ellipse *e;
- X F_line *l;
- X F_spline *s;
- X F_text *t;
- X
- X fprintf(fp, "%d %d %d %d %d\n", O_COMPOUND, com->nwcorner.x,
- X com->nwcorner.y, com->secorner.x, com->secorner.y);
- X for (a = com->arcs; a != NULL; a = a->next)
- X write_arc(fp, a);
- X for (c = com->compounds; c != NULL; c = c->next)
- X write_compound(fp, c);
- X for (e = com->ellipses; e != NULL; e = e->next)
- X write_ellipse(fp, e);
- X for (l = com->lines; l != NULL; l = l->next)
- X write_line(fp, l);
- X for (s = com->splines; s != NULL; s = s->next)
- X write_spline(fp, s);
- X for (t = com->texts; t != NULL; t = t->next)
- X write_text(fp, t);
- X fprintf(fp, "%d\n", O_END_COMPOUND);
- X}
- X
- Xwrite_ellipse(fp, e)
- X FILE *fp;
- X F_ellipse *e;
- X{
- X if (e->radiuses.x == 0 || e->radiuses.y == 0)
- X return;
- X
- X fprintf(fp, "%d %d %d %d %d %d %d %d %.5f %d %.3f %d %d %d %d %d %d %d %d\n",
- X O_ELLIPSE, e->type, e->style, e->thickness,
- X e->color, e->depth, e->pen, e->fill_style,
- X e->style_val, e->direction, e->angle,
- X e->center.x, e->center.y,
- X e->radiuses.x, e->radiuses.y,
- X e->start.x, e->start.y,
- X e->end.x, e->end.y);
- X}
- X
- Xwrite_line(fp, l)
- X FILE *fp;
- X F_line *l;
- X{
- X F_point *p;
- X F_arrow *f, *b;
- X int npts;
- X
- X if (l->points == NULL)
- X return;
- X fprintf(fp, "%d %d %d %d %d %d %d %d %.3f %d %d %d\n",
- X O_POLYLINE, l->type, l->style, l->thickness,
- X l->color, l->depth, l->pen, l->fill_style, l->style_val, l->radius,
- X ((f = l->for_arrow) ? 1 : 0), ((b = l->back_arrow) ? 1 : 0));
- X if (f)
- X fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", f->type, f->style,
- X f->thickness, f->wid, f->ht);
- X if (b)
- X fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", b->type, b->style,
- X b->thickness, b->wid, b->ht);
- X if (l->type == T_EPS_BOX)
- X fprintf(fp, "\t%d %s\n", l->eps->flipped, l->eps->file);
- X
- X fprintf(fp, "\t");
- X npts=0;
- X for (p = l->points; p != NULL; p = p->next) {
- X fprintf(fp, " %d %d", p->x, p->y);
- X if (++npts >= 8 && p->next != NULL)
- X {
- X fprintf(fp,"\n\t");
- X npts=0;
- X }
- X };
- X fprintf(fp, " 9999 9999\n");
- X}
- X
- Xwrite_spline(fp, s)
- X FILE *fp;
- X F_spline *s;
- X{
- X F_control *cp;
- X F_point *p;
- X F_arrow *f, *b;
- X int npts;
- X
- X if (s->points == NULL)
- X return;
- X fprintf(fp, "%d %d %d %d %d %d %d %d %.3f %d %d\n",
- X O_SPLINE, s->type, s->style, s->thickness,
- X s->color, s->depth, s->pen, s->fill_style, s->style_val,
- X ((f = s->for_arrow) ? 1 : 0), ((b = s->back_arrow) ? 1 : 0));
- X if (f)
- X fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", f->type, f->style,
- X f->thickness, f->wid, f->ht);
- X if (b)
- X fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", b->type, b->style,
- X b->thickness, b->wid, b->ht);
- X fprintf(fp, "\t");
- X for (p = s->points; p != NULL; p = p->next) {
- X fprintf(fp, " %d %d", p->x, p->y);
- X };
- X fprintf(fp, " 9999 9999\n");/* terminating code */
- X
- X if (s->controls == NULL)
- X return;
- X fprintf(fp, "\t");
- X npts=0;
- X for (cp = s->controls; cp != NULL; cp = cp->next) {
- X fprintf(fp, " %.3f %.3f %.3f %.3f",
- X cp->lx, cp->ly, cp->rx, cp->ry);
- X if (++npts >= 2 && cp->next != NULL)
- X {
- X fprintf(fp,"\n\t");
- X npts=0;
- X }
- X };
- X fprintf(fp, "\n");
- X}
- X
- Xwrite_text(fp, t)
- X FILE *fp;
- X F_text *t;
- X{
- X if (t->length == 0)
- X return;
- X fprintf(fp, "%d %d %d %d %d %d %d %.5f %d %d %d %d %d %s\1\n",
- X O_TEXT, t->type, t->font, t->size, t->pen,
- X t->color, t->depth, t->angle,
- X t->flags, t->height, t->length,
- X t->base_x, t->base_y, t->cstring);
- X}
- X
- Xemergency_save(file_name)
- X char *file_name;
- X{
- X FILE *fp;
- X
- X if ((fp = fopen(file_name, "w")) == NULL)
- X return (-1);
- X num_object = 0;
- X if (write_objects(fp))
- X return (-1);
- X (void) fprintf(stderr, "xfig: %d object(s) saved in \"%s\"\n",
- X num_object, file_name);
- X return (0);
- X}
- END_OF_FILE
- if test 6925 -ne `wc -c <'f_save.c'`; then
- echo shar: \"'f_save.c'\" unpacked with wrong size!
- fi
- # end of 'f_save.c'
- fi
- if test -f 'w_mousefun.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'w_mousefun.c'\"
- else
- echo shar: Extracting \"'w_mousefun.c'\" \(7190 characters\)
- sed "s/^X//" >'w_mousefun.c' <<'END_OF_FILE'
- X/*
- X * FIG : Facility for Interactive Generation of figures
- X * Copyright (c) 1991 by Paul King
- X *
- X * "Permission to use, copy, modify, distribute, and sell this software and its
- X * documentation for any purpose is hereby granted without fee, provided that
- X * the above copyright notice appear in all copies and that both the copyright
- X * notice and this permission notice appear in supporting documentation.
- X * No representations are made about the suitability of this software for
- X * any purpose. It is provided "as is" without express or implied warranty."
- X */
- X
- X#include "fig.h"
- X#include "figx.h"
- X#include "resources.h"
- X#include "w_util.h"
- X#include "w_drawprim.h"
- X#include "w_mousefun.h"
- X#include "w_setup.h"
- X
- X#define MOUSE_BUT_WID (int) (MOUSEFUN_WD * 0.045)
- X#define MOUSE_BUT_HGT (int) (MOUSEFUN_HT * 0.5)
- X#define MOUSE_LEFT_SPACE (int) ((MOUSEFUN_WD - 4 * MOUSE_BUT_WID) / 2)
- X#define MOUSE_LEFT_CTR (int) (MOUSE_LEFT_SPACE/2)
- X#define MOUSE_MID_CTR (int) (MOUSEFUN_WD / 2)
- X#define MOUSE_RIGHT_CTR (int) (MOUSEFUN_WD - MOUSE_LEFT_CTR)
- X#define MOUSEFUN_MAX 20
- X
- XDeclareStaticArgs(14);
- Xstatic char mousefun_l[MOUSEFUN_MAX];
- Xstatic char mousefun_m[MOUSEFUN_MAX];
- Xstatic char mousefun_r[MOUSEFUN_MAX];
- X
- X/* labels for the left and right buttons have 15 chars max */
- Xstatic char lr_blank[] = " ";
- X
- X/* give the middle button label a bit more space - 18 chars max */
- Xstatic char mid_blank[] = " ";
- Xstatic Pixmap mousefun_pm;
- X
- Xvoid
- Xinit_mousefun(tool)
- X TOOL tool;
- X{
- X FirstArg(XtNwidth, MOUSEFUN_WD);
- X /* start with nominal height and adjust later */
- X NextArg(XtNheight, MSGFORM_HT);
- X NextArg(XtNfromHoriz, cmd_panel);
- X NextArg(XtNhorizDistance, -INTERNAL_BW);
- X NextArg(XtNfromVert, NULL);
- X NextArg(XtNvertDistance, 0);
- X NextArg(XtNleft, XtChainLeft);
- X NextArg(XtNright, XtChainLeft);
- X NextArg(XtNtop, XtChainTop);
- X NextArg(XtNbottom, XtChainTop);
- X NextArg(XtNborderWidth, INTERNAL_BW);
- X NextArg(XtNbackgroundPixmap, NULL);
- X NextArg(XtNmappedWhenManaged, False);
- X NextArg(XtNlabel, "");
- X
- X mousefun = XtCreateManagedWidget("mouse_panel", labelWidgetClass,
- X tool, Args, ArgCount);
- X}
- X
- Xstatic void
- Xreset_mousefun()
- X{
- X /* get the foreground and background from the mousefun widget */
- X /* and create a gc with those values */
- X mouse_button_gc = XCreateGC(tool_d, XtWindow(mousefun), (unsigned long) 0, NULL);
- X FirstArg(XtNforeground, &mouse_but_fg);
- X NextArg(XtNbackground, &mouse_but_bg);
- X GetValues(mousefun);
- X XSetBackground(tool_d, mouse_button_gc, mouse_but_bg);
- X XSetForeground(tool_d, mouse_button_gc, mouse_but_fg);
- X XSetFont(tool_d, mouse_button_gc, button_font->fid);
- X
- X /* also create gc with fore=background for blanking areas */
- X mouse_blank_gc = XCreateGC(tool_d, XtWindow(mousefun), (unsigned long) 0, NULL);
- X XSetBackground(tool_d, mouse_blank_gc, mouse_but_bg);
- X XSetForeground(tool_d, mouse_blank_gc, mouse_but_bg);
- X
- X mousefun_pm = XCreatePixmap(tool_d, XtWindow(mousefun),
- X MOUSEFUN_WD, MOUSEFUN_HT, DefaultDepthOfScreen(tool_s));
- X
- X XFillRectangle(tool_d, mousefun_pm, mouse_blank_gc, 0, 0,
- X MOUSEFUN_WD, MOUSEFUN_HT);
- X
- X XDrawRectangle(tool_d, mousefun_pm, mouse_button_gc, MOUSE_LEFT_SPACE,
- X (int) (MOUSEFUN_HT * 0.45), MOUSE_BUT_WID, MOUSE_BUT_HGT);
- X XDrawRectangle(tool_d, mousefun_pm, mouse_button_gc,
- X (int) (MOUSE_LEFT_SPACE + 1.5 * MOUSE_BUT_WID),
- X (int) (MOUSEFUN_HT * 0.45), MOUSE_BUT_WID, MOUSE_BUT_HGT);
- X XDrawRectangle(tool_d, mousefun_pm, mouse_button_gc,
- X (int) (MOUSE_LEFT_SPACE + 3 * MOUSE_BUT_WID),
- X (int) (MOUSEFUN_HT * 0.45), MOUSE_BUT_WID, MOUSE_BUT_HGT);
- X FirstArg(XtNbackgroundPixmap, mousefun_pm);
- X SetValues(mousefun);
- X mouse_title();
- X FirstArg(XtNmappedWhenManaged, True);
- X SetValues(mousefun);
- X}
- X
- Xstatic char *title = "Mouse Buttons";
- X
- Xmouse_title()
- X{
- X /* put a title in the window */
- X XDrawImageString(tool_d, mousefun_pm, mouse_button_gc,
- X 4, button_font->ascent+4, title, strlen(title));
- X FirstArg(XtNbackgroundPixmap, 0);
- X SetValues(mousefun);
- X FirstArg(XtNbackgroundPixmap, mousefun_pm);
- X SetValues(mousefun);
- X}
- X
- Xvoid
- Xsetup_mousefun()
- X{
- X XDefineCursor(tool_d, XtWindow(mousefun), arrow_cursor);
- X /* now that the message panel has the real height it needs (because of
- X the font size we can resize the mouse panel */
- X MOUSEFUN_HT = MSGFORM_HT + CMDPANEL_HT - INTERNAL_BW;
- X XtUnmanageChild(mousefun);
- X FirstArg(XtNheight, MOUSEFUN_HT);
- X SetValues(mousefun);
- X XtManageChild(mousefun);
- X reset_mousefun();
- X set_mousefun("", "", "");
- X}
- X
- Xvoid
- Xresize_mousefun()
- X{
- X XFreePixmap(tool_d, mousefun_pm);
- X reset_mousefun();
- X}
- X
- Xvoid
- Xset_mousefun(left, middle, right)
- X char *left, *middle, *right;
- X{
- X strcpy(mousefun_l, left);
- X strcpy(mousefun_m, middle);
- X strcpy(mousefun_r, right);
- X}
- X
- Xvoid
- Xdraw_mousefun_mode()
- X{
- X clear_mousefun();
- X draw_mousefun("Change Mode", "", "");
- X}
- X
- Xvoid
- Xdraw_mousefun_ind()
- X{
- X clear_mousefun();
- X draw_mousefun("Menu", "Dec/Prev", "Inc/Next");
- X}
- X
- Xvoid
- Xdraw_mousefun_unitbox()
- X{
- X clear_mousefun();
- X draw_mousefun("Pan to Origin", "", "Set Units/Scale");
- X}
- X
- Xvoid
- Xdraw_mousefun_topruler()
- X{
- X clear_mousefun();
- X draw_mousefun("Pan Left", "Drag", "Pan Right");
- X}
- X
- Xvoid
- Xdraw_mousefun_sideruler()
- X{
- X clear_mousefun();
- X draw_mousefun("Pan Up", "Drag", "Pan Down");
- X}
- X
- Xvoid
- Xdraw_mousefun_canvas()
- X{
- X clear_mousefun();
- X draw_mousefun(mousefun_l, mousefun_m, mousefun_r);
- X}
- X
- Xstatic void
- Xdraw_mousefun_msg(s, xctr, ypos)
- X char *s;
- X int xctr, ypos;
- X{
- X int width;
- X
- X width = XTextWidth(button_font, s, strlen(s));
- X XDrawImageString(tool_d, mousefun_pm, mouse_button_gc,
- X xctr - (int) (width / 2), ypos, s, strlen(s));
- X}
- X
- Xvoid
- Xdraw_mousefun(left, middle, right)
- X char *left, *middle, *right;
- X{
- X draw_mousefun_msg(left, MOUSE_LEFT_CTR, 30);
- X draw_mousefun_msg(middle, MOUSE_MID_CTR, 11);
- X draw_mousefun_msg(right, MOUSE_RIGHT_CTR, 30);
- X FirstArg(XtNbackgroundPixmap, 0);
- X SetValues(mousefun);
- X FirstArg(XtNbackgroundPixmap, mousefun_pm);
- X SetValues(mousefun);
- X}
- X
- Xvoid
- Xnotused_middle()
- X{
- X draw_mousefun_msg("Not Used", MOUSE_MID_CTR, 11);
- X FirstArg(XtNbackgroundPixmap, 0);
- X SetValues(mousefun);
- X FirstArg(XtNbackgroundPixmap, mousefun_pm);
- X SetValues(mousefun);
- X}
- X
- Xvoid
- Xclear_middle()
- X{
- X draw_mousefun_msg(mid_blank, MOUSE_MID_CTR, 11);
- X FirstArg(XtNbackgroundPixmap, 0);
- X SetValues(mousefun);
- X FirstArg(XtNbackgroundPixmap, mousefun_pm);
- X SetValues(mousefun);
- X}
- X
- Xvoid
- Xnotused_right()
- X{
- X draw_mousefun_msg("Not Used", MOUSE_RIGHT_CTR, 30);
- X FirstArg(XtNbackgroundPixmap, 0);
- X SetValues(mousefun);
- X FirstArg(XtNbackgroundPixmap, mousefun_pm);
- X SetValues(mousefun);
- X}
- X
- Xvoid
- Xclear_right()
- X{
- X draw_mousefun_msg(mid_blank, MOUSE_RIGHT_CTR, 30);
- X FirstArg(XtNbackgroundPixmap, 0);
- X SetValues(mousefun);
- X FirstArg(XtNbackgroundPixmap, mousefun_pm);
- X SetValues(mousefun);
- X}
- X
- Xvoid
- Xclear_mousefun()
- X{
- X draw_mousefun(lr_blank, mid_blank, lr_blank);
- X /* redraw the title in case the blanks overwrite it */
- X mouse_title();
- X}
- END_OF_FILE
- if test 7190 -ne `wc -c <'w_mousefun.c'`; then
- echo shar: \"'w_mousefun.c'\" unpacked with wrong size!
- fi
- # end of 'w_mousefun.c'
- fi
- echo shar: End of archive 5 \(of 27\).
- cp /dev/null ark5isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 27 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
- exit 0 # Just in case...
- --
- // chris@IMD.Sterling.COM | Send comp.sources.x submissions to:
- \X/ Amiga - The only way to fly! | sources-x@imd.sterling.com
- "It's intuitively obvious to the |
- most casual observer..." | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
-