home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
x
/
volume16
/
xfig-2.1.3
/
part20
< prev
next >
Wrap
Internet Message Format
|
1992-02-04
|
57KB
Path: uunet!zaphod.mps.ohio-state.edu!mips!msi!dcmartin
From: envbvs@bea.lbl.gov (Brian V. Smith)
Newsgroups: comp.sources.x
Subject: v16i025: Xfig 2.1.3, Part20/25
Message-ID: <1992Feb4.150245.1378@msi.com>
Date: 4 Feb 92 15:02:45 GMT
References: <csx-16i006-xfig-2.1.3@uunet.UU.NET>
Sender: dcmartin@msi.com (David C. Martin - Moderator)
Organization: Molecular Simulations, Inc.
Lines: 1573
Approved: dcmartin@msi.com
Originator: dcmartin@fascet
Submitted-by: envbvs@bea.lbl.gov (Brian V. Smith)
Posting-number: Volume 16, Issue 25
Archive-name: xfig-2.1.3/part20
# This is a shell archive. Remove anything before this line, then feed it
# into a shell via "sh file" or similar. To overwrite existing files,
# type "sh file -c".
# The tool that generated this appeared in the comp.sources.unix newsgroup;
# send mail to comp-sources-unix@uunet.uu.net if you want that tool.
# If this archive is complete, you will see the following message at the end:
# "End of archive 20 (of 25)."
# Contents: Examples/experiment.fig.uu Examples/housecheck.fig.uu
# Examples/orifices.fig.uu d_line.c e_convert.c e_deletept.c
# f_save.c w_cmdpanel.c
# Wrapped by dcmartin@fascet on Tue Feb 4 06:42:32 1992
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
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'\" \(6943 characters\)
sed "s/^X//" >'Examples/experiment.fig.uu' <<'END_OF_FILE'
Xbegin 664 experiment.fig
XM(T9)1R`R+C`*.#`@,@HQ(#,@,"`Q(#`@,"`P(#`@,"XP,#`@,2`P+C`P,"`T
XM,S0@,3`Y(#4@-2`T,S0@,3`Y(#0S.2`Q,#D*,2`S(#`@,2`P(#`@,"`P(#`N
XM,#`P(#$@,"XP,#`@-34Y(#$X-"`U(#4@-34Y(#$X-"`U-C0@,3@T"C$@,R`P
XM(#$@,"`P(#`@,"`P+C`P,"`Q(#`N,#`P(#4U.2`Q,C0@-2`U(#4U.2`Q,C0@
XM-38T(#$R-`HQ(#,@,"`Q(#`@,"`P(#`@,"XP,#`@,2`P+C`P,"`T,#D@,34T
XM(#4@-2`T,#D@,34T(#0Q-"`Q-30*,2`S(#`@,B`P(#`@,"`P(#`N,#`P(#$@
XM,"XP,#`@,3$T(#$U-"`R,"`R,"`Q,30@,34T(#$S-"`Q-30*,B`Q(#`@,B`P
XM(#`@,"`P(#`N,#`P(#`@,`H)(#DT(#$U-"`W.2`Q-30@.3DY.2`Y.3DY"C(@
XM,2`P(#(@,"`P(#`@,"`P+C`P,"`Q(#`*"3`@,"`R+C`P,"`X+C`P,"`Q-BXP
XM,#`*"2`W,S0@,C8T(#<S-"`R.#0@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@
XM,"`P+C`P,"`P(#`*"2`T,S$@,3$R(#0S-R`Q,#8@.3DY.2`Y.3DY"C(@,2`P
XM(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`T,S$@,3`V(#0S."`Q,3,@.3DY.2`Y
XM.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`U-38@,3@W(#4V,B`Q
XM.#$@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`U-38@
XM,3@Q(#4V,R`Q.#@@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`P
XM(#`*"2`U-38@,3(Q(#4V,R`Q,C@@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@
XM,"`P+C`P,"`P(#`*"2`U-38@,3(W(#4V,B`Q,C$@.3DY.2`Y.3DY"C(@,2`P
XM(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`T,#8@,34Q(#0Q,R`Q-3@@.3DY.2`Y
XM.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`T,#8@,34W(#0Q,B`Q
XM-3$@.3DY.2`Y.3DY"C(@,2`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`Q,#D@
XM,3<T(#$P-"`Q.#0@,3(T(#$X-"`Q,3D@,3<T(#DY.3D@.3DY.0HR(#$@,"`Q
XM(#`@,"`P(#`@,"XP,#`@,2`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q
XM,#0@,34T(#$R-"`Q-30@.3DY.2`Y.3DY"C(@,B`P(#(@,"`P(#`@,"`P+C`P
XM,"`P(#`*"2`Q-30@,3,T(#$U-"`Q-S0@,3<T(#$W-"`Q-S0@,3,T(#$U-"`Q
XM,S0@.3DY.2`Y.3DY"C(@,B`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`Q.30@
XM,3,T(#$Y-"`Q-S0@,C,T(#$W-"`R,S0@,3,T(#$Y-"`Q,S0@.3DY.2`Y.3DY
XM"C(@,B`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`R-30@,3,T(#(U-"`Q-S0@
XM,CDT(#$W-"`R.30@,3,T(#(U-"`Q,S0@.3DY.2`Y.3DY"C(@,B`P(#(@,"`P
XM(#`@,"`P+C`P,"`P(#`*"2`S,30@,3,T(#,Q-"`Q-S0@,S4T(#$W-"`S-30@
XM,3,T(#,Q-"`Q,S0@.3DY.2`Y.3DY"C(@,2`P(#(@,"`P(#`@,"`P+C`P,"`P
XM(#`*"2`Q,S0@,34T(#$U-"`Q-30@.3DY.2`Y.3DY"C(@,2`P(#(@,"`P(#`@
XM,"`P+C`P,"`P(#`*"2`Q-S0@,34T(#$Y-"`Q-30@.3DY.2`Y.3DY"C(@,2`P
XM(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`R,S0@,34T(#(U-"`Q-30@.3DY.2`Y
XM.3DY"C(@,2`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`R.30@,34T(#,Q-"`Q
XM-30@.3DY.2`Y.3DY"C(@,B`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`T,30@
XM,3,T(#0U-"`Q,S0@-#4T(#$Y-"`T,30@,3DT(#0Q-"`Q,S0@.3DY.2`Y.3DY
XM"C(@,2`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`S-30@,34T(#0P-"`Q-30@
XM.3DY.2`Y.3DY"C(@,2`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`T-30@,34T
XM(#4Q-"`Q-30@.3DY.2`Y.3DY"C(@,2`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*
XM"2`S.#0@,34T(#,X-"`Q,#D@-#(Y(#$P.2`Y.3DY(#DY.3D*,B`Q(#`@,B`P
XM(#`@,"`P(#`N,#`P(#`@,`H)(#0S.2`Q,#D@-#@T(#$P.2`T.#0@,34T(#DY
XM.3D@.3DY.0HR(#$@,"`R(#`@,"`P(#`@,"XP,#`@,"`P"@D@-34T(#$R-"`U
XM,30@,3(T(#4Q-"`Q.#0@-34T(#$X-"`Y.3DY(#DY.3D*,B`Q(#`@,B`P(#`@
XM,"`P(#`N,#`P(#`@,`H)(#4V-"`Q,C0@-C<T(#$R-"`V-S0@,3<T(#8R-"`Q
XM-S0@.3DY.2`Y.3DY"C(@,B`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`V,#D@
XM,38T(#8R-"`Q-C0@-C(T(#$Y.2`V,#D@,3DY(#8P.2`Q-C0@.3DY.2`Y.3DY
XM"C(@,2`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`U-C0@,3@T(#8P.2`Q.#0@
XM.3DY.2`Y.3DY"C(@,2`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`V-S0@,34T
XM(#<S-"`Q-30@-S,T(#0T-"`U,S0@-#0T(#DY.3D@.3DY.0HR(#,@,"`R(#`@
XM,"`P(#`@,"XP,#`@,"`P"@D@-3,T(#0Q-"`T.#0@-#$T(#0X-"`T,SD@-#0T
XM(#0S.2`T-#0@-#$T(#,Y-"`T,30@,SDT(#0W-"`T-#0@-#<T(#0T-"`T-#D@
XM-#@T(#0T.2`T.#0@-#<T(#4S-"`T-S0@-3,T(#0Q-"`Y.3DY(#DY.3D*,B`Q
XM(#`@,B`P(#`@,"`P(#`N,#`P(#$@,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P
XM"@D@,SDT(#0T-"`S,30@-#0T(#DY.3D@.3DY.0HR(#$@,"`Q(#`@,"`P(#`@
XM,"XP,#`@,"`P"@D@,38T(#$S-"`Q-30@,30T(#DY.3D@.3DY.0HR(#$@,"`Q
XM(#`@,"`P(#`@,"XP,#`@,"`P"@D@,3<T(#$S-"`Q-30@,34T(#DY.3D@.3DY
XM.0HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@,3<T(#$T-"`Q-30@,38T
XM(#DY.3D@.3DY.0HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@,3<T(#$U
XM-"`Q-30@,3<T(#DY.3D@.3DY.0HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P
XM"@D@,3<T(#$V-"`Q-C0@,3<T(#DY.3D@.3DY.0HR(#$@,"`Q(#`@,"`P(#`@
XM,"XP,#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`S-CD@,30Y(#,V
XM.2`X.2`Y.3DY(#DY.3D*,B`R(#$@,2`P(#`@,"`P(#0N,#`P(#`@,`H)(#4X
XM-"`Q,SD@-3@T(#(P.2`V-#0@,C`Y(#8T-"`Q,SD@-3@T(#$S.2`Y.3DY(#DY
XM.3D*,B`Q(#`@,2`P(#`@,"`P(#`N,#`P(#$@,`H),"`P(#$N,#`P(#0N,#`P
XM(#@N,#`P"@D@-#8T(#0P-"`T-C0@-#,T(#DY.3D@.3DY.0HR(#$@,"`Q(#`@
XM,"`P(#`@,"XP,#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`T,#D@
XM-#4Y(#0P.2`T.3D@,S@T(#4Q-"`Y.3DY(#DY.3D*,B`Q(#`@,2`P(#`@,"`P
XM(#`N,#`P(#`@,0H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@-3$Y(#0U.2`U
XM,3D@-#DY(#4T-"`U,30@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P
XM,"`P(#$*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#0S-"`Q.3D@-#,T(#(U
XM-"`Y.3DY(#DY.3D*-"`Q(#`@,38@,"`P(#`@,"XP,#`@,2`Q-R`Q.#4@,S<Y
XM(#0T($5X<&5R:6UE;G1A;"!!<'!A<F%T=7,!"C0@,2`P(#$R(#`@,"`P(#`N
XM,#`P(#$@,3(@,34R(#8S-"`T-C0@2'5M:61I='D@86YD($\@(&-O;F-E;G1R
XM871I;VX!"C0@,2`P(#$R(#`@,"`P(#`N,#`P(#$@,3(@,C@@,3$T(#$R-"!0
XM=6UP`0HT(#(@,"`Q,B`P(#`@,"`P+C`P,"`Q(#D@-#@@-CD@,34W(%)O;VT@
XM06ER`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#D@,S@@,38T(#$Y-"!087)T
XM:6-L90$*-"`Q(#`@,3(@,"`P(#`@,"XP,#`@,2`Y(#0P(#$V-"`R,#D@4')E
XM9FEL=&5R`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#$R(#0S(#$V-"`R,C0@
XM*&-O87)S92D!"C0@,2`P(#$R(#`@,"`P(#`N,#`P(#$@.2`T."`R,30@,3(T
XM(%-I;&EC82!'96P!"C0@,2`P(#$R(#`@,"`P(#`N,#`P(#$@.2`T,2`R,30@
XM,3DT(%)E;6]V90$*-"`Q(#`@,3(@,"`P(#`@,"XP,#`@,2`Y(#(T(#(Q-"`R
XM,#D@2"`@3P$*-"`Q(#`@,3`@,"`P(#`@,"XP,#`@,2`W(#4@,C$T(#(Q-"`R
XM`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#D@,S(@,C<T(#$R-"!0=7)A9FEL
XM`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#D@-#$@,C<T(#$Y-"!296UO=F4!
XM"C0@,2`P(#$R(#`@,"`P(#`N,#`P(#$@.2`T-R`R-S0@,C`Y($Y/("`K4T\@
XM`0HT(#$@,"`Q,"`P(#`@,"`P+C`P,"`Q(#<@-2`R-CD@,C$T(#(!"C0@,2`P
XM(#$P(#`@,"`P(#`N,#`P(#$@-R`U(#,P,"`R,30@,@$*-"`Q(#`@,3(@,"`P
XM(#`@,"XP,#`@,2`Y(#0Y(#,S-"`Q,30@06-T:79A=&5D`0HT(#$@,"`Q,B`P
XM(#`@,"`P+C`P,"`Q(#D@,S8@,S,T(#$R.2!#87)B;VX!"C0@,2`P(#$R(#`@
XM,"`P(#`N,#`P(#$@.2`T,2`S,S0@,3DT(%)E;6]V90$*-"`Q(#`@,3(@,"`P
XM(#`@,"XP,#`@,2`Y(#4S(#,S-"`R,#D@3R`@86YD($A#`0HT(#$@,"`Q,"`P
XM(#`@,"`P+C`P,"`Q(#<@-2`S,3<@,C$T(#,!"C0@,2`P(#$R(#`@,"`P(#`N
XM,#`P(#$@,3(@-S,@,S8Y(#@T($1R>2P@0VQE86X@06ER`0HT(#$@,"`Q,B`P
XM(#`@,"`P+C`P,"`Q(#D@,S`@-#,T(#$R.2!686QV90$*-"`Q(#`@,3(@,"`P
XM(#`@,"XP,#`@,2`Q,B`S."`T,S0@.3D@0GEP87-S`0HT(#(@,"`Q,B`P(#`@
XM,"`P+C`P,"`Q(#D@,S`@-#`Y(#$W-"!686QV90$*-"`Q(#`@,3(@,"`P(#`@
XM,"XP,#`@,2`Y(#,P(#4U.2`Q,30@5F%L=F4!"C0@,2`P(#$R(#`@,"`P(#`N
XM,#`P(#$@.2`S,"`U-3D@,3<T(%9A;'9E`0HT(#$@,"`Q,B`P(#`@,"`P+C`P
XM,"`Q(#D@,SD@-C$T(#$U.2!"=6)B;&5R`0HT(#$@,"`Q,B`P(#`@,"`P+C`P
XM,"`Q(#$R(#$Q-2`V,S0@-#,Y($%I<B!3=')E86T@=VET:"!P<F]P97(!"C0@
XM,2`P(#$P(#`@,"`P(#`N,#`P(#$@-R`U(#8T,"`T-CD@,P$*-"`Q(#`@,3(@
XM,"`P(#`@,"XP,#`@,2`Y(#0V(#0V-"`S.3D@5&5S="!3;&]T`0HT(#(@,"`Q
XM,B`P(#`@,"`P+C`P,"`Q(#D@-#,@,S`T(#0T.2!4;R!(;V]D`0HT(#(@,"`Q
XM,B`P(#`@,"`P+C`P,"`Q(#$R(#<P(#,W.2`U,3D@4V%M<&QI;F<@4&]R=`$*
XM-"`R(#`@,3(@,"`P(#`@,"XP,#`@,2`Q,2`U,2`S-SD@-3,Y($\@("P@5"P@
XM4D@!"C0@,B`P(#$P(#`@,"`P(#`N,#`P(#$@-R`U(#,S-R`U-#4@,P$*-"`P
XM(#`@,3(@,"`P(#`@,"XP,#`@,2`Q,B`W,"`U-#D@-3$Y(%-A;7!L:6YG(%!O
XM<G0!"C0@,"`P(#$R(#`@,"`P(#`N,#`P(#$@,3$@-3$@-30Y(#4S.2!/("`L
XM(%0L(%)(`0HT(#`@,"`Q,"`P(#`@,"`P+C`P,"`Q(#<@-2`U-3@@-30U(#,!
XM"C0@,2`P(#$R(#`@,"`P(#`N,#`P(#$@.2`X-R`T,S0@,C<T($]Z;VYE($=E
XM;F5R871O<@$*-"`Q(#`@,3(@,"`P(#`@,"XP,#`@,2`Q,B`Y-"`T,S0@,CDT
X5("A5;'1R879I;VQE="!,86UP*0$*
X`
Xend
END_OF_FILE
if test 6943 -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/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'\" \(6649 characters\)
sed "s/^X//" >'Examples/housecheck.fig.uu' <<'END_OF_FILE'
Xbegin 664 housecheck.fig
XM(T9)1R`R+C`*.#`@,@HR(#0@,"`S(#`@,"`P(#`@,"XP,#`@,38@,"`P"@D@
XM,SD@,30@,SD@.#0@-C`Y(#@T(#8P.2`Q-"`S.2`Q-"`Y.3DY(#DY.3D*,B`T
XM(#`@,R`P(#`@,"`P(#`N,#`P(#$V(#`@,`H)(#,Y(#DT(#,Y(#<R-"`V,#D@
XM-S(T(#8P.2`Y-"`S.2`Y-"`Y.3DY(#DY.3D*,B`R(#`@,2`P(#`@,"`P(#`N
XM,#`P(#`@,`H)(#DY(#,V-"`Q,#D@,S8T(#$P.2`S-S0@.3D@,S<T(#DY(#,V
XM-"`Y.3DY(#DY.3D*,B`R(#`@,B`P(#`@,"`P(#`N,#`P(#`@,`H)(#<T(#,S
XM.2`W-"`S-30@.#D@,S4T(#@Y(#,S.2`W-"`S,SD@.3DY.2`Y.3DY"C(@,2`P
XM(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`T.#0@,SD@-3<T(#,Y(#DY.3D@.3DY
XM.0HR(#(@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@.3D@,38Y(#$P.2`Q-CD@
XM,3`Y(#$W.2`Y.2`Q-SD@.3D@,38Y(#DY.3D@.3DY.0HR(#$@,"`Q(#`@,"`P
XM(#`@,"XP,#`@,"`P"@D@,C(Y(#<T(#4W-"`W-"`Y.3DY(#DY.3D*,B`Q(#`@
XM,2`P(#`@,"`P(#`N,#`P(#`@,`H)(#$T-"`S.2`T,CD@,SD@.3DY.2`Y.3DY
XM"C(@,B`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`Y.2`Q,SD@,3`Y(#$S.2`Q
XM,#D@,30Y(#DY(#$T.2`Y.2`Q,SD@.3DY.2`Y.3DY"C(@,B`P(#(@,"`P(#`@
XM,"`P+C`P,"`P(#`*"2`W-"`Q,30@-S0@,3(Y(#@Y(#$R.2`X.2`Q,30@-S0@
XM,3$T(#DY.3D@.3DY.0HR(#(@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@.3D@
XM,34T(#$P.2`Q-30@,3`Y(#$V-"`Y.2`Q-C0@.3D@,34T(#DY.3D@.3DY.0HR
XM(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@-3,T(#$R.2`U.#D@,3(Y(#DY
XM.3D@.3DY.0HR(#(@,"`R(#`@,"`P(#`@,"XP,#`@,"`P"@D@,S`T(#$Q-"`S
XM,#0@,3(Y(#,Q.2`Q,CD@,S$Y(#$Q-"`S,#0@,3$T(#DY.3D@.3DY.0HR(#(@
XM,"`R(#`@,"`P(#`@,"XP,#`@,"`P"@D@-S0@,3DT(#<T(#(P.2`X.2`R,#D@
XM.#D@,3DT(#<T(#$Y-"`Y.3DY(#DY.3D*,B`R(#`@,2`P(#`@,"`P(#`N,#`P
XM(#`@,`H)(#DY(#(T.2`Q,#D@,C0Y(#$P.2`R-3D@.3D@,C4Y(#DY(#(T.2`Y
XM.3DY(#DY.3D*,B`R(#`@,2`P(#`@,"`P(#`N,#`P(#`@,`H)(#DY(#(S-"`Q
XM,#D@,C,T(#$P.2`R-#0@.3D@,C0T(#DY(#(S-"`Y.3DY(#DY.3D*,B`R(#`@
XM,B`P(#`@,"`P(#`N,#`P(#`@,`H)(#<T(#(W-"`W-"`R.#D@.#D@,C@Y(#@Y
XM(#(W-"`W-"`R-S0@.3DY.2`Y.3DY"C(@,B`P(#$@,"`P(#`@,"`P+C`P,"`P
XM(#`*"2`Y.2`R.3D@,3`Y(#(Y.2`Q,#D@,S`Y(#DY(#,P.2`Y.2`R.3D@.3DY
XM.2`Y.3DY"C(@,B`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`Y.2`S,30@,3`Y
XM(#,Q-"`Q,#D@,S(T(#DY(#,R-"`Y.2`S,30@.3DY.2`Y.3DY"C(@,B`P(#(@
XM,"`P(#`@,"`P+C`P,"`P(#`*"2`W-"`V-SD@-S0@-CDT(#@Y(#8Y-"`X.2`V
XM-SD@-S0@-C<Y(#DY.3D@.3DY.0HR(#(@,"`R(#`@,"`P(#`@,"XP,#`@,"`P
XM"@D@-S0@,S@Y(#<T(#0P-"`X.2`T,#0@.#D@,S@Y(#<T(#,X.2`Y.3DY(#DY
XM.3D*,B`R(#`@,2`P(#`@,"`P(#`N,#`P(#`@,`H)(#DY(#0Q-"`Q,#D@-#$T
XM(#$P.2`T,C0@.3D@-#(T(#DY(#0Q-"`Y.3DY(#DY.3D*,B`R(#`@,2`P(#`@
XM,"`P(#`N,#`P(#`@,`H)(#DY(#8R-"`Q,#D@-C(T(#$P.2`V,S0@.3D@-C,T
XM(#DY(#8R-"`Y.3DY(#DY.3D*,B`R(#`@,B`P(#`@,"`P(#`N,#`P(#`@,`H)
XM(#<T(#4Y.2`W-"`V,30@.#D@-C$T(#@Y(#4Y.2`W-"`U.3D@.3DY.2`Y.3DY
XM"C(@,B`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`Y.2`V,SD@,3`Y(#8S.2`Q
XM,#D@-C0Y(#DY(#8T.2`Y.2`V,SD@.3DY.2`Y.3DY"C(@,B`P(#$@,"`P(#`@
XM,"`P+C`P,"`P(#`*"2`Y.2`V-30@,3`Y(#8U-"`Q,#D@-C8T(#DY(#8V-"`Y
XM.2`V-30@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`S
XM-S0@-C8T(#0W-"`V-C0@.3DY.2`Y.3DY"C(@,B`P(#$@,"`P(#`@,"`P+C`P
XM,"`P(#`*"2`Y.2`U,#D@,3`Y(#4P.2`Q,#D@-3$Y(#DY(#4Q.2`Y.2`U,#D@
XM.3DY.2`Y.3DY"C(@,B`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`Y.2`T.30@
XM,3`Y(#0Y-"`Q,#D@-3`T(#DY(#4P-"`Y.2`T.30@.3DY.2`Y.3DY"C(@,B`P
XM(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`Y.2`T-SD@,3`Y(#0W.2`Q,#D@-#@Y
XM(#DY(#0X.2`Y.2`T-SD@.3DY.2`Y.3DY"C(@,B`P(#$@,"`P(#`@,"`P+C`P
XM,"`P(#`*"2`Y.2`T-C0@,3`Y(#0V-"`Q,#D@-#<T(#DY(#0W-"`Y.2`T-C0@
XM.3DY.2`Y.3DY"C(@,B`P(#(@,"`P(#`@,"`P+C`P,"`P(#`*"2`W-"`T,SD@
XM-S0@-#4T(#@Y(#0U-"`X.2`T,SD@-S0@-#,Y(#DY.3D@.3DY.0HR(#(@,"`R
XM(#`@,"`P(#`@,"XP,#`@,"`P"@D@-S0@-3,T(#<T(#4T.2`X.2`U-#D@.#D@
XM-3,T(#<T(#4S-"`Y.3DY(#DY.3D*,B`R(#`@,2`P(#`@,"`P(#`N,#`P(#`@
XM,`H)(#DY(#4U.2`Q,#D@-34Y(#$P.2`U-CD@.3D@-38Y(#DY(#4U.2`Y.3DY
XM(#DY.3D*,B`R(#`@,2`P(#`@,"`P(#`N,#`P(#`@,`H)(#DY(#4W-"`Q,#D@
XM-3<T(#$P.2`U.#0@.3D@-3@T(#DY(#4W-"`Y.3DY(#DY.3D*,B`R(#`@,2`P
XM(#`@,"`P(#`N,#`P(#`@,`H)(#,S.2`R-#D@,S0Y(#(T.2`S-#D@,C4Y(#,S
XM.2`R-3D@,S,Y(#(T.2`Y.3DY(#DY.3D*,B`R(#`@,2`P(#`@,"`P(#`N,#`P
XM(#`@,`H)(#,S.2`R,S0@,S0Y(#(S-"`S-#D@,C0T(#,S.2`R-#0@,S,Y(#(S
XM-"`Y.3DY(#DY.3D*-"`P(#`@,3(@,"`P(#`@,"XP,#`@,2`Q,B`Q-S`@,3$Y
XM(#(T-"!3:7IE("`M("!,87)G92`@+R`@365D:75M("`O("!3;6%L;`$*-"`P
XM(#`@,3(@,"`P(#`@,"XP,#`@,2`Q,B`Q,C@@,3$Y(#,W-"!,87)G92`@+R`@
XM365D:75M("`O("!3;6%L;`$*-"`P(#`@,30@,"`P(#`@,"XP,#`@,2`Q,R`Q
XM-3$@.3D@,S4T($1I;FEN9R!2;V]M("`M("!997,@("\@($YO`0HT(#`@,"`Q
XM-"`P(#`@,"`P+C`P,"`Q(#$P(#<P(#DY(#(R.2!"961R;V]M(",Q`0HT(#`@
XM,"`Q-"`P(#`@,"`P+C`P,"`Q(#$P(#,T(#0S.2`S.2!0<FEC93H!"C0@,"`P
XM(#$R(#`@,"`P(#`N,#`P(#$@.2`V-"`Q,3D@,3<Y($QI;F5N($-L;W-E=`$*
XM-"`P(#`@,30@,"`P(#`@,"XP,#`@,2`Q,R`Q,S@@-CD@-S0@1&ES=&EN9W5I
XM<VAI;F<@1F5A='5R97,Z`0HT(#`@,"`Q-"`P(#`@,"`P+C`P,"`Q(#$P(#4S
XM(#8Y(#,Y($%D9')E<W,Z`0HT(#`@,"`Q,B`P(#`@,"`P+C`P,"`Q(#$R(#$Q
XM-"`Q,3D@,30Y(%!L=6UB:6YG("T@($YE=R`O($]L9`$*-"`P(#`@,30@,"`P
XM(#`@,"XP,#`@,2`Q,"`Q,C`@.3D@,3(Y($)A=&AR;V]M<SH@("`Q("`Q*R`@
XM(#(!"C0@,"`P(#$R(#`@,"`P(#`N,#`P(#$@.2`W,B`Q,3D@,38T(%1U8B`@
XM+R`@4VAO=V5R`0HT(#`@,"`Q-"`P(#`@,"`P+C`P,"`Q(#$T(#$W,R`S,CD@
XM,3(Y(%1E<FUI=&4@4F5P;W)T.B`@(%EE<R`@+R!.;R`@("`D`0HT(#`@,"`Q
XM-"`P(#`@,"`P+C`P,"`Q(#$P(#$Q.2`Y.2`R,#D@0F5D<F]O;7,Z("`@,B`@
XM(#(K("`@,P$*-"`P(#`@,3(@,"`P(#`@,"XP,#`@,2`Q,B`Q.#<@,3$Y(#(U
XM.2!#;&]S971S("`M("!,87)G92`@+R`@365D:75M("`O("!3;6%L;`$*-"`P
XM(#`@,30@,"`P(#`@,"XP,#`@,2`Q,R`W,R`Q,#`@,C@Y($QI=FEN9R!2;V]M
XM`0HT(#`@,"`Q,B`P(#`@,"`P+C`P,"`Q(#$R(#$R."`Q,3D@,S`Y($QA<F=E
XM("`O("!-961I=6T@("\@(%-M86QL`0HT(#`@,"`Q,B`P(#`@,"`P+C`P,"`Q
XM(#$R(#0W(#$Q.2`S,C8@1FER97!L86-E`0HT(#`@,"`Q-"`P(#`@,"`P+C`P
XM,"`Q(#$S(#$Q,2`Y.2`V.30@3&%U;F1R>2`@665S("`O("!.;P$*-"`P(#`@
XM,30@,"`P(#`@,"XP,#`@,2`Q,R`Y,2`Y.2`T,#0@2&5A=&EN9R!3>7-T96T!
XM"C0@,"`P(#$R(#`@,"`P(#`N,#`P(#$@.2`Q,#8@,3$Y(#0R-"!&;&]O<B`O
XM(%=A;&P@+R!#96YT<F%L`0HT(#`@,"`Q,B`P(#`@,"`P+C`P,"`Q(#D@.3$@
XM,3$Y(#8S-"!2;V]F("T@($YE=R`O($]L9`$*-"`P(#`@,30@,"`P(#`@,"XP
XM,#`@,2`Q,"`S,R`Y.2`V,30@3W1H97(!"C0@,"`P(#$R(#`@,"`P(#`N,#`P
XM(#$@,3(@,3@V(#$Q.2`V-#D@5VER:6YG("`M("!.97<@+R!/;&0@("`@,3$P
XM5B`@+R`@,C(P5@$*-"`P(#`@,3(@,"`P(#`@,"XP,#`@,2`Q,B`R,S4@,3$Y
XM(#8V-"!7:6YD;W=S("`M("!#87-E;65N="`O($1O=6)L92!(=6YG("\@3W1H
XM97(Z`0HT(#`@,"`Q,B`P(#`@,"`P+C`P,"`Q(#D@,3$W(#$Q.2`U,3D@4W1O
XM=F4@("T@($=A<R`O($5L96-T<FEC`0HT(#`@,"`Q,B`P(#`@,"`P+C`P,"`Q
XM(#$R(#$Y-2`Q,3D@-3`T($-A8FEN971S("T@($UA;GD@+R!&97<@("`@($YE
XM=R`@+R`@3VQD`0HT(#`@,"`Q,B`P(#`@,"`P+C`P,"`Q(#$R(#,S(#$Q.2`T
XM.#D@4&%N=')Y`0HT(#`@,"`Q,B`P(#`@,"`P+C`P,"`Q(#$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(#`@,"`P(#`N,#`P(#$@,3`@-#4@.3D@-#4T
XM($MI=&-H96X!"C0@,"`P(#$T(#`@,"`P(#`N,#`P(#$@,3`@-#0@.3D@-30Y
XM($]U='-I9&4!"C0@,"`P(#$R(#`@,"`P(#`N,#`P(#$@,3(@,30U(#$Q.2`U
XM-CD@1V%R86=E("`M("!/;F4@8V%R("\@5'=O(&-A<@$*-"`P(#`@,3(@,"`P
XM(#`@,"XP,#`@,2`Q,B`Q-#<@,3$Y(#4X-"!987)D("!,87)G92`O($UE9&EU
XM;2`O(%-M86QL`0HT(#`@,"`Q-"`P(#`@,"`P+C`P,"`Q(#$P(#<P(#,S.2`R
XM,CD@0F5D<F]O;2`C,@$*-"`P(#`@,3(@,"`P(#`@,"XP,#`@,2`Q,B`Q-S`@
XM,S4Y(#(T-"!3:7IE("`M("!,87)G92`@+R`@365D:75M("`O("!3;6%L;`$*
XM-"`P(#`@,3(@,"`P(#`@,"XP,#`@,2`Q,B`Q.#<@,S4Y(#(U.2!#;&]S971S
XA("`M("!,87)G92`@+R`@365D:75M("`O("!3;6%L;`$*
X`
Xend
END_OF_FILE
if test 6649 -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'\" \(6759 characters\)
sed "s/^X//" >'Examples/orifices.fig.uu' <<'END_OF_FILE'
Xbegin 664 orifices.fig
XM(T9)1R`R+C`*.#`@,@HU(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,2`Q(#$@,3DQ
XM+C<P,"`T-3DN-3`P(#$V-R`T-#,@,38R(#0V,"`Q-C<@-#<V"@DP(#`@,2XP
XM,#`@-"XP,#`@."XP,#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`HU(#$@,B`Q
XM(#`@,"`P(#`@,RXR,#`@,"`P(#`@,38X+C,R-B`Q.#DN.3<X(#$V.2`Q-C0@
XM,3@X(#$W,R`Q.30@,3DT"C4@,2`P(#$@,"`P(#`@,"`P+C`P,"`P(#`@,"`Q
XM-C4N,S0P(#$Y,BXV-C`@,34Y(#$T.2`Q.3@@,38S(#(P.2`Q.3D*-2`Q(#`@
XM,2`P(#`@,"`P(#`N,#`P(#`@,"`P(#$V,2XV,#`@,3DV+C0P,"`Q-3D@,3<Y
XM(#$W-2`Q.#4@,3<Y(#$Y.0HU(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,2`Q(#$@
XM,30Y+C8Q,2`S-#0N.30T(#$V,R`S-3D@,38Y(#,T-"`Q-C(@,S,P"@DP(#`@
XM,2XP,#`@-"XP,#`@."XP,#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`HU(#$@
XM,"`Q(#`@,"`P(#`@,"XP,#`@,"`Q(#$@,3<P+C@U.2`Y-BXR,#0@,34S(#$P
XM.2`Q-#D@.30@,34U(#@Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"3`@,"`Q
XM+C`P,"`T+C`P,"`X+C`P,`HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,2`P"@DP
XM(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q.30@-#4Y(#(Q.2`T-3D@.3DY.2`Y
XM.3DY"C(@,2`R(#$@,"`P(#`@,"`S+C(P,"`P(#`*"2`Q-S0@-#0T(#$W-"`T
XM-S0@.3DY.2`Y.3DY"C(@,2`R(#$@,"`P(#`@,"`S+C(P,"`P(#`*"2`Q-#D@
XM-#(Y(#$T.2`T.#D@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`P
XM(#`*"2`Q,3D@-#@Y(#$T.2`T.#D@,3<T(#0W-"`R,#D@-#<T(#DY.3D@.3DY
XM.0HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@,3$Y(#0R.2`Q-#D@-#(Y
XM(#$W-"`T-#0@,C`Y(#0T-"`Y.3DY(#DY.3D*,B`Q(#`@,2`P(#`@,"`P(#`N
XM,#`P(#$@,0H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@DP(#`@,2XP,#`@-"XP
XM,#`@."XP,#`*"2`R,#0@,S$V(#(P-"`S-S$@.3DY.2`Y.3DY"C(@,2`P(#$@
XM,"`P(#`@,"`P+C`P,"`Q(#$*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H),"`P
XM(#$N,#`P(#0N,#`P(#@N,#`P"@D@,3,T(#,S-B`Q,S0@,S4Q(#DY.3D@.3DY
XM.0HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@,3$Y(#,U-"`Q-30@,S4T
XM(#$W.2`S-S0@,C(Y(#,W-"`Y.3DY(#DY.3D*,B`Q(#`@,2`P(#`@,"`P(#`N
XM,#`P(#`@,`H)(#$Q.2`S,S0@,34T(#,S-"`Q-SD@,S$T(#(R.2`S,30@.3DY
XM.2`Y.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`Q(#$*"3`@,"`Q+C`P,"`T
XM+C`P,"`X+C`P,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,3@Q(#(S.2`R
XM,#8@,C,Y(#DY.3D@.3DY.0HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@
XM,C`Y(#(R.2`R,#D@,C0Y(#DY.3D@.3DY.0HR(#$@,"`Q(#`@,"`P(#`@,"XP
XM,#`@,"`P"@D@,3<Y(#(R.2`Q-SD@,C0Y(#DY.3D@.3DY.0HR(#$@,"`Q(#`@
XM,"`P(#`@,"XP,#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q-SD@
XM,3<P(#$V,R`Q.3@@.3DY.2`Y.3DY"C(@,2`R(#$@,"`P(#`@,"`S+C(P,"`P
XM(#`*"2`Q.30@,3DT(#$Y-"`R,3D@.3DY.2`Y.3DY"C(@,2`R(#$@,"`P(#`@
XM,"`S+C(P,"`P(#`*"2`Q,SD@,38T(#$V.2`Q-C0@.3DY.2`Y.3DY"C(@,2`P
XM(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`R,#D@,3DY(#(P.2`R,3D@.3DY.2`Y
XM.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`Q-SD@,3DY(#$W.2`R
XM,3D@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`P(#`*"2`Q,SD@
XM,3<Y(#$U.2`Q-SD@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`P
XM(#`*"2`Q,SD@,30Y(#$U.2`Q-#D@.3DY.2`Y.3DY"C(@,2`R(#$@,"`P(#`@
XM,"`S+C(P,"`P(#`*"2`Q-SD@,S$T(#$W.2`S-S0@.3DY.2`Y.3DY"C(@,2`R
XM(#$@,"`P(#`@,"`S+C(P,"`P(#`*"2`Q-30@,S,T(#$U-"`S-30@.3DY.2`Y
XM.3DY"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P
XM,"`X+C`P,`H)(#@Y(#,T-"`Q,30@,S0T(#DY.3D@.3DY.0HR(#$@,"`Q(#`@
XM,"`P(#`@,"XP,#`@,2`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q-SD@
XM.30@,C`T(#DT(#DY.3D@.3DY.0HR(#$@,B`Q(#`@,"`P(#`@,RXR,#`@,"`P
XM"@D@,38T(#@T(#$V-"`Q,#0@.3DY.2`Y.3DY"C(@,2`R(#$@,"`P(#`@,"`S
XM+C(P,"`P(#`*"2`Q,SD@-C0@,3,Y(#$R-"`Y.3DY(#DY.3D*,B`Q(#`@,2`P
XM(#`@,"`P(#`N,#`P(#`@,`H)(#$Y.2`X-"`Q-C0@.#0@,3,Y(#8T(#$R.2`V
XM-"`Q,CD@,3(T(#$S.2`Q,C0@,38T(#$P-"`Q.3D@,3`T(#DY.3D@.3DY.0HR
XM(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP
XM,#`*"2`Q.#0@-30T(#$U-"`U-#0@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@
XM,"`P+C`P,"`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`P(#`@,"`P(#`N,#`P(#`@,0H)
XM,"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,38Y(#4W-"`Q-CD@-3@Y(#DY.3D@
XM.3DY.0HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@,38Y(#4U-"`Q-CD@
XM-3DT(#DY.3D@.3DY.0HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,2`P"@DP(#`@
XM,2XP,#`@-"XP,#`@."XP,#`*"2`Q,3D@-34T(#(Q.2`U-30@.3DY.2`Y.3DY
XM"C(@,2`P(#$@,"`P(#`@,"`P+C`P,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X
XM+C`P,`H)(#,U-"`Y-"`T-30@.30@.3DY.2`Y.3DY"C(@,2`P(#$@,"`P(#`@
XM,"`P+C`P,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#0P-"`Y-"`T
XM,#0@,3,T(#DY.3D@.3DY.0HR(#$@,"`Q(#`@,"`P(#`@,"XP,#`@,"`Q"@DP
XM(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`S-S0@.30@,S4Y(#DT(#DY.3D@.3DY
XM.0HS(#(@,"`Q(#`@,"`P(#`@,"XP,#`@,2`P"@DP(#`@,2XP,#`@-"XP,#`@
XM."XP,#`*"2`S-S0@.3D@,S@V(#DY(#,Y-"`Q,#0@,SDY(#$Q,2`S.3D@,3(T
XM(#DY.3D@.3DY.0H)(#`N,#`P(#`N,#`P(#,X,"XX-#4@.3@N,S@R(#,X,RXX
XM-#4@.3@N,S@R(#,X."XR-3D@.3DN-C0X(#,Y,BXS-C(@,3`R+C0V,"`S.34N
XM-#DT(#$P-2XT,#0@,SDX+C,S,R`Q,#@N.3$Y(#,Y.2XW-38@,3$S+C,U.2`S
XM.3DN-S4V(#$Q-BXV,#D@,"XP,#`@,"XP,#`*,R`R(#`@,2`P(#`@,"`P(#`N
XM,#`P(#`@,`H)(#$S.2`Q-C0@,3,T(#$V.2`Q,SD@,3<Y(#DY.3D@.3DY.0H)
XM(#`N,#`P(#`N,#`P(#$S-2XU,S(@,38V+C`Q-"`Q,S0N,C@R(#$V-RXR-C0@
XM,3,S+C4U-2`Q-S$N-S0U(#$S-"XX,#4@,3<T+C(T-2`P+C`P,"`P+C`P,`HS
XM(#(@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@,3,Y(#$T.2`Q,S0@,34T(#$T
XM-"`Q-CD@,3,Y(#$W.2`Y.3DY(#DY.3D*"2`P+C`P,"`P+C`P,"`Q,S4N-#,T
XM(#$U,"XX.3`@,3,T+C$X-"`Q-3(N,30P(#$S,RXS-S0@,38P+C,R,R`Q-#,N
XM-C8Q(#$V,RXU-C0@,30T+C$U-R`Q-S$N-3(X(#$T,BXY,#<@,3<T+C`R."`P
XM+C`P,"`P+C`P,`HS(#(@,"`Q(#`@,"`P(#`@,"XP,#`@,"`P"@D@,3DT(#(Q
XM.2`Q.3D@,C(T(#(P.2`R,3D@.3DY.2`Y.3DY"@D@,"XP,#`@,"XP,#`@,3DV
XM+C`Q-"`R,C(N-#8X(#$Y-RXR-C0@,C(S+C<Q."`R,#$N-S0U(#(R-"XT-#4@
XM,C`T+C(T-2`R,C,N,3DU(#`N,#`P(#`N,#`P"C,@,B`P(#$@,"`P(#`@,"`P
XM+C`P,"`P(#`*"2`Q-SD@,C$Y(#$X.2`R,C0@,3DY(#(Q-"`R,#D@,C$Y(#DY
XM.3D@.3DY.0H)(#`N,#`P(#`N,#`P(#$X,RXW-34@,C(S+C$Y-2`Q.#8N,C4U
XM(#(R-"XT-#4@,3DS+C8R.2`R,C,N,C0Y(#$Y-"XS-S$@,C$T+C<U,2`R,#$N
XM-S0U(#(Q,RXU-34@,C`T+C(T-2`R,30N.#`U(#`N,#`P(#`N,#`P"C0@,2`S
XM,B`Q,B`P(#`@,"`P+C`P,"`Q(#D@-R`Q-34@-#8U('$!"C0@,2`P(#$R(#`@
XM,"`P(#`N,#`P(#$@-B`V(#(R.2`T-C0@=@$*-"`Q(#`@,3(@,"`P(#`@,"XP
XM,#`@,2`V(#8@-SD@,S0Y('8!"C0@,2`P(#$R(#`@,"`P(#`N,#`P(#$@-B`V
XM(#(Q-"`Y.2!V`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#D@.2`Q.30@,C4Y
XM($0!"C0@,2`P(#$R(#`@,"`P(#`N,#`P(#$@-B`T(#$U-"`R,#<@<@$*-"`Q
XM(#,R(#$R(#`@,"`P(#`N,#`P(#$@.2`W(#$W,R`S-#@@<0$*-"`Q(#`@,3`@
XM,"`P(#`@,"XP,#`@,2`W(#4@,C$R(#@R(#`!"C0@,2`P(#$P(#`@,"`P(#`N
XM,#`P(#$@-R`U(#$R-R`V,R`Q`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#D@
XM.2`R,#,@-SD@00$*-"`Q(#`@,3(@,"`P(#`@,"XP,#`@,2`Y(#D@,3(P(#4Y
XM($$!"C0@,2`S,B`Q,B`P(#`@,"`P+C`P,"`Q(#D@-R`Q-#4@.3@@<0$*-"`Q
XM(#`@,3`@,"`P(#`@,"XP,#`@,2`W(#4@,3,V(#,R-B`Q`0HT(#$@,"`Q,B`P
XM(#`@,"`P+C`P,"`Q(#D@.2`Q,CD@,S(P($$!"C0@,2`P(#$R(#`@,"`P(#`N
XM,#`P(#$@.2`Y(#(Q-"`S-#D@00$*-"`Q(#`@,3`@,"`P(#`@,"XP,#`@,2`W
XM(#4@,C(S(#,U-"`R`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#D@.2`Q,CD@
XM-#<U($$!"C0@,2`P(#$P(#`@,"`P(#`N,#`P(#$@-R`U(#$S-B`T.#$@,0$*
XM-"`Q(#`@,3`@,"`P(#`@,"XP,#`@,2`W(#4@,3DS(#0W,B`R`0HT(#$@,"`Q
XM,B`P(#`@,"`P+C`P,"`Q(#D@.2`Q.#0@-#8W($$!"C0@,2`P(#$P(#`@,"`P
XM(#`N,#`P(#$@-R`U(#(R,B`U-#D@,P$*-"`Q(#`@,3`@,"`P(#`@,"XP,#`@
XM,2`W(#4@,3(V(#4T.2`Q`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#$Q(#D@
XM,C$T(#4T-"!1`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#$Q(#D@,3$Y(#4T
XM-"!1`0HT(#$@,"`Q,B`P(#`@,"`P+C`P,"`Q(#$Q(#D@,S4T(#@T(%$!"C0@
XM,2`P(#$P(#`@,"`P(#`N,#`P(#$@-R`U(#,V,2`X.2`Q`0HT(#$@,"`Q,B`P
XM(#`@,"`P+C`P,"`Q(#$Q(#D@-#$Y(#$S-"!1`0HT(#$@,"`Q,"`P(#`@,"`P
X6+C`P,"`Q(#<@-2`T,C<@,3,Y(#,!"C$S
X`
Xend
END_OF_FILE
if test 6759 -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_line.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'d_line.c'\"
else
echo shar: Extracting \"'d_line.c'\" \(6682 characters\)
sed "s/^X//" >'d_line.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 that
X * copyright notice and this permission notice appear in supporting
X * documentation, and that the name of M.I.T. not be used in advertising or
X * publicity pertaining to distribution of the software without specific,
X * written prior permission. M.I.T. makes no representations about the
X * suitability of this software for any purpose. It is provided "as is"
X * without express or implied warranty."
X *
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
Xextern int latex_endpoint();
X
X/*************************** locally global variables *********************/
X
Xstatic int init_line_drawing();
X
Xint create_lineobject();
Xint create_latexobject();
Xint get_direction();
Xint get_intermediatepoint();
Xint get_latexpoint();
X
X/********************** polyline and polygon section **********************/
X
Xline_drawing_selected()
X{
X canvas_kbd_proc = null_proc;
X canvas_locmove_proc = null_proc;
X canvas_leftbut_proc = init_line_drawing;
X canvas_rightbut_proc = null_proc;
X set_cursor(arrow_cursor);
X reset_action_on();
X if (cur_mode == F_POLYGON) {
X set_mousefun("first point", "", "");
X min_num_points = 3;
X canvas_middlebut_proc = null_proc;
X } else {
X set_mousefun("first point", "single point", "");
X min_num_points = 1;
X num_point = 0;
X fix_x = fix_y = -1;
X canvas_middlebut_proc = create_lineobject;
X }
X}
X
Xstatic
Xinit_line_drawing(x, y)
X int x, y;
X{
X init_trace_drawing(x, y);
X}
X
Xcancel_line_drawing()
X{
X elastic_line();
X cur_x = fix_x;
X cur_y = fix_y;
X if (cur_point != first_point)
X elastic_moveline(first_point); /* erase control vector */
X free_points(first_point);
X return_proc();
X draw_mousefun_canvas();
X}
X
Xinit_trace_drawing(x, y)
X int x, y;
X{
X if ((first_point = create_point()) == NULL)
X return;
X
X cur_point = first_point;
X set_action_on();
X cur_point->x = fix_x = cur_x = x;
X cur_point->y = fix_y = cur_y = y;
X cur_point->next = NULL;
X if (latexline_mode || latexarrow_mode) {
X canvas_locmove_proc = latex_line;
X canvas_leftbut_proc = get_latexpoint;
X canvas_middlebut_save = create_latexobject;
X } else if (manhattan_mode || mountain_mode) {
X canvas_locmove_proc = constrainedangle_line;
X canvas_leftbut_proc = get_direction;
X canvas_middlebut_save = create_lineobject;
X } else {
X canvas_locmove_proc = freehand_line;
X canvas_leftbut_proc = get_intermediatepoint;
X canvas_middlebut_save = create_lineobject;
X }
X canvas_rightbut_proc = cancel_line_drawing;
X return_proc = line_drawing_selected;
X num_point = 1;
X set_mousefun("next point", "", "cancel");
X if (num_point >= min_num_points - 1) {
X set_mousefun("next point", "final point", "cancel");
X canvas_middlebut_proc = canvas_middlebut_save;
X }
X draw_mousefun_canvas();
X set_temp_cursor(null_cursor);
X cur_cursor = null_cursor;
X elastic_line();
X}
X
Xget_direction(x, y)
X int x, y;
X{
X (*canvas_locmove_proc) (x, y);
X canvas_locmove_proc = constrainedangle_line;
X get_intermediatepoint(cur_x, cur_y);
X}
X
Xget_latexpoint(x, y)
X int x, y;
X{
X elastic_latexline();
X latex_endpoint(fix_x, fix_y, x, y, &cur_x, &cur_y, latexarrow_mode,
X (cur_pointposn == P_ANY) ? 1 : posn_rnd[cur_pointposn]);
X if (cur_cursor != null_cursor) {
X set_temp_cursor(null_cursor);
X cur_cursor = null_cursor;
X }
X win_setmouseposition(canvas_win, cur_x, cur_y);
X get_intermediatepoint(cur_x, cur_y);
X}
X
Xget_intermediatepoint(x, y)
X int x, y;
X{
X elastic_line(); /* erase elastic line */
X cur_x = x;
X cur_y = y;
X elastic_line();
X num_point++;
X fix_x = x;
X fix_y = y;
X elastic_line();
X append_point(fix_x, fix_y, &cur_point);
X if (num_point == min_num_points - 1) {
X set_mousefun("next point", "final point", "cancel");
X draw_mousefun_canvas();
X canvas_middlebut_proc = canvas_middlebut_save;
X }
X}
X
Xcreate_latexobject(x, y)
X int x, y;
X{
X if (x != fix_x || y != fix_y) {
X elastic_latexline();
X latex_endpoint(fix_x, fix_y, x, y, &cur_x, &cur_y, latexarrow_mode,
X (cur_pointposn == P_ANY) ? 1 : posn_rnd[cur_pointposn]);
X if (cur_cursor != null_cursor) {
X set_temp_cursor(null_cursor);
X cur_cursor = null_cursor;
X }
X }
X create_lineobject(cur_x, cur_y);
X}
X
X/* come here upon pressing middle button (last point of lineobject) */
X
Xcreate_lineobject(x, y)
X int x, y;
X{
X F_line *line;
X int dot;
X
X if (num_point == 0) {
X if ((first_point = create_point()) == NULL) {
X line_drawing_selected();
X draw_mousefun_canvas();
X return;
X }
X cur_point = first_point;
X first_point->x = fix_x = cur_x = x;
X first_point->y = fix_y = cur_y = y;
X first_point->next = NULL;
X num_point++;
X } else if (x != fix_x || y != fix_y) {
X if (manhattan_mode || mountain_mode)
X get_direction(x, y);
X else if (latexline_mode || latexarrow_mode)
X get_latexpoint(x, y);
X else
X get_intermediatepoint(x, y);
X }
X dot = (num_point == 1);
X elastic_line();
X if ((line = create_line()) == NULL) {
X line_drawing_selected();
X draw_mousefun_canvas();
X return;
X }
X line->type = T_POLYLINE;
X line->thickness = cur_linewidth;
X line->fill_style = cur_fillstyle;
X line->style = cur_linestyle;
X line->style_val = cur_styleval * (cur_linewidth + 1) / 2;
X line->color = cur_color;
X line->depth = 0;
X line->pen = 0;
X line->points = first_point;
X if (!dot) {
X if (cur_mode == F_POLYGON) { /* close off polygon */
X line->type = T_POLYGON;
X num_point++;
X append_point(first_point->x, first_point->y, &cur_point);
X elastic_line();
X fix_x = first_point->x;
X fix_y = first_point->y;
X elastic_line(); /* fix last elastic line */
X } else { /* polyline; draw any arrows */
X if (autoforwardarrow_mode)
X line->for_arrow = forward_arrow();
X /* arrow will be drawn in draw_line below */
X if (autobackwardarrow_mode)
X line->back_arrow = backward_arrow();
X /* arrow will be drawn in draw_line below */
X }
X cur_x = fix_x;
X cur_y = fix_y;
X elastic_moveline(first_point); /* erase temporary outline */
X }
X draw_line(line, PAINT); /* draw final */
X add_line(line);
X line_drawing_selected();
X draw_mousefun_canvas();
X}
END_OF_FILE
if test 6682 -ne `wc -c <'d_line.c'`; then
echo shar: \"'d_line.c'\" unpacked with wrong size!
fi
# end of 'd_line.c'
fi
if test -f 'e_convert.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'e_convert.c'\"
else
echo shar: Extracting \"'e_convert.c'\" \(4408 characters\)
sed "s/^X//" >'e_convert.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 that
X * copyright notice and this permission notice appear in supporting
X * documentation, and that the name of M.I.T. not be used in advertising or
X * publicity pertaining to distribution of the software without specific,
X * written prior permission. M.I.T. makes no representations about the
X * suitability of this software for any purpose. It is provided "as is"
X * without express or implied warranty."
X *
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_list.h"
X#include "u_search.h"
X#include "w_canvas.h"
X#include "w_mousefun.h"
X
Xstatic int init_convert();
X
Xconvert_selected()
X{
X set_mousefun("spline<->line", "", "");
X canvas_kbd_proc = null_proc;
X canvas_locmove_proc = null_proc;
X init_searchproc_left(init_convert);
X canvas_leftbut_proc = object_search_left;
X canvas_middlebut_proc = null_proc;
X canvas_rightbut_proc = null_proc;
X set_cursor(pick15_cursor);
X}
X
Xstatic
Xinit_convert(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_POLYLINE:
X cur_l = (F_line *) p;
X /* the search routine will ensure that we don't have a box */
X line_2_spline(cur_l);
X break;
X case O_SPLINE:
X cur_s = (F_spline *) p;
X /* the search routine will ensure that we have a interp spline */
X spline_2_line(cur_s);
X break;
X default:
X return;
X }
X}
X
Xline_2_spline(l)
X F_line *l;
X{
X F_spline *s;
X
X if (num_points(l->points) < 3) {
X put_msg("Can't CONVERT this line into a spline: insufficient points");
X return;
X }
X if ((s = create_spline()) == NULL)
X return;
X
X if (l->type == T_POLYGON)
X s->type = T_CLOSED_INTERP;
X else
X s->type = T_OPEN_INTERP;
X s->style = l->style;
X s->thickness = l->thickness;
X s->color = l->color;
X s->depth = l->depth;
X s->style_val = l->style_val;
X s->pen = l->pen;
X s->fill_style = l->fill_style;
X s->for_arrow = l->for_arrow;
X s->back_arrow = l->back_arrow;
X s->points = l->points;
X s->controls = NULL;
X s->next = NULL;
X
X if (-1 == create_control_list(s)) {
X free_splinestorage(s);
X return;
X }
X remake_control_points(s);
X
X /* now we have finished creating the spline, we can get rid of the line */
X /* first off the screen */
X mask_toggle_linemarker(l);
X draw_line(l, ERASE);
X list_delete_line(&objects.lines, l);
X /* we reuse the arrows and points, so `detach' them from the line */
X l->for_arrow = l->back_arrow = NULL;
X l->points = NULL;
X /* now get rid of the rest */
X free_linestorage(l);
X
X /* now put back the new spline */
X draw_spline(s, PAINT);
X mask_toggle_splinemarker(s);
X list_add_spline(&objects.splines, s);
X clean_up();
X set_action_object(F_CONVERT, O_POLYLINE);
X set_latestspline(s);
X return;
X}
X
Xspline_2_line(s)
X F_spline *s;
X{
X F_line *l;
X
X /* Now we turn s into a line */
X if ((l = create_line()) == NULL)
X return;
X
X if (s->type == T_OPEN_INTERP)
X l->type = T_POLYLINE;
X else if (s->type == T_CLOSED_INTERP)
X l->type = T_POLYGON;
X l->style = s->style;
X l->thickness = s->thickness;
X l->color = s->color;
X l->depth = s->depth;
X l->style_val = s->style_val;
X l->pen = s->pen;
X l->radius = DEF_BOXRADIUS;
X l->fill_style = s->fill_style;
X l->for_arrow = s->for_arrow;
X l->back_arrow = s->back_arrow;
X l->points = s->points;
X
X /* now we have finished creating the line, we can get rid of the spline */
X /* first off the screen */
X mask_toggle_splinemarker(s);
X draw_spline(s, ERASE);
X list_delete_spline(&objects.splines, s);
X /* we reuse the arrows and points, so `detach' them from the spline */
X s->for_arrow = s->back_arrow = NULL;
X s->points = NULL;
X /* now get rid of the rest */
X free_splinestorage(s);
X
X /* and put in the new line */
X draw_line(l, PAINT);
X mask_toggle_linemarker(l);
X list_add_line(&objects.lines, l);
X clean_up();
X set_action_object(F_CONVERT, O_SPLINE);
X set_latestline(l);
X return;
X}
END_OF_FILE
if test 4408 -ne `wc -c <'e_convert.c'`; then
echo shar: \"'e_convert.c'\" unpacked with wrong size!
fi
# end of 'e_convert.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'\" \(6233 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 that
X * copyright notice and this permission notice appear in supporting
X * documentation, and that the name of M.I.T. not be used in advertising or
X * publicity pertaining to distribution of the software without specific,
X * written prior permission. M.I.T. makes no representations about the
X * suitability of this software for any purpose. It is provided "as is"
X * without express or implied warranty."
X *
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 6233 -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'\" \(6881 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 that
X * copyright notice and this permission notice appear in supporting
X * documentation, and that the name of M.I.T. not be used in advertising or
X * publicity pertaining to distribution of the software without specific,
X * written prior permission. M.I.T. makes no representations about the
X * suitability of this software for any purpose. It is provided "as is"
X * without express or implied warranty."
X *
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 %.3f %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
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 for (p = l->points; p != NULL; p = p->next) {
X fprintf(fp, " %d %d", p->x, p->y);
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
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 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 };
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 %.3f %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 6881 -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_cmdpanel.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'w_cmdpanel.c'\"
else
echo shar: Extracting \"'w_cmdpanel.c'\" \(6242 characters\)
sed "s/^X//" >'w_cmdpanel.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 that
X * copyright notice and this permission notice appear in supporting
X * documentation, and that the name of M.I.T. not be used in advertising or
X * publicity pertaining to distribution of the software without specific,
X * written prior permission. M.I.T. makes no representations about the
X * suitability of this software for any purpose. It is provided "as is"
X * without express or implied warranty."
X *
X */
X
X/* IMPORTS */
X
X#include "fig.h"
X#include "resources.h"
X#include "mode.h"
X#include "w_canvas.h" /* for null_proc() */
X#include "w_drawprim.h"
X#include "w_mousefun.h"
X#include "w_util.h"
X#include "w_setup.h"
X
Xextern erase_objecthighlight();
Xextern emptyfigure();
Xextern do_print(), do_export(), do_save();
Xextern void undo(), redisplay_canvas();
Xextern void popup_print_panel(), popup_file_panel(), popup_export_panel();
X
Xvoid init_cmd_panel();
Xvoid setup_cmd_panel();
X
X/* internal features and definitions */
X
X/* cmd panel definitions */
X#define CMD_LABEL_LEN 16
Xtypedef struct cmd_switch_struct {
X char label[CMD_LABEL_LEN];
X void (*cmd_func) ();
X int (*quick_func) ();
X char mousefun_l[CMD_LABEL_LEN];
X char mousefun_r[CMD_LABEL_LEN];
X TOOL widget;
X} cmd_sw_info;
X
X#define cmd_action(z) (z->cmd_func)(z->widget)
X#define quick_action(z) (z->quick_func)(z->widget)
X
X/* prototypes */
Xstatic void sel_cmd_but();
Xstatic void enter_cmd_but();
Xvoid quit();
Xstatic void delete_all_cmd();
Xstatic void paste();
X
X/* command panel of switches below the lower ruler */
Xstatic cmd_sw_info cmd_switches[] = {
X {"Quit", quit, null_proc, "command", ""},
X {"Delete ALL", delete_all_cmd, null_proc, "command", ""},
X {"Undo", undo, null_proc, "command", ""},
X {"Redraw", redisplay_canvas, null_proc, "command", ""},
X {"Paste", paste, null_proc, "command", ""},
X {"File...", popup_file_panel, do_save, "popup", "save shortcut"},
X {"Export...", popup_export_panel, do_export, "popup", "export shortcut"},
X {"Print...", popup_print_panel, do_print, "popup", "print shortcut"},
X};
X
X#define NUM_CMD_SW (sizeof(cmd_switches) / sizeof(cmd_sw_info))
X
Xstatic XtActionsRec cmd_actions[] =
X{
X {"LeaveCmdSw", (XtActionProc) clear_mousefun},
X};
X
Xstatic String cmd_translations =
X"<Btn1Down>:set()\n\
X <Btn1Up>:unset()\n\
X <LeaveWindow>:LeaveCmdSw()reset()\n";
X
XDeclareStaticArgs(11);
X
Xint
Xnum_cmd_sw()
X{
X return (NUM_CMD_SW);
X}
X
X/* command panel */
Xvoid
Xinit_cmd_panel(tool)
X TOOL tool;
X{
X register int i;
X register cmd_sw_info *sw;
X Widget beside = NULL;
X
X FirstArg(XtNborderWidth, 0);
X NextArg(XtNdefaultDistance, 0);
X NextArg(XtNhorizDistance, 0);
X NextArg(XtNvertDistance, 0);
X NextArg(XtNleft, XtChainLeft);
X NextArg(XtNright, XtChainLeft);
X NextArg(XtNtop, XtChainTop);
X NextArg(XtNbottom, XtChainTop);
X cmd_panel = XtCreateWidget("commands", formWidgetClass, tool,
X Args, ArgCount);
X XtAppAddActions(tool_app, cmd_actions, XtNumber(cmd_actions));
X
X FirstArg(XtNborderWidth, INTERNAL_BW);
X NextArg(XtNfont, button_font);
X NextArg(XtNheight, CMDPANEL_HT - 2 * INTERNAL_BW);
X NextArg(XtNwidth, CMDPANEL_WD / NUM_CMD_SW - INTERNAL_BW);
X NextArg(XtNvertDistance, 0);
X NextArg(XtNhorizDistance, 0);
X for (i = 0; i < NUM_CMD_SW; ++i) {
X sw = &cmd_switches[i];
X NextArg(XtNlabel, sw->label);
X NextArg(XtNfromHoriz, beside);
X sw->widget = XtCreateManagedWidget("button", commandWidgetClass,
X cmd_panel, Args, ArgCount);
X /* setup callback and default actions */
X XtAddEventHandler(sw->widget, ButtonReleaseMask, (Boolean) 0,
X sel_cmd_but, (caddr_t) sw);
X XtAddEventHandler(sw->widget, EnterWindowMask, (Boolean) 0,
X enter_cmd_but, (caddr_t) sw);
X XtOverrideTranslations(sw->widget,
X XtParseTranslationTable(cmd_translations));
X ArgCount -= 3;
X NextArg(XtNhorizDistance, -INTERNAL_BW);
X beside = sw->widget;
X }
X return;
X}
X
Xvoid
Xsetup_cmd_panel()
X{
X register int i;
X register cmd_sw_info *sw;
X
X XDefineCursor(tool_d, XtWindow(cmd_panel), arrow_cursor);
X
X for (i = 0; i < NUM_CMD_SW; ++i) {
X sw = &cmd_switches[i];
X FirstArg(XtNfont, button_font); /* label font */
X SetValues(sw->widget);
X }
X}
X
Xstatic void
Xenter_cmd_but(widget, sw, event)
X Widget widget;
X cmd_sw_info *sw;
X XButtonEvent *event;
X{
X clear_mousefun();
X draw_mousefun(sw->mousefun_l, "", sw->mousefun_r);
X}
X
Xstatic void
Xsel_cmd_but(widget, sw, event)
X Widget widget;
X cmd_sw_info *sw;
X XButtonEvent *event;
X{
X if (event->button == Button2)
X return;
X
X if (action_on) {
X if (cur_mode == F_TEXT)
X finish_text_input();/* finish up any text input */
X else {
X put_msg("FINISH drawing current object first");
X return;
X }
X } else if (highlighting)
X erase_objecthighlight();
X
X if (event->button == Button1)
X cmd_action(sw);
X else
X quick_action(sw);
X}
X
Xstatic char quit_msg[] = "The current figure is modified.\nDo you want to save it before quitting?";
X
Xvoid
Xquit(w)
X Widget w;
X{
X int qresult;
X
X if (!emptyfigure() && figure_modified && !aborting) {
X XtSetSensitive(w, False);
X if ((qresult = popup_query(QUERY_YESNO, quit_msg)) == RESULT_CANCEL) {
X XtSetSensitive(w, True);
X return;
X } else if (qresult == RESULT_YES) {
X do_save(w);
X /*
X * if saving was not successful, figure_modified is still true:
X * do not quit!
X */
X if (figure_modified) {
X XtSetSensitive(w, True);
X return;
X }
X }
X }
X /* delete the cut buffer only if it is a temporary file */
X if (strncmp(cut_buf_name, "/tmp", 4) == 0)
X unlink(cut_buf_name);
X
X XtDestroyWidget(tool);
X exit(0);
X}
X
Xstatic void
Xpaste()
X{
X merge_file(cut_buf_name);
X}
X
Xstatic void
Xdelete_all_cmd()
X{
X if (emptyfigure()) {
X put_msg("Figure already empty");
X return;
X }
X delete_all();
X put_msg("Immediate Undo will restore the figure");
X redisplay_canvas();
X}
END_OF_FILE
if test 6242 -ne `wc -c <'w_cmdpanel.c'`; then
echo shar: \"'w_cmdpanel.c'\" unpacked with wrong size!
fi
# end of 'w_cmdpanel.c'
fi
echo shar: End of archive 20 \(of 25\).
cp /dev/null ark20isdone
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 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 25 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
--
Molecular Simulations, Inc. mail: dcmartin@msi.com
796 N. Pastoria Avenue uucp: uunet!dcmartin
Sunnyvale, California 94086 at&t: 408/522-9236