Subject: resend my previous file

From: Chen Li <[email-masked]>
Date: Thu, 5 Mar 1998 16:10:42 -0500 (EST)

On Wed, 4 Mar 1998, Chee Yap wrote:

---- Begin Included Message -----

 Hw3 SPECS

 1. We have 4 major parts:

 	(1) neighborhood generator
 	(2) block generator
 	(3) street generator
 	(4) detail features

  	Each team is to work on one of these parts.
 	There may be 2 or more teams working on the
 	same part, basically independently, but they
 	can share information.  They should also consult
 	other groups whose output is used as their input.

 	At the end, we want each group to produce a class
 	presentation.  Except for group 1, the demo will
 	take actual outputs from the previous

 	The interface between these parts will be
 	specified in this hw.

 2. Neighborhood Generator:

 	Input is
 		-- a polygon (not too complex, say,
 			less than 8 sides, and basically convex)
 		-- with street entrances and exits on
 			tbe boundary of the polygon.
 		-- Each street has a name, an entry point, exit point
 			entry point width, exit point width.
 		-- A user interface allows interactive editting of boundary
 			polygon and streets and input of parameters.

 	Global Neighborhood parameters:

 		(a) average height of building (in feet)
 		(b) variation of height
 		(c) residential/commercial/mixed
 		(d) average number of building
 		(e) variation in number of building
 		(f) special landmarks (which are actual
 			location on)

 	OUTPUT:

 	Some extras:
 		-- A graphics preview of the final layout in two dimension
 		-- Support queries over primitives based on locations and
 			parameters.
 		-- Given a viewpoint, it should form an approximate scene
 			including only visible objects.
 		-- Give a default good view point

 	(A) STREET FILE
 		-- a street file in which
 			each street is composed of
 			a sequence of "street segments", joined
 			by "street intersection".
 		-- a street segment is basically a quadrilateral.
 		-- a street intersection is a convex polygon
 			(usually quadrilateral)
 		-- each street segments has some assigned
 			global parameters (street name,
 			pavement width, number
 			of street lamps, 1way-or-2way street,
 			center divider, the ID of blocks
 			on each side of street etc)
 		-- boundary streets are those that bound the
 			neighborhood.  These are treated slightly
 			differently (for now, we just mark it
 			but do nothing else).

 	BEGIN_STREET_RECORD

 		STREET_ID = 1
 		STREET_NAME = Broadway
 		STREET_WIDTH = 50
 		STREET_SIDEWALKWIDTH = 20
 		STREET_START = {100.0, 100.0}
 		STREET_END = {300.0, 500.0}
 		STREET_DIVIDER = CENTER_SOLID
 		STREET_NUM_PARKING_METERS = 100

 		BEGIN_STREET_SEGMENT_BEGIN
 			SEG_ID = 1
 			SEG_START = {100.0, 100.0}
 			SEG_END = {200.0, 350.0}
 			SEG_SIDEWALK_WIDTH = 20
 			SEG_NUM_PARKING_METERS = 100
 			LEFT_BLOCK = 101
 			RIGHT_BLOCK = 102
 		END_STREET_RECORD

 		...

 		BEGIN_STREET_INTERSECTION
 			STREET_ID1 = 1
 			STREET_ID2 = 2
 			BEGIN_POLY
 				VERTEX = {100, 100}
 				VERTEX = {100, 105}
 				VERTEX = {105, 105}
 				VERTEX = {105, 100}
 			END_POLY
 		END_STREET_INTERSECTION

 		...

 	END_STREET_RECORD

 	(B) BLOCK FILE
 		-- a block file which is just a list of polygons
 			(again, convex and generally quadrilateral,
 			but can have more sides if necessary).
 		-- each block has an ID
 		-- its global parameters include
 			(a) the ID's of bounding street segments
 			(b) average height and variation
 			(c) number of buildings
 			(d) variation of building sizes
 			(e) residential/commercial/mixed

 	BEGIN_BLOCK_RECORD
 		BLOCK_ID = 1
 		AVERAGE_HEIGHT = 30
 		VARIANCE_HEIGHT = 10
 		NUM_OF_BUILDINGS = 5
 		TYPE = RESIDENTIAL

 		BEGIN_POLY
 			VERTEX = ...
 			...
 		END_POLY

 		BEGIN_SEG_ID_LIST
 			STREET_ID1 = 1
 			SEG_ID1 = 2
 			...
 		END_SEG_ID_LIST

 	END_BLOCK

 3. STREET_GENERATOR

 	INPUT:
 		A street database file contains records  as above.

 	Output:
 		the GL codes which could be used to draw the
 	streets and intersections according to requirements.

 	Note:   You must encapsulate all the local modifications
 	on GL states within your own coding scope.

 4. BLOCK_GENERATOR

 	INPUT:
 		A block database file contains record as above.

 	Output:
 		The GL codes which can draw the blocks and buildings
 	in it according to the various requirements specifies by records
 	in input. It should adopt some extend randomness in building size,
 	hieght and texture used.

 	Note:   You must encapsulate all the local modifications
 	on GL states within your own coding scope. They should have any
 	effects outside your code.