v08i013: xfig -- X Drawing Tool, Part04/21

Brian V. Smith envbvs at epb2.lbl.gov
Tue Jul 3 07:25:48 AEST 1990


Submitted-by: envbvs at epb2.lbl.gov (Brian V. Smith)
Posting-number: Volume 8, Issue 13
Archive-name: xfig2.8/part04

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 4 (of 21)."
# Contents:  @figs/circuit.fig @figs/experiment.fig @figs/flow.fig
#   @figs/houseA.fig @figs/housecheck.fig @figs/orifices.fig geom.c
#   object.h resources.h search.c util.c
# Wrapped by envbvs at epb2.lbl.gov on Thu Jun 28 08:51:05 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f '@figs/circuit.fig' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'@figs/circuit.fig'\"
else
echo shar: Extracting \"'@figs/circuit.fig'\" \(4556 characters\)
sed "s/^X//" >'@figs/circuit.fig' <<'END_OF_FILE'
X#FIG 1.4
X80 2
X1 3 0 1 0 0 0 0 0.000 1 0.000 793 164 4 4 793 164 797 165
X1 3 0 1 0 0 0 21 0.000 1 0.000 554 328 3 3 554 328 557 328
X1 3 0 1 0 0 0 21 0.000 1 0.000 215 428 3 3 215 428 218 428
X1 3 0 1 0 0 0 21 0.000 1 0.000 169 475 3 3 169 475 172 475
X1 3 0 1 0 0 0 0 0.000 1 0.000 45 474 4 4 45 474 49 474
X1 3 0 1 0 0 0 0 0.000 1 0.000 45 429 4 4 45 429 49 430
X1 3 0 1 0 0 0 21 0.000 1 0.000 414 304 3 3 414 304 417 304
X1 3 0 1 0 0 0 21 0.000 1 0.000 415 44 3 3 415 44 418 44
X1 3 0 1 0 0 0 21 0.000 1 0.000 554 305 3 3 554 305 557 305
X1 3 0 1 0 0 0 0 0.000 1 0.000 84 474 4 4 84 474 88 475
X1 3 0 1 0 0 0 0 0.000 1 0.000 144 474 4 4 144 474 148 474
X1 3 0 1 0 0 0 0 0.000 1 0.000 192 474 4 4 192 474 196 475
X1 3 0 1 0 0 0 0 0.000 1 0.000 238 474 4 4 238 474 242 475
X1 3 0 1 0 0 0 0 0.000 1 0.000 192 549 4 4 192 549 196 550
X1 3 0 1 0 0 0 0 0.000 1 0.000 238 549 4 4 238 549 242 550
X1 3 0 1 0 0 0 0 0.000 1 0.000 793 94 4 4 793 94 797 95
X2 1 0 1 0 0 0 0 0.000 0 0
X	 754 164 789 164 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 554 329 594 329 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 554 304 554 399 594 399 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 314 354 594 354 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 214 429 434 429 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 169 474 169 549 189 549 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 214 384 214 429 49 429 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 243 474 274 474 274 385 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 414 303 414 284 421 273 406 263 421 253 406 243 421 233 406 223 421 213 406 203 414 193 414 173 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 424 234 594 234 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 414 44 414 63 407 74 422 84 407 94 422 104 407 114 422 124 407 134 422 144 414 154 414 174 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 174 24 174 384 314 384 314 24 174 24 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 594 24 594 424 754 424 754 24 594 24 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 314 44 594 44 9999 9999
X2 1 0 1 0 0 0 21 0.000 0 0
X	 315 304 594 304 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 79 474 49 474 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 149 475 189 475 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 195 471 235 450 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 195 546 235 525 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 244 549 434 549 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 754 94 789 94 9999 9999
X3 2 0 1 0 0 0 0 0.000 0 0
X	 434 429 454 439 434 459 414 454 434 444 454 459 434 479 414 474 434 464 454 479 434 499 414 494 434 484 454 499 434 519 414 514 434 504 454 519 434 539 414 534 434 524 454 539 434 549 9999 9999
X	 -65.000 -50.000 448.136 431.176 453.136 433.676 455.457 447.979 442.156 456.741 428.056 460.647 414.429 457.910 413.534 449.759 427.097 443.378 441.717 444.696 453.361 450.014 454.723 469.167 442.156 476.741 428.056 480.647 414.429 477.910 413.534 469.759 427.097 463.378 441.717 464.696 453.361 470.014 454.723 489.167 442.156 496.741 428.056 500.647 414.429 497.910 413.534 489.759 427.097 483.378 441.717 484.696 453.361 490.014 454.723 509.167 442.156 516.741 428.056 520.647 414.429 517.910 413.534 509.




759 427.097 503.378 441.717 504.696 453.361 510.014 454.723 529.167 442.156 536.741 428.056 540.647 414.429 537.910 413.534 529.759 427.097 523.378 441.717 524.696 454.649 531.800 453.565 543.830 448.565 546.330 -65.000 -50.000
X3 2 0 1 0 0 0 0 0.000 0 0
X	 86 471 104 454 124 494 142 476 9999 9999
X	 -255.000 55.000 93.504 457.189 98.004 452.939 118.441 456.555 109.804 491.696 130.061 494.983 134.561 490.483 -255.000 55.000
X4 0 0 12 0 0 0 0.000 1 11 36 209 194 Supply
X4 0 0 12 0 0 0 0.000 1 9 30 209 169 Power
X4 0 0 12 0 0 0 0.000 1 9 48 214 144 +/- 15v 
X4 0 0 12 0 0 0 0.000 1 9 36 26 457 120VAC
X4 0 0 12 0 0 0 0.000 1 9 30 419 174 (+5v)
X4 0 0 12 0 0 0 0.000 1 9 84 429 219 10k multi-turn
X4 0 0 12 0 0 0 0.000 1 9 18 429 104 22k
X4 0 0 12 0 0 0 0.000 1 9 24 269 359 -15v
X4 0 0 12 0 0 0 0.000 1 9 24 604 359 -15v
X4 0 0 12 0 0 0 0.000 1 9 48 604 399 Case GND
X4 0 0 12 0 0 0 0.000 1 9 36 604 334 Common
X4 0 0 12 0 0 0 0.000 1 9 36 604 309 Common
X4 0 0 12 0 0 0 0.000 1 9 72 604 239 0-5v Control
X4 0 0 12 0 0 0 0.000 1 9 24 599 49 +15v
X4 0 0 12 0 0 0 0.000 1 9 24 269 309 GND
X4 0 0 12 0 0 0 0.000 1 9 24 269 49 +15v
X4 0 0 12 0 0 0 0.000 1 9 54 469 484 Solenoid 
X4 0 0 12 0 0 0 0.000 1 9 30 474 504 Valve
X4 0 0 12 0 0 0 0.000 1 9 12 204 379 AC
X4 0 0 12 0 0 0 0.000 1 9 12 264 379 AC
X4 0 0 12 0 0 0 0.000 1 5 6 741 97 +
X4 0 0 12 0 0 0 0.000 1 9 24 700 116 0-5v
X4 0 0 12 0 0 0 0.000 1 11 36 690 138 Output
X4 0 0 12 0 0 0 0.000 1 9 36 680 165 Common
X4 0 0 12 0 0 0 0.000 1 9 42 79 519 2A Fuse
END_OF_FILE
echo shar: 25 control characters may be missing from \"'@figs/circuit.fig'\"
if test 4556 -ne `wc -c <'@figs/circuit.fig'`; then
    echo shar: \"'@figs/circuit.fig'\" unpacked with wrong size!
fi
# end of '@figs/circuit.fig'
fi
if test -f '@figs/experiment.fig' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'@figs/experiment.fig'\"
else
echo shar: Extracting \"'@figs/experiment.fig'\" \(5016 characters\)
sed "s/^X//" >'@figs/experiment.fig' <<'END_OF_FILE'
X#FIG 1.5
X80 2
X1 3 0 1 0 0 0 0 0.000 1 0.000 434 109 5 5 434 109 439 109
X1 3 0 1 0 0 0 0 0.000 1 0.000 559 184 5 5 559 184 564 184
X1 3 0 1 0 0 0 0 0.000 1 0.000 559 124 5 5 559 124 564 124
X1 3 0 1 0 0 0 0 0.000 1 0.000 409 154 5 5 409 154 414 154
X1 3 0 2 0 0 0 0 0.000 1 0.000 114 154 20 20 114 154 134 154
X2 1 0 2 0 0 0 0 0.000 0 0
X	 94 154 79 154 9999 9999
X2 1 0 2 0 0 0 0 0.000 1 0
X	0 0 2.000 8.000 16.000
X	 734 264 734 284 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 431 112 437 106 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 431 106 438 113 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 556 187 562 181 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 556 181 563 188 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 556 121 563 128 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 556 127 562 121 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 406 151 413 158 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 406 157 412 151 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 109 174 104 184 124 184 119 174 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 104 154 124 154 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 154 134 154 174 174 174 174 134 154 134 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 194 134 194 174 234 174 234 134 194 134 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 254 134 254 174 294 174 294 134 254 134 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 314 134 314 174 354 174 354 134 314 134 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 134 154 154 154 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 174 154 194 154 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 234 154 254 154 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 294 154 314 154 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 414 134 454 134 454 194 414 194 414 134 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 354 154 404 154 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 454 154 514 154 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 384 154 384 109 429 109 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 439 109 484 109 484 154 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 554 124 514 124 514 184 554 184 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 564 124 674 124 674 174 624 174 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 609 164 624 164 624 199 609 199 609 164 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 564 184 609 184 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 674 154 734 154 734 444 534 444 9999 9999
X2 3 0 2 0 0 0 0 0.000 0 0
X	 534 414 484 414 484 439 444 439 444 414 394 414 394 474 444 474 444 449 484 449 484 474 534 474 534 414 9999 9999
X2 1 0 2 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 394 444 314 444 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 164 134 154 144 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 174 134 154 154 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 174 144 154 164 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 174 154 154 174 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 174 164 164 174 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 369 149 369 89 9999 9999
X2 2 1 1 0 0 0 0 4.000 0 0
X	 584 139 584 209 644 209 644 139 584 139 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 464 404 464 434 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 409 459 409 499 384 514 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 519 459 519 499 544 514 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 434 199 434 254 9999 9999
X4 1 0 16 0 0 0 0.000 1 17 185 379 44 Experimental Apparatus
X4 1 0 12 0 0 0 0.000 1 12 152 634 464 Humidity and O  concentration
X4 1 0 12 0 0 0 0.000 1 12 28 114 124 Pump
X4 2 0 12 0 0 0 0.000 1 9 48 69 157 Room Air
X4 1 0 12 0 0 0 0.000 1 9 38 164 194 Particle
X4 1 0 12 0 0 0 0.000 1 9 40 164 209 Prefilter
X4 1 0 12 0 0 0 0.000 1 12 43 164 224 (coarse)
X4 1 0 12 0 0 0 0.000 1 9 48 214 124 Silica Gel
X4 1 0 12 0 0 0 0.000 1 9 41 214 194 Remove
X4 1 0 12 0 0 0 0.000 1 9 24 214 209 H  O
X4 1 0 10 0 0 0 0.000 1 7 5 214 214 2
X4 1 0 12 0 0 0 0.000 1 9 32 274 124 Purafil
X4 1 0 12 0 0 0 0.000 1 9 41 274 194 Remove
X4 1 0 12 0 0 0 0.000 1 9 47 274 209 NO  +SO 
X4 1 0 10 0 0 0 0.000 1 7 5 269 214 2
X4 1 0 10 0 0 0 0.000 1 7 5 300 214 2
X4 1 0 12 0 0 0 0.000 1 9 49 334 114 Activated
X4 1 0 12 0 0 0 0.000 1 9 36 334 129 Carbon
X4 1 0 12 0 0 0 0.000 1 9 41 334 194 Remove
X4 1 0 12 0 0 0 0.000 1 9 53 334 209 O  and HC
X4 1 0 10 0 0 0 0.000 1 7 5 317 214 3
X4 1 0 12 0 0 0 0.000 1 12 73 369 84 Dry, Clean Air
X4 1 0 12 0 0 0 0.000 1 9 30 434 129 Valve
X4 1 0 12 0 0 0 0.000 1 12 38 434 99 Bypass
X4 2 0 12 0 0 0 0.000 1 9 30 409 174 Valve
X4 1 0 12 0 0 0 0.000 1 9 30 559 114 Valve
X4 1 0 12 0 0 0 0.000 1 9 30 559 174 Valve
X4 1 0 12 0 0 0 0.000 1 9 39 614 159 Bubbler
X4 1 0 12 0 0 0 0.000 1 12 115 634 439 Air Stream with proper
X4 1 0 10 0 0 0 0.000 1 7 5 640 469 3
X4 1 0 12 0 0 0 0.000 1 9 46 464 399 Test Slot
X4 2 0 12 0 0 0 0.000 1 9 43 304 449 To Hood
X4 2 0 12 0 0 0 0.000 1 12 70 379 519 Sampling Port
X4 2 0 12 0 0 0 0.000 1 11 51 379 539 O  , T, RH
X4 2 0 10 0 0 0 0.000 1 7 5 337 545 3
X4 0 0 12 0 0 0 0.000 1 12 70 549 519 Sampling Port
X4 0 0 12 0 0 0 0.000 1 11 51 549 539 O  , T, RH
X4 0 0 10 0 0 0 0.000 1 7 5 558 545 3
X4 1 0 12 0 0 0 0.000 1 9 87 434 274 Ozone Generator
X4 1 0 12 0 0 0 0.000 1 12 94 434 294 (Ultraviolet Lamp)
END_OF_FILE
echo shar: 40 control characters may be missing from \"'@figs/experiment.fig'\"
if test 5016 -ne `wc -c <'@figs/experiment.fig'`; then
    echo shar: \"'@figs/experiment.fig'\" unpacked with wrong size!
fi
# end of '@figs/experiment.fig'
fi
if test -f '@figs/flow.fig' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'@figs/flow.fig'\"
else
echo shar: Extracting \"'@figs/flow.fig'\" \(4191 characters\)
sed "s/^X//" >'@figs/flow.fig' <<'END_OF_FILE'
X#FIG 1.5
X80 2
X5 1 0 1 0 0 0 0 0.000 1 1 0 92.409 296.955 159 274 144 249 124 234
X	0 0 1.000 4.000 8.000
X5 1 0 1 0 0 0 0 0.000 0 0 1 344.227 279.682 304 209 334 199 374 204
X	0 0 1.000 4.000 8.000
X5 1 0 1 0 0 0 0 0.000 0 0 1 403.891 300.413 339 269 359 244 394 229
X	0 0 1.000 4.000 8.000
X2 1 0 1 0 0 0 0 0.000 0 0
X	 239 119 339 119 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 159 379 159 459 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 289 59 289 94 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 149 59 149 94 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 429 414 429 379 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 429 99 429 59 559 59 559 499 429 499 429 459 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 429 139 429 174 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 289 139 289 174 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 149 139 149 174 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 379 419 479 419 479 459 379 459 379 419 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 379 99 479 99 479 139 379 139 379 99 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 239 99 339 99 339 139 239 139 239 99 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 99 199 99 199 139 99 139 99 99 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 79 179 499 179 499 379 79 379 79 179 9999 9999
X3 3 0 1 0 0 0 0 0.000 0 0
X	 249 209 214 224 209 244 224 269 314 259 319 229 294 209 249 209 9999 9999
X	 259.537 206.837 240.083 210.830 221.039 215.735 210.189 228.475 208.182 238.501 210.157 251.777 215.772 264.925 249.554 281.656 291.701 280.115 321.489 251.908 322.298 237.619 315.528 219.927 301.819 211.743 283.010 205.145 259.537 206.837 240.083 210.830
X3 3 0 1 0 0 0 0 0.000 0 0
X	 109 289 114 324 179 334 214 314 204 279 169 274 109 289 9999 9999
X	 121.747 270.042 101.713 299.838 105.644 315.554 129.543 339.711 162.282 337.099 189.248 332.101 208.755 326.880 218.736 302.369 212.678 286.569 195.571 271.649 177.406 273.566 154.296 274.759 121.747 270.042 101.713 299.838
X3 1 0 1 0 0 0 0 0.000 0 0
X	 299 269 254 299 244 354 334 359 434 359 459 309 429 279 299 269 9999 9999
X4 1 0 12 0 0 0 0.000 1 12 52 264 259 Chemistry
X4 1 0 12 0 0 0 0.000 1 12 64 259 244 Atmospheric
X4 1 0 12 0 0 0 0.000 1 9 32 259 229 Indoor
X4 0 0 10 0 0 0 0.000 1 7 5 142 420 3
X4 0 0 12 0 0 0 0.000 1 9 6 134 411 q
X4 0 0 10 0 0 0 0.000 1 7 3 462 166 i
X4 0 0 10 0 0 0 0.000 1 7 5 444 167 2
X4 0 0 10 0 0 0 0.000 1 7 5 320 166 0
X4 0 0 10 0 0 0 0.000 1 7 5 303 166 1
X4 0 0 10 0 0 0 0.000 1 7 7 497 165 R
X4 0 0 10 0 0 0 0.000 1 7 18 352 167 MV
X4 0 0 12 0 0 0 0.000 1 12 76 436 161 q   C   (1-F    )
X4 0 0 12 0 0 0 0.000 1 12 82 294 161 q   C   (1-F      )
X4 0 0 10 0 0 0 0.000 1 7 6 212 168 E
X4 0 0 10 0 0 0 0.000 1 7 5 181 167 0
X4 0 0 10 0 0 0 0.000 1 7 5 163 167 0
X4 0 0 12 0 0 0 0.000 1 12 73 154 162 q   C   (1-F   )
X4 0 0 10 0 0 0 0.000 1 7 3 464 484 i
X4 0 0 10 0 0 0 0.000 1 7 5 447 485 2
X4 0 0 10 0 0 0 0.000 1 7 5 319 86 0
X4 0 0 10 0 0 0 0.000 1 7 5 302 86 1
X4 0 0 10 0 0 0 0.000 1 7 5 179 86 0
X4 0 0 10 0 0 0 0.000 1 7 5 162 86 0
X4 0 0 12 0 0 0 0.000 1 12 23 439 479 q   C
X4 0 0 12 0 0 0 0.000 1 12 23 294 79 q   C
X4 0 0 12 0 0 0 0.000 1 12 23 154 79 q   C
X4 1 0 12 0 0 0 0.000 1 9 42 159 524 Exhaust
X4 1 0 12 0 0 0 0.000 1 9 116 159 504 Mechanical Ventilation
X4 1 0 12 0 0 0 0.000 1 12 96 159 484 Exfiltrating Air and
X4 1 0 12 0 0 0 0.000 1 9 20 429 454 Fan
X4 1 0 12 0 0 0 0.000 1 9 65 429 434 Recirculation
X4 1 0 12 0 0 0 0.000 1 9 31 149 134 Leaks
X4 1 0 12 0 0 0 0.000 1 12 47 149 119 Envelope
X4 1 0 12 0 0 0 0.000 1 9 55 289 134 Intake Fan
X4 1 0 12 0 0 0 0.000 1 9 28 289 114 Filter
X4 1 0 12 0 0 0 0.000 1 9 28 429 124 Filter
X4 1 0 12 0 0 0 0.000 1 9 78 494 49 Recirculated air
X4 1 0 12 0 0 0 0.000 1 9 56 289 54 Ventilation
X4 1 0 12 0 0 0 0.000 1 9 57 289 39 Mechanical
X4 1 0 12 0 0 0 0.000 1 12 68 151 51 Infiltrating air
X4 1 0 12 0 0 0 0.000 1 12 116 339 339 Deposition on Surfaces
X4 0 0 12 0 0 0 0.000 1 9 3 364 309 i
X4 0 0 12 0 0 0 0.000 1 9 3 349 309 i
X4 0 0 12 0 0 0 0.000 1 9 3 329 309 i
X4 0 0 16 0 0 0 0.000 1 13 44 319 304 k A C
X4 0 32 24 0 0 0 0.000 1 17 14 299 304 S
X4 1 0 12 0 0 0 0.000 1 9 40 159 310 Sources
END_OF_FILE
echo shar: 47 control characters may be missing from \"'@figs/flow.fig'\"
if test 4191 -ne `wc -c <'@figs/flow.fig'`; then
    echo shar: \"'@figs/flow.fig'\" unpacked with wrong size!
fi
# end of '@figs/flow.fig'
fi
if test -f '@figs/houseA.fig' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'@figs/houseA.fig'\"
else
echo shar: Extracting \"'@figs/houseA.fig'\" \(4091 characters\)
sed "s/^X//" >'@figs/houseA.fig' <<'END_OF_FILE'
X#FIG 1.4X
X80 2
X5 1 0 1 0 0 0 0 0.000 0 0 0 262.750 410.250 264 359 299 374 314 409
X5 1 0 1 0 0 0 0 0.000 1 0 0 475.250 410.250 474 359 439 374 424 409
X1 2 0 1 0 0 0 0 0.000 1 0.000 291 487 11 15 282 470 302 502
X1 1 0 1 0 0 0 0 0.000 1 0.000 364 499 11 16 364 499 374 514
X1 1 0 1 0 0 0 0 0.000 1 0.000 365 454 11 16 365 454 375 469
X2 1 0 1 0 0 0 0 0.000 0 0
X	 282 494 282 505 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 300 496 300 505 9999 9999
X2 4 0 1 0 0 3 0 0.000 0 0
X	 278 505 278 517 304 517 304 505 278 505 9999 9999
X2 4 0 1 0 0 7 0 0.000 0 0
X	 244 514 244 424 204 424 204 514 244 514 9999 9999
X2 3 0 1 0 0 0 0 0.000 0 0
X	 314 419 354 419 354 414 379 414 379 419 384 419 384 519 394 519 394 419 424 419 424 409 314 409 314 419 9999 9999
X2 3 0 1 0 0 0 0 0.000 0 0
X	 474 409 509 409 509 79 189 79 189 69 519 69 519 529 189 529 189 139 199 139 199 409 239 409 239 399 249 399 249 409 264 409 264 419 199 419 199 519 509 519 509 419 474 419 474 409 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 344 419 344 519 9999 9999
X2 3 0 1 0 0 0 0 0.000 0 0
X	 189 69 119 69 119 309 189 309 189 299 129 299 129 79 189 79 189 69 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 129 169 189 169 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 129 184 189 184 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 129 199 189 199 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 129 214 189 214 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 129 229 189 229 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 129 244 189 244 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 129 259 189 259 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 129 274 189 274 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 129 289 189 289 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 309 69 309 79 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 389 69 389 79 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 309 74 389 74 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 269 519 269 529 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 329 519 329 529 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 269 524 329 524 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 509 199 519 199 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 509 279 519 279 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 514 199 514 279 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 119 89 129 89 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 119 119 129 119 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 124 89 124 119 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 139 69 139 79 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 169 69 169 79 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 139 74 169 74 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 214 109 174 109 159 124 159 284 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 249 419 249 519 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 252 419 252 519 9999 9999
X2 4 0 1 0 0 4 0 0.000 0 0
X	 294 99 294 224 404 224 404 99 294 99 9999 9999
X2 4 0 1 0 0 3 0 0.000 0 0
X	 479 79 479 144 509 144 509 79 479 79 9999 9999
X2 4 0 1 0 0 3 0 0.000 0 0
X	 479 144 479 199 509 199 509 144 479 144 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 354 414 379 414 379 422 354 422 354 414 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 189 444 197 444 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 189 494 198 494 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 194 444 194 494 9999 9999
X2 3 0 1 0 0 0 0 0.000 0 0
X	 199 269 249 269 249 284 239 284 239 279 199 279 199 269 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 241 284 241 349 244 349 244 284 241 284 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 244 334 244 399 247 399 247 334 244 334 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 264 409 264 359 9999 9999
X2 1 0 2 0 0 0 0 0.000 0 0
X	 474 409 474 359 9999 9999
X2 4 0 1 0 0 3 0 0.000 0 0
X	 409 99 409 84 289 84 289 99 409 99 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 189 159 129 144 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 199 79 209 139 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 224 79 224 139 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 199 139 224 139 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 189 139 129 79 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 164 79 199 139 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 189 149 129 114 9999 9999
X4 1 0 12 0 0 0 0.000 1 9 46 454 472 CLOSET
X4 1 0 12 0 0 0 0.000 1 9 39 159 181 DOWN
X4 1 0 12 0 0 0 0.000 1 9 33 294 454 BATH
X4 1 0 12 0 0 0 0.000 1 9 115 364 295 MASTER BEDROOM
X4 1 0 12 0 0 0 0.000 1 9 18 219 344 CL.
END_OF_FILE
echo shar: 5 control characters may be missing from \"'@figs/houseA.fig'\"
if test 4091 -ne `wc -c <'@figs/houseA.fig'`; then
    echo shar: \"'@figs/houseA.fig'\" unpacked with wrong size!
fi
# end of '@figs/houseA.fig'
fi
if test -f '@figs/housecheck.fig' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'@figs/housecheck.fig'\"
else
echo shar: Extracting \"'@figs/housecheck.fig'\" \(4799 characters\)
sed "s/^X//" >'@figs/housecheck.fig' <<'END_OF_FILE'
X#FIG 1.5
X80 2
X2 4 0 3 0 0 16 0 0.000 0 0
X	 39 14 39 84 609 84 609 14 39 14 9999 9999
X2 4 0 3 0 0 16 0 0.000 0 0
X	 39 94 39 724 609 724 609 94 39 94 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 364 109 364 109 374 99 374 99 364 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 74 339 74 354 89 354 89 339 74 339 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 484 39 574 39 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 169 109 169 109 179 99 179 99 169 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 229 74 574 74 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 144 39 429 39 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 139 109 139 109 149 99 149 99 139 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 74 114 74 129 89 129 89 114 74 114 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 154 109 154 109 164 99 164 99 154 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 534 129 589 129 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 304 114 304 129 319 129 319 114 304 114 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 74 194 74 209 89 209 89 194 74 194 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 249 109 249 109 259 99 259 99 249 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 234 109 234 109 244 99 244 99 234 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 74 274 74 289 89 289 89 274 74 274 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 299 109 299 109 309 99 309 99 299 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 314 109 314 109 324 99 324 99 314 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 74 679 74 694 89 694 89 679 74 679 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 74 389 74 404 89 404 89 389 74 389 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 414 109 414 109 424 99 424 99 414 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 624 109 624 109 634 99 634 99 624 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 74 599 74 614 89 614 89 599 74 599 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 639 109 639 109 649 99 649 99 639 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 654 109 654 109 664 99 664 99 654 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 374 664 474 664 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 509 109 509 109 519 99 519 99 509 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 494 109 494 109 504 99 504 99 494 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 479 109 479 109 489 99 489 99 479 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 464 109 464 109 474 99 474 99 464 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 74 439 74 454 89 454 89 439 74 439 9999 9999
X2 2 0 2 0 0 0 0 0.000 0 0
X	 74 534 74 549 89 549 89 534 74 534 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 559 109 559 109 569 99 569 99 559 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 99 574 109 574 109 584 99 584 99 574 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 339 249 349 249 349 259 339 259 339 249 9999 9999
X2 2 0 1 0 0 0 0 0.000 0 0
X	 339 234 349 234 349 244 339 244 339 234 9999 9999
X4 0 0 12 0 0 0 0.000 1 12 170 119 244 Size  -  Large  /  Medium  /  Small
X4 0 0 12 0 0 0 0.000 1 12 128 119 374 Large  /  Medium  /  Small
X4 0 0 14 0 0 0 0.000 1 13 151 99 354 Dining Room  -  Yes  /  No
X4 0 0 14 0 0 0 0.000 1 10 70 99 229 Bedroom #1
X4 0 0 14 0 0 0 0.000 1 10 34 439 39 Price:
X4 0 0 12 0 0 0 0.000 1 9 64 119 179 Linen Closet
X4 0 0 14 0 0 0 0.000 1 13 138 69 74 Distinguishing Features:
X4 0 0 14 0 0 0 0.000 1 10 53 69 39 Address:
X4 0 0 12 0 0 0 0.000 1 12 114 119 149 Plumbing -  New / Old
X4 0 0 14 0 0 0 0.000 1 10 120 99 129 Bathrooms:   1  1+   2
X4 0 0 12 0 0 0 0.000 1 9 72 119 164 Tub  /  Shower
X4 0 0 14 0 0 0 0.000 1 14 173 329 129 Termite Report:   Yes  / No    $
X4 0 0 14 0 0 0 0.000 1 10 119 99 209 Bedrooms:   2   2+   3
X4 0 0 12 0 0 0 0.000 1 12 187 119 259 Closets  -  Large  /  Medium  /  Small
X4 0 0 14 0 0 0 0.000 1 13 73 100 289 Living Room
X4 0 0 12 0 0 0 0.000 1 12 128 119 309 Large  /  Medium  /  Small
X4 0 0 12 0 0 0 0.000 1 12 47 119 326 Fireplace
X4 0 0 14 0 0 0 0.000 1 13 111 99 694 Laundry  Yes  /  No
X4 0 0 14 0 0 0 0.000 1 13 91 99 404 Heating System
X4 0 0 12 0 0 0 0.000 1 9 106 119 424 Floor / Wall / Central
X4 0 0 12 0 0 0 0.000 1 9 91 119 634 Roof -  New / Old
X4 0 0 14 0 0 0 0.000 1 10 33 99 614 Other
X4 0 0 12 0 0 0 0.000 1 12 186 119 649 Wiring  -  New / Old    110V  /  220V
X4 0 0 12 0 0 0 0.000 1 12 235 119 664 Windows  -  Casement / Double Hung / Other:
X4 0 0 12 0 0 0 0.000 1 9 117 119 519 Stove  -  Gas / Electric
X4 0 0 12 0 0 0 0.000 1 12 195 119 504 Cabinets -  Many / Few     New  /  Old
X4 0 0 12 0 0 0 0.000 1 12 33 119 489 Pantry
X4 0 0 12 0 0 0 0.000 1 12 228 119 474 Sink -  Large / Small     Porcelain  /  Stainless
X4 0 0 14 0 0 0 0.000 1 10 45 99 454 Kitchen
X4 0 0 14 0 0 0 0.000 1 10 44 99 549 Outside
X4 0 0 12 0 0 0 0.000 1 12 145 119 569 Garage  -  One car / Two car
X4 0 0 12 0 0 0 0.000 1 12 147 119 584 Yard  Large / Medium / Small
X4 0 0 14 0 0 0 0.000 1 10 70 339 229 Bedroom #2
X4 0 0 12 0 0 0 0.000 1 12 170 359 244 Size  -  Large  /  Medium  /  Small
X4 0 0 12 0 0 0 0.000 1 12 187 359 259 Closets  -  Large  /  Medium  /  Small
END_OF_FILE
echo shar: 35 control characters may be missing from \"'@figs/housecheck.fig'\"
if test 4799 -ne `wc -c <'@figs/housecheck.fig'`; then
    echo shar: \"'@figs/housecheck.fig'\" unpacked with wrong size!
fi
# end of '@figs/housecheck.fig'
fi
if test -f '@figs/orifices.fig' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'@figs/orifices.fig'\"
else
echo shar: Extracting \"'@figs/orifices.fig'\" \(4882 characters\)
sed "s/^X//" >'@figs/orifices.fig' <<'END_OF_FILE'
X#FIG 1.5
X80 2
X5 1 0 1 0 0 0 0 0.000 1 1 1 191.700 459.500 167 443 162 460 167 476
X	0 0 1.000 4.000 8.000
X	0 0 1.000 4.000 8.000
X5 1 2 1 0 0 0 0 3.200 0 0 0 168.326 189.978 169 164 188 173 194 194
X5 1 0 1 0 0 0 0 0.000 0 0 0 165.340 192.660 159 149 198 163 209 199
X5 1 0 1 0 0 0 0 0.000 0 0 0 161.600 196.400 159 179 175 185 179 199
X5 1 0 1 0 0 0 0 0.000 1 1 1 149.611 344.944 163 359 169 344 162 330
X	0 0 1.000 4.000 8.000
X	0 0 1.000 4.000 8.000
X5 1 0 1 0 0 0 0 0.000 0 1 1 170.859 96.204 153 109 149 94 155 81
X	0 0 1.000 4.000 8.000
X	0 0 1.000 4.000 8.000
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 194 459 219 459 9999 9999
X2 1 2 1 0 0 0 0 3.200 0 0
X	 174 444 174 474 9999 9999
X2 1 2 1 0 0 0 0 3.200 0 0
X	 149 429 149 489 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 119 489 149 489 174 474 209 474 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 119 429 149 429 174 444 209 444 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 1
X	0 0 1.000 4.000 8.000
X	0 0 1.000 4.000 8.000
X	 204 316 204 371 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 1
X	0 0 1.000 4.000 8.000
X	0 0 1.000 4.000 8.000
X	 134 336 134 351 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 119 354 154 354 179 374 229 374 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 119 334 154 334 179 314 229 314 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 1
X	0 0 1.000 4.000 8.000
X	0 0 1.000 4.000 8.000
X	 181 239 206 239 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 209 229 209 249 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 179 229 179 249 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 179 170 163 198 9999 9999
X2 1 2 1 0 0 0 0 3.200 0 0
X	 194 194 194 219 9999 9999
X2 1 2 1 0 0 0 0 3.200 0 0
X	 139 164 169 164 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 209 199 209 219 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 179 199 179 219 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 139 179 159 179 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 139 149 159 149 9999 9999
X2 1 2 1 0 0 0 0 3.200 0 0
X	 179 314 179 374 9999 9999
X2 1 2 1 0 0 0 0 3.200 0 0
X	 154 334 154 354 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 89 344 114 344 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 179 94 204 94 9999 9999
X2 1 2 1 0 0 0 0 3.200 0 0
X	 164 84 164 104 9999 9999
X2 1 2 1 0 0 0 0 3.200 0 0
X	 139 64 139 124 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 199 84 164 84 139 64 129 64 129 124 139 124 164 104 199 104 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 184 544 154 544 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 139 554 124 554 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 169 574 169 589 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 0
X	 169 554 169 594 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 119 554 219 554 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 354 94 454 94 9999 9999
X2 1 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 404 94 404 134 9999 9999
X2 1 0 1 0 0 0 0 0.000 0 1
X	0 0 1.000 4.000 8.000
X	 374 94 359 94 9999 9999
X3 2 0 1 0 0 0 0 0.000 1 0
X	0 0 1.000 4.000 8.000
X	 374 99 386 99 394 104 399 111 399 124 9999 9999
X	 0.000 0.000 380.845 98.382 383.845 98.382 388.259 99.648 392.362 102.460 395.494 105.404 398.333 108.919 399.756 113.359 399.756 116.609 0.000 0.000
X3 2 0 1 0 0 0 0 0.000 0 0
X	 139 164 134 169 139 179 9999 9999
X	 0.000 0.000 135.532 166.014 134.282 167.264 133.555 171.745 134.805 174.245 0.000 0.000
X3 2 0 1 0 0 0 0 0.000 0 0
X	 139 149 134 154 144 169 139 179 9999 9999
X	 0.000 0.000 135.434 150.890 134.184 152.140 133.374 160.323 143.661 163.564 144.157 171.528 142.907 174.028 0.000 0.000
X3 2 0 1 0 0 0 0 0.000 0 0
X	 194 219 199 224 209 219 9999 9999
X	 0.000 0.000 196.014 222.468 197.264 223.718 201.745 224.445 204.245 223.195 0.000 0.000
X3 2 0 1 0 0 0 0 0.000 0 0
X	 179 219 189 224 199 214 209 219 9999 9999
X	 0.000 0.000 183.755 223.195 186.255 224.445 193.629 223.249 194.371 214.751 201.745 213.555 204.245 214.805 0.000 0.000
X4 1 32 12 0 0 0 0.000 1 9 7 155 465 q
X4 1 0 12 0 0 0 0.000 1 6 6 229 464 v
X4 1 0 12 0 0 0 0.000 1 6 6 79 349 v
X4 1 0 12 0 0 0 0.000 1 6 6 214 99 v
X4 1 0 12 0 0 0 0.000 1 9 9 194 259 D
X4 1 0 12 0 0 0 0.000 1 6 4 154 207 r
X4 1 32 12 0 0 0 0.000 1 9 7 173 348 q
X4 1 0 10 0 0 0 0.000 1 7 5 212 82 0
X4 1 0 10 0 0 0 0.000 1 7 5 127 63 1
X4 1 0 12 0 0 0 0.000 1 9 9 203 79 A
X4 1 0 12 0 0 0 0.000 1 9 9 120 59 A
X4 1 32 12 0 0 0 0.000 1 9 7 145 98 q
X4 1 0 10 0 0 0 0.000 1 7 5 136 326 1
X4 1 0 12 0 0 0 0.000 1 9 9 129 320 A
X4 1 0 12 0 0 0 0.000 1 9 9 214 349 A
X4 1 0 10 0 0 0 0.000 1 7 5 223 354 2
X4 1 0 12 0 0 0 0.000 1 9 9 129 475 A
X4 1 0 10 0 0 0 0.000 1 7 5 136 481 1
X4 1 0 10 0 0 0 0.000 1 7 5 193 472 2
X4 1 0 12 0 0 0 0.000 1 9 9 184 467 A
X4 1 0 10 0 0 0 0.000 1 7 5 222 549 3
X4 1 0 10 0 0 0 0.000 1 7 5 126 549 1
X4 1 0 12 0 0 0 0.000 1 11 9 214 544 Q
X4 1 0 12 0 0 0 0.000 1 11 9 119 544 Q
X4 1 0 12 0 0 0 0.000 1 11 9 354 84 Q
X4 1 0 10 0 0 0 0.000 1 7 5 361 89 1
X4 1 0 12 0 0 0 0.000 1 11 9 419 134 Q
X4 1 0 10 0 0 0 0.000 1 7 5 427 139 3
END_OF_FILE
echo shar: 28 control characters may be missing from \"'@figs/orifices.fig'\"
if test 4882 -ne `wc -c <'@figs/orifices.fig'`; then
    echo shar: \"'@figs/orifices.fig'\" unpacked with wrong size!
fi
# end of '@figs/orifices.fig'
fi
if test -f 'geom.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'geom.c'\"
else
echo shar: Extracting \"'geom.c'\" \(4668 characters\)
sed "s/^X//" >'geom.c' <<'END_OF_FILE'
X/* 
X *	FIG : Facility for Interactive Generation of figures
X *
X *	Copyright (c) 1988 by Supoj Sutanthavibul (supoj at sally.UTEXAS.EDU)
X *	March 1988.
X *
X *	%W%	%G%
X*/
X#include "fig.h"
X#include "object.h"
X
X#define			PI		3.14159
X#define	 		round(x)	((int)((x) + .5))
X
X/*
XInput arguments :
X	(x1,y1)(x2,y2) : the vector
X	direction : direction of the normal vector to (x1,y1)(x2,y2)
XOutput arguments :
X	(*x,*y)(x2,y2) : a normal vector.
XReturn value : none
X*/
X
Xcompute_normal(x1, y1, x2, y2, direction, x, y)
Xfloat	x1, y1;
Xint	x2, y2,	direction, *x, *y;
X{
X	if (direction) { /* counter clockwise  */
X	    *x = round(x2 - (y2 - y1));
X	    *y = round(y2 - (x1 - x2));
X	    }
X	else {
X	    *x = round(x2 + (y2 - y1));
X	    *y = round(y2 + (x1 - x2));
X	    }
X	}
X
X/*
XInput arguments:
X	(x1,y1)(x2,y2) : the vector
X	(xp,yp) : the point
X	d : tolerance (max. allowable distance from the point to the vector)
X	dd : d * d
XOutput arguments:
X	(*px,*py) : a point on the vector which is not far from (xp,yp)
X		by more than d. Normally the vector (*px,*py)(xp,yp)
X		is normal to vector (x1,y1)(x2,y2) except when (xp,yp)
X		is within d from (x1,y1) or (x2,y2), in which cases,
X		(*px,*py) = (x1,y1) or (x2,y2) respectively. 
XReturn value :
X	0 : No point on the vector is within d from (xp, yp)
X	1 : (*px, *py) is such a point.
X*/
X
Xclose_to_vector(x1, y1, x2, y2, xp, yp, d, dd, px, py)
Xint	 x1, y1, x2, y2, xp, yp, d;
Xfloat	 dd;
Xint	*px, *py;
X{
X	int	xmin, ymin, xmax, ymax;
X	float	x, y, slope, D2, dx, dy;
X
X	if (abs(xp - x1) <= d && abs(yp - y1) <= d) {
X	    *px = x1;  *py = y1;
X	    return(1);
X	    }
X	if (abs(xp - x2) <= d && abs(yp - y2) <= d) {
X	    *px = x2;  *py = y2;
X	    return(1);
X	    }
X
X	if (x1 < x2) {
X	    xmin = x1 - d; xmax = x2 + d;
X	    }
X	else {
X	    xmin = x2 - d; xmax = x1 + d;
X	    }
X	if (xp < xmin || xmax < xp) return(0);
X
X	if (y1 < y2) {
X	    ymin = y1 - d; ymax = y2 + d;
X	    }
X	else {
X	    ymin = y2 - d; ymax = y1 + d;
X	    }
X	if (yp < ymin || ymax < yp) return(0);
X
X	if (x2 == x1) {
X	    x = x1; y = yp;
X	    }
X	else if (y1 == y2) {  
X	    x = xp;
X	    y = y1;
X	    }
X	else {
X	    slope = ((float) (x2 - x1)) / ((float) (y2 - y1));
X	    y = (slope * (xp - x1 + slope * y1) + yp) / (1 + slope * slope);
X	    x = ((float) x1) + slope * (y - y1);
X	    }
X	dx = ((float) xp) - x;
X	dy = ((float) yp) - y;
X	D2 = dx * dx + dy * dy;
X	if (D2 < dd) {
X	    *px = (int)(x + .5); *py = (int)(y +.5);
X	    return(1);
X	    }
X	return(0);
X	}
X
X/*
XInput arguments :
X	p1, p2, p3 : 3 points on the arc
XOutput arguments :
X	(*x,*y) : Center of the arc
XReturn value :
X	0 : if p1, p2, p3 are co-linear.
X	1 : if they are not.
X*/
X
Xint
Xcompute_arccenter(p1, p2, p3, x, y)
XF_pos	p1, p2, p3;
Xfloat	*x, *y;
X{
X	float	s12, s13, len1, len2, len3, dx12, dy12, dx13, dy13;
X
X	dx12 = p1.x - p2.x;  dy12 = p1.y - p2.y;
X	dx13 = p1.x - p3.x;  dy13 = p1.y - p3.y;
X	s12 = asin((double)(dy12 / sqrt((double)(dx12*dx12 + dy12*dy12))));
X	s13 = asin((double)(dy13 / sqrt((double)(dx13*dx13 + dy13*dy13))));
X	if (fabs(s12 - s13) < .01) return(0);
X	
X	len1 = p1.x * p1.x + p1.y * p1.y;
X	len2 = p2.x * p2.x + p2.y * p2.y;
X	len3 = p3.x * p3.x + p3.y * p3.y;
X	*y = (dx12 * (len3 - len1) - dx13 * (len2 - len1)) /
X		(2 * (dx13 * dy12 - dx12 * dy13));
X	if (dx13 != 0) 
X	    *x = (len3 + 2 * (*y) * dy13 - len1) / (2 * (-dx13));
X	else
X	    *x = (len2 + 2 * (*y) * dy12 - len1) / (2 * (-dx12));
X	return(1);
X	}
X
X/*
XCompute_angle
XInput arguments :
X	(dx,dy) : the vector (0,0)(dx,dy)
XOutput arguments : none
XReturn value : the angle of the vector in the range [0, 2PI)
X*/
X
Xfloat
Xcompute_angle(dx, dy)  /*  compute the angle between 0 to 2PI  */
Xfloat	dx, dy;
X{
X	float	alpha;
X
X	if (dx == 0) {
X	    if (dy > 0)
X		alpha = PI / 2;
X	    else
X		alpha = 3 * PI / 2;
X	    }
X	else if (dy == 0) {
X	    if (dx > 0) 
X		alpha = 0;
X	    else
X		alpha = PI;
X	    }
X	else {
X	    alpha = atan((double)(dy / dx)); /* range = -PI/2 to PI/2 */
X	    if (dx < 0) alpha += PI;
X	    else if (dy < 0) alpha += 2 * PI;
X	    }
X	return(alpha);
X	}
X
X/*
XInput arguments :
X	p1, p2, p3 : 3 points of an arc with p1 the first and p3 the last.
XOutput arguments : none
XReturn value :
X	0 : if the arc passes p1, p2 and p3 (in that order) in
X		clockwise direction
X	1 : if direction is counterclockwise
X*/
X
Xint
Xcompute_direction(p1, p2, p3)
XF_pos	p1, p2, p3;
X{
X	float		diff, dx, dy, alpha, theta;
X
X	dx = p2.x - p1.x;
X	dy = p1.y - p2.y;	/* because origin of the screen is on 
X					the upper left corner */
X	
X	alpha = compute_angle(dx, dy);
X
X	dx = p3.x - p2.x;
X	dy = p2.y - p3.y;
X	theta = compute_angle(dx, dy);
X	
X	diff = theta - alpha;
X	if ((0 < diff && diff < PI) || diff < -PI) {
X	    return(1);			/* counterclockwise */
X	    }
X	return(0);			/* clockwise */
X	}
END_OF_FILE
if test 4668 -ne `wc -c <'geom.c'`; then
    echo shar: \"'geom.c'\" unpacked with wrong size!
fi
# end of 'geom.c'
fi
if test -f 'object.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'object.h'\"
else
echo shar: Extracting \"'object.h'\" \(4511 characters\)
sed "s/^X//" >'object.h' <<'END_OF_FILE'
X/* 
X *	FIG : Facility for Interactive Generation of figures
X *
X *	(c) copy right 1985 by Supoj Sutanthavibul (supoj at sally.utexas.edu)
X *      January 1985.
X *	1st revision : Aug 1985.
X *	2nd revision : Feb 1988.
X *
X *	%W%	%G%
X*/
Xtypedef		struct f_pattern {
X			int			w, h;
X			int			*p;
X			}
X		F_pattern;
X
Xtypedef		struct f_point {
X			int			x, y;
X			struct f_point		*next;
X			}
X		F_point;
X
Xtypedef		struct f_pos {
X			int			x, y;
X			}
X		F_pos;
X
Xtypedef		struct f_arrow {
X			int			type;
X			int			style;
X			float			thickness;
X			float			wid;
X			float			ht;
X			}
X		F_arrow;
X
Xtypedef		struct f_ellipse {
X			int			type;
X#define					T_ELLIPSE_BY_RAD	1
X#define					T_ELLIPSE_BY_DIA	2
X#define					T_CIRCLE_BY_RAD		3
X#define					T_CIRCLE_BY_DIA		4
X			int			style;
X			int			thickness;
X			int			color;
X#define					BLACK			0
X			int			depth;
X			int			direction;
X			float			style_val;
X			float			angle;
X			int			pen;
X			int			area_fill;
X			struct f_pos		center;
X			struct f_pos		radiuses;
X			struct f_pos		start;
X			struct f_pos		end;
X			struct f_ellipse	*next;
X			}
X		F_ellipse;
X
Xtypedef		struct f_arc {
X			int			type;
X#define					T_3_POINTS_ARC		1
X			int			style;
X			int			thickness;
X			int			color;
X			int			depth;
X			int			pen;
X			int			area_fill;
X			float			style_val;
X			int			direction;
X			struct f_arrow		*for_arrow;
X			struct f_arrow		*back_arrow;
X			struct {float x, y;}	center;
X			struct f_pos		point[3];
X			struct f_arc		*next;
X			}
X		F_arc;
X
Xtypedef		struct f_line {
X			int			type;
X#define					T_POLYLINE	1
X#define					T_BOX		2
X#define					T_POLYGON	3
X#define					T_ARC_BOX	4
X			int			style;
X			int			thickness;
X			int			color;
X			int			depth;
X			float			style_val;
X			int			pen; 
X			int			area_fill;
X			int			radius; /* corner radius for T_ARC_BOX */
X			struct f_arrow		*for_arrow;
X			struct f_arrow		*back_arrow;
X			struct f_point		*points;
X			struct f_line		*next;
X			}
X		F_line;
X
Xtypedef		struct f_text {
X			int			type;
X#define					T_LEFT_JUSTIFIED	0
X#define					T_CENTER_JUSTIFIED	1
X#define					T_RIGHT_JUSTIFIED	2
X			int			font;
X			int			size;	/* point size */
X			int			color;
X			int			depth;
X			float			angle;	/* in radian */
X
X			int			style;
X#define					PLAIN		1
X#define					ITALIC		2
X#define					BOLD		4
X#define					OUTLINE		8
X#define					SHADOW		16
X
X			int			height;	/* pixels */
X			int			length;	/* pixels */
X			int			base_x;
X			int			base_y;
X			int			pen;
X			char			*cstring;
X			struct f_text		*next;
X			}
X		F_text;
X
Xtypedef		struct f_control {
X			float			lx, ly, rx, ry;
X			struct f_control	*next;
X			}
X		F_control;
X
X#define		int_spline(s)		(s->type & 0x2)
X#define		normal_spline(s)	(!(s->type & 0x2))
X#define		closed_spline(s)	(s->type & 0x1)
X#define		open_spline(s)		(!(s->type & 0x1))
X
Xtypedef		struct f_spline {
X			int			type;
X#define					T_OPEN_NORMAL		0
X#define					T_CLOSED_NORMAL		1
X#define					T_OPEN_INTERPOLATED	2
X#define					T_CLOSED_INTERPOLATED	3
X			int			style;
X			int			thickness;
X			int			color;
X			int			depth;
X			float			style_val;
X			int			pen;
X			int			area_fill;
X			struct f_arrow		*for_arrow;
X			struct f_arrow		*back_arrow;
X			/*
X			For T_OPEN_NORMAL and T_CLOSED_NORMAL points
X			are control points while they are knots for
X			T_OPEN_INTERPOLATED and T_CLOSED_INTERPOLTED
X			whose control points are stored in controls.
X			*/
X			struct f_point		*points;
X			struct f_control	*controls;
X			struct f_spline		*next;
X			}
X		F_spline;
X
Xtypedef		struct f_compound {
X			struct f_pos		nwcorner;
X			struct f_pos		secorner;
X			struct f_line		*lines;
X			struct f_ellipse	*ellipses;
X			struct f_spline		*splines;
X			struct f_text		*texts;
X			struct f_arc		*arcs;
X			struct f_compound	*compounds;
X			struct f_compound	*next;
X			}
X		F_compound;
X
X#define		ARROW_SIZE		sizeof(struct f_arrow)
X#define		POINT_SIZE		sizeof(struct f_point)
X#define		CONTROL_SIZE		sizeof(struct f_control)
X#define		ELLOBJ_SIZE		sizeof(struct f_ellipse)
X#define		ARCOBJ_SIZE		sizeof(struct f_arc)
X#define		LINOBJ_SIZE		sizeof(struct f_line)
X#define		TEXOBJ_SIZE		sizeof(struct f_text)
X#define		SPLOBJ_SIZE		sizeof(struct f_spline)
X#define		COMOBJ_SIZE		sizeof(struct f_compound)
X
X/**********************  object codes  **********************/
X
X#define		O_ELLIPSE		1
X#define		O_POLYLINE		2
X#define		O_SPLINE		3
X#define		O_TEXT			4
X#define		O_ARC			5
X#define		O_COMPOUND		6
X#define		O_END_COMPOUND		-O_COMPOUND
X#define		O_ALL_OBJECT		99
X
X/************  object styles (except for f_text)  ************/
X
X#define		SOLID_LINE		0
X#define		DASH_LINE		1
X#define		DOTTED_LINE		2
X
X#define		CLOSED_PATH		0
X#define		OPEN_PATH		1
END_OF_FILE
if test 4511 -ne `wc -c <'object.h'`; then
    echo shar: \"'object.h'\" unpacked with wrong size!
fi
# end of 'object.h'
fi
if test -f 'resources.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'resources.h'\"
else
echo shar: Extracting \"'resources.h'\" \(4367 characters\)
sed "s/^X//" >'resources.h' <<'END_OF_FILE'
X/* 
X *	FIG : Facility for Interactive Generation of figures
X *
X *	Copyright (c) 1985 by Supoj Sutanthavibul (supoj at sally.UTEXAS.EDU)
X *	January 1985.
X *	1st revision : Aug 1985.
X *
X *	%W%	%G%
X*/
X#ifdef	GLOBAL		/* global.c defines GLOBAL so that we actually allocate space */
X#define	EXTERN
X#else
X#define	EXTERN	extern
X#endif
X
Xtypedef struct
X{
X	unsigned int	x, y, z;
X	caddr_t		*m;
X} MprData;
X
X#define mpr_static(name,x,y,z,pix)	\
XXImage name	= \
X{ \
X(x),		/* width */ \
X(y),		/* height */ \
X0,		/* offset */ \
XXYBitmap,	/* format */ \
X(char *)(pix),	/* data pointer */ \
XMSBFirst,	/* data byte order LSB or MSB first */ \
X8,		/* quant of scanline */ \
XLSBFirst,	/* bitmap bit order LSB or MSBFirst */ \
X8,		/* bitmap pad */ \
X(z),		/* depth */ \
X(x+7)/8,	/* bytes-per-line */ \
X1,		/* bits per pizel */ \
X0,		/* red_mask */ \
X0,		/* z arrangement green_mask */ \
X0,		/* z arrangement blue_mask */ \
XNULL 		/* object data pointer for extension */ \
X}
X
X/* resources structure */
X
Xtypedef struct _appres {
X	Boolean		INCHES;
X	Boolean		DEBUG;
X	Boolean		RHS_PANEL;
X	Boolean		INVERSE;
X	Boolean		TRACKING;
X	Boolean		landscape;
X	char		*normalFont;
X	char		*boldFont;
X	float		tmp_width;
X	float		tmp_height;
X} appresStruct, *appresPtr;
X
Xtypedef struct
X{
X	int		x, y;
X} pr_size;
X
Xtypedef struct
X{
X	unsigned int	hotx, hoty;
X	unsigned int	graphop;
X	XImage		*bitmap;
X} CursorRec;
X
Xtypedef struct
X{
X	unsigned int	r_width, r_height, r_left, r_top;
X} RectRec;
X
Xtypedef struct
X{
X	int		type;
X	char		*label;
X	caddr_t		info;
X} MenuItemRec;
X
Xstruct Menu
X{
X	int		m_imagetype;
X#define	MENU_IMAGESTRING	0x00	/* imagedata is char * */
X#define MENU_GRAPHIC            0x01    /* imagedata is pixrect * */
X	caddr_t		m_imagedata;
X	int		m_itemcount;
X	MenuItemRec	*m_items;
X	struct Menu	*m_next;
X	caddr_t		m_data;
X};
X
Xtypedef	struct Menu	MenuRec;
X
Xtypedef		Window			PIXWIN;
Xtypedef		XImage			PIXRECTREC;
Xtypedef		XImage *		PIXRECT;
Xtypedef		XFontStruct *		PIX_FONT;
Xtypedef		MprData			MPR_DATA;
Xtypedef		CursorRec		CURSORREC;
Xtypedef		CursorRec *		CURSOR;
Xtypedef		Widget			TOOL;
Xtypedef		Widget			TOOLSW;
Xtypedef		Window			FDTYPE;
Xtypedef		XButtonEvent		INPUTEVENT;
Xtypedef		unsigned long		INPUTMASK;
Xtypedef		pr_size			PR_SIZE;
Xtypedef		RectRec			RECT;
Xtypedef		MenuItemRec		MENUITEM;
Xtypedef		MenuRec			MENU;
X
X#define	set_marker(win,x,y,w,h,op,pix,z1,z2) \
X	set_line_stuff(1,SOLID_LINE,0.0,(op)); \
X	XDrawRectangle(tool_d,(win),gccache[(op)],(x),(y),(w),(h))
X
XEXTERN PIXWIN		canvas_win,
X			msg_win,
X			sideruler_win,
X			topruler_win;
X
XEXTERN CURSOR		cur_cursor;
XEXTERN CURSORREC	arrow_cursor,
X			bull_cursor,
X			buster_cursor,
X			crosshair_cursor,
X			null_cursor,
X			pencil_cursor,
X			pick15_cursor,
X			pick9_cursor,
X			wait_cursor;
X
XEXTERN TOOL		tool;
X
XEXTERN TOOLSW		canvas_sw,
X			psfont,		/* current printer font indicator */
X			fontmenu,	/* printer font menu tool */
X			msg_sw,
X			panel_sw,
X			panel2_sw,
X			ind_box,	/* thick/radius/fill enclosing widget */
X			fill_panel,
X			line_thick_panel,
X			radius_panel,
X			sideruler_sw,
X			topruler_sw;
X
XEXTERN Display		*tool_d;
XEXTERN Screen		*tool_s;
XEXTERN int		tool_sn;
X
X#ifndef TFX
X#define NUMFILLPATS 21
X#else
X#define NUMFILLPATS 5
X#endif
X
XEXTERN int		gc_font[0x10],gc_fontsize[0x10];  /* font/size currently in each GC */
XEXTERN GC		gc, bold_gc, gccache[0x10], topgc, sidegc,
X			fill_gc[NUMFILLPATS],		/* area fill gc's */
X			un_fill_gc[NUMFILLPATS];	/* area "un"-fill gc's */
XEXTERN Pixmap		fill_pm[NUMFILLPATS];
XEXTERN Pixmap		ind_fill_pm[NUMFILLPATS];	/* for indicator which must be different */
XEXTERN XColor		x_fg_color, x_bg_color;
X
Xstruct icon {
X	short	 	ic_width, ic_height;	/* overall icon dimensions */
X	PIXRECT	 	ic_background;	/* background pattern (mem pixrect) */
X	RECT		ic_gfxrect;	/* where the graphic goes */
X	PIXRECT 	ic_mpr;		/* the graphic (a memory pixrect) */
X	RECT		ic_textrect;	/* where text goes */
X	char	       *ic_text;	/* the text */
X	PIX_FONT 	ic_font;	/* Font with which to display text */
X	int		ic_flags;
X};
X
X/* flag values */
X#define	ICON_BKGRDPAT	0x02		/* use ic_background to prepare image*/
X#define	ICON_BKGRDGRY	0x04		/* use std gray to prepare image*/
X#define	ICON_BKGRDCLR	0x08		/* clear to prepare image*/
X#define	ICON_BKGRDSET	0x10		/* set to prepare image*/
X#define	ICON_FIRSTPRIV	0x0100		/* start of private flags range */
X#define	ICON_LASTPRIV	0x8000		/* end of private flags range */
X
X#include "xtra.h"
END_OF_FILE
if test 4367 -ne `wc -c <'resources.h'`; then
    echo shar: \"'resources.h'\" unpacked with wrong size!
fi
# end of 'resources.h'
fi
if test -f 'search.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'search.c'\"
else
echo shar: Extracting \"'search.c'\" \(4089 characters\)
sed "s/^X//" >'search.c' <<'END_OF_FILE'
X/* 
X *	FIG : Facility for Interactive Generation of figures
X *
X *	Copyright (c) 1985 by Supoj Sutanthavibul (supoj at sally.UTEXAS.EDU)
X *	January 1985.
X *	1st revision : Aug 1985.
X *
X *	%W%	%G%
X*/
X#include "fig.h"
X#include "object.h"
X
Xextern F_compound	objects;
X
XF_arc *
Xarc_search(x, y, tolerance, px, py)
Xint	x, y, tolerance, *px, *py;
X{	/*	(px, py) is the control point on the circumference of an arc
X		which is the closest to (x, y)				*/
X
X	F_arc	*a;
X	int	i;
X
X	for (a = objects.arcs; a != NULL; a = a->next) {
X	    for (i = 0; i < 3; i++) 
X		if ((abs(a->point[i].x - x) <= tolerance) && 
X		    (abs(a->point[i].y - y) <= tolerance)) {
X		    *px = a->point[i].x;
X		    *py = a->point[i].y;
X		    return(a);
X		    }
X	    }
X	return(NULL);
X	}
X
X
X#define min(a,b) ((a) < (b) ? (a) : (b))
X
XF_ellipse *
Xellipse_search(x, y, tolerance, px, py)
Xint	x, y, tolerance, *px, *py;
X{	/*	(px, py) is the point on the circumference of an ellipse
X		which is the closest to (x, y)				*/
X
X	F_ellipse	*e;
X	int		a, b, dx, dy;
X	float		dis, r, tol;
X
X	tol = (float) tolerance;
X	for (e = objects.ellipses; e != NULL; e = e->next) {
X	    dx = x - e->center.x;
X	    dy = y - e->center.y;
X	    a = e->radiuses.x;
X	    b = e->radiuses.y;
X	    /* prevent sqrt(0) core dumps */
X	    if(dx == 0 && dy == 0)
X		dis = 0;	/* so we return below */
X	    else
X	        dis = sqrt((double)(dx*dx + dy*dy));
X 	    if (dis == 0) {
X 		*px = e->center.x;
X 		*py = e->center.y;
X 		return(e);
X 	    }
X	    if(a * dy == 0 && b * dx == 0)
X		r = 0;  /* prevent core dumps */
X	    else
X		r = a * b * dis / sqrt((double) (1.0*b*b*dx*dx + 1.0*a*a*dy*dy));
X	    if (fabs(dis - r) <= tol) {
X		*px = (int)(r*dx/dis + ((dx < 0) ? -.5 : .5)) + e->center.x;
X		*py = (int)(r*dy/dis + ((dy < 0) ? -.5 : .5)) + e->center.y;
X		return(e);
X		}
X	    }
X	return(NULL);
X	}
X
XF_line *
Xline_search(x, y, tolerance, px, py)
Xint	x, y, tolerance, *px, *py;
X{	/*	return the pointer to lines object if the search is successful
X		otherwise return NULL.  
X		The value returned via (px, py) is the closest point on the 
X		vector to point (x, y) 					*/
X 
X	F_line	*lines;
X	F_point	*point;
X	int	x1, y1, x2, y2;
X	float	tol2;
X
X	tol2 = (float) tolerance * tolerance;
X	for (lines = objects.lines; lines != NULL; lines = lines->next) {
X	    point = lines->points;
X	    x1 = point->x;
X	    y1 = point->y;
X	    if (abs(x - x1) <= tolerance && abs(y - y1) <= tolerance) {
X		*px = x1;  *py = y1;
X		return(lines);
X		}
X	    for (point = point->next; point != NULL; point = point->next) {
X		x2 = point->x;
X		y2 = point->y;
X		if (close_to_vector(x1, y1, x2, y2, x, y, tolerance, tol2, 
X					px, py)) 
X		    return(lines);
X		x1 = x2;
X		y1 = y2;
X		}
X	    }
X	return(NULL);
X	}
X
XF_spline *
Xspline_search(x, y, tolerance, px, py)
Xint	x, y, tolerance, *px, *py;
X{	/*	return the pointer to lines object if the search is successful
X		otherwise return NULL.  */
X 
X	F_spline	*splines;
X	F_point		*point;
X	int		x1, y1, x2, y2;
X	float		tol2;
X
X	tol2 = (float) tolerance * tolerance;
X	for (splines = objects.splines; splines != NULL; splines = splines->next) {
X	    point = splines->points;
X	    x1 = point->x;
X	    y1 = point->y;
X	    for (point = point->next; point != NULL; point = point->next) {
X		x2 = point->x;
X		y2 = point->y;
X		if (close_to_vector(x1, y1, x2, y2, x, y, tolerance, tol2,
X					px, py)) 
X		    return(splines);
X		x1 = x2;
X		y1 = y2;
X		}
X	    }
X	return(NULL);
X	}
X
XF_text *
Xtext_search(x, y)
Xint	x, y;
X{
X	F_text	*t;
X	int	halflen;
X
X	for (t = objects.texts; t != NULL; t = t->next) {
X	    halflen = t->length/2;
X	    if (t->base_y - t->height > y) 
X		continue;
X	    if (t->base_y < y) 
X		continue;
X	    if ( ((t->type == T_LEFT_JUSTIFIED) && t->base_x > x) ||
X	        ((t->type == T_CENTER_JUSTIFIED) && t->base_x - halflen > x) ||
X	        ((t->type == T_RIGHT_JUSTIFIED) && t->base_x - t->length > x) )
X			continue;
X	    if ( ((t->type == T_LEFT_JUSTIFIED) && t->base_x + t->length < x) ||
X	        ((t->type == T_CENTER_JUSTIFIED) && t->base_x + halflen < x) ||
X	        ((t->type == T_RIGHT_JUSTIFIED) && t->base_x < x) )
X			continue;
X	    return(t);
X	    }
X	return(NULL);
X	}
END_OF_FILE
if test 4089 -ne `wc -c <'search.c'`; then
    echo shar: \"'search.c'\" unpacked with wrong size!
fi
# end of 'search.c'
fi
if test -f 'util.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'util.c'\"
else
echo shar: Extracting \"'util.c'\" \(5037 characters\)
sed "s/^X//" >'util.c' <<'END_OF_FILE'
X/* 
X *	FIG : Facility for Interactive Generation of figures
X *
X *	Copyright (c) 1985 by Supoj Sutanthavibul (supoj at sally.UTEXAS.EDU)
X *	January 1985.
X *	1st revision : Aug 1985.
X *
X *	%W%	%G%
X*/
X#include "fig.h"
X#include "resources.h"
X#include "object.h"
X#include "paintop.h"
X
Xextern F_compound	objects;
X
X/***********  The following extern vars for undo purpose  **************/
X
X
Xextern int		pointmarker_shown;
X
Xstatic u_int	marker_pattern[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF };
Xmpr_static(pmarker, 5, 5, 1, marker_pattern);
X
Xtail(ob, tails)
XF_compound	*ob, *tails;
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	if (NULL != (a = ob->arcs)) for (; a->next != NULL; a = a->next);
X	if (NULL != (c = ob->compounds)) for (; c->next != NULL; c = c->next);
X	if (NULL != (e = ob->ellipses)) for (; e->next != NULL; e = e->next);
X	if (NULL != (l = ob->lines)) for (; l->next != NULL; l = l->next);
X	if (NULL != (s = ob->splines)) for (; s->next != NULL; s = s->next);
X	if (NULL != (t = ob->texts)) for (; t->next != NULL; t = t->next);
X
X	tails->arcs = a;
X	tails->compounds = c;
X	tails->ellipses = e;
X	tails->lines = l;
X	tails->splines = s;
X	tails->texts = t;
X	}
X
X/*
XMake pointers in tails point to the last element of each list of l1
Xand Append the lists in l2 after those in l1.
XThe tails pointers must be defined prior to calling append.
X*/
Xappend_objects(l1, l2, tails)
XF_compound	*l1, *l2, *tails;
X{
X	if (tails->arcs)
X	    tails->arcs->next  = l2->arcs; 
X	else
X	    l1->arcs  = l2->arcs; 
X	if (tails->compounds)
X	    tails->compounds->next  = l2->compounds;
X	else
X	    l1->compounds  = l2->compounds;
X	if (tails->ellipses)
X	    tails->ellipses->next  = l2->ellipses;
X	else
X	    l1->ellipses  = l2->ellipses;
X	if (tails->lines)
X	    tails->lines->next  = l2->lines;
X	else
X	    l1->lines  = l2->lines;
X	if (tails->splines)
X	    tails->splines->next  = l2->splines;
X	else
X	    l1->splines  = l2->splines;
X	if (tails->texts)
X	    tails->texts->next  = l2->texts;
X	else
X	    l1->texts  = l2->texts;
X	}
X
X/* Cut is the dual of append. */
X
Xcut_objects(objects, tails)
XF_compound	*objects, *tails;
X{
X	if (tails->arcs)
X	    tails->arcs->next = NULL;
X	else
X	    objects->arcs = NULL;
X	if (tails->compounds)
X	    tails->compounds->next = NULL;
X	else
X	    objects->compounds = NULL;
X	if (tails->ellipses)
X	    tails->ellipses->next = NULL;
X	else
X	    objects->ellipses = NULL;
X	if (tails->lines)
X	    tails->lines->next = NULL;
X	else
X	    objects->lines = NULL;
X	if (tails->splines)
X	    tails->splines->next = NULL;
X	else
X	    objects->splines = NULL;
X	if (tails->texts)
X	    tails->texts->next = NULL;
X	else
X	    objects->texts = NULL;
X	}
X
Xno_object()
X{
X	if (objects.texts != NULL) return(0);
X	if (objects.lines != NULL) return(0);
X	if (objects.ellipses != NULL) return(0);
X	if (objects.splines != NULL) return(0);
X	if (objects.arcs != NULL) return(0);
X	if (objects.compounds != NULL) return(0);
X	return(1);
X	}
X
Xshow_pointmarker()
X{
X	if (pointmarker_shown) return;
X	pointmarker_shown = 1;
X	toggle_pointmarker();
X	}
X
Xerase_pointmarker()
X{
X	if (! pointmarker_shown) return;
X	pointmarker_shown = 0;
X	toggle_pointmarker();
X	}
X
Xtoggle_pointmarker()
X{
X	F_ellipse	*e;
X	F_arc		*a;
X	F_line		*l;
X	F_spline	*s;
X
X	for (e = objects.ellipses; e != NULL; e = e->next) {
X	    toggle_ellipsepointmarker(e);
X	    }
X	for (a = objects.arcs; a != NULL; a = a->next) {
X	    toggle_arcpointmarker(a);
X	    }
X	for (l = objects.lines; l != NULL; l = l->next) {
X	    toggle_linepointmarker(l);
X	    }
X	for (s = objects.splines; s != NULL; s = s->next) {
X	    toggle_splinepointmarker(s);
X	    }
X	}
X
Xtoggle_ellipsepointmarker(e)
XF_ellipse	*e;
X{
X	set_marker(canvas_win, e->start.x-2, e->start.y-2, 5, 5, INV_PAINT,
X		&pmarker, 0, 0);
X	set_marker(canvas_win, e->end.x-2, e->end.y-2, 5, 5, INV_PAINT,
X		&pmarker, 0, 0);
X	}
X
Xtoggle_arcpointmarker(a)
XF_arc	*a;
X{
X	set_marker(canvas_win, a->point[0].x-2, a->point[0].y-2, 5, 5,
X		INV_PAINT, &pmarker, 0, 0);
X	set_marker(canvas_win, a->point[1].x-2, a->point[1].y-2, 5, 5,
X		INV_PAINT, &pmarker, 0, 0);
X	set_marker(canvas_win, a->point[2].x-2, a->point[2].y-2, 5, 5,
X		INV_PAINT, &pmarker, 0, 0);
X	}
X
Xtoggle_linepointmarker(l)
XF_line	*l;
X{
X	F_point	*p;
X	int	fx, fy, x, y;
X
X	p = l->points;
X	fx = p->x;  fy = p->y;
X	for (p = p->next; p!= NULL; p = p->next) {
X	    x = p->x;  y = p->y;
X	    set_marker(canvas_win, x-2, y-2, 5, 5, INV_PAINT, &pmarker, 0, 0);
X	    }
X	if (x != fx || y != fy) {
X	    set_marker(canvas_win, fx-2, fy-2, 5, 5, INV_PAINT, 
X			&pmarker, 0, 0);
X	    }
X	}
X
Xtoggle_splinepointmarker(s)
XF_spline	*s;
X{
X	F_point	*p;
X	int	fx, fy, x, y;
X
X	p = s->points;
X	fx = p->x;  fy = p->y;
X	for (p = p->next; p!= NULL; p = p->next) {
X	    x = p->x;  y = p->y;
X	    set_marker(canvas_win, x-2, y-2, 5, 5, INV_PAINT, &pmarker, 0, 0);
X	    }
X	if (x != fx || y != fy) {
X	    set_marker(canvas_win, fx-2, fy-2, 5, 5, INV_PAINT, 
X			&pmarker, 0, 0);
X	    }
X	}
X
Xnum_points(points)
XF_point	*points;
X{
X	int	n;
X	F_point	*p;
X
X	for (p = points, n = 0; p != NULL; p = p->next, n++);
X	return(n);
X	}
END_OF_FILE
if test 5037 -ne `wc -c <'util.c'`; then
    echo shar: \"'util.c'\" unpacked with wrong size!
fi
# end of 'util.c'
fi
echo shar: End of archive 4 \(of 21\).
cp /dev/null ark4isdone
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 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 21 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

dan
----------------------------------------------------
O'Reilly && Associates   argv at sun.com / argv at ora.com
Opinions expressed reflect those of the author only.



More information about the Comp.sources.x mailing list