go to www.geomview.org home page
 
Home

Overview
FAQ
Documentation

Download

Mailing List

Geomview For Windows?

Support
Users
Development

Bug Reporting
Contributing
Contact Us

Sponsors

 

Site Search

 

Advanced
Search

 
About the software@geom archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nose.c


  • To: DPSBB at CUNYVM.BITNET
  • Subject: nose.c
  • From: munzner
  • Date: Thu, 11 Jun 1992 12:30:19 -0500
  • In-Reply-To: Lee Mosher's message of Thu, 11 Jun 92 12:32:53 EDT <40FC5F8E501F400472 at vx.acs.umn.edu>

>I have been nosing through nose.c, and trying to familiarize myself
>with the various library calls from lisp.h. A key object seems to be a
>"Pool", which is what nose uses to get the picking info from geomview.
>It doesn't seem necessary to learn what a "Pool" really is, because
>all usages of it are as arguments to lisp.h calls (with the exception
>of a reference to p->inf in the function moreargs).
 
>However, I cannot figure out how nose tells geomview to use the "Pool"
>object to pass the picking string back. The only geomview language
>calls I can see involving picking are either references to an id
>"pick", or the geomview command "(pick yes)" in the function call
>pickability, or the geomview language call "(pickable pick no)", which
>I presume is so that the little boxes don't get picked. 

Correct.

>However, I
>cannot see how nose.c can be so confident that the information about
>the pick string is going to be contained in the "Pool" object. Is this
>just something geomview does automatically? Does it stick the
>information into some kind of generic "Pool" object? Exactly which
>geomview language call tells geomview to pu

Yes, geomview automatically sets up connections to the modules so they
can just read from stdin and write to stdout. This is done behind the
scenes when a module is invoked but does not involve Pools, just Unix
connection voodoo. Nose not assuming anything about pools, just that
it will get info from geomview from stdin.

If you weren't trying to use the lisp library stuff, you would never
see pools.  Since you are, here's a bare minimum of pool info:

This is the crucial line in main() that creates a pool with input stream
pointing to stdin:

  p = PoolStreamTemp("standard input", stdin, 0, &MyOps);

Now pool->inf is pointing to stdin. 

Don't worry about MyOps: you don't need this functionality nor does
nose.c, as you can see from the declaration below. Just copy it in
blissful ignorance.

HandleOps MyOps = {
	"jibberish",
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
};


Does this clear it up?

Tamara


 
Home | Overview | FAQ | Documentation | Support | Download | Mailing List
Windows? | Development | Bug Reporting | Contributing | Contact Us | Sponsors
 
site hosted by
SourceForge Logo