home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume19 / xfig / part05 < prev    next >
Encoding:
Text File  |  1993-05-26  |  73.1 KB  |  1,993 lines

  1. Newsgroups: comp.sources.x
  2. From: envbvs@epb9.lbl.gov (Brian V. Smith)
  3. Subject: v19i117:  xfig - Draw amd manipulate objects in an X-Window, Part05/27
  4. Message-ID: <1993May21.021310.5213@sparky.imd.sterling.com>
  5. X-Md4-Signature: f904a840db4f4366ca20436fcd483a15
  6. Sender: chris@sparky.imd.sterling.com (Chris Olson)
  7. Organization: Sterling Software
  8. Date: Fri, 21 May 1993 02:13:10 GMT
  9. Approved: chris@sparky.imd.sterling.com
  10.  
  11. Submitted-by: envbvs@epb9.lbl.gov (Brian V. Smith)
  12. Posting-number: Volume 19, Issue 117
  13. Archive-name: xfig/part05
  14. Environment: X11
  15. Supersedes: xfig: Volume 16, Issue 6-30,39
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then unpack
  19. # it by saving it into a file and typing "sh file".  To overwrite existing
  20. # files, type "sh file -c".  You can also feed this as standard input via
  21. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  22. # will see the following message at the end:
  23. #        "End of archive 5 (of 27)."
  24. # Contents:  Examples/circuit.fig.uu Examples/experiment.fig.uu
  25. #   Examples/flow.fig.uu Examples/housecheck.fig.uu
  26. #   Examples/orifices.fig.uu d_intspline.c e_delete.c e_deletept.c
  27. #   f_save.c w_mousefun.c
  28. # Wrapped by envbvs@epb9.lbl.gov.lbl.gov on Mon May  3 12:05:48 1993
  29. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  30. if test -f 'Examples/circuit.fig.uu' -a "${1}" != "-c" ; then 
  31.   echo shar: Will not clobber existing file \"'Examples/circuit.fig.uu'\"
  32. else
  33. echo shar: Extracting \"'Examples/circuit.fig.uu'\" \(6494 characters\)
  34. sed "s/^X//" >'Examples/circuit.fig.uu' <<'END_OF_FILE'
  35. Xbegin 444 circuit.fig
  36. XM(T9)1R`R+C$*.#`@,@HQ(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@
  37. XM-SDS(#$V-"`T(#0@-SDS(#$V-"`W.3<@,38U"C$@,R`P(#$@+3$@,"`P(#(Q
  38. XM(#`N,#`P(#$@,"XP,#`@-34T(#,R."`S(#,@-34T(#,R."`U-3<@,S(X"C$@
  39. XM,R`P(#$@+3$@,"`P(#(Q(#`N,#`P(#$@,"XP,#`@,C$U(#0R."`S(#,@,C$U
  40. XM(#0R."`R,3@@-#(X"C$@,R`P(#$@+3$@,"`P(#(Q(#`N,#`P(#$@,"XP,#`@
  41. XM,38Y(#0W-2`S(#,@,38Y(#0W-2`Q-S(@-#<U"C$@,R`P(#$@+3$@,"`P(#`@
  42. XM,"XP,#`@,2`P+C`P,"`T-2`T-S0@-"`T(#0U(#0W-"`T.2`T-S0*,2`S(#`@
  43. XM,2`M,2`P(#`@,"`P+C`P,"`Q(#`N,#`P(#0U(#0R.2`T(#0@-#4@-#(Y(#0Y
  44. XM(#0S,`HQ(#,@,"`Q("TQ(#`@,"`R,2`P+C`P,"`Q(#`N,#`P(#0Q-"`S,#0@
  45. XM,R`S(#0Q-"`S,#0@-#$W(#,P-`HQ(#,@,"`Q("TQ(#`@,"`R,2`P+C`P,"`Q
  46. XM(#`N,#`P(#0Q-2`T-"`S(#,@-#$U(#0T(#0Q."`T-`HQ(#,@,"`Q("TQ(#`@
  47. XM,"`R,2`P+C`P,"`Q(#`N,#`P(#4U-"`S,#4@,R`S(#4U-"`S,#4@-34W(#,P
  48. XM-0HQ(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@.#0@-#<T(#0@-"`X
  49. XM-"`T-S0@.#@@-#<U"C$@,R`P(#$@+3$@,"`P(#`@,"XP,#`@,2`P+C`P,"`Q
  50. XM-#0@-#<T(#0@-"`Q-#0@-#<T(#$T."`T-S0*,2`S(#`@,2`M,2`P(#`@,"`P
  51. XM+C`P,"`Q(#`N,#`P(#$Y,B`T-S0@-"`T(#$Y,B`T-S0@,3DV(#0W-0HQ(#,@
  52. XM,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@,C,X(#0W-"`T(#0@,C,X(#0W
  53. XM-"`R-#(@-#<U"C$@,R`P(#$@+3$@,"`P(#`@,"XP,#`@,2`P+C`P,"`Q.3(@
  54. XM-30Y(#0@-"`Q.3(@-30Y(#$Y-B`U-3`*,2`S(#`@,2`M,2`P(#`@,"`P+C`P
  55. XM,"`Q(#`N,#`P(#(S."`U-#D@-"`T(#(S."`U-#D@,C0R(#4U,`HQ(#,@,"`Q
  56. XM("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@-SDS(#DT(#0@-"`W.3,@.30@-SDW
  57. XM(#DU"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`W-30@,38T(#<X
  58. XM.2`Q-C0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*
  59. XM"2`U-30@,S(Y(#4Y-"`S,CD@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
  60. XM,"XP,#`@,"`P(#`*"2`U-30@,S`T(#4U-"`S.3D@-3DT(#,Y.2`Y.3DY(#DY
  61. XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,Q-"`S-30@-3DT
  62. XM(#,U-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)
  63. XM(#(Q-"`T,CD@-#,T(#0R.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P
  64. XM+C`P,"`P(#`@,`H)(#$V.2`T-S0@,38Y(#4T.2`Q.#D@-30Y(#DY.3D@.3DY
  65. XM.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,C$T(#,X-"`R,30@
  66. XM-#(Y(#0Y(#0R.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  67. XM(#`@,`H)(#(T,R`T-S0@,C<T(#0W-"`R-S0@,S@U(#DY.3D@.3DY.0HR(#$@
  68. XM,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-#$T(#,P,R`T,30@,C@T(#0R
  69. XM,2`R-S,@-#`V(#(V,R`T,C$@,C4S(#0P-B`R-#,@-#(Q(#(S,R`T,#8@,C(S
  70. XM"@D@-#(Q(#(Q,R`T,#8@,C`S(#0Q-"`Q.3,@-#$T(#$W,R`Y.3DY(#DY.3D*
  71. XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,0H),"`P(#$N,#`P(#0N,#`P
  72. XM(#@N,#`P"@D@-#(T(#(S-"`U.30@,C,T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ
  73. XM(#`@,"`P(#`N,#`P(#`@,"`P"@D@-#$T(#0T(#0Q-"`V,R`T,#<@-S0@-#(R
  74. XM(#@T(#0P-R`Y-"`T,C(@,3`T(#0P-R`Q,30@-#(R(#$R-`H)(#0P-R`Q,S0@
  75. XM-#(R(#$T-"`T,30@,34T(#0Q-"`Q-S0@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@
  76. XM,"`P(#`@,"XP,#`@,"`P(#`*"2`Q-S0@,C0@,3<T(#,X-"`S,30@,S@T(#,Q
  77. XM-"`R-"`Q-S0@,C0@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@,"`P(#`@,"XP,#`@
  78. XM,"`P(#`*"2`U.30@,C0@-3DT(#0R-"`W-30@-#(T(#<U-"`R-"`U.30@,C0@
  79. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`S,30@
  80. XM-#0@-3DT(#0T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`R,2`P+C`P,"`P
  81. XM(#`@,`H)(#,Q-2`S,#0@-3DT(#,P-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
  82. XM(#`@,"`P+C`P,"`P(#`@,`H)(#<Y(#0W-"`T.2`T-S0@.3DY.2`Y.3DY"C(@
  83. XM,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q-#D@-#<U(#$X.2`T-S4@
  84. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q.34@
  85. XM-#<Q(#(S-2`T-3`@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@
  86. XM,"`P(#`*"2`Q.34@-30V(#(S-2`U,C4@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@
  87. XM,"`P(#`@,"XP,#`@,"`P(#`*"2`R-#0@-30Y(#0S-"`U-#D@.3DY.2`Y.3DY
  88. XM"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`W-30@.30@-S@Y(#DT
  89. XM(#DY.3D@.3DY.0HS(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,`H)(#0S-"`T
  90. XM,CD@-#4T(#0S.2`T,S0@-#4Y(#0Q-"`T-30@-#,T(#0T-"`T-30@-#4Y(#0S
  91. XM-"`T-SD@-#$T(#0W-"`T,S0@-#8T(#0U-"`T-SD@-#,T(#0Y.2`T,30@-#DT
  92. XM(#0S-"`T.#0@-#4T(#0Y.2`T,S0@-3$Y(#0Q-"`U,30@-#,T(#4P-"`T-30@
  93. XM-3$Y(#0S-"`U,SD@-#$T(#4S-"`T,S0@-3(T(#0U-"`U,SD@-#,T(#4T.2`Y
  94. XM.3DY(#DY.3D*"2`M-C4N,#`P("TU,"XP,#`@-#0X+C$S-B`T,S$N,3<V(#0U
  95. XM,RXQ,S8@-#,S+C8W-B`T-34N-#4W(#0T-RXY-SD*"2`T-#(N,34V(#0U-BXW
  96. XM-#$@-#(X+C`U-B`T-C`N-C0W(#0Q-"XT,CD@-#4W+CDQ,"`T,3,N-3,T(#0T
  97. XM.2XW-3D*"2`T,C<N,#DW(#0T,RXS-S@@-#0Q+C<Q-R`T-#0N-CDV(#0U,RXS
  98. XM-C$@-#4P+C`Q-"`T-30N-S(S(#0V.2XQ-C<*"2`T-#(N,34V(#0W-BXW-#$@
  99. XM-#(X+C`U-B`T.#`N-C0W(#0Q-"XT,CD@-#<W+CDQ,"`T,3,N-3,T(#0V.2XW
  100. XM-3D*"2`T,C<N,#DW(#0V,RXS-S@@-#0Q+C<Q-R`T-C0N-CDV(#0U,RXS-C$@
  101. XM-#<P+C`Q-"`T-30N-S(S(#0X.2XQ-C<*"2`T-#(N,34V(#0Y-BXW-#$@-#(X
  102. XM+C`U-B`U,#`N-C0W(#0Q-"XT,CD@-#DW+CDQ,"`T,3,N-3,T(#0X.2XW-3D*
  103. XM"2`T,C<N,#DW(#0X,RXS-S@@-#0Q+C<Q-R`T.#0N-CDV(#0U,RXS-C$@-#DP
  104. XM+C`Q-"`T-30N-S(S(#4P.2XQ-C<*"2`T-#(N,34V(#4Q-BXW-#$@-#(X+C`U
  105. XM-B`U,C`N-C0W(#0Q-"XT,CD@-3$W+CDQ,"`T,3,N-3,T(#4P.2XW-3D*"2`T
  106. XM,C<N,#DW(#4P,RXS-S@@-#0Q+C<Q-R`U,#0N-CDV(#0U,RXS-C$@-3$P+C`Q
  107. XM-"`T-30N-S(S(#4R.2XQ-C<*"2`T-#(N,34V(#4S-BXW-#$@-#(X+C`U-B`U
  108. XM-#`N-C0W(#0Q-"XT,CD@-3,W+CDQ,"`T,3,N-3,T(#4R.2XW-3D*"2`T,C<N
  109. XM,#DW(#4R,RXS-S@@-#0Q+C<Q-R`U,C0N-CDV(#0U-"XV-#D@-3,Q+C@P,"`T
  110. XM-3,N-38U(#4T,RXX,S`*"2`T-#@N-38U(#4T-BXS,S`@+38U+C`P,"`M-3`N
  111. XM,#`P"C,@,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P"@D@.#8@-#<Q(#$P-"`T
  112. XM-30@,3(T(#0Y-"`Q-#(@-#<V(#DY.3D@.3DY.0H)("TR-34N,#`P(#4U+C`P
  113. XM,"`Y,RXU,#0@-#4W+C$X.2`Y."XP,#0@-#4R+CDS.2`Q,3@N-#0Q(#0U-BXU
  114. XM-34*"2`Q,#DN.#`T(#0Y,2XV.38@,3,P+C`V,2`T.30N.3@S(#$S-"XU-C$@
  115. XM-#DP+C0X,R`M,C4U+C`P,"`U-2XP,#`*-"`P(#`@,3(@,"`M,2`P(#`N,#`P
  116. XM(#0@,3(@,S0@,C`Y(#$Y-"!3=7!P;'D!"C0@,"`P(#$R(#`@+3$@,"`P+C`P
  117. XM,"`T(#D@,S(@,C`Y(#$V.2!0;W=E<@$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P
  118. XM(#0@.2`T,B`R,30@,30T("LO+2`Q-78@`0HT(#`@,"`Q,B`P("TQ(#`@,"XP
  119. XM,#`@-"`Y(#0T(#(V(#0U-R`Q,C!604,!"C0@,"`P(#$R(#`@+3$@,"`P+C`P
  120. XM,"`T(#$R(#(Y(#0Q.2`Q-S0@*"LU=BD!"C0@,"`P(#$R(#`@+3$@,"`P+C`P
  121. XM,"`T(#D@-S0@-#(Y(#(Q.2`Q,&L@;75L=&DM='5R;@$*-"`P(#`@,3(@,"`M
  122. XM,2`P(#`N,#`P(#0@.2`Q."`T,CD@,3`T(#(R:P$*-"`P(#`@,3(@,"`M,2`P
  123. XM(#`N,#`P(#0@.2`R-B`R-CD@,S4Y("TQ-78!"C0@,"`P(#$R(#`@+3$@,"`P
  124. XM+C`P,"`T(#D@,C8@-C`T(#,U.2`M,35V`0HT(#`@,"`Q,B`P("TQ(#`@,"XP
  125. XM,#`@-"`Y(#4V(#8P-"`S.3D@0V%S92!'3D0!"C0@,"`P(#$R(#`@+3$@,"`P
  126. XM+C`P,"`T(#D@-#0@-C`T(#,S-"!#;VUM;VX!"C0@,"`P(#$R(#`@+3$@,"`P
  127. XM+C`P,"`T(#D@-#0@-C`T(#,P.2!#;VUM;VX!"C0@,"`P(#$R(#`@+3$@,"`P
  128. XM+C`P,"`T(#D@-C8@-C`T(#(S.2`P+35V($-O;G1R;VP!"C0@,"`P(#$R(#`@
  129. XM+3$@,"`P+C`P,"`T(#D@,C4@-3DY(#0Y("LQ-78!"C0@,"`P(#$R(#`@+3$@
  130. XM,"`P+C`P,"`T(#D@,C<@,C8Y(#,P.2!'3D0!"C0@,"`P(#$R(#`@+3$@,"`P
  131. XM+C`P,"`T(#D@,C4@,C8Y(#0Y("LQ-78!"C0@,"`P(#$R(#`@+3$@,"`P+C`P
  132. XM,"`T(#D@-#8@-#8Y(#0X-"!3;VQE;F]I9"`!"C0@,"`P(#$R(#`@+3$@,"`P
  133. XM+C`P,"`T(#D@,S`@-#<T(#4P-"!686QV90$*-"`P(#`@,3(@,"`M,2`P(#`N
  134. XM,#`P(#0@.2`Q-R`R,#0@,S<Y($%#`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@
  135. XM-"`Y(#$W(#(V-"`S-SD@04,!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#4@
  136. XM-R`W-#$@.3<@*P$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`R-B`W,#`@
  137. XM,3$V(#`M-78!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#,U(#8Y,"`Q
  138. XM,S@@3W5T<'5T`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#0T(#8X,"`Q
  139. XM-C4@0V]M;6]N`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#0T(#<Y(#4Q
  140. X+.2`R02!&=7-E`0HT
  141. X`
  142. Xend
  143. END_OF_FILE
  144. if test 6494 -ne `wc -c <'Examples/circuit.fig.uu'`; then
  145.     echo shar: \"'Examples/circuit.fig.uu'\" unpacked with wrong size!
  146. fi
  147. # end of 'Examples/circuit.fig.uu'
  148. fi
  149. if test -f 'Examples/experiment.fig.uu' -a "${1}" != "-c" ; then 
  150.   echo shar: Will not clobber existing file \"'Examples/experiment.fig.uu'\"
  151. else
  152. echo shar: Extracting \"'Examples/experiment.fig.uu'\" \(7187 characters\)
  153. sed "s/^X//" >'Examples/experiment.fig.uu' <<'END_OF_FILE'
  154. Xbegin 444 experiment.fig
  155. XM(T9)1R`R+C$*.#`@,@HQ(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@
  156. XM-#,T(#$P.2`U(#4@-#,T(#$P.2`T,SD@,3`Y"C$@,R`P(#$@+3$@,"`P(#`@
  157. XM,"XP,#`@,2`P+C`P,"`U-3D@,3@T(#4@-2`U-3D@,3@T(#4V-"`Q.#0*,2`S
  158. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`Q(#`N,#`P(#4U.2`Q,C0@-2`U(#4U.2`Q
  159. XM,C0@-38T(#$R-`HQ(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@-#`Y
  160. XM(#$U-"`U(#4@-#`Y(#$U-"`T,30@,34T"C$@,R`P(#(@+3$@,"`P(#`@,"XP
  161. XM,#`@,2`P+C`P,"`Q,30@,34T(#(P(#(P(#$Q-"`Q-30@,3,T(#$U-`HR(#$@
  162. XM,"`R("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@.30@,34T(#<Y(#$U-"`Y.3DY
  163. XM(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#$@,`H),"`P(#(N,#`P
  164. XM(#@N,#`P(#$V+C`P,`H)(#<S-"`R-C0@-S,T(#(X-"`Y.3DY(#DY.3D*,B`Q
  165. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0S,2`Q,3(@-#,W(#$P-B`Y
  166. XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0S,2`Q
  167. XM,#8@-#,X(#$Q,R`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  168. XM(#`@,`H)(#4U-B`Q.#<@-38R(#$X,2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
  169. XM(#`@,"`P+C`P,"`P(#`@,`H)(#4U-B`Q.#$@-38S(#$X."`Y.3DY(#DY.3D*
  170. XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#4U-B`Q,C$@-38S(#$R
  171. XM."`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#4U
  172. XM-B`Q,C<@-38R(#$R,2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P
  173. XM,"`P(#`@,`H)(#0P-B`Q-3$@-#$S(#$U."`Y.3DY(#DY.3D*,B`Q(#`@,2`M
  174. XM,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0P-B`Q-3<@-#$R(#$U,2`Y.3DY(#DY
  175. XM.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$P.2`Q-S0@,3`T
  176. XM(#$X-"`Q,C0@,3@T(#$Q.2`Q-S0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P
  177. XM(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#$P-"`Q
  178. XM-30@,3(T(#$U-"`Y.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P
  179. XM(#`@,`H)(#$U-"`Q,S0@,34T(#$W-"`Q-S0@,3<T(#$W-"`Q,S0@,34T(#$S
  180. XM-"`Y.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$Y
  181. XM-"`Q,S0@,3DT(#$W-"`R,S0@,3<T(#(S-"`Q,S0@,3DT(#$S-"`Y.3DY(#DY
  182. XM.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(U-"`Q,S0@,C4T
  183. XM(#$W-"`R.30@,3<T(#(Y-"`Q,S0@,C4T(#$S-"`Y.3DY(#DY.3D*,B`R(#`@
  184. XM,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,Q-"`Q,S0@,S$T(#$W-"`S-30@
  185. XM,3<T(#,U-"`Q,S0@,S$T(#$S-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@
  186. XM,"`P+C`P,"`P(#`@,`H)(#$S-"`Q-30@,34T(#$U-"`Y.3DY(#DY.3D*,B`Q
  187. XM(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$W-"`Q-30@,3DT(#$U-"`Y
  188. XM.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(S-"`Q
  189. XM-30@,C4T(#$U-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P
  190. XM(#`@,`H)(#(Y-"`Q-30@,S$T(#$U-"`Y.3DY(#DY.3D*,B`R(#`@,B`M,2`P
  191. XM(#`@,"`P+C`P,"`P(#`@,`H)(#0Q-"`Q,S0@-#4T(#$S-"`T-30@,3DT(#0Q
  192. XM-"`Q.30@-#$T(#$S-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P
  193. XM,"`P(#`@,`H)(#,U-"`Q-30@-#`T(#$U-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M
  194. XM,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0U-"`Q-30@-3$T(#$U-"`Y.3DY(#DY
  195. XM.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,X-"`Q-30@,S@T
  196. XM(#$P.2`T,CD@,3`Y(#DY.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P(#`N,#`P
  197. XM(#`@,"`P"@D@-#,Y(#$P.2`T.#0@,3`Y(#0X-"`Q-30@.3DY.2`Y.3DY"C(@
  198. XM,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`U-30@,3(T(#4Q-"`Q,C0@
  199. XM-3$T(#$X-"`U-30@,3@T(#DY.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P(#`N
  200. XM,#`P(#`@,"`P"@D@-38T(#$R-"`V-S0@,3(T(#8W-"`Q-S0@-C(T(#$W-"`Y
  201. XM.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#8P.2`Q
  202. XM-C0@-C(T(#$V-"`V,C0@,3DY(#8P.2`Q.3D@-C`Y(#$V-"`Y.3DY(#DY.3D*
  203. XM,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#4V-"`Q.#0@-C`Y(#$X
  204. XM-"`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#8W
  205. XM-"`Q-30@-S,T(#$U-"`W,S0@-#0T(#4S-"`T-#0@.3DY.2`Y.3DY"C(@,R`P
  206. XM(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`U,S0@-#$T(#0X-"`T,30@-#@T
  207. XM(#0S.2`T-#0@-#,Y(#0T-"`T,30@,SDT(#0Q-"`S.30@-#<T(#0T-"`T-S0*
  208. XM"2`T-#0@-#0Y(#0X-"`T-#D@-#@T(#0W-"`U,S0@-#<T(#4S-"`T,30@.3DY
  209. XM.2`Y.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P
  210. XM,"`T+C`P,"`X+C`P,`H)(#,Y-"`T-#0@,S$T(#0T-"`Y.3DY(#DY.3D*,B`Q
  211. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$V-"`Q,S0@,34T(#$T-"`Y
  212. XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$W-"`Q
  213. XM,S0@,34T(#$U-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  214. XM(#`@,`H)(#$W-"`Q-#0@,34T(#$V-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
  215. XM(#`@,"`P+C`P,"`P(#`@,`H)(#$W-"`Q-30@,34T(#$W-"`Y.3DY(#DY.3D*
  216. XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$W-"`Q-C0@,38T(#$W
  217. XM-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,0H),"`P
  218. XM(#$N,#`P(#0N,#`P(#@N,#`P"@D@,S8Y(#$T.2`S-CD@.#D@.3DY.2`Y.3DY
  219. XM"C(@,B`Q(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`U.#0@,3,Y(#4X-"`R
  220. XM,#D@-C0T(#(P.2`V-#0@,3,Y(#4X-"`Q,SD@.3DY.2`Y.3DY"C(@,2`P(#$@
  221. XM+3$@,"`P(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)
  222. XM(#0V-"`T,#0@-#8T(#0S-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P
  223. XM+C`P,"`P(#`@,0H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@-#`Y(#0U.2`T
  224. XM,#D@-#DY(#,X-"`U,30@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP
  225. XM,#`@,"`P(#$*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#4Q.2`T-3D@-3$Y
  226. XM(#0Y.2`U-#0@-3$T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P
  227. XM(#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`T,S0@,3DY(#0S-"`R
  228. XM-30@.3DY.2`Y.3DY"C0@,2`P(#$V(#`@+3$@,"`P+C`P,"`T(#$U(#$V,"`S
  229. XM-SD@-#0@17AP97)I;65N=&%L($%P<&%R871U<P$*-"`Q(#`@,3(@,"`M,2`P
  230. XM(#`N,#`P(#0@,3(@,34R(#8S-"`T-C0@2'5M:61I='D@86YD($\@(&-O;F-E
  231. XM;G1R871I;VX!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#(X(#$Q-"`Q
  232. XM,C0@4'5M<`$*-"`R(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`T."`V.2`Q-3<@
  233. XM4F]O;2!!:7(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,S@@,38T(#$Y
  234. XM-"!087)T:6-L90$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`T,"`Q-C0@
  235. XM,C`Y(%!R969I;'1E<@$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@-#,@
  236. XM,38T(#(R-"`H8V]A<G-E*0$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`T
  237. XM."`R,30@,3(T(%-I;&EC82!'96P!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T
  238. XM(#D@-#$@,C$T(#$Y-"!296UO=F4!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T
  239. XM(#D@,C0@,C$T(#(P.2!(("!/`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W
  240. XM(#4@,C$T(#(Q-"`R`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#,R(#(W
  241. XM-"`Q,C0@4'5R869I;`$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`T,2`R
  242. XM-S0@,3DT(%)E;6]V90$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`U,"`R
  243. XM-S0@,C`Y($Y/("`K4T\@`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@
  244. XM,C8Y(#(Q-"`R`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,S`P(#(Q
  245. XM-"`R`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#0Y(#,S-"`Q,30@06-T
  246. XM:79A=&5D`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#,V(#,S-"`Q,CD@
  247. XM0V%R8F]N`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#0Q(#,S-"`Q.30@
  248. XM4F5M;W9E`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#4S(#,S-"`R,#D@
  249. XM3R`@86YD($A#`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,S$W(#(Q
  250. XM-"`S`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q,B`W,R`S-CD@.#0@1')Y
  251. XM+"!#;&5A;B!!:7(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,S`@-#,T
  252. XM(#$R.2!686QV90$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,S@@-#,T
  253. XM(#DY($)Y<&%S<P$*-"`R(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`S,"`T,#D@
  254. XM,3<T(%9A;'9E`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#,P(#4U.2`Q
  255. XM,30@5F%L=F4!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,S`@-34Y(#$W
  256. XM-"!686QV90$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`S.2`V,30@,34Y
  257. XM($)U8F)L97(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#$Q-2`V,S0@
  258. XM-#,Y($%I<B!3=')E86T@=VET:"!P<F]P97(!"C0@,2`P(#$P(#`@+3$@,"`P
  259. XM+C`P,"`T(#<@-2`V-#`@-#8Y(#,!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T
  260. XM(#D@-#8@-#8T(#,Y.2!497-T(%-L;W0!"C0@,B`P(#$R(#`@+3$@,"`P+C`P
  261. XM,"`T(#D@-#,@,S`T(#0T.2!4;R!(;V]D`0HT(#(@,"`Q,B`P("TQ(#`@,"XP
  262. XM,#`@-"`Q,B`W,"`S-SD@-3$Y(%-A;7!L:6YG(%!O<G0!"C0@,B`P(#$R(#`@
  263. XM+3$@,"`P+C`P,"`T(#$Q(#4Q(#,W.2`U,SD@3R`@+"!4+"!22`$*-"`R(#`@
  264. XM,3`@,"`M,2`P(#`N,#`P(#0@-R`U(#,S-R`U-#4@,P$*-"`P(#`@,3(@,"`M
  265. XM,2`P(#`N,#`P(#0@,3(@-S`@-30Y(#4Q.2!386UP;&EN9R!0;W)T`0HT(#`@
  266. XM,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q,2`U,2`U-#D@-3,Y($\@("P@5"P@4D@!
  267. XM"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`U-3@@-30U(#,!"C0@,2`P
  268. XM(#$R(#`@+3$@,"`P+C`P,"`T(#D@.#<@-#,T(#(W-"!/>F]N92!'96YE<F%T
  269. XM;W(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#DT(#0S-"`R.30@*%5L
  270. X1=')A=FEO;&5T($QA;7`I`0H@
  271. X`
  272. Xend
  273. END_OF_FILE
  274. if test 7187 -ne `wc -c <'Examples/experiment.fig.uu'`; then
  275.     echo shar: \"'Examples/experiment.fig.uu'\" unpacked with wrong size!
  276. fi
  277. # end of 'Examples/experiment.fig.uu'
  278. fi
  279. if test -f 'Examples/flow.fig.uu' -a "${1}" != "-c" ; then 
  280.   echo shar: Will not clobber existing file \"'Examples/flow.fig.uu'\"
  281. else
  282. echo shar: Extracting \"'Examples/flow.fig.uu'\" \(5945 characters\)
  283. sed "s/^X//" >'Examples/flow.fig.uu' <<'END_OF_FILE'
  284. Xbegin 444 flow.fig
  285. XM(T9)1R`R+C$*.#`@,@HU(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,2`P(#DR
  286. XM+C0P.2`R.38N.34U(#$U.2`R-S0@,30T(#(T.2`Q,C0@,C,T"@DP(#`@,2XP
  287. XM,#`@-"XP,#`@."XP,#`*-2`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,2`S
  288. XM-#0N,C(W(#(W.2XV.#(@,S`T(#(P.2`S,S0@,3DY(#,W-"`R,#0*"3`@,"`Q
  289. XM+C`P,"`T+C`P,"`X+C`P,`HU(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`Q
  290. XM(#0P,RXX.3$@,S`P+C0Q,R`S,SD@,C8Y(#,U.2`R-#0@,SDT(#(R.0H),"`P
  291. XM(#$N,#`P(#0N,#`P(#@N,#`P"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P
  292. XM(#`*"2`R,SD@,3$Y(#,S.2`Q,3D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P
  293. XM(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#$U.2`S
  294. XM-SD@,34Y(#0U.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  295. XM(#$@,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,C@Y(#4Y(#(X.2`Y-"`Y
  296. XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#$@,`H),"`P(#$N
  297. XM,#`P(#0N,#`P(#@N,#`P"@D@,30Y(#4Y(#$T.2`Y-"`Y.3DY(#DY.3D*,B`Q
  298. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,0H),"`P(#$N,#`P(#0N,#`P(#@N
  299. XM,#`P"@D@-#(Y(#0Q-"`T,CD@,S<Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
  300. XM,"`P(#`N,#`P(#`@,"`P"@D@-#(Y(#DY(#0R.2`U.2`U-3D@-3D@-34Y(#0Y
  301. XM.2`T,CD@-#DY(#0R.2`T-3D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
  302. XM,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#0R.2`Q,SD@
  303. XM-#(Y(#$W-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#$@
  304. XM,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,C@Y(#$S.2`R.#D@,3<T(#DY
  305. XM.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,2`P"@DP(#`@,2XP
  306. XM,#`@-"XP,#`@."XP,#`*"2`Q-#D@,3,Y(#$T.2`Q-S0@.3DY.2`Y.3DY"C(@
  307. XM,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`S-SD@-#$Y(#0W.2`T,3D@
  308. XM-#<Y(#0U.2`S-SD@-#4Y(#,W.2`T,3D@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@
  309. XM,"`P(#`@,"XP,#`@,"`P(#`*"2`S-SD@.3D@-#<Y(#DY(#0W.2`Q,SD@,S<Y
  310. XM(#$S.2`S-SD@.3D@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@,"`P(#`@,"XP,#`@
  311. XM,"`P(#`*"2`R,SD@.3D@,S,Y(#DY(#,S.2`Q,SD@,C,Y(#$S.2`R,SD@.3D@
  312. XM.3DY.2`Y.3DY"C(@,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Y.2`Y
  313. XM.2`Q.3D@.3D@,3DY(#$S.2`Y.2`Q,SD@.3D@.3D@.3DY.2`Y.3DY"C(@,B`P
  314. XM(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`W.2`Q-SD@-#DY(#$W.2`T.3D@
  315. XM,S<Y(#<Y(#,W.2`W.2`Q-SD@.3DY.2`Y.3DY"C,@,R`P(#$@+3$@,"`P(#`@
  316. XM,"XP,#`@,"`P"@D@,C0Y(#(P.2`R,30@,C(T(#(P.2`R-#0@,C(T(#(V.2`S
  317. XM,30@,C4Y(#,Q.2`R,CD@,CDT(#(P.2`R-#D@,C`Y(#DY.3D@.3DY.0H)(#(U
  318. XM.2XU,S<@,C`V+C@S-R`R-#`N,#@S(#(Q,"XX,S`@,C(Q+C`S.2`R,34N-S,U
  319. XM(#(Q,"XQ.#D@,C(X+C0W-0H)(#(P."XQ.#(@,C,X+C4P,2`R,3`N,34W(#(U
  320. XM,2XW-S<@,C$U+C<W,B`R-C0N.3(U(#(T.2XU-30@,C@Q+C8U-@H)(#(Y,2XW
  321. XM,#$@,C@P+C$Q-2`S,C$N-#@Y(#(U,2XY,#@@,S(R+C(Y."`R,S<N-C$Y(#,Q
  322. XM-2XU,C@@,C$Y+CDR-PH)(#,P,2XX,3D@,C$Q+C<T,R`R.#,N,#$P(#(P-2XQ
  323. XM-#4@,C4Y+C4S-R`R,#8N.#,W(#(T,"XP.#,@,C$P+C@S,`HS(#,@,"`Q("TQ
  324. XM(#`@,"`P(#`N,#`P(#`@,`H)(#$P.2`R.#D@,3$T(#,R-"`Q-SD@,S,T(#(Q
  325. XM-"`S,30@,C`T(#(W.2`Q-CD@,C<T(#$P.2`R.#D@.3DY.2`Y.3DY"@D@,3(Q
  326. XM+C<T-R`R-S`N,#0R(#$P,2XW,3,@,CDY+C@S."`Q,#4N-C0T(#,Q-2XU-30@
  327. XM,3(Y+C4T,R`S,SDN-S$Q"@D@,38R+C(X,B`S,S<N,#DY(#$X.2XR-#@@,S,R
  328. XM+C$P,2`R,#@N-S4U(#,R-BXX.#`@,C$X+C<S-B`S,#(N,S8Y"@D@,C$R+C8W
  329. XM."`R.#8N-38Y(#$Y-2XU-S$@,C<Q+C8T.2`Q-S<N-#`V(#(W,RXU-C8@,34T
  330. XM+C(Y-B`R-S0N-S4Y"@D@,3(Q+C<T-R`R-S`N,#0R(#$P,2XW,3,@,CDY+C@S
  331. XM.`HS(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,`H)(#(Y.2`R-CD@,C4T(#(Y
  332. XM.2`R-#0@,S4T(#,S-"`S-3D@-#,T(#,U.2`T-3D@,S`Y(#0R.2`R-SD@,CDY
  333. XM(#(V.2`Y.3DY(#DY.3D*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@-3(@
  334. XM,C8T(#(U.2!#:&5M:7-T<GD!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R
  335. XM(#8T(#(U.2`R-#0@071M;W-P:&5R:6,!"C0@,2`P(#$R(#`@+3$@,"`P+C`P
  336. XM,"`T(#D@,S(@,C4Y(#(R.2!);F1O;W(!"C0@,"`P(#$P(#`@+3$@,"`P+C`P
  337. XM,"`T(#<@-2`Q-#(@-#(P(#,!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@
  338. XM-B`Q,S0@-#$Q('$!"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@,R`T-C(@
  339. XM,38V(&D!"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`T-#0@,38W(#(!
  340. XM"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`S,C`@,38V(#`!"C0@,"`P
  341. XM(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`S,#,@,38V(#$!"C0@,"`P(#$P(#`@
  342. XM+3$@,"`P+C`P,"`T(#<@-R`T.3<@,38U(%(!"C0@,"`P(#$P(#`@+3$@,"`P
  343. XM+C`P,"`T(#<@,3@@,S4R(#$V-R!-5@$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P
  344. XM(#0@,3(@-S8@-#,V(#$V,2!Q("`@0R`@("@Q+48@("`@*0$*-"`P(#`@,3(@
  345. XM,"`M,2`P(#`N,#`P(#0@,3(@.#(@,CDT(#$V,2!Q("`@0R`@("@Q+48@("`@
  346. XM("`I`0HT(#`@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#8@,C$R(#$V."!%`0HT
  347. XM(#`@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,3@Q(#$V-R`P`0HT(#`@,"`Q
  348. XM,"`P("TQ(#`@,"XP,#`@-"`W(#4@,38S(#$V-R`P`0HT(#`@,"`Q,B`P("TQ
  349. XM(#`@,"XP,#`@-"`Q,B`W,R`Q-30@,38R('$@("!#("`@*#$M1B`@("D!"C0@
  350. XM,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@,R`T-C0@-#@T(&D!"C0@,"`P(#$P
  351. XM(#`@+3$@,"`P+C`P,"`T(#<@-2`T-#<@-#@U(#(!"C0@,"`P(#$P(#`@+3$@
  352. XM,"`P+C`P,"`T(#<@-2`S,3D@.#8@,`$*-"`P(#`@,3`@,"`M,2`P(#`N,#`P
  353. XM(#0@-R`U(#,P,B`X-B`Q`0HT(#`@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@
  354. XM,3<Y(#@V(#`!"C0@,"`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`Q-C(@.#8@
  355. XM,`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,C,@-#,Y(#0W.2!Q("`@
  356. XM0P$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,C,@,CDT(#<Y('$@("!#
  357. XM`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q,B`R,R`Q-30@-SD@<2`@($,!
  358. XM"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@-#(@,34Y(#4R-"!%>&AA=7-T
  359. XM`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#$Q-B`Q-3D@-3`T($UE8VAA
  360. XM;FEC86P@5F5N=&EL871I;VX!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R
  361. XM(#DV(#$U.2`T.#0@17AF:6QT<F%T:6YG($%I<B!A;F0!"C0@,2`P(#$R(#`@
  362. XM+3$@,"`P+C`P,"`T(#D@,C`@-#(Y(#0U-"!&86X!"C0@,2`P(#$R(#`@+3$@
  363. XM,"`P+C`P,"`T(#D@-C4@-#(Y(#0S-"!296-I<F-U;&%T:6]N`0HT(#$@,"`Q
  364. XM,B`P("TQ(#`@,"XP,#`@-"`Y(#,Q(#$T.2`Q,S0@3&5A:W,!"C0@,2`P(#$R
  365. XM(#`@+3$@,"`P+C`P,"`T(#$R(#0W(#$T.2`Q,3D@16YV96QO<&4!"C0@,2`P
  366. XM(#$R(#`@+3$@,"`P+C`P,"`T(#D@-34@,C@Y(#$S-"!);G1A:V4@1F%N`0HT
  367. XM(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#(X(#(X.2`Q,30@1FEL=&5R`0HT
  368. XM(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#(X(#0R.2`Q,C0@1FEL=&5R`0HT
  369. XM(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#<X(#0Y-"`T.2!296-I<F-U;&%T
  370. XM960@86ER`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#4V(#(X.2`U-"!6
  371. XM96YT:6QA=&EO;@$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`U-R`R.#D@
  372. XM,SD@365C:&%N:6-A;`$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@-C@@
  373. XM,34Q(#4Q($EN9FEL=')A=&EN9R!A:7(!"C0@,2`P(#$R(#`@+3$@,"`P+C`P
  374. XM,"`T(#$R(#$Q-B`S,SD@,S,Y($1E<&]S:71I;VX@;VX@4W5R9F%C97,!"C0@
  375. XM,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,R`S-C0@,S`Y(&D!"C0@,"`P(#$R
  376. XM(#`@+3$@,"`P+C`P,"`T(#D@,R`S-#D@,S`Y(&D!"C0@,"`P(#$R(#`@+3$@
  377. XM,"`P+C`P,"`T(#D@,R`S,CD@,S`Y(&D!"C0@,"`P(#$V(#`@+3$@,"`P+C`P
  378. XM,"`T(#$Q(#,Y(#,Q.2`S,#0@:R!!($,!"C0@,"`S,B`R-"`P("TQ(#`@,"XP
  379. XM,#`@-"`Y(#8@,CDY(#,P-"!3`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y
  380. X5(#0P(#$U.2`S,3`@4V]U<F-E<P$*
  381. X`
  382. Xend
  383. END_OF_FILE
  384. if test 5945 -ne `wc -c <'Examples/flow.fig.uu'`; then
  385.     echo shar: \"'Examples/flow.fig.uu'\" unpacked with wrong size!
  386. fi
  387. # end of 'Examples/flow.fig.uu'
  388. fi
  389. if test -f 'Examples/housecheck.fig.uu' -a "${1}" != "-c" ; then 
  390.   echo shar: Will not clobber existing file \"'Examples/housecheck.fig.uu'\"
  391. else
  392. echo shar: Extracting \"'Examples/housecheck.fig.uu'\" \(6847 characters\)
  393. sed "s/^X//" >'Examples/housecheck.fig.uu' <<'END_OF_FILE'
  394. Xbegin 444 housecheck.fig
  395. XM(T9)1R`R+C$*.#`@,@HR(#0@,"`S("TQ(#`@,"`P(#`N,#`P(#$V(#`@,`H)
  396. XM(#,Y(#$T(#,Y(#@T(#8P.2`X-"`V,#D@,30@,SD@,30@.3DY.2`Y.3DY"C(@
  397. XM-"`P(#,@+3$@,"`P(#`@,"XP,#`@,38@,"`P"@D@,SD@.30@,SD@-S(T(#8P
  398. XM.2`W,C0@-C`Y(#DT(#,Y(#DT(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P
  399. XM(#`N,#`P(#`@,"`P"@D@.3D@,S8T(#$P.2`S-C0@,3`Y(#,W-"`Y.2`S-S0@
  400. XM.3D@,S8T(#DY.3D@.3DY.0HR(#(@,"`R("TQ(#`@,"`P(#`N,#`P(#`@,"`P
  401. XM"@D@-S0@,S,Y(#<T(#,U-"`X.2`S-30@.#D@,S,Y(#<T(#,S.2`Y.3DY(#DY
  402. XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0X-"`S.2`U-S0@
  403. XM,SD@.3DY.2`Y.3DY"C(@,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Y
  404. XM.2`Q-CD@,3`Y(#$V.2`Q,#D@,3<Y(#DY(#$W.2`Y.2`Q-CD@.3DY.2`Y.3DY
  405. XM"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`R,CD@-S0@-3<T(#<T
  406. XM(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,30T
  407. XM(#,Y(#0R.2`S.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  408. XM(#`@,`H)(#DY(#$S.2`Q,#D@,3,Y(#$P.2`Q-#D@.3D@,30Y(#DY(#$S.2`Y
  409. XM.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<T(#$Q
  410. XM-"`W-"`Q,CD@.#D@,3(Y(#@Y(#$Q-"`W-"`Q,30@.3DY.2`Y.3DY"C(@,B`P
  411. XM(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Y.2`Q-30@,3`Y(#$U-"`Q,#D@
  412. XM,38T(#DY(#$V-"`Y.2`Q-30@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
  413. XM,"XP,#`@,"`P(#`*"2`U,S0@,3(Y(#4X.2`Q,CD@.3DY.2`Y.3DY"C(@,B`P
  414. XM(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`S,#0@,3$T(#,P-"`Q,CD@,S$Y
  415. XM(#$R.2`S,3D@,3$T(#,P-"`Q,30@.3DY.2`Y.3DY"C(@,B`P(#(@+3$@,"`P
  416. XM(#`@,"XP,#`@,"`P(#`*"2`W-"`Q.30@-S0@,C`Y(#@Y(#(P.2`X.2`Q.30@
  417. XM-S0@,3DT(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P
  418. XM"@D@.3D@,C0Y(#$P.2`R-#D@,3`Y(#(U.2`Y.2`R-3D@.3D@,C0Y(#DY.3D@
  419. XM.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@.3D@,C,T(#$P
  420. XM.2`R,S0@,3`Y(#(T-"`Y.2`R-#0@.3D@,C,T(#DY.3D@.3DY.0HR(#(@,"`R
  421. XM("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-S0@,C<T(#<T(#(X.2`X.2`R.#D@
  422. XM.#D@,C<T(#<T(#(W-"`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P
  423. XM,"`P(#`@,`H)(#DY(#(Y.2`Q,#D@,CDY(#$P.2`S,#D@.3D@,S`Y(#DY(#(Y
  424. XM.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#DY
  425. XM(#,Q-"`Q,#D@,S$T(#$P.2`S,C0@.3D@,S(T(#DY(#,Q-"`Y.3DY(#DY.3D*
  426. XM,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<T(#8W.2`W-"`V.30@
  427. XM.#D@-CDT(#@Y(#8W.2`W-"`V-SD@.3DY.2`Y.3DY"C(@,B`P(#(@+3$@,"`P
  428. XM(#`@,"XP,#`@,"`P(#`*"2`W-"`S.#D@-S0@-#`T(#@Y(#0P-"`X.2`S.#D@
  429. XM-S0@,S@Y(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P
  430. XM"@D@.3D@-#$T(#$P.2`T,30@,3`Y(#0R-"`Y.2`T,C0@.3D@-#$T(#DY.3D@
  431. XM.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@.3D@-C(T(#$P
  432. XM.2`V,C0@,3`Y(#8S-"`Y.2`V,S0@.3D@-C(T(#DY.3D@.3DY.0HR(#(@,"`R
  433. XM("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-S0@-3DY(#<T(#8Q-"`X.2`V,30@
  434. XM.#D@-3DY(#<T(#4Y.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P
  435. XM,"`P(#`@,`H)(#DY(#8S.2`Q,#D@-C,Y(#$P.2`V-#D@.3D@-C0Y(#DY(#8S
  436. XM.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#DY
  437. XM(#8U-"`Q,#D@-C4T(#$P.2`V-C0@.3D@-C8T(#DY(#8U-"`Y.3DY(#DY.3D*
  438. XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,W-"`V-C0@-#<T(#8V
  439. XM-"`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#DY
  440. XM(#4P.2`Q,#D@-3`Y(#$P.2`U,3D@.3D@-3$Y(#DY(#4P.2`Y.3DY(#DY.3D*
  441. XM,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#DY(#0Y-"`Q,#D@-#DT
  442. XM(#$P.2`U,#0@.3D@-3`T(#DY(#0Y-"`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P
  443. XM(#`@,"`P+C`P,"`P(#`@,`H)(#DY(#0W.2`Q,#D@-#<Y(#$P.2`T.#D@.3D@
  444. XM-#@Y(#DY(#0W.2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  445. XM(#`@,`H)(#DY(#0V-"`Q,#D@-#8T(#$P.2`T-S0@.3D@-#<T(#DY(#0V-"`Y
  446. XM.3DY(#DY.3D*,B`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<T(#0S
  447. XM.2`W-"`T-30@.#D@-#4T(#@Y(#0S.2`W-"`T,SD@.3DY.2`Y.3DY"C(@,B`P
  448. XM(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`W-"`U,S0@-S0@-30Y(#@Y(#4T
  449. XM.2`X.2`U,S0@-S0@-3,T(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N
  450. XM,#`P(#`@,"`P"@D@.3D@-34Y(#$P.2`U-3D@,3`Y(#4V.2`Y.2`U-CD@.3D@
  451. XM-34Y(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@
  452. XM.3D@-3<T(#$P.2`U-S0@,3`Y(#4X-"`Y.2`U.#0@.3D@-3<T(#DY.3D@.3DY
  453. XM.0HR(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,S,Y(#(T.2`S-#D@
  454. XM,C0Y(#,T.2`R-3D@,S,Y(#(U.2`S,SD@,C0Y(#DY.3D@.3DY.0HR(#(@,"`Q
  455. XM("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,S,Y(#(S-"`S-#D@,C,T(#,T.2`R
  456. XM-#0@,S,Y(#(T-"`S,SD@,C,T(#DY.3D@.3DY.0HT(#`@,"`Q,B`P("TQ(#`@
  457. XM,"XP,#`@-"`Q,B`Q-S`@,3$Y(#(T-"!3:7IE("`M("!,87)G92`@+R`@365D
  458. XM:75M("`O("!3;6%L;`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,3(X
  459. XM(#$Q.2`S-S0@3&%R9V4@("\@($UE9&EU;2`@+R`@4VUA;&P!"C0@,"`P(#$T
  460. XM(#`@+3$@,"`P+C`P,"`T(#$S(#$U,2`Y.2`S-30@1&EN:6YG(%)O;VT@("T@
  461. XM(%EE<R`@+R`@3F\!"C0@,"`P(#$T(#`@+3$@,"`P+C`P,"`T(#$P(#<P(#DY
  462. XM(#(R.2!"961R;V]M(",Q`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q,"`S
  463. XM-"`T,SD@,SD@4')I8V4Z`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#8T
  464. XM(#$Q.2`Q-SD@3&EN96X@0VQO<V5T`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@
  465. XM-"`Q,R`Q,S@@-CD@-S0@1&ES=&EN9W5I<VAI;F<@1F5A='5R97,Z`0HT(#`@
  466. XM,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q,"`U,R`V.2`S.2!!9&1R97-S.@$*-"`P
  467. XM(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,3$T(#$Q.2`Q-#D@4&QU;6)I;F<@
  468. XM+2`@3F5W("\@3VQD`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q,"`Q,C`@
  469. XM.3D@,3(Y($)A=&AR;V]M<SH@("`Q("`Q*R`@(#(!"C0@,"`P(#$R(#`@+3$@
  470. XM,"`P+C`P,"`T(#D@-S(@,3$Y(#$V-"!4=6(@("\@(%-H;W=E<@$*-"`P(#`@
  471. XM,30@,"`M,2`P(#`N,#`P(#0@,30@,3<S(#,R.2`Q,CD@5&5R;6ET92!297!O
  472. XM<G0Z("`@665S("`O($YO("`@("0!"C0@,"`P(#$T(#`@+3$@,"`P+C`P,"`T
  473. XM(#$P(#$Q.2`Y.2`R,#D@0F5D<F]O;7,Z("`@,B`@(#(K("`@,P$*-"`P(#`@
  474. XM,3(@,"`M,2`P(#`N,#`P(#0@,3(@,3@W(#$Q.2`R-3D@0VQO<V5T<R`@+2`@
  475. XM3&%R9V4@("\@($UE9&EU;2`@+R`@4VUA;&P!"C0@,"`P(#$T(#`@+3$@,"`P
  476. XM+C`P,"`T(#$S(#<S(#$P,"`R.#D@3&EV:6YG(%)O;VT!"C0@,"`P(#$R(#`@
  477. XM+3$@,"`P+C`P,"`T(#$R(#$R."`Q,3D@,S`Y($QA<F=E("`O("!-961I=6T@
  478. XM("\@(%-M86QL`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q,B`T-R`Q,3D@
  479. XM,S(V($9I<F5P;&%C90$*-"`P(#`@,30@,"`M,2`P(#`N,#`P(#0@,3,@,3$Q
  480. XM(#DY(#8Y-"!,875N9')Y("!997,@("\@($YO`0HT(#`@,"`Q-"`P("TQ(#`@
  481. XM,"XP,#`@-"`Q,R`Y,2`Y.2`T,#0@2&5A=&EN9R!3>7-T96T!"C0@,"`P(#$R
  482. XM(#`@+3$@,"`P+C`P,"`T(#D@,3`V(#$Q.2`T,C0@1FQO;W(@+R!786QL("\@
  483. XM0V5N=')A;`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Y,2`Q,3D@-C,T
  484. XM(%)O;V8@+2`@3F5W("\@3VQD`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q
  485. XM,"`S,R`Y.2`V,30@3W1H97(!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R
  486. XM(#$X-B`Q,3D@-C0Y(%=I<FEN9R`@+2`@3F5W("\@3VQD("`@(#$Q,%8@("\@
  487. XM(#(R,%8!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#(S-2`Q,3D@-C8T
  488. XM(%=I;F1O=W,@("T@($-A<V5M96YT("\@1&]U8FQE($AU;F<@+R!/=&AE<CH!
  489. XM"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,3$W(#$Q.2`U,3D@4W1O=F4@
  490. XM("T@($=A<R`O($5L96-T<FEC`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q
  491. XM,B`Q.34@,3$Y(#4P-"!#86)I;F5T<R`M("!-86YY("\@1F5W("`@("!.97<@
  492. XM("\@($]L9`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,S,@,3$Y(#0X
  493. XM.2!086YT<GD!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#(R."`Q,3D@
  494. XM-#<T(%-I;FL@+2`@3&%R9V4@+R!3;6%L;"`@("`@4&]R8V5L86EN("`O("!3
  495. XM=&%I;FQE<W,!"C0@,"`P(#$T(#`@+3$@,"`P+C`P,"`T(#$P(#0U(#DY(#0U
  496. XM-"!+:71C:&5N`0HT(#`@,"`Q-"`P("TQ(#`@,"XP,#`@-"`Q,"`T-"`Y.2`U
  497. XM-#D@3W5T<VED90$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,30U(#$Q
  498. XM.2`U-CD@1V%R86=E("`M("!/;F4@8V%R("\@5'=O(&-A<@$*-"`P(#`@,3(@
  499. XM,"`M,2`P(#`N,#`P(#0@,3(@,30W(#$Q.2`U.#0@66%R9"`@3&%R9V4@+R!-
  500. XM961I=6T@+R!3;6%L;`$*-"`P(#`@,30@,"`M,2`P(#`N,#`P(#0@,3`@-S`@
  501. XM,S,Y(#(R.2!"961R;V]M(",R`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Q
  502. XM,B`Q-S`@,S4Y(#(T-"!3:7IE("`M("!,87)G92`@+R`@365D:75M("`O("!3
  503. XM;6%L;`$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3(@,3@W(#,U.2`R-3D@
  504. XH0VQO<V5T<R`@+2`@3&%R9V4@("\@($UE9&EU;2`@+R`@4VUA;&P!"B`R
  505. X`
  506. Xend
  507. END_OF_FILE
  508. if test 6847 -ne `wc -c <'Examples/housecheck.fig.uu'`; then
  509.     echo shar: \"'Examples/housecheck.fig.uu'\" unpacked with wrong size!
  510. fi
  511. # end of 'Examples/housecheck.fig.uu'
  512. fi
  513. if test -f 'Examples/orifices.fig.uu' -a "${1}" != "-c" ; then 
  514.   echo shar: Will not clobber existing file \"'Examples/orifices.fig.uu'\"
  515. else
  516. echo shar: Extracting \"'Examples/orifices.fig.uu'\" \(6969 characters\)
  517. sed "s/^X//" >'Examples/orifices.fig.uu' <<'END_OF_FILE'
  518. Xbegin 444 orifices.fig
  519. XM(T9)1R`R+C$*.#`@,@HU(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,2`Q(#$Y
  520. XM,2XW,#`@-#4Y+C4P,"`Q-C<@-#0S(#$V,B`T-C`@,38W(#0W-@H),"`P(#$N
  521. XM,#`P(#0N,#`P(#@N,#`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*-2`Q(#(@
  522. XM,2`M,2`P(#`@,"`P+C`P,"`P(#`@,"`Q-C@N,S(V(#$X.2XY-S@@,38Y(#$V
  523. XM-"`Q.#@@,3<S(#$Y-"`Q.30*-2`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@
  524. XM,"`Q-C4N,S0P(#$Y,BXV-C`@,34Y(#$T.2`Q.3@@,38S(#(P.2`Q.3D*-2`Q
  525. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,"`Q-C$N-C`P(#$Y-BXT,#`@,34Y
  526. XM(#$W.2`Q-S4@,3@U(#$W.2`Q.3D*-2`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`Q
  527. XM(#$@,2`Q-#DN-C$Q(#,T-"XY-#0@,38S(#,U.2`Q-CD@,S0T(#$V,B`S,S`*
  528. XM"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P
  529. XM"C4@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#$@,3<P+C@U.2`Y-BXR,#0@
  530. XM,34S(#$P.2`Q-#D@.30@,34U(#@Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*
  531. XM"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P
  532. XM(#`@,2`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q.30@-#4Y(#(Q.2`T
  533. XM-3D@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q
  534. XM-S0@-#0T(#$W-"`T-S0@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP
  535. XM,#`@,"`P(#`*"2`Q-#D@-#(Y(#$T.2`T.#D@.3DY.2`Y.3DY"C(@,2`P(#$@
  536. XM+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q,3D@-#@Y(#$T.2`T.#D@,3<T(#0W
  537. XM-"`R,#D@-#<T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
  538. XM,"`P"@D@,3$Y(#0R.2`Q-#D@-#(Y(#$W-"`T-#0@,C`Y(#0T-"`Y.3DY(#DY
  539. XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#$@,0H),"`P(#$N,#`P(#0N
  540. XM,#`P(#@N,#`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`R,#0@,S$V(#(P
  541. XM-"`S-S$@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#$*
  542. XM"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P
  543. XM"@D@,3,T(#,S-B`Q,S0@,S4Q(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P
  544. XM(#`N,#`P(#`@,"`P"@D@,3$Y(#,U-"`Q-30@,S4T(#$W.2`S-S0@,C(Y(#,W
  545. XM-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$Q
  546. XM.2`S,S0@,34T(#,S-"`Q-SD@,S$T(#(R.2`S,30@.3DY.2`Y.3DY"C(@,2`P
  547. XM(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#$*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P
  548. XM,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,3@Q(#(S.2`R,#8@,C,Y(#DY
  549. XM.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,C`Y(#(R
  550. XM.2`R,#D@,C0Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
  551. XM,"`P"@D@,3<Y(#(R.2`Q-SD@,C0Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
  552. XM,"`P(#`N,#`P(#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q-SD@
  553. XM,3<P(#$V,R`Q.3@@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@
  554. XM,"`P(#`*"2`Q.30@,3DT(#$Y-"`R,3D@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@
  555. XM,"`P(#`@,"XP,#`@,"`P(#`*"2`Q,SD@,38T(#$V.2`Q-C0@.3DY.2`Y.3DY
  556. XM"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`R,#D@,3DY(#(P.2`R
  557. XM,3D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q
  558. XM-SD@,3DY(#$W.2`R,3D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP
  559. XM,#`@,"`P(#`*"2`Q,SD@,3<Y(#$U.2`Q-SD@.3DY.2`Y.3DY"C(@,2`P(#$@
  560. XM+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q,SD@,30Y(#$U.2`Q-#D@.3DY.2`Y
  561. XM.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q-SD@,S$T(#$W
  562. XM.2`S-S0@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*
  563. XM"2`Q-30@,S,T(#$U-"`S-30@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
  564. XM,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#@Y(#,T-"`Q
  565. XM,30@,S0T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,2`P
  566. XM"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q-SD@.30@,C`T(#DT(#DY.3D@
  567. XM.3DY.0HR(#$@,B`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,38T(#@T(#$V
  568. XM-"`Q,#0@.3DY.2`Y.3DY"C(@,2`R(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*
  569. XM"2`Q,SD@-C0@,3,Y(#$R-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P
  570. XM+C`P,"`P(#`@,`H)(#$Y.2`X-"`Q-C0@.#0@,3,Y(#8T(#$R.2`V-"`Q,CD@
  571. XM,3(T(#$S.2`Q,C0@,38T(#$P-"`Q.3D@,3`T(#DY.3D@.3DY.0HR(#$@,"`Q
  572. XM("TQ(#`@,"`P(#`N,#`P(#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*
  573. XM"2`Q.#0@-30T(#$U-"`U-#0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
  574. XM,"XP,#`@,"`P(#$*"3`@,"`Q+C`P,"`T+C`P,"`X+C`P,`H)(#$S.2`U-30@
  575. XM,3(T(#4U-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@
  576. XM,0H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,38Y(#4W-"`Q-CD@-3@Y(#DY
  577. XM.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,38Y(#4U
  578. XM-"`Q-CD@-3DT(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
  579. XM,2`P"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`Q,3D@-34T(#(Q.2`U-30@
  580. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q
  581. XM+C`P,"`T+C`P,"`X+C`P,`H)(#,U-"`Y-"`T-30@.30@.3DY.2`Y.3DY"C(@
  582. XM,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`Q(#`*"3`@,"`Q+C`P,"`T+C`P,"`X
  583. XM+C`P,`H)(#0P-"`Y-"`T,#0@,3,T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
  584. XM,"`P(#`N,#`P(#`@,"`Q"@DP(#`@,2XP,#`@-"XP,#`@."XP,#`*"2`S-S0@
  585. XM.30@,S4Y(#DT(#DY.3D@.3DY.0HS(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@
  586. XM,`H),"`P(#$N,#`P(#0N,#`P(#@N,#`P"@D@,S<T(#DY(#,X-B`Y.2`S.30@
  587. XM,3`T(#,Y.2`Q,3$@,SDY(#$R-"`Y.3DY(#DY.3D*"2`P+C`P,"`P+C`P,"`S
  588. XM.#`N.#0U(#DX+C,X,B`S.#,N.#0U(#DX+C,X,B`S.#@N,C4Y(#DY+C8T.`H)
  589. XM(#,Y,BXS-C(@,3`R+C0V,"`S.34N-#DT(#$P-2XT,#0@,SDX+C,S,R`Q,#@N
  590. XM.3$Y(#,Y.2XW-38@,3$S+C,U.0H)(#,Y.2XW-38@,3$V+C8P.2`P+C`P,"`P
  591. XM+C`P,`HS(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,`H)(#$S.2`Q-C0@,3,T
  592. XM(#$V.2`Q,SD@,3<Y(#DY.3D@.3DY.0H)(#`N,#`P(#`N,#`P(#$S-2XU,S(@
  593. XM,38V+C`Q-"`Q,S0N,C@R(#$V-RXR-C0@,3,S+C4U-2`Q-S$N-S0U"@D@,3,T
  594. XM+C@P-2`Q-S0N,C0U(#`N,#`P(#`N,#`P"C,@,B`P(#$@+3$@,"`P(#`@,"XP
  595. XM,#`@,"`P"@D@,3,Y(#$T.2`Q,S0@,34T(#$T-"`Q-CD@,3,Y(#$W.2`Y.3DY
  596. XM(#DY.3D*"2`P+C`P,"`P+C`P,"`Q,S4N-#,T(#$U,"XX.3`@,3,T+C$X-"`Q
  597. XM-3(N,30P(#$S,RXS-S0@,38P+C,R,PH)(#$T,RXV-C$@,38S+C4V-"`Q-#0N
  598. XM,34W(#$W,2XU,C@@,30R+CDP-R`Q-S0N,#(X(#`N,#`P(#`N,#`P"C,@,B`P
  599. XM(#$@+3$@,"`P(#`@,"XP,#`@,"`P"@D@,3DT(#(Q.2`Q.3D@,C(T(#(P.2`R
  600. XM,3D@.3DY.2`Y.3DY"@D@,"XP,#`@,"XP,#`@,3DV+C`Q-"`R,C(N-#8X(#$Y
  601. XM-RXR-C0@,C(S+C<Q."`R,#$N-S0U(#(R-"XT-#4*"2`R,#0N,C0U(#(R,RXQ
  602. XM.34@,"XP,#`@,"XP,#`*,R`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`*"2`Q
  603. XM-SD@,C$Y(#$X.2`R,C0@,3DY(#(Q-"`R,#D@,C$Y(#DY.3D@.3DY.0H)(#`N
  604. XM,#`P(#`N,#`P(#$X,RXW-34@,C(S+C$Y-2`Q.#8N,C4U(#(R-"XT-#4@,3DS
  605. XM+C8R.2`R,C,N,C0Y"@D@,3DT+C,W,2`R,30N-S4Q(#(P,2XW-#4@,C$S+C4U
  606. XM-2`R,#0N,C0U(#(Q-"XX,#4@,"XP,#`@,"XP,#`*-"`Q(#,R(#$R(#`@+3$@
  607. XM,"`P+C`P,"`T(#@@-B`Q-34@-#8U('$!"C0@,2`P(#$R(#`@+3$@,"`P+C`P
  608. XM,"`T(#8@-B`R,CD@-#8T('8!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#8@
  609. XM-B`W.2`S-#D@=@$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@-B`V(#(Q-"`Y
  610. XM.2!V`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#D@,3DT(#(U.2!$`0HT
  611. XM(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`V(#0@,34T(#(P-R!R`0HT(#$@,S(@
  612. XM,3(@,"`M,2`P(#`N,#`P(#0@."`V(#$W,R`S-#@@<0$*-"`Q(#`@,3`@,"`M
  613. XM,2`P(#`N,#`P(#0@-R`U(#(Q,B`X,B`P`0HT(#$@,"`Q,"`P("TQ(#`@,"XP
  614. XM,#`@-"`W(#4@,3(W(#8S(#$!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@
  615. XM.2`R,#,@-SD@00$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Y(#$R,"`U
  616. XM.2!!`0HT(#$@,S(@,3(@,"`M,2`P(#`N,#`P(#0@."`V(#$T-2`Y."!Q`0HT
  617. XM(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,3,V(#,R-B`Q`0HT(#$@,"`Q
  618. XM,B`P("TQ(#`@,"XP,#`@-"`Y(#D@,3(Y(#,R,"!!`0HT(#$@,"`Q,B`P("TQ
  619. XM(#`@,"XP,#`@-"`Y(#D@,C$T(#,T.2!!`0HT(#$@,"`Q,"`P("TQ(#`@,"XP
  620. XM,#`@-"`W(#4@,C(S(#,U-"`R`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y
  621. XM(#D@,3(Y(#0W-2!!`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,3,V
  622. XM(#0X,2`Q`0HT(#$@,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,3DS(#0W,B`R
  623. XM`0HT(#$@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#D@,3@T(#0V-R!!`0HT(#$@
  624. XM,"`Q,"`P("TQ(#`@,"XP,#`@-"`W(#4@,C(R(#4T.2`S`0HT(#$@,"`Q,"`P
  625. XM("TQ(#`@,"XP,#`@-"`W(#4@,3(V(#4T.2`Q`0HT(#$@,"`Q,B`P("TQ(#`@
  626. XM,"XP,#`@-"`Q,2`Y(#(Q-"`U-#0@40$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P
  627. XM(#0@,3$@.2`Q,3D@-30T(%$!"C0@,2`P(#$R(#`@+3$@,"`P+C`P,"`T(#$Q
  628. XM(#D@,S4T(#@T(%$!"C0@,2`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`S-C$@
  629. XM.#D@,0$*-"`Q(#`@,3(@,"`M,2`P(#`N,#`P(#0@,3$@.2`T,3D@,3,T(%$!
  630. XH"C0@,2`P(#$P(#`@+3$@,"`P+C`P,"`T(#<@-2`T,C<@,3,Y(#,!"C,T
  631. X`
  632. Xend
  633. END_OF_FILE
  634. if test 6969 -ne `wc -c <'Examples/orifices.fig.uu'`; then
  635.     echo shar: \"'Examples/orifices.fig.uu'\" unpacked with wrong size!
  636. fi
  637. # end of 'Examples/orifices.fig.uu'
  638. fi
  639. if test -f 'd_intspline.c' -a "${1}" != "-c" ; then 
  640.   echo shar: Will not clobber existing file \"'d_intspline.c'\"
  641. else
  642. echo shar: Extracting \"'d_intspline.c'\" \(7166 characters\)
  643. sed "s/^X//" >'d_intspline.c' <<'END_OF_FILE'
  644. X/*
  645. X * FIG : Facility for Interactive Generation of figures
  646. X * Copyright (c) 1985 by Supoj Sutanthavibul
  647. X *
  648. X * "Permission to use, copy, modify, distribute, and sell this software and its
  649. X * documentation for any purpose is hereby granted without fee, provided that
  650. X * the above copyright notice appear in all copies and that both the copyright
  651. X * notice and this permission notice appear in supporting documentation. 
  652. X * No representations are made about the suitability of this software for 
  653. X * any purpose.  It is provided "as is" without express or implied warranty."
  654. X */
  655. X
  656. X#include "fig.h"
  657. X#include "resources.h"
  658. X#include "mode.h"
  659. X#include "object.h"
  660. X#include "paintop.h"
  661. X#include "u_create.h"
  662. X#include "u_elastic.h"
  663. X#include "u_list.h"
  664. X#include "w_canvas.h"
  665. X#include "w_mousefun.h"
  666. X
  667. Xstatic int    create_intsplineobject();
  668. Xstatic int    init_intspline_drawing();
  669. X
  670. Xintspline_drawing_selected()
  671. X{
  672. X    set_mousefun("first point", "", "");
  673. X    canvas_kbd_proc = null_proc;
  674. X    canvas_locmove_proc = null_proc;
  675. X    canvas_leftbut_proc = init_intspline_drawing;
  676. X    canvas_middlebut_proc = null_proc;
  677. X    canvas_rightbut_proc = null_proc;
  678. X    set_cursor(arrow_cursor);
  679. X    reset_action_on();
  680. X}
  681. X
  682. Xstatic
  683. Xinit_intspline_drawing(x, y)
  684. X    int            x, y;
  685. X{
  686. X    min_num_points = 3;
  687. X    init_trace_drawing(x, y);
  688. X    canvas_middlebut_save = create_intsplineobject;
  689. X    return_proc = intspline_drawing_selected;
  690. X}
  691. X
  692. Xstatic
  693. Xcreate_intsplineobject(x, y)
  694. X    int            x, y;
  695. X{
  696. X    F_spline       *spline;
  697. X
  698. X    if (x != fix_x || y != fix_y || num_point < min_num_points) {
  699. X    get_intermediatepoint(x, y);
  700. X    }
  701. X    elastic_line();
  702. X    if ((spline = create_spline()) == NULL) {
  703. X    if (num_point == 1) {
  704. X        free((char *) cur_point);
  705. X        cur_point = NULL;
  706. X    }
  707. X    free((char *) first_point);
  708. X    first_point = NULL;
  709. X    return;
  710. X    }
  711. X    spline->style = cur_linestyle;
  712. X    spline->thickness = cur_linewidth;
  713. X    spline->style_val = cur_styleval * (cur_linewidth + 1) / 2;
  714. X    spline->color = cur_color;
  715. X    spline->depth = cur_depth;
  716. X    spline->fill_style = cur_fillstyle;
  717. X    /*
  718. X     * The current fill style is saved in all intspline objects (but support
  719. X     * for filling may not be available in all fig2dev languages).
  720. X     */
  721. X    spline->pen = 0;
  722. X    spline->points = first_point;
  723. X    spline->controls = NULL;
  724. X    spline->next = NULL;
  725. X    cur_x = cur_y = fix_x = fix_y = 0;    /* used in elastic_moveline */
  726. X    elastic_moveline(spline->points);    /* erase control vector */
  727. X    /* initialize to no arrows - changed below if necessary */
  728. X    spline->for_arrow = NULL;
  729. X    spline->back_arrow = NULL;
  730. X    if (cur_mode == F_CLOSED_INTSPLINE) {
  731. X    spline->type = T_CLOSED_INTERP;
  732. X    num_point++;
  733. X    append_point(first_point->x, first_point->y, &cur_point);
  734. X    } else {
  735. X    spline->type = T_OPEN_INTERP;
  736. X    if (autoforwardarrow_mode)
  737. X        spline->for_arrow = forward_arrow();
  738. X    if (autobackwardarrow_mode)
  739. X        spline->back_arrow = backward_arrow();
  740. X    }
  741. X    make_control_points(spline);
  742. X    draw_intspline(spline, PAINT);
  743. X    if (appres.DEBUG) {
  744. X    int        xmin, ymin, xmax, ymax;
  745. X
  746. X    spline_bound(spline, &xmin, &ymin, &xmax, &ymax);
  747. X    elastic_box(xmin, ymin, xmax, ymax);
  748. X    }
  749. X    add_spline(spline);
  750. X    intspline_drawing_selected();
  751. X    draw_mousefun_canvas();
  752. X}
  753. X
  754. X/* Tension : 0 (min) -> 1 (max)     */
  755. X
  756. Xcreate_control_list(s)
  757. X    F_spline       *s;
  758. X{
  759. X    F_point       *p;
  760. X    F_control       *cp;
  761. X
  762. X    if ((cp = create_cpoint()) == NULL)
  763. X    return (-1);
  764. X
  765. X    s->controls = cp;
  766. X    for (p = s->points->next; p != NULL; p = p->next) {
  767. X    if ((cp->next = create_cpoint()) == NULL)
  768. X        return (-1);
  769. X    cp = cp->next;
  770. X    }
  771. X    cp->next = NULL;
  772. X    return (1);
  773. X}
  774. X
  775. Xmake_control_points(s)
  776. X    F_spline       *s;
  777. X{
  778. X    if (-1 == create_control_list(s))
  779. X    return;
  780. X
  781. X    remake_control_points(s);
  782. X}
  783. X
  784. Xremake_control_points(s)
  785. X    F_spline       *s;
  786. X{
  787. X    if (s->type == T_CLOSED_INTERP)
  788. X    compute_cp(s->points, s->controls, CLOSED_PATH);
  789. X    else
  790. X    compute_cp(s->points, s->controls, OPEN_PATH);
  791. X}
  792. X
  793. X#define        T        0.45
  794. X#define        _2xPI        6.2832
  795. X#define        _1dSQR2        0.7071
  796. X#define        _SQR2        1.4142
  797. X
  798. Xcompute_cp(points, controls, path)
  799. X    F_point       *points;
  800. X    F_control       *controls;
  801. X    int            path;
  802. X{
  803. X    F_control       *cp, *cpn;
  804. X    F_point       *p, *p2, *pk;/* Pk is the next-to-last point. */
  805. X    float        dx, dy;
  806. X    float        x1, y1, x2, y2, x3, y3;
  807. X    float        l1, l2, theta1, theta2;
  808. X
  809. X    x1 = points->x;
  810. X    y1 = points->y;
  811. X    pk = p2 = points->next;
  812. X    x2 = p2->x;
  813. X    y2 = p2->y;
  814. X    p = p2->next;
  815. X    x3 = p->x;
  816. X    y3 = p->y;
  817. X
  818. X    dx = x1 - x2;
  819. X    dy = y2 - y1;
  820. X    l1 = sqrt((double) (dx * dx + dy * dy));
  821. X    if (l1 == 0.0)
  822. X    theta1 = 0.0;
  823. X    else
  824. X    theta1 = atan2((double) dy, (double) dx);
  825. X    dx = x3 - x2;
  826. X    dy = y2 - y3;
  827. X    l2 = sqrt((double) (dx * dx + dy * dy));
  828. X    if (l2 == 0.0)
  829. X    theta2 = 0.0;
  830. X    else
  831. X    theta2 = atan2((double) dy, (double) dx);
  832. X    /* -PI <= theta1, theta2 <= PI */
  833. X    if (theta1 < 0)
  834. X    theta1 += _2xPI;
  835. X    if (theta2 < 0)
  836. X    theta2 += _2xPI;
  837. X    /* 0 <= theta1, theta2 < 2PI */
  838. X
  839. X    cp = controls->next;
  840. X    control_points(x2, y2, l1, l2, theta1, theta2, T, cp);
  841. X    /* control points for (x2, y2) */
  842. X    if (path == OPEN_PATH) {
  843. X    controls->lx = 0.0;
  844. X    controls->ly = 0.0;
  845. X    controls->rx = (x1 + 3 * cp->lx) / 4;
  846. X    controls->ry = (y1 + 3 * cp->ly) / 4;
  847. X    cp->lx = (3 * cp->lx + x2) / 4;
  848. X    cp->ly = (3 * cp->ly + y2) / 4;
  849. X    }
  850. X    while (1) {
  851. X    x2 = x3;
  852. X    y2 = y3;
  853. X    l1 = l2;
  854. X    if (theta2 >= M_PI)
  855. X        theta1 = theta2 - M_PI;
  856. X    else
  857. X        theta1 = theta2 + M_PI;
  858. X    if ((p = p->next) == NULL)
  859. X        break;
  860. X    pk = pk->next;
  861. X    x3 = p->x;
  862. X    y3 = p->y;
  863. X    dx = x3 - x2;
  864. X    dy = y2 - y3;
  865. X    l2 = sqrt((double) (dx * dx + dy * dy));
  866. X    if (l2 == 0.0)
  867. X        theta2 = 0.0;
  868. X    else
  869. X        theta2 = atan2((double) dy, (double) dx);
  870. X    if (theta2 < 0)
  871. X        theta2 += _2xPI;
  872. X    cp = cp->next;
  873. X    control_points(x2, y2, l1, l2, theta1, theta2, T, cp);
  874. X    };
  875. X
  876. X    if (path == CLOSED_PATH) {
  877. X    dx = p2->x - x2;
  878. X    dy = y2 - p2->y;
  879. X    l2 = sqrt((double) (dx * dx + dy * dy));
  880. X    theta2 = atan2((double) dy, (double) dx);
  881. X    if (theta2 < 0)
  882. X        theta2 += _2xPI;
  883. X    cp = cp->next;
  884. X    control_points(x2, y2, l1, l2, theta1, theta2, T, cp);
  885. X    controls->lx = cp->lx;
  886. X    controls->ly = cp->ly;
  887. X    controls->rx = cp->rx;
  888. X    controls->ry = cp->ry;
  889. X    } else {
  890. X    cpn = cp->next;
  891. X    cpn->lx = (3 * cp->rx + x2) / 4;
  892. X    cpn->ly = (3 * cp->ry + y2) / 4;
  893. X    cpn->rx = 0.0;
  894. X    cpn->ry = 0.0;
  895. X    cp->rx = (pk->x + 3 * cp->rx) / 4;
  896. X    cp->ry = (pk->y + 3 * cp->ry) / 4;
  897. X    }
  898. X}
  899. X
  900. X/*
  901. X * The parameter t is the tension.  It must range in [0, 1]. The bigger the
  902. X * value of t, the higher the tension.
  903. X */
  904. X
  905. Xcontrol_points(x, y, l1, l2, theta1, theta2, t, cp)
  906. X    float        x, y, l1, l2, theta1, theta2, t;
  907. X    F_control       *cp;
  908. X{
  909. X    float        s, theta, r = 1 - t;
  910. X
  911. X    /* 0 <= theta1, theta2 < 2PI */
  912. X
  913. X    theta = (theta1 + theta2) / 2;
  914. X
  915. X    if (theta1 > theta2) {
  916. X    s = sin((double) (theta - theta2));
  917. X    theta1 = theta + M_PI_2;
  918. X    theta2 = theta - M_PI_2;
  919. X    } else {
  920. X    s = sin((double) (theta2 - theta));
  921. X    theta1 = theta - M_PI_2;
  922. X    theta2 = theta + M_PI_2;
  923. X    }
  924. X    if (s > _1dSQR2)
  925. X    s = _SQR2 - s;
  926. X    s *= r;
  927. X    l1 *= s;
  928. X    l2 *= s;
  929. X    cp->lx = x + l1 * cos((double) theta1);
  930. X    cp->ly = y - l1 * sin((double) theta1);
  931. X    cp->rx = x + l2 * cos((double) theta2);
  932. X    cp->ry = y - l2 * sin((double) theta2);
  933. X}
  934. END_OF_FILE
  935. if test 7166 -ne `wc -c <'d_intspline.c'`; then
  936.     echo shar: \"'d_intspline.c'\" unpacked with wrong size!
  937. fi
  938. # end of 'd_intspline.c'
  939. fi
  940. if test -f 'e_delete.c' -a "${1}" != "-c" ; then 
  941.   echo shar: Will not clobber existing file \"'e_delete.c'\"
  942. else
  943. echo shar: Extracting \"'e_delete.c'\" \(6081 characters\)
  944. sed "s/^X//" >'e_delete.c' <<'END_OF_FILE'
  945. X/*
  946. X * FIG : Facility for Interactive Generation of figures
  947. X * Copyright (c) 1985 by Supoj Sutanthavibul
  948. X *
  949. X * "Permission to use, copy, modify, distribute, and sell this software and its
  950. X * documentation for any purpose is hereby granted without fee, provided that
  951. X * the above copyright notice appear in all copies and that both the copyright
  952. X * notice and this permission notice appear in supporting documentation. 
  953. X * No representations are made about the suitability of this software for 
  954. X * any purpose.  It is provided "as is" without express or implied warranty."
  955. X */
  956. X
  957. X#include "fig.h"
  958. X#include "resources.h"
  959. X#include "mode.h"
  960. X#include "object.h"
  961. X#include "paintop.h"
  962. X#include "u_create.h"
  963. X#include "u_draw.h"
  964. X#include "u_elastic.h"
  965. X#include "u_search.h"
  966. X#include "u_list.h"
  967. X#include "u_undo.h"
  968. X#include "w_canvas.h"
  969. X#include "w_mousefun.h"
  970. X#include "w_setup.h"
  971. X
  972. Xstatic int    init_delete();
  973. Xstatic int    init_delete_region(), delete_region(), cancel_delete_region();
  974. Xstatic int    init_delete_to_scrap();
  975. X
  976. Xdelete_selected()
  977. X{
  978. X    set_mousefun("delete object", "delete region", "del to cut buf");
  979. X    canvas_kbd_proc = null_proc;
  980. X    canvas_locmove_proc = null_proc;
  981. X    init_searchproc_left(init_delete);
  982. X    init_searchproc_right(init_delete_to_scrap);
  983. X    canvas_leftbut_proc = object_search_left;
  984. X    canvas_rightbut_proc = object_search_right;
  985. X    canvas_middlebut_proc = init_delete_region;
  986. X    set_cursor(buster_cursor);
  987. X    reset_action_on();
  988. X}
  989. X
  990. Xstatic
  991. Xinit_delete(p, type, x, y, px, py)
  992. X    char       *p;
  993. X    int            type;
  994. X    int            x, y;
  995. X    int            px, py;
  996. X{
  997. X    switch (type) {
  998. X    case O_COMPOUND:
  999. X    cur_c = (F_compound *) p;
  1000. X    delete_compound(cur_c);
  1001. X    redisplay_compound(cur_c);
  1002. X    break;
  1003. X    case O_POLYLINE:
  1004. X    cur_l = (F_line *) p;
  1005. X    delete_line(cur_l);
  1006. X    redisplay_line(cur_l);
  1007. X    break;
  1008. X    case O_TEXT:
  1009. X    cur_t = (F_text *) p;
  1010. X    delete_text(cur_t);
  1011. X    redisplay_text(cur_t);
  1012. X    break;
  1013. X    case O_ELLIPSE:
  1014. X    cur_e = (F_ellipse *) p;
  1015. X    delete_ellipse(cur_e);
  1016. X    redisplay_ellipse(cur_e);
  1017. X    break;
  1018. X    case O_ARC:
  1019. X    cur_a = (F_arc *) p;
  1020. X    delete_arc(cur_a);
  1021. X    redisplay_arc(cur_a);
  1022. X    break;
  1023. X    case O_SPLINE:
  1024. X    cur_s = (F_spline *) p;
  1025. X    delete_spline(cur_s);
  1026. X    redisplay_spline(cur_s);
  1027. X    break;
  1028. X    default:
  1029. X    return;
  1030. X    }
  1031. X}
  1032. X
  1033. Xstatic
  1034. Xinit_delete_region(x, y)
  1035. X    int            x, y;
  1036. X{
  1037. X    init_box_drawing(x, y);
  1038. X    set_mousefun("", "final corner", "cancel");
  1039. X    draw_mousefun_canvas();
  1040. X    canvas_leftbut_proc = null_proc;
  1041. X    canvas_middlebut_proc = delete_region;
  1042. X    canvas_rightbut_proc = cancel_delete_region;
  1043. X}
  1044. X
  1045. Xstatic
  1046. Xcancel_delete_region()
  1047. X{
  1048. X    elastic_box(fix_x, fix_y, cur_x, cur_y);
  1049. X    delete_selected();
  1050. X    draw_mousefun_canvas();
  1051. X}
  1052. X
  1053. Xstatic
  1054. Xdelete_region(x, y)
  1055. X    int            x, y;
  1056. X{
  1057. X    F_compound       *c;
  1058. X
  1059. X    if ((c = create_compound()) == NULL)
  1060. X    return;
  1061. X
  1062. X    elastic_box(fix_x, fix_y, cur_x, cur_y);
  1063. X    c->nwcorner.x = min2(fix_x, x);
  1064. X    c->nwcorner.y = min2(fix_y, y);
  1065. X    c->secorner.x = max2(fix_x, x);
  1066. X    c->secorner.y = max2(fix_y, y);
  1067. X    tag_obj_in_region(c->nwcorner.x,c->nwcorner.y,c->secorner.x,c->secorner.y);
  1068. X    if (compose_compound(c) == 0) {
  1069. X    free((char *) c);
  1070. X    delete_selected();
  1071. X    draw_mousefun_canvas();
  1072. X    put_msg("Empty region, figure unchanged");
  1073. X    return;
  1074. X    }
  1075. X    clean_up();
  1076. X    toggle_markers_in_compound(c);
  1077. X    set_tags(c,0);
  1078. X    set_latestobjects(c);
  1079. X    tail(&objects, &object_tails);
  1080. X    append_objects(&objects, &saved_objects, &object_tails);
  1081. X    cut_objects(&objects, &object_tails);
  1082. X    set_action_object(F_DELETE, O_ALL_OBJECT);
  1083. X    set_modifiedflag();
  1084. X    redisplay_compound(c);
  1085. X    delete_selected();
  1086. X    draw_mousefun_canvas();
  1087. X}
  1088. X
  1089. Xstatic
  1090. Xinit_delete_to_scrap(p, type, x, y, px, py)
  1091. X    char       *p;
  1092. X    int            type;
  1093. X    int            x, y;
  1094. X    int            px, py;
  1095. X{
  1096. X    extern char        cut_buf_name[];
  1097. X    extern char        file_header[];
  1098. X
  1099. X    FILE       *fp;
  1100. X    struct stat        file_status;
  1101. X
  1102. X    if (stat(cut_buf_name, &file_status) == 0) {    /* file exists */
  1103. X    if (file_status.st_mode & S_IFDIR) {
  1104. X        put_msg("Error: \"%s\" is a directory", cut_buf_name);
  1105. X        return;
  1106. X    }
  1107. X    if (file_status.st_mode & S_IWRITE) {    /* writing is permitted */
  1108. X        if (file_status.st_uid != geteuid()) {
  1109. X        put_msg("Error: access denied to cut file");
  1110. X        return;
  1111. X        }
  1112. X    } else {
  1113. X        put_msg("Error: cut file is read only");
  1114. X        return;
  1115. X    }
  1116. X    } else if (errno != ENOENT) {
  1117. X    put_msg("Error: cut file didn't pass stat check");
  1118. X    return;            /* file does exist but stat fails */
  1119. X    }
  1120. X    if ((fp = fopen(cut_buf_name, "w")) == NULL) {
  1121. X    put_msg("Error: couldn't open cut file %s", sys_errlist[errno]);
  1122. X    return;
  1123. X    } else {
  1124. X    (void) fprintf(fp, "%s\n", file_header);
  1125. X    (void) fprintf(fp, "%d %d\n", PIX_PER_INCH, 2);
  1126. X    }
  1127. X
  1128. X    switch (type) {
  1129. X    case O_COMPOUND:
  1130. X    cur_c = (F_compound *) p;
  1131. X    write_compound(fp, cur_c);
  1132. X    delete_compound(cur_c);
  1133. X    redisplay_compound(cur_c);
  1134. X    break;
  1135. X    case O_POLYLINE:
  1136. X    cur_l = (F_line *) p;
  1137. X    write_line(fp, cur_l);
  1138. X    delete_line(cur_l);
  1139. X    redisplay_line(cur_l);
  1140. X    break;
  1141. X    case O_TEXT:
  1142. X    cur_t = (F_text *) p;
  1143. X    write_text(fp, cur_t);
  1144. X    delete_text(cur_t);
  1145. X    redisplay_text(cur_t);
  1146. X    break;
  1147. X    case O_ELLIPSE:
  1148. X    cur_e = (F_ellipse *) p;
  1149. X    write_ellipse(fp, cur_e);
  1150. X    delete_ellipse(cur_e);
  1151. X    redisplay_ellipse(cur_e);
  1152. X    break;
  1153. X    case O_ARC:
  1154. X    cur_a = (F_arc *) p;
  1155. X    write_arc(fp, cur_a);
  1156. X    delete_arc(cur_a);
  1157. X    redisplay_arc(cur_a);
  1158. X    break;
  1159. X    case O_SPLINE:
  1160. X    cur_s = (F_spline *) p;
  1161. X    write_spline(fp, cur_s);
  1162. X    delete_spline(cur_s);
  1163. X    redisplay_spline(cur_s);
  1164. X    break;
  1165. X    default:
  1166. X    fclose(fp);
  1167. X    return;
  1168. X    }
  1169. X    put_msg("Object deleted to scrap");
  1170. X    fclose(fp);
  1171. X}
  1172. X
  1173. Xdelete_all()
  1174. X{
  1175. X    clean_up();
  1176. X    set_action_object(F_DELETE, O_ALL_OBJECT);
  1177. X
  1178. X    /*
  1179. X     * Aggregate assignment between variables is allowed, but not from
  1180. X     * constant (weird!?)
  1181. X     */
  1182. X
  1183. X    set_latestobjects(&objects);
  1184. X
  1185. X    objects.arcs = NULL;
  1186. X    objects.compounds = NULL;
  1187. X    objects.ellipses = NULL;
  1188. X    objects.lines = NULL;
  1189. X    objects.splines = NULL;
  1190. X    objects.texts = NULL;
  1191. X
  1192. X    object_tails.arcs = NULL;
  1193. X    object_tails.compounds = NULL;
  1194. X    object_tails.ellipses = NULL;
  1195. X    object_tails.lines = NULL;
  1196. X    object_tails.splines = NULL;
  1197. X    object_tails.texts = NULL;
  1198. X}
  1199. END_OF_FILE
  1200. if test 6081 -ne `wc -c <'e_delete.c'`; then
  1201.     echo shar: \"'e_delete.c'\" unpacked with wrong size!
  1202. fi
  1203. # end of 'e_delete.c'
  1204. fi
  1205. if test -f 'e_deletept.c' -a "${1}" != "-c" ; then 
  1206.   echo shar: Will not clobber existing file \"'e_deletept.c'\"
  1207. else
  1208. echo shar: Extracting \"'e_deletept.c'\" \(6062 characters\)
  1209. sed "s/^X//" >'e_deletept.c' <<'END_OF_FILE'
  1210. X/*
  1211. X * FIG : Facility for Interactive Generation of figures
  1212. X * Copyright (c) 1985 by Supoj Sutanthavibul
  1213. X *
  1214. X * "Permission to use, copy, modify, distribute, and sell this software and its
  1215. X * documentation for any purpose is hereby granted without fee, provided that
  1216. X * the above copyright notice appear in all copies and that both the copyright
  1217. X * notice and this permission notice appear in supporting documentation. 
  1218. X * No representations are made about the suitability of this software for 
  1219. X * any purpose.  It is provided "as is" without express or implied warranty."
  1220. X */
  1221. X
  1222. X#include "fig.h"
  1223. X#include "resources.h"
  1224. X#include "mode.h"
  1225. X#include "object.h"
  1226. X#include "paintop.h"
  1227. X#include "u_search.h"
  1228. X#include "w_canvas.h"
  1229. X#include "w_mousefun.h"
  1230. X
  1231. Xstatic int    init_delete_point();
  1232. X
  1233. Xdelete_point_selected()
  1234. X{
  1235. X    set_mousefun("delete point", "", "");
  1236. X    canvas_kbd_proc = null_proc;
  1237. X    canvas_locmove_proc = null_proc;
  1238. X    init_searchproc_left(init_delete_point);
  1239. X    canvas_leftbut_proc = point_search_left;
  1240. X    canvas_middlebut_proc = null_proc;
  1241. X    canvas_rightbut_proc = null_proc;
  1242. X    set_cursor(pick9_cursor);
  1243. X}
  1244. X
  1245. Xstatic
  1246. Xinit_delete_point(obj, type, x, y, p, q)
  1247. X    char       *obj;
  1248. X    int            type, x, y;
  1249. X    F_point       *p, *q;
  1250. X{
  1251. X    int            n;
  1252. X
  1253. X    switch (type) {
  1254. X    case O_POLYLINE:
  1255. X    cur_l = (F_line *) obj;
  1256. X    /* the search routine will ensure we don't have a box */
  1257. X    n = num_points(cur_l->points);
  1258. X    if (cur_l->type == T_POLYGON) {
  1259. X        if (n <= 4) {    /* count first pt twice for closed object */
  1260. X        put_msg("A polygon cannot have less than 3 points");
  1261. X        return;
  1262. X        }
  1263. X    } else if (n <= 1) {
  1264. X        /* alternative would be to remove the dot altogether */
  1265. X        put_msg("A dot must have at least 1 point");
  1266. X        return;
  1267. X    }
  1268. X    linepoint_deleting(cur_l, p, q);
  1269. X    break;
  1270. X    case O_SPLINE:
  1271. X    cur_s = (F_spline *) obj;
  1272. X    n = num_points(cur_s->points);
  1273. X    if (closed_spline(cur_s)) {
  1274. X        if (n <= 4) {    /* count first pt twice for closed object */
  1275. X        put_msg("A closed spline cannot have less than 3 points");
  1276. X        return;
  1277. X        }
  1278. X    } else if (normal_spline(cur_s)) {
  1279. X        if (n <= 2) {
  1280. X        put_msg("A spline cannot have less than 2 points");
  1281. X        return;
  1282. X        }
  1283. X    } else if (n <= 3) {    /* it must be an open interpolated spline */
  1284. X        put_msg("An interpolated spline cannot have less than 3 points");
  1285. X        return;
  1286. X    }
  1287. X    splinepoint_deleting(cur_s, p, q);
  1288. X    break;
  1289. X    default:
  1290. X    return;
  1291. X    }
  1292. X}
  1293. X
  1294. X/**************************  spline  *******************************/
  1295. X
  1296. Xsplinepoint_deleting(spline, prev_point, selected_point)
  1297. X    F_spline       *spline;
  1298. X    F_point       *prev_point, *selected_point;
  1299. X{
  1300. X    F_point       *p, *next_point;
  1301. X
  1302. X    next_point = selected_point->next;
  1303. X    set_temp_cursor(wait_cursor);
  1304. X    if (closed_spline(spline)) {
  1305. X    mask_toggle_splinemarker(spline);
  1306. X    draw_spline(spline, ERASE);    /* erase the spline */
  1307. X    if (prev_point == NULL) {
  1308. X        /* The deleted point is the first point */
  1309. X        spline->points = next_point;
  1310. X        for (prev_point = next_point, p = prev_point->next;
  1311. X         p->next != NULL;
  1312. X         prev_point = p, p = p->next);
  1313. X        /*
  1314. X         * prev_point now points at next to last point (the last point is
  1315. X         * a copy of the first).
  1316. X         */
  1317. X        p->x = spline->points->x;
  1318. X        p->y = spline->points->y;
  1319. X        next_point = p;
  1320. X        /*
  1321. X         * next_point becomes the last point.  If this operation (point
  1322. X         * deletion) is reversed (undo), the selected_point will not be
  1323. X         * inserted into it original place, but will be between
  1324. X         * prev_point and next_point.
  1325. X         */
  1326. X    } else
  1327. X        prev_point->next = next_point;
  1328. X    } else {            /* open spline */
  1329. X    mask_toggle_splinemarker(spline);
  1330. X    draw_spline(spline, ERASE);    /* erase the spline */
  1331. X    if (prev_point == NULL)
  1332. X        spline->points = next_point;
  1333. X    else
  1334. X        prev_point->next = next_point;
  1335. X    }
  1336. X    if (int_spline(spline)) {
  1337. X    F_control      *c;
  1338. X
  1339. X    c = spline->controls;
  1340. X    spline->controls = c->next;
  1341. X    c->next = NULL;
  1342. X    free((char *) c);
  1343. X    remake_control_points(spline);
  1344. X    }
  1345. X    draw_spline(spline, PAINT);
  1346. X    mask_toggle_splinemarker(spline);
  1347. X    clean_up();
  1348. X    set_action_object(F_DELETE_POINT, O_SPLINE);
  1349. X    set_latestspline(spline);
  1350. X    set_last_prevpoint(prev_point);
  1351. X    set_last_selectedpoint(selected_point);
  1352. X    set_last_nextpoint(next_point);
  1353. X    set_modifiedflag();
  1354. X    reset_cursor();
  1355. X}
  1356. X
  1357. X/***************************  line  ********************************/
  1358. X
  1359. X/*
  1360. X * In deleting a point selected_point, linepoint_deleting uses prev_point and
  1361. X * next_point of the point. The relationship between the three points is:
  1362. X * prev_point->selected_point->next_point except when selected_point is the
  1363. X * first point in the list, in which case prev_point will be NULL.
  1364. X */
  1365. Xlinepoint_deleting(line, prev_point, selected_point)
  1366. X    F_line       *line;
  1367. X    F_point       *prev_point, *selected_point;
  1368. X{
  1369. X    F_point       *p, *next_point;
  1370. X
  1371. X    next_point = selected_point->next;
  1372. X    mask_toggle_linemarker(line);
  1373. X    draw_line(line, ERASE);    /* erase the line */
  1374. X    if (line->type == T_POLYGON) {
  1375. X    if (prev_point == NULL) {
  1376. X        /* The deleted point is the first point */
  1377. X        line->points = next_point;
  1378. X        for (prev_point = next_point, p = prev_point->next;
  1379. X         p->next != NULL;
  1380. X         prev_point = p, p = p->next);
  1381. X        /*
  1382. X         * prev_point now points at next to last point (the last point is
  1383. X         * a copy of the first).
  1384. X         */
  1385. X        p->x = next_point->x;
  1386. X        p->y = next_point->y;
  1387. X        next_point = p;
  1388. X        /*
  1389. X         * next_point becomes the last point.  If this operation (point
  1390. X         * deletion) is reversed (undo), the selected_point will not be
  1391. X         * inserted into it original place, but will be between
  1392. X         * prev_point and next_point.
  1393. X         */
  1394. X    } else
  1395. X        prev_point->next = next_point;
  1396. X    } else {            /* polyline */
  1397. X    if (prev_point == NULL)
  1398. X        line->points = next_point;
  1399. X    else
  1400. X        prev_point->next = next_point;
  1401. X    }
  1402. X    draw_line(line, PAINT);
  1403. X    mask_toggle_linemarker(line);
  1404. X    clean_up();
  1405. X    set_modifiedflag();
  1406. X    set_action_object(F_DELETE_POINT, O_POLYLINE);
  1407. X    set_latestline(line);
  1408. X    set_last_prevpoint(prev_point);
  1409. X    set_last_selectedpoint(selected_point);
  1410. X    set_last_nextpoint(next_point);
  1411. X}
  1412. END_OF_FILE
  1413. if test 6062 -ne `wc -c <'e_deletept.c'`; then
  1414.     echo shar: \"'e_deletept.c'\" unpacked with wrong size!
  1415. fi
  1416. # end of 'e_deletept.c'
  1417. fi
  1418. if test -f 'f_save.c' -a "${1}" != "-c" ; then 
  1419.   echo shar: Will not clobber existing file \"'f_save.c'\"
  1420. else
  1421. echo shar: Extracting \"'f_save.c'\" \(6925 characters\)
  1422. sed "s/^X//" >'f_save.c' <<'END_OF_FILE'
  1423. X/*
  1424. X * FIG : Facility for Interactive Generation of figures
  1425. X * Copyright (c) 1985 by Supoj Sutanthavibul
  1426. X *
  1427. X * "Permission to use, copy, modify, distribute, and sell this software and its
  1428. X * documentation for any purpose is hereby granted without fee, provided that
  1429. X * the above copyright notice appear in all copies and that both the copyright
  1430. X * notice and this permission notice appear in supporting documentation. 
  1431. X * No representations are made about the suitability of this software for 
  1432. X * any purpose.  It is provided "as is" without express or implied warranty."
  1433. X */
  1434. X
  1435. X#include "fig.h"
  1436. X#include "resources.h"
  1437. X#include "mode.h"
  1438. X#include "object.h"
  1439. X#include "w_setup.h"
  1440. X
  1441. Xextern int    num_object;
  1442. X
  1443. Xwrite_file(file_name)
  1444. X    char       *file_name;
  1445. X{
  1446. X    FILE       *fp;
  1447. X
  1448. X    if (!ok_to_write(file_name, "SAVE"))
  1449. X    return (-1);
  1450. X
  1451. X    if ((fp = fopen(file_name, "w")) == NULL) {
  1452. X    put_msg("Couldn't open file %s, %s", file_name, sys_errlist[errno]);
  1453. X    return (-1);
  1454. X    }
  1455. X    num_object = 0;
  1456. X    if (write_objects(fp)) {
  1457. X    put_msg("Error writing file %s, %s", file_name, sys_errlist[errno]);
  1458. X    return (-1);
  1459. X    }
  1460. X    put_msg("%d object(s) saved in \"%s\"", num_object, file_name);
  1461. X    return (0);
  1462. X}
  1463. X
  1464. Xint
  1465. Xwrite_objects(fp)
  1466. X    FILE       *fp;
  1467. X{
  1468. X    extern char        file_header[];
  1469. X    F_arc       *a;
  1470. X    F_compound       *c;
  1471. X    F_ellipse       *e;
  1472. X    F_line       *l;
  1473. X    F_spline       *s;
  1474. X    F_text       *t;
  1475. X
  1476. X    /*
  1477. X     * Number 2 means that the origin (0,0) is at the upper left corner of
  1478. X     * the screen (2nd quadrant)
  1479. X     */
  1480. X
  1481. X    put_msg("Writing . . .");
  1482. X    fprintf(fp, "%s\n", file_header);
  1483. X    fprintf(fp, "%d %d\n", PIX_PER_INCH, 2);
  1484. X    for (a = objects.arcs; a != NULL; a = a->next) {
  1485. X    num_object++;
  1486. X    write_arc(fp, a);
  1487. X    }
  1488. X    for (c = objects.compounds; c != NULL; c = c->next) {
  1489. X    num_object++;
  1490. X    write_compound(fp, c);
  1491. X    }
  1492. X    for (e = objects.ellipses; e != NULL; e = e->next) {
  1493. X    num_object++;
  1494. X    write_ellipse(fp, e);
  1495. X    }
  1496. X    for (l = objects.lines; l != NULL; l = l->next) {
  1497. X    num_object++;
  1498. X    write_line(fp, l);
  1499. X    }
  1500. X    for (s = objects.splines; s != NULL; s = s->next) {
  1501. X    num_object++;
  1502. X    write_spline(fp, s);
  1503. X    }
  1504. X    for (t = objects.texts; t != NULL; t = t->next) {
  1505. X    num_object++;
  1506. X    write_text(fp, t);
  1507. X    }
  1508. X    if (ferror(fp)) {
  1509. X    fclose(fp);
  1510. X    return (-1);
  1511. X    }
  1512. X    if (fclose(fp) == EOF)
  1513. X    return (-1);
  1514. X    return (0);
  1515. X}
  1516. X
  1517. Xwrite_arc(fp, a)
  1518. X    FILE       *fp;
  1519. X    F_arc       *a;
  1520. X{
  1521. X    F_arrow       *f, *b;
  1522. X
  1523. X    fprintf(fp, "%d %d %d %d %d %d %d %d %.3f %d %d %d %.3f %.3f %d %d %d %d %d %d\n",
  1524. X        O_ARC, a->type, a->style, a->thickness,
  1525. X        a->color, a->depth, a->pen, a->fill_style,
  1526. X        a->style_val, a->direction,
  1527. X        ((f = a->for_arrow) ? 1 : 0), ((b = a->back_arrow) ? 1 : 0),
  1528. X        a->center.x, a->center.y,
  1529. X        a->point[0].x, a->point[0].y,
  1530. X        a->point[1].x, a->point[1].y,
  1531. X        a->point[2].x, a->point[2].y);
  1532. X    if (f)
  1533. X    fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", f->type, f->style,
  1534. X        f->thickness, f->wid, f->ht);
  1535. X    if (b)
  1536. X    fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", b->type, b->style,
  1537. X        b->thickness, b->wid, b->ht);
  1538. X}
  1539. X
  1540. Xwrite_compound(fp, com)
  1541. X    FILE       *fp;
  1542. X    F_compound       *com;
  1543. X{
  1544. X    F_arc       *a;
  1545. X    F_compound       *c;
  1546. X    F_ellipse       *e;
  1547. X    F_line       *l;
  1548. X    F_spline       *s;
  1549. X    F_text       *t;
  1550. X
  1551. X    fprintf(fp, "%d %d %d %d %d\n", O_COMPOUND, com->nwcorner.x,
  1552. X        com->nwcorner.y, com->secorner.x, com->secorner.y);
  1553. X    for (a = com->arcs; a != NULL; a = a->next)
  1554. X    write_arc(fp, a);
  1555. X    for (c = com->compounds; c != NULL; c = c->next)
  1556. X    write_compound(fp, c);
  1557. X    for (e = com->ellipses; e != NULL; e = e->next)
  1558. X    write_ellipse(fp, e);
  1559. X    for (l = com->lines; l != NULL; l = l->next)
  1560. X    write_line(fp, l);
  1561. X    for (s = com->splines; s != NULL; s = s->next)
  1562. X    write_spline(fp, s);
  1563. X    for (t = com->texts; t != NULL; t = t->next)
  1564. X    write_text(fp, t);
  1565. X    fprintf(fp, "%d\n", O_END_COMPOUND);
  1566. X}
  1567. X
  1568. Xwrite_ellipse(fp, e)
  1569. X    FILE       *fp;
  1570. X    F_ellipse       *e;
  1571. X{
  1572. X    if (e->radiuses.x == 0 || e->radiuses.y == 0)
  1573. X    return;
  1574. X
  1575. X    fprintf(fp, "%d %d %d %d %d %d %d %d %.5f %d %.3f %d %d %d %d %d %d %d %d\n",
  1576. X        O_ELLIPSE, e->type, e->style, e->thickness,
  1577. X        e->color, e->depth, e->pen, e->fill_style,
  1578. X        e->style_val, e->direction, e->angle,
  1579. X        e->center.x, e->center.y,
  1580. X        e->radiuses.x, e->radiuses.y,
  1581. X        e->start.x, e->start.y,
  1582. X        e->end.x, e->end.y);
  1583. X}
  1584. X
  1585. Xwrite_line(fp, l)
  1586. X    FILE       *fp;
  1587. X    F_line       *l;
  1588. X{
  1589. X    F_point       *p;
  1590. X    F_arrow       *f, *b;
  1591. X    int           npts;
  1592. X
  1593. X    if (l->points == NULL)
  1594. X    return;
  1595. X    fprintf(fp, "%d %d %d %d %d %d %d %d %.3f %d %d %d\n",
  1596. X        O_POLYLINE, l->type, l->style, l->thickness,
  1597. X     l->color, l->depth, l->pen, l->fill_style, l->style_val, l->radius,
  1598. X        ((f = l->for_arrow) ? 1 : 0), ((b = l->back_arrow) ? 1 : 0));
  1599. X    if (f)
  1600. X    fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", f->type, f->style,
  1601. X        f->thickness, f->wid, f->ht);
  1602. X    if (b)
  1603. X    fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", b->type, b->style,
  1604. X        b->thickness, b->wid, b->ht);
  1605. X    if (l->type == T_EPS_BOX)
  1606. X    fprintf(fp, "\t%d %s\n", l->eps->flipped, l->eps->file);
  1607. X
  1608. X    fprintf(fp, "\t");
  1609. X    npts=0;
  1610. X    for (p = l->points; p != NULL; p = p->next) {
  1611. X    fprintf(fp, " %d %d", p->x, p->y);
  1612. X    if (++npts >= 8 && p->next != NULL)
  1613. X        {
  1614. X        fprintf(fp,"\n\t");
  1615. X        npts=0;
  1616. X        }
  1617. X    };
  1618. X    fprintf(fp, " 9999 9999\n");
  1619. X}
  1620. X
  1621. Xwrite_spline(fp, s)
  1622. X    FILE       *fp;
  1623. X    F_spline       *s;
  1624. X{
  1625. X    F_control       *cp;
  1626. X    F_point       *p;
  1627. X    F_arrow       *f, *b;
  1628. X    int           npts;
  1629. X
  1630. X    if (s->points == NULL)
  1631. X    return;
  1632. X    fprintf(fp, "%d %d %d %d %d %d %d %d %.3f %d %d\n",
  1633. X        O_SPLINE, s->type, s->style, s->thickness,
  1634. X        s->color, s->depth, s->pen, s->fill_style, s->style_val,
  1635. X        ((f = s->for_arrow) ? 1 : 0), ((b = s->back_arrow) ? 1 : 0));
  1636. X    if (f)
  1637. X    fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", f->type, f->style,
  1638. X        f->thickness, f->wid, f->ht);
  1639. X    if (b)
  1640. X    fprintf(fp, "\t%d %d %.3f %.3f %.3f\n", b->type, b->style,
  1641. X        b->thickness, b->wid, b->ht);
  1642. X    fprintf(fp, "\t");
  1643. X    for (p = s->points; p != NULL; p = p->next) {
  1644. X    fprintf(fp, " %d %d", p->x, p->y);
  1645. X    };
  1646. X    fprintf(fp, " 9999 9999\n");/* terminating code  */
  1647. X
  1648. X    if (s->controls == NULL)
  1649. X    return;
  1650. X    fprintf(fp, "\t");
  1651. X    npts=0;
  1652. X    for (cp = s->controls; cp != NULL; cp = cp->next) {
  1653. X    fprintf(fp, " %.3f %.3f %.3f %.3f",
  1654. X        cp->lx, cp->ly, cp->rx, cp->ry);
  1655. X    if (++npts >= 2 && cp->next != NULL)
  1656. X        {
  1657. X        fprintf(fp,"\n\t");
  1658. X        npts=0;
  1659. X        }
  1660. X    };
  1661. X    fprintf(fp, "\n");
  1662. X}
  1663. X
  1664. Xwrite_text(fp, t)
  1665. X    FILE       *fp;
  1666. X    F_text       *t;
  1667. X{
  1668. X    if (t->length == 0)
  1669. X    return;
  1670. X    fprintf(fp, "%d %d %d %d %d %d %d %.5f %d %d %d %d %d %s\1\n",
  1671. X        O_TEXT, t->type, t->font, t->size, t->pen,
  1672. X        t->color, t->depth, t->angle,
  1673. X        t->flags, t->height, t->length,
  1674. X        t->base_x, t->base_y, t->cstring);
  1675. X}
  1676. X
  1677. Xemergency_save(file_name)
  1678. X    char       *file_name;
  1679. X{
  1680. X    FILE       *fp;
  1681. X
  1682. X    if ((fp = fopen(file_name, "w")) == NULL)
  1683. X    return (-1);
  1684. X    num_object = 0;
  1685. X    if (write_objects(fp))
  1686. X    return (-1);
  1687. X    (void) fprintf(stderr, "xfig: %d object(s) saved in \"%s\"\n",
  1688. X           num_object, file_name);
  1689. X    return (0);
  1690. X}
  1691. END_OF_FILE
  1692. if test 6925 -ne `wc -c <'f_save.c'`; then
  1693.     echo shar: \"'f_save.c'\" unpacked with wrong size!
  1694. fi
  1695. # end of 'f_save.c'
  1696. fi
  1697. if test -f 'w_mousefun.c' -a "${1}" != "-c" ; then 
  1698.   echo shar: Will not clobber existing file \"'w_mousefun.c'\"
  1699. else
  1700. echo shar: Extracting \"'w_mousefun.c'\" \(7190 characters\)
  1701. sed "s/^X//" >'w_mousefun.c' <<'END_OF_FILE'
  1702. X/*
  1703. X * FIG : Facility for Interactive Generation of figures
  1704. X * Copyright (c) 1991 by Paul King
  1705. X *
  1706. X * "Permission to use, copy, modify, distribute, and sell this software and its
  1707. X * documentation for any purpose is hereby granted without fee, provided that
  1708. X * the above copyright notice appear in all copies and that both the copyright
  1709. X * notice and this permission notice appear in supporting documentation. 
  1710. X * No representations are made about the suitability of this software for 
  1711. X * any purpose.  It is provided "as is" without express or implied warranty."
  1712. X */
  1713. X
  1714. X#include "fig.h"
  1715. X#include "figx.h"
  1716. X#include "resources.h"
  1717. X#include "w_util.h"
  1718. X#include "w_drawprim.h"
  1719. X#include "w_mousefun.h"
  1720. X#include "w_setup.h"
  1721. X
  1722. X#define MOUSE_BUT_WID        (int) (MOUSEFUN_WD * 0.045)
  1723. X#define MOUSE_BUT_HGT        (int) (MOUSEFUN_HT * 0.5)
  1724. X#define MOUSE_LEFT_SPACE    (int) ((MOUSEFUN_WD - 4 * MOUSE_BUT_WID) / 2)
  1725. X#define MOUSE_LEFT_CTR        (int) (MOUSE_LEFT_SPACE/2)
  1726. X#define MOUSE_MID_CTR        (int) (MOUSEFUN_WD / 2)
  1727. X#define MOUSE_RIGHT_CTR        (int) (MOUSEFUN_WD - MOUSE_LEFT_CTR)
  1728. X#define MOUSEFUN_MAX               20
  1729. X
  1730. XDeclareStaticArgs(14);
  1731. Xstatic char    mousefun_l[MOUSEFUN_MAX];
  1732. Xstatic char    mousefun_m[MOUSEFUN_MAX];
  1733. Xstatic char    mousefun_r[MOUSEFUN_MAX];
  1734. X
  1735. X/* labels for the left and right buttons have 15 chars max */
  1736. Xstatic char    lr_blank[] = "               ";
  1737. X
  1738. X/* give the middle button label a bit more space - 18 chars max */
  1739. Xstatic char    mid_blank[] = "                  ";
  1740. Xstatic Pixmap    mousefun_pm;
  1741. X
  1742. Xvoid
  1743. Xinit_mousefun(tool)
  1744. X    TOOL        tool;
  1745. X{
  1746. X    FirstArg(XtNwidth, MOUSEFUN_WD);
  1747. X    /* start with nominal height and adjust later */
  1748. X    NextArg(XtNheight, MSGFORM_HT);
  1749. X    NextArg(XtNfromHoriz, cmd_panel);
  1750. X    NextArg(XtNhorizDistance, -INTERNAL_BW);
  1751. X    NextArg(XtNfromVert, NULL);
  1752. X    NextArg(XtNvertDistance, 0);
  1753. X    NextArg(XtNleft, XtChainLeft);
  1754. X    NextArg(XtNright, XtChainLeft);
  1755. X    NextArg(XtNtop, XtChainTop);
  1756. X    NextArg(XtNbottom, XtChainTop);
  1757. X    NextArg(XtNborderWidth, INTERNAL_BW);
  1758. X    NextArg(XtNbackgroundPixmap, NULL);
  1759. X    NextArg(XtNmappedWhenManaged, False);
  1760. X    NextArg(XtNlabel, "");
  1761. X
  1762. X    mousefun = XtCreateManagedWidget("mouse_panel", labelWidgetClass,
  1763. X                     tool, Args, ArgCount);
  1764. X}
  1765. X
  1766. Xstatic void
  1767. Xreset_mousefun()
  1768. X{
  1769. X    /* get the foreground and background from the mousefun widget */
  1770. X    /* and create a gc with those values */
  1771. X    mouse_button_gc = XCreateGC(tool_d, XtWindow(mousefun), (unsigned long) 0, NULL);
  1772. X    FirstArg(XtNforeground, &mouse_but_fg);
  1773. X    NextArg(XtNbackground, &mouse_but_bg);
  1774. X    GetValues(mousefun);
  1775. X    XSetBackground(tool_d, mouse_button_gc, mouse_but_bg);
  1776. X    XSetForeground(tool_d, mouse_button_gc, mouse_but_fg);
  1777. X    XSetFont(tool_d, mouse_button_gc, button_font->fid);
  1778. X
  1779. X    /* also create gc with fore=background for blanking areas */
  1780. X    mouse_blank_gc = XCreateGC(tool_d, XtWindow(mousefun), (unsigned long) 0, NULL);
  1781. X    XSetBackground(tool_d, mouse_blank_gc, mouse_but_bg);
  1782. X    XSetForeground(tool_d, mouse_blank_gc, mouse_but_bg);
  1783. X
  1784. X    mousefun_pm = XCreatePixmap(tool_d, XtWindow(mousefun),
  1785. X            MOUSEFUN_WD, MOUSEFUN_HT, DefaultDepthOfScreen(tool_s));
  1786. X
  1787. X    XFillRectangle(tool_d, mousefun_pm, mouse_blank_gc, 0, 0,
  1788. X           MOUSEFUN_WD, MOUSEFUN_HT);
  1789. X
  1790. X    XDrawRectangle(tool_d, mousefun_pm, mouse_button_gc, MOUSE_LEFT_SPACE,
  1791. X           (int) (MOUSEFUN_HT * 0.45), MOUSE_BUT_WID, MOUSE_BUT_HGT);
  1792. X    XDrawRectangle(tool_d, mousefun_pm, mouse_button_gc,
  1793. X           (int) (MOUSE_LEFT_SPACE + 1.5 * MOUSE_BUT_WID),
  1794. X           (int) (MOUSEFUN_HT * 0.45), MOUSE_BUT_WID, MOUSE_BUT_HGT);
  1795. X    XDrawRectangle(tool_d, mousefun_pm, mouse_button_gc,
  1796. X           (int) (MOUSE_LEFT_SPACE + 3 * MOUSE_BUT_WID),
  1797. X           (int) (MOUSEFUN_HT * 0.45), MOUSE_BUT_WID, MOUSE_BUT_HGT);
  1798. X    FirstArg(XtNbackgroundPixmap, mousefun_pm);
  1799. X    SetValues(mousefun);
  1800. X    mouse_title();
  1801. X    FirstArg(XtNmappedWhenManaged, True);
  1802. X    SetValues(mousefun);
  1803. X}
  1804. X
  1805. Xstatic char *title = "Mouse Buttons";
  1806. X
  1807. Xmouse_title()
  1808. X{
  1809. X    /* put a title in the window */
  1810. X    XDrawImageString(tool_d, mousefun_pm, mouse_button_gc,
  1811. X             4, button_font->ascent+4, title, strlen(title));
  1812. X    FirstArg(XtNbackgroundPixmap, 0);
  1813. X    SetValues(mousefun);
  1814. X    FirstArg(XtNbackgroundPixmap, mousefun_pm);
  1815. X    SetValues(mousefun);
  1816. X}
  1817. X
  1818. Xvoid
  1819. Xsetup_mousefun()
  1820. X{
  1821. X    XDefineCursor(tool_d, XtWindow(mousefun), arrow_cursor);
  1822. X    /* now that the message panel has the real height it needs (because of
  1823. X       the font size we can resize the mouse panel */
  1824. X    MOUSEFUN_HT = MSGFORM_HT + CMDPANEL_HT - INTERNAL_BW;
  1825. X    XtUnmanageChild(mousefun);
  1826. X    FirstArg(XtNheight, MOUSEFUN_HT);
  1827. X    SetValues(mousefun);
  1828. X    XtManageChild(mousefun);
  1829. X    reset_mousefun();
  1830. X    set_mousefun("", "", "");
  1831. X}
  1832. X
  1833. Xvoid
  1834. Xresize_mousefun()
  1835. X{
  1836. X    XFreePixmap(tool_d, mousefun_pm);
  1837. X    reset_mousefun();
  1838. X}
  1839. X
  1840. Xvoid
  1841. Xset_mousefun(left, middle, right)
  1842. X    char       *left, *middle, *right;
  1843. X{
  1844. X    strcpy(mousefun_l, left);
  1845. X    strcpy(mousefun_m, middle);
  1846. X    strcpy(mousefun_r, right);
  1847. X}
  1848. X
  1849. Xvoid
  1850. Xdraw_mousefun_mode()
  1851. X{
  1852. X    clear_mousefun();
  1853. X    draw_mousefun("Change Mode", "", "");
  1854. X}
  1855. X
  1856. Xvoid
  1857. Xdraw_mousefun_ind()
  1858. X{
  1859. X    clear_mousefun();
  1860. X    draw_mousefun("Menu", "Dec/Prev", "Inc/Next");
  1861. X}
  1862. X
  1863. Xvoid
  1864. Xdraw_mousefun_unitbox()
  1865. X{
  1866. X    clear_mousefun();
  1867. X    draw_mousefun("Pan to Origin", "", "Set Units/Scale");
  1868. X}
  1869. X
  1870. Xvoid
  1871. Xdraw_mousefun_topruler()
  1872. X{
  1873. X    clear_mousefun();
  1874. X    draw_mousefun("Pan Left", "Drag", "Pan Right");
  1875. X}
  1876. X
  1877. Xvoid
  1878. Xdraw_mousefun_sideruler()
  1879. X{
  1880. X    clear_mousefun();
  1881. X    draw_mousefun("Pan Up", "Drag", "Pan Down");
  1882. X}
  1883. X
  1884. Xvoid
  1885. Xdraw_mousefun_canvas()
  1886. X{
  1887. X    clear_mousefun();
  1888. X    draw_mousefun(mousefun_l, mousefun_m, mousefun_r);
  1889. X}
  1890. X
  1891. Xstatic void
  1892. Xdraw_mousefun_msg(s, xctr, ypos)
  1893. X    char       *s;
  1894. X    int            xctr, ypos;
  1895. X{
  1896. X    int            width;
  1897. X
  1898. X    width = XTextWidth(button_font, s, strlen(s));
  1899. X    XDrawImageString(tool_d, mousefun_pm, mouse_button_gc,
  1900. X             xctr - (int) (width / 2), ypos, s, strlen(s));
  1901. X}
  1902. X
  1903. Xvoid
  1904. Xdraw_mousefun(left, middle, right)
  1905. X    char       *left, *middle, *right;
  1906. X{
  1907. X    draw_mousefun_msg(left, MOUSE_LEFT_CTR, 30);
  1908. X    draw_mousefun_msg(middle, MOUSE_MID_CTR, 11);
  1909. X    draw_mousefun_msg(right, MOUSE_RIGHT_CTR, 30);
  1910. X    FirstArg(XtNbackgroundPixmap, 0);
  1911. X    SetValues(mousefun);
  1912. X    FirstArg(XtNbackgroundPixmap, mousefun_pm);
  1913. X    SetValues(mousefun);
  1914. X}
  1915. X
  1916. Xvoid
  1917. Xnotused_middle()
  1918. X{
  1919. X    draw_mousefun_msg("Not Used", MOUSE_MID_CTR, 11);
  1920. X    FirstArg(XtNbackgroundPixmap, 0);
  1921. X    SetValues(mousefun);
  1922. X    FirstArg(XtNbackgroundPixmap, mousefun_pm);
  1923. X    SetValues(mousefun);
  1924. X}
  1925. X
  1926. Xvoid
  1927. Xclear_middle()
  1928. X{
  1929. X    draw_mousefun_msg(mid_blank, MOUSE_MID_CTR, 11);
  1930. X    FirstArg(XtNbackgroundPixmap, 0);
  1931. X    SetValues(mousefun);
  1932. X    FirstArg(XtNbackgroundPixmap, mousefun_pm);
  1933. X    SetValues(mousefun);
  1934. X}
  1935. X
  1936. Xvoid
  1937. Xnotused_right()
  1938. X{
  1939. X    draw_mousefun_msg("Not Used", MOUSE_RIGHT_CTR, 30);
  1940. X    FirstArg(XtNbackgroundPixmap, 0);
  1941. X    SetValues(mousefun);
  1942. X    FirstArg(XtNbackgroundPixmap, mousefun_pm);
  1943. X    SetValues(mousefun);
  1944. X}
  1945. X
  1946. Xvoid
  1947. Xclear_right()
  1948. X{
  1949. X    draw_mousefun_msg(mid_blank, MOUSE_RIGHT_CTR, 30);
  1950. X    FirstArg(XtNbackgroundPixmap, 0);
  1951. X    SetValues(mousefun);
  1952. X    FirstArg(XtNbackgroundPixmap, mousefun_pm);
  1953. X    SetValues(mousefun);
  1954. X}
  1955. X
  1956. Xvoid
  1957. Xclear_mousefun()
  1958. X{
  1959. X    draw_mousefun(lr_blank, mid_blank, lr_blank);
  1960. X    /* redraw the title in case the blanks overwrite it */
  1961. X    mouse_title();
  1962. X}
  1963. END_OF_FILE
  1964. if test 7190 -ne `wc -c <'w_mousefun.c'`; then
  1965.     echo shar: \"'w_mousefun.c'\" unpacked with wrong size!
  1966. fi
  1967. # end of 'w_mousefun.c'
  1968. fi
  1969. echo shar: End of archive 5 \(of 27\).
  1970. cp /dev/null ark5isdone
  1971. MISSING=""
  1972. 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
  1973.     if test ! -f ark${I}isdone ; then
  1974.     MISSING="${MISSING} ${I}"
  1975.     fi
  1976. done
  1977. if test "${MISSING}" = "" ; then
  1978.     echo You have unpacked all 27 archives.
  1979.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1980. else
  1981.     echo You still need to unpack the following archives:
  1982.     echo "        " ${MISSING}
  1983. fi
  1984. ##  End of shell archive.
  1985. exit 0
  1986.  
  1987. exit 0 # Just in case...
  1988. -- 
  1989.   // chris@IMD.Sterling.COM       | Send comp.sources.x submissions to:
  1990. \X/  Amiga - The only way to fly! |    sources-x@imd.sterling.com
  1991.  "It's intuitively obvious to the |
  1992.   most casual observer..."        | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
  1993.