- solidify/overlap.c (draw_map): flip x-axis of bottom face (and remove
comment suggesting to flip the y axis. The x-axis is better, since this
is often how things are scanned.)
- solidify/overlap.c (overlap): added speed testing loop
- solidify/overlap.c (zmix): instead of floor/ceil, we just use
floor/floor+1. With the ramp() change below, an 18% speed increase results
- solidify/overlap.c (ramp): after the above change, w0 and w1 can never be
zero, so we don't have to test for this case
- solidify/array.h (get_bounded), solidify/array.c: inline get_bounded(),
yielding a 13% speed increase
paradigm.
- solidify/overlap.c (scroll_event): make weighting of rotation exponential,
so we can both adjust precisely and spin rapidly. Also reverse weighting
to rotate more quickly on the outside.
- solidify/style.h (SLOWEST_ROT, FASTEST_ROT): parameters for weighting of
rotation
- solidify/overlap.c (rotate): don't reverse y shift either
- solidify/overlap.c (scroll_event): reverse rotation (since we've fixed
the math of the coordinate transformation)
- solidify/overlap.c (scroll_event): reverse rotation if mouse is on the
left side
- solidify/overlap.c (shift): reversing the direction in the "down"
quadrant is systematic but quite confusing, so don't do it
them once.
- solidify/matrix.h, solidify/matrix.c: 2D matrix operations
- solidify/Makefile (OBJS): added matrix.o
- solidify/face.h (struct matrix): moved to solidify/matrix.h
- solidify/overlap.c (point, merge_matrix, draw_map): precalculate a single
vA+b transformation instead of stepwise transforming the vector inside
the loop
- solidify/overlap.c (do_shift): now that the math is right (or at least
better), reverse the shift
- solidify/Makefile: added solid.o
- solidify/solid.h, solidify.c (height_field, povray): output the part as
the intersection of two height fields
- solidify/solidify.c (main): generate POV-Ray output if stdout is
redirected
- solidify/Makefile (run, pov, disp): targets to run a test setup, render
it, and display the result
- solidify/main.pov: simple scene showing the test part
- solidify/face.h (struct matrix), solidify/face.c (read_file): also record
the face's center
- solidify/overlap.c (point): reference faces to the screen center
- solidify/overlap.c (point): use correct model coordinates for z0
calculation
- solidify/overlap.c (BORDER, sx, sy), solidify/style.h (OVERLAP_BORDER):
moved and renamed
- solidify/overlap.c (r_center, scroll_event): moved center radius
calculation to separate function
- solidify/overlap.c (draw_image): renamed to draw_map
- solidify/overlap.c (draw_image): draw an on-screen display (OSD)
- solidify/level.c (expose_event, overlap): propagate OSD on/off switch
- solidify/overlap.c (osd_proximity, scroll_event, motion_notify_event,
overlap): enable OSD when approaching the center circle or a diagonal
- solidify/overlap.c (scroll_event): reversed the direction of rotation
- solidify/overlap.c (scroll_event): use center of canvas as center, not
center of the top face
- solidify/overlap.c (do_shift, shift, scroll_event): added translation
(shifting)
- solidify/face.h (face_z0): calculate height of z0 plane
- solidify/level.c (draw_image): use face_z0 instead of open-coding the
calculation
- solidify/overlap.c (draw_image, point): moved per-point processing from
draw_image() to point()
- solidify/overlap.c (point): show differences between both faces
- solidify/solidify.c (usage, main): load both faces
- solidify/solidify.c (usage, main): accept distance between faces as third
argument
- solidify/solid.h: definition of a solid made from two opposing faces
- solidify/overlap.h (overlap), solidify/overlap.c (draw_image,
scroll_event, overlap): operate on solid instead of face
- solidify/overlap.c (sx, sy, draw_image, overlap): helper functions sx()
and sy() to determine canvas size
- solidify/overlap.c (BORDER, sx, sy): added a border around the piece,
to help with positioning
- solidify/solidify.c (clicked, gui_buttons, gui, main): use solid instead
of faces
- solidify/Makefile (OBJS): added overlap.o
- solidify/Makefile (CFLAGS): added -O9 to speed up rotation a little
- solidify/array.h, solidify/array.c (get_bounded): like get(), but returns
UNDEF if the indices are outside the array
- solidify/face.h (struct face, struct matrix), solidify/face.c (read_file):
added a 2D transformation matrix to "struct face"
- solidify/overlap.h, solidify/overlap.c: show a face with 2D transformation
- solidify/Makefile: added verbosity control (default is silent, enable
verbose output with V=1)
- solidify/Makefile: added "spotless" target
- solidify/Makefile (CFLAGS): moved warning options to CFLAGS_WARN
- solidify/Makefile: added dependency use and generation, with friendly
permission from fped/Makefile
- solidify/level.c (draw_map): moved open-coded "almost at the same height"
parameter to constant NEAR
- solidify/level.c (draw_map): draw green and red band next to the "near"
blue band
- solidify/face.c (read_face): moved code into new function read_file
- solidify/face.c (read_face): added wrapper for cached wget of http: and
https: URLs
- solidify/face.h (struct face), solidify/face.c (read_face),
solidify/level.c (draw_map, draw_image): introduce inclination of the z0
plane
- solidify/level.c (draw_map): make blue z == z0 display more continuous
- solidify/level.c (scroll_event): moved z0 shift to scroll_z
- solidify/level.c (scroll_event, scroll_xy): added manipulation of the
z0 plane's inclination
- solidify/Makefile, solidify/histo.h, solidify/histo.c: generate a Z
histogram and find the median height
- solidify/face.c (read_face): set z_ref to the median, not the average
- solidify/face.c (read_face): uncompress .bz2 files on the fly
- solidify/face.c (read_face): don't close standard input (for style)