2004-03-31  C. Scott Ananian  <cananian@skiffserv>

	* Assemble.java:
	Move a status message inside the appropriate conditional.

	* Contour.java, Assemble.java:
	Allow zooming in on the debugging display using the '-z' command-line option.

2004-03-30  C. Scott Ananian  <cananian@skiffserv>

	* Contour.java, Assemble.java:
	Fix nasty scaling bug: Double.MIN_VALUE isn't semantically the same as
	Integer.MIN_VALUE!!!  This is a major flaw on Sun's part, IMHO.

	Also preserved aspect ratio in Contour's display routine, and made sure
	the outermost frame in Assemble actually displayed topmost.

	* Assemble.java: Keep proper aspect ratio in display.

	Add boolean flags to control colorImage display.

	* Assemble.java:
	Purify the colors a little more by widening the outline to eliminate more
	dark edges.

	* Assemble.java: Speed up findColor further by rasterizing the mask.

	* Assemble.java:
	Slightly speed up findColor() by prefetching the color array.

	* Assemble.java:
	Better black-avoidance algorithm: use polygon outline to set all black
	border pixels to transparent.

	* Assemble.java: Tweak color selection to better ignore black edges.

	* Assemble.java: Implement 'average color finding' algorithm.

	* Assemble.java: Outline steps of color-finding algorithm.

	* Makefile: Eliminate spurious Makefile dependency.

	* Contour.java, Makefile, Assemble.java:
	Add options to both Assemble and Contour for loading and displaying an
	original color image, for (future) use in automatic glass color extraction.

	Added command-line option parser to Contour.

	Forced 72 dpi in potrace command-line so that overlay color image will be
	scaled correctly.  This also means that we can make meaningful statements
	in Assemble and Contour about the original pixel size.

	Added options to mallard1, mallard2, and test targets to specify a color
	image.

	* mallard1.jpg, mallard2.jpg, test-color.jpg:
	Add color versions of images, for use in automatic glass color extraction.

	* Assemble.java:
	Scale to 72dpi by default, if no other scaling factor is specified.

	Allow -dd to give verbose display (triangles, etc).

	* Makefile: Tweak trim box for mallard1.

2004-03-29  C. Scott Ananian  <cananian@skiffserv>

	* Makefile:
	Adjust scale and trim to handle new, better, contour and MAT extraction
	which has changed the bounding boxes slightly.

	* Contour.java: Scale back to one unit==1 pixel from SVG's 72dpi.

	* Assemble.java: Regions don't need bounds.

2004-03-28  C. Scott Ananian  <cananian@skiffserv>

	* Contour.java: Typo in comment.

	* Contour.java:
	Improve accuracy of voronoi approximation to the medial axis by
	subdividing the input contour to produce approximately equally-spaced
	boundary points.

	* Assemble.java:
	Bug fix: path isn't always reconstructed in the right order for
	WIND_NON_ZERO to work properly. (This would cause us to miss removing
	some internal areas.)

	* Assemble.java, Makefile:
	Use conforming rather than constrained Delauney triangulation.  This helps
	ensure that our centerline approximation (approx. parts of the voronoi
	diagram) is accurate.

	Better algorithm for polygon reconstruction from .poly file.

	* lib/jutil.jar: Add Factories support for linkedhashmap and set.

2004-03-27  C. Scott Ananian  <cananian@skiffserv>

	* Assemble.java:
	Collections.min() throws an exception for an empty set; it doesn't just
	return null like I'd assumed.  Fix this.

	* .cvsignore, duck1.gif: Update .cvsignore; add duck1.gif.

	* Assemble.java:
	Use two-pass tracing strategy to avoid unnecessary roughness at
	start/end of path.  Now we always start from the first gap, and
	continue until we reach the first gap again.

	* Makefile: Size parameters for a nice duckie to fit in the oval frame.

	* Assemble.java: Allow 'e'-notation in floating-point numbers.

2004-03-26  C. Scott Ananian  <cananian@skiffserv>

	* Assemble.java: Remove a debugging message.

	* Assemble.java: Deal better with gaps in too-short segments.

	* Assemble.java: This gap-placement algorithm is actually optimal.

	* Assemble.java:
	Slightly better algorithm for choosing edges to join with sprue: this still
	doesn't actually compute the *optimum* (despite the comments in the code).
	Will fix this with the next commit.

	* Assemble.java, Makefile:
	Made connection of small pieces a real command-line option.

	* GeneralPath.java:
	Fix implementation of GeneralPath.intersects(Rectangle2D).  The previous
	code missed the case where the polygon was completely contained within
	the rectangle.

	* Makefile: Allow use to force display while testing.

	* Assemble.java: Add code to create gaps between connected regions.

	* test.pgm, test.tiff, mallard2-outline.tiff, Makefile, mallard1-outline.tiff, mallard2-outline.pgm:
	Use tiff version of the pbm file instead of pgm files in the archive,
	as the tiff copies are *much* smaller!  Add appropriate rules to Makefile
	to generate the .pbm from tiffs or gifs.

	* Assemble.java:
	Fix a bug which caused us to miss some pieces touching the outside edge.
	We should not mark cycles in an undirected manner, since the flipped
	edge counterparts of the cycle edges correspond to different cycles
	(always!).

	* Assemble.java:
	Add helpful comments to Assemble.java, as it is getting very long.

	* Makefile: Add scale and trim specification for mallard1.

	* Assemble.java, Makefile: Fix regexp bug in box parsing.

	Add 'offset' option, to allow emitting regions only w/o offsetting.

	* lib/java-getopt-1.0.9.jar, Makefile, Assemble.java:
	Allow specification of scale and trim boxes on the command-line.  Use
	Java port of GNU getopt for command-line parsing, and box syntax from
	Imagemagick.

	* mallard2-2.3dm: Scaled, offset, and trimmed glass cutouts.

	* mallard2-1.3dm:
	Centerline data, scaled and joined.  With 11x14 frame overlay on separate
	layer.

2004-03-25  C. Scott Ananian  <cananian@skiffserv>

	* Assemble.java:
	Compute region adjacency, for future use in merging small pieces together.

	* Assemble.java: Fix display of scaled & stroked region.

	Invert output, since it's not the strokes but the spaces we're interested in.

	* Assemble.java: Correct window name.

	* Assemble.java: Fix problem tracing stubs.

	Add scaling and stroking code.

	Correct display to be right-side-up.

	* Assemble.java:
	Viktor's new algorithm for cycle-detection.  Should be much faster.
	But I have to fix a bug when the search starts on a stub, first.

	* Assemble.java: Faster interior triangle removal.

	Give some feedback on cycle-detection progress.

	* Makefile: Fix recursive make invocation.

	Enable assertions and allow extra heap in dxf generation.

	* lib/jutil.jar: Bug-fixed jutil.

	* lib/jutil.jar, Assemble.java:
	Correct algorithm bug and ensure that cycles containing only parts of
	other cycles are not emitted.

	Our use of containsAll() exposes a bug in JUtil; we're correcting a
	hacked up version of JUtil to correct this in the interim.

	* Contour.java:
	Add some code to generate a very simple contour, for testing purposes.

	* Assemble.java:
	First draft of cycle-finding code.  Only finds one cycle currently; must find
	& fix this bug.

	* lib/batik.jar, lib/jutil.jar, batik.jar, Makefile:
	Moved libraries to lib/ subdirectory.  Added jutil library.

	* Assemble.java: Dump medial axis into graph data structure.

	* Assemble.java: Tweaks to debugging display.

	* Assemble.java, Makefile, StainedGlass.java:
	Renamed StainedGlass->Assemble so as not to give away the surprise.

	* Makefile, StainedGlass.java, Contour.java, Line2D.java:
	Hack code into shape to generate a rough (disconnected) medial axis.

	To do: assemble segments into a graph structure; do search and trim.

	* triangle/.cvsignore: Ignore generated binaries.

	* triangle/makefile: Makefile tweaks.

	* triangle/triangle.h, triangle/tricall.c, triangle/A.poly, triangle/README, triangle/makefile, triangle/showme.c, triangle/triangle.c:
	Jonathan Richard Shewchuk's Delaunay Triangulator, from the netlib archives.

	This commit is the as-distributed version.

	* Makefile, Contour.java:
	Further failure to interface with the Ogniewicz Medial Axis Transform code.
	Going to abandon this direction and use a direct approximation based on
	the Delaunay triangulation of the input polygon.

2004-03-24  C. Scott Ananian  <cananian@skiffserv>

	* Contour.java, Makefile:
	Attempt to emit more-verbose contour format.  Not working.

	* .cvsignore: Initial list of ignored files.

	* test.pgm, SVGParser.java, StainedGlass.java, Tolerance.java, batik.jar, mallard2-outline.pgm, GeneralPath.java, Healer.java, Line2D.java, Makefile, QuadCurve2D.java, Contour.java, CubicCurve2D.java, DXFOutput.java:
	Initial work.

