summaryrefslogtreecommitdiff
path: root/graphics/epix/ChangeLog
blob: 832d25f939ed5b029937a56d6e224a6355a82f14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
ePiX 1.1.x

Andrew D. Hwang  <ahwang -at- mathcs -dot- holycross -dot- edu>

2007-10.03 (ADH)
	Version 1.2.1
	* configure.ac, Makefile.am: New option --enable-epix-el
	  (formerly --with-nolisp)
	* doc/Makefile.am: Build ps, pdf under manual-stamp so package can
	  be built with parallel make (error noted by Ren\'e Rebe)

2007-09.28 (ADH)
	* legend_tile.cc, legend_tile.h: Store offset as a pair
	* legend.cc: (draw) Pass offset as a pair
	* screen_data.cc: (paste) "affine" object named af, not affine

2007-09.26 (ADH)
	Version 1.2.0-2
	* debug.h, interval.cc: #include <cstdlib> (Maik Beckmann)
	* (Multiple files) Replace const double arguments by double

2007-09.25 (ADH)
	Version 1.2.0-1
	* doc/plotting3.xp: crop -> set_crop, and update image

2007-09.24 (ADH)
	Version 1.1.22 (promoted to 1.2.0)
	* lens.cc: bubble lens projects to camera sphere

	* angle_units.cc, angle_units.h: (convert_to_radians) Remove
	 - (to_radians, to_degrees, from_degrees) New functions
	 - Store rad/unit, unit/deg, and rev/unit for efficiency
	
	* state.cc, state.h: (angle) Remove function
	 - (full_turn) Reimplement as from_degrees(360)
	* functions.cc: Use angle_state::to_radians in trig functions
	
	* glyph.cc: (map_by) Reimplement label angle computation
	* label_style.cc, label_style.h: New public void constructor
	 - Non-void constructor is private
	 - (label_angle) Pass non-const double
	 - (label_angle) Use the_angle_style to convert to degrees
	 - (label_angle()) Returns degrees, not current angle units

2007-09.23 (ADH)
	Version 1.1.21
	* affine.cc, affine.h: Member functions accept P as well as pair

2007-09.22 (ADH)
	* length.cc: Remove support for scaled pt
	* state.cc, state.h: crop() -> set_crop()
	 - (crop) New function, calls screen::crop
	 - (crop_rectangle, crop_ellipse, crop_diamond): Set crop state

	* lens.cc: fisheye, bubble are *not* linear
	* lens.cc, lens.h: (needs_clip) New function
	* camera.cc, camera.h: (needs_clip) New function
	 - the_camera() -> cam()
	* path_data.cc: (photo) Clip to camera.front_plane only if nec.
	* arrow_data.cc: (photo) Clip to camera.front_plane only if nec.

	* facet.cc, geometry.cc: camera, the_camera() -> cam()
	* arrow_data.cc, axis.cc, curves.cc, label_data.cc, legend.cc,
	  legend_item.cc, path.cc, path_data.cc, screen_data.cc,
	  sphere.cc, state.cc: the_camera() -> cam()

2007-09.19 (ADH)
	Version 1.1.20
	* pen_line.cc: (add_to_pallet) Needn't check for unset
	* pen_data.cc, pen_data.h: (is_empty) New member
	* pen_fill.cc: (is_unset) Check line pen for invisibility
	 - (print_to) If bd non-solid, draw fill/border only if visible
	 - (add_to_pallet) Needn't check for unset colors
	* eepic.cc: (print_line) No base layer if narrower than line
	* pst.cc: (print_line) Adjust base layer width (m_bwidth too large)

2007-09.18 (ADH)
	Version 1.1.19
	* affine.cc: Group scaling operators in parentheses
	* glyph.cc: (map_by) Map offset direction, not length

2007-09.17 (ADH)
	* format.cc: (print_mark) Use mask color for circ background, add
	  to pallet if necessary
	 - Fix label padding
	 - Draw label border if pen width is positive
	* markers.cc: (circ) Handle like other markers
	 - (marker) Handle CIRC like other types
	* label_style.cc: (seen_through) Needn't check for unset mask
	* label_style.h: Default label_pad 0

	* picture.cc: Remove mp_format stubs

	* data_bins.cc, data_bins.h: Handle data on cuts
	 - New data member m_cut_hits
	 - (d_bin::insert) Rename add_datum
	 - Copy constructor mis-copied d_bins
	 - Implement m_bins as a list, not a vector

2007-09.16 (ADH)
	Version 1.1.18
	* pair_map.cc, pair_map.h: Rename file, class to affine
	* epix.h: Add affine.h
	* screen.cc, screen.h: Pass-through affine operations
	 - (apply) New member function
	* screen_data.cc, screen_data.h: Affine operations on contents

	* label_data.cc, label_data.h: Store offset as a pair
	* axis.cc, markers.cc: (label) Adjust label_data ctor
	* glyph.cc, glyph.h: Store offset as a pair
	* glyph.cc: (map_to) Adjust offset, label angle
	* legend_item.cc: (key) Adjust glyph ctor

2007-09.15 (ADH)
	* pair_map.cc, pair_map.h: Complete re-write
	* screen_data.cc: (paste) Use new pair_map ctor
	
	* utils.cc, utils.h: (get_chars) New function
	* path_style.cc: Rename get_breaks -> __epix_get_breakpts
	 - (extract) Move to utils, rename -> get_chars
	 - Use get_chars to extract dot/dash pattern
	 - (__epix_get_breakpts) Check for anomalous patterns

	* screen_data.cc, screen_data.h: (is_cropped) Remove
	* screen.cc, screen.h: (is_cropped) Remove

2007-09.14 (ADH)
	* format.cc: (print_color) Check for empty vector of densities
	* picture_data.cc: (add_to_pallet) Check for unset color
	
	* label_style.cc, label_style.h: Dependency cleanup
	* format.cc, legend.cc, markers.cc, state.cc: Consequent changes
	* arrow_data.cc, Color_Neutral.cc, glyph.cc, legend.cc,
	  path_data.h, path.cc, pen_arrow.cc, pen_data.cc, pen_fill.cc
	  picture.cc, picture_data.cc, plots.cc: Dependency cleanup 
	
2007-09.14 (ADH)
	Version 1.1.17
	* functions.cc, functions.h: (clip_to_unit) Move to Color_Utils
	* Color_Utils.cc: #include "Color_Utils.h"
	* Color_Utils.cc, Color_Utils.h: Move clip_to_unit from functions
	
2007-09.13 (ADH)
	* length.cc, length.h: (operator+, operator*) Pass one arg by value

	* configure.ac, Makefile.am: --with-nolisp option (for Gentoo)
	 - Make scripts dependent on epix.el (to force build before install)

	* Color_Base.h: print_to(format) -> model, densities
	 - Color is not a friend class
	* Color.cc, Color.h: (print_to) Remove function
	 - (model, densities) New functions
	* Color_CMY.cc, Color_CMY.h, Color_CMYK.cc, Color_CMYK.h: Same
	* Color_Gray.cc, Color_Gray.h, Color_RGB.cc, Color_RGB.h: Same
	* Color_Neutral.cc, Color_Neutral.h, Color_Sep.cc, Color_Sep.h: Same

	* format.cc, format.h: (print_color(string, string, vector<double>)
	  New function, calls existing print_color functions

	* plane.cc, plane.h: (pt, perp) New member functions
	 - Intersection operators aren't friends
	* intersections.cc: Use Plane member functions
	
2007-09.12 (ADH)
	* (Update README et. al.)

2007-09.11 (ADH)
	Version 1.1.16
	* picture.cc, picture.h: (end_picture) New function (formerly end)
	 - (end) Set output format on command-line flags, call end_picture

	* elaps.in, epix.in, flix.in: --pst, --tikz, --eepic options

2007-09.10 (ADH)
	* facet.cc: (draw) Handle unset pen, reorganize logic
	
	* Makefile.am: Install all headers under $(pkgincludedir)
	 - Remove libepix_a_HDRS from libepix_a_LIBADD deps
	* make_header: Preserve include guards in epix.h
	 - Include string
	 - Don't include cstdio
	* Color.h, Color_CMY.h, Color_CMYK.h, Color_Gray.h,
	  Color_Neutral.h, Color_RGB.h, Color_Sep.h, Color_Utils.h:
	  EPIX2 -> EPIX in include guard symbol

2007-09.09 (ADH)
	* eepic.cc: (print_circle_marker) Set allinethickness, draw once

	* markers.h: (right_angle, arc_measure) Default size 8pt (was 12)

2007-09.08 (ADH)
	Version 1.1.15
	* arrow_style.cc, arrow_style.h, pen_arrow.cc, state.cc, state.h:
	  camber -> inset
	* constants.h: ACAMBER -> INSET
	
	* label_style.cc, label_style.h: (is_masked) New function
	* markers.cc: (label) Get mask flag from current label style

	* glyph.cc: (print_to) Don't call print_latex_hbox on label text
	
	* screen_data.h: Remove void constructor
	
	* pair_map.cc, pair_map.h: const pair args -> const pair&

	* screen_data.cc, screen_data.h: Store mask-indep corners
	 - (paste) Use corners, not mask, to generate affine_map
	 - (add_tile(tile*)) clone argument
	 - (extract, extract_diamond, extract_ellipse) New functions

	* screen.cc: pair2P -> __epix_pair2P, accept const pair&
	 - (extract, extract_diamond, extract_ellipse) New functions

2007-09.07 (ADH)
	* format.h: (print_circle_marker) New function
	* format.cc: (print_latex_marker) Needn't handle dot-like marks
	  - (print_mark) Use print_circle_marker for dot-like marks
	  - (print_edge) Use print_circle_marker for path dots

	* eepic.cc, eepic.h: (print_circle_marker) New function
	* pst.cc, pst.h:     (print_circle_marker) New function
	* tikz.cc, tikz.h:   (print_circle_marker) New function
	
	* tikz.cc: (put_box) truncate coordinates

2007-09.05 (ADH)
	* format.cc: (print_latex_hbox) "default" -> "rm"
	 - "normalsize" -> "nsz"
	* label_style.h: (label_state) Same as above
	* state.h: (font_size, font_face) Same as above

	* mask_rectangle.h, mask_ellipse.h, mask_diamond.h: Remove void
	  constructor

	* pen_fill.cc: (print_to, add_to_pallet) No action if is_empty

2007-08.31 (ADH)
	* epix-lib.sh: Remove unused global EPIX_VERBOSE
	 - New global LATEX_PKGS
	 - (ePiX_usepackages) New function (only used by elaps)

	* elaps.in: (elaps_make_latex) Get LaTeX packages from input file

2007-08.30 (ADH)
	Version 1.1.14
	* format.h: (usepackages) New function
	* format.c (file_comments) Call usepackages

	* eepic.cc, eepic.h: (usepackages)
	* pts.cc, pst.h: (usepackages)
	* tikz.cc, tikz.h: (usepackages)
	* fmt_template.cc, fmt_template.h: (usepackages)

2007-08.30 (ADH)
	Version 1.1.13
	* epix.el.in: New file
	* epix.el: Obsolete file removed

2007-08.29 (ADH)
	* hatching.cc, hatching.h: Reimplement

2007-08.25 (ADH)
	* format.cc, format.h: (path_break) Default implementation
	 - (path_conector) New virtual function, default implementation
	 - (print_edge, print_paths) Use path_connector
	 - (xdefinecolor) Non-virtual functions for xcolor formats

	* tikz.cc, tikz.h: New files

	* eepic.cc: (print_color) Use xdefinecolor
	* eepic.cc, eepic.h: (path_break) Use default implementation
	* pst.cc, pst.h: (path_break) Use default implementation

	* picture.cc, picture.h: (mp_format, print_mp) Comment out
	 - pgf_format -> tikz_format
	 - print_pgf -> print_tikz

2007-08.23 (ADH)
	* clipping.cc, clipping.h: New face list m_extras
	 - (clip_face, clip_slice, clip_restore) New functions
	* state.cc, state.h: (clip_face, clip_slice, clip_restore) New
	  functions
	 - (label_border) Accept double for length arg

	* legend.cc: (draw) Position is not camera-dependent

	* picture.cc, picture.h: (border) Accept double for length arg
	* screen.cc, screen.h: (border) Accept double for length arg

2007-08.21 (ADH)
	Version 1.1.12
	* axis.cc: log labels in decimal by default, sci available
	
2007-08.20 (ADH)
	* axis.cc, axis.h: (unmark(double)) New member function
	
2007-08.19 (ADH)
	* label_data.cc: (label_data(P, mark, align): Axis tick markers
	  restrictively aligned, cannot be rotated

	* legend_tile.cc, legend_tile.h: Copy ctor/assign, destructor

	* lens.cc, lens.h: New files
	 - Add clone function
	* camera.cc, camera.h: Factor out Lens code
	 - Add copy ctor/assign

	* picture.cc, picture.h: (pic_units_per_pt, units_per_pic_unit,
	  pt_to_screen) New functions for true-size drawing
	 - Remove svg functions

	* markers.cc, markers.h: (right_angle, arc_measure, axis_break,
	  h_error_bar, v_error_bar) New functions

	
2007-08.18 (ADH)
	Version 1.1.11
	* screen_data.cc, screen_data.h: (print_to) Accept bool flag to
	  encapsulate in a picture-like environment

	* format.h: (reset_state) New pure virtual function
	* eepic.cc, eepic.h, pst.cc, pst.h: (reset_state) New function

2007-08.17 (ADH)
	* format.cc, format.h: (start_picture, end_picture, print_pallet,
	  print_latex_hbox, set_unitlength) New functions
	 - (pic_header, pic_footer) Implemented in lower-level functions
	* glyph.cc: (print_to) Font attributes handled in format.

	* legend_item.cc, legend_item.h: New files
	* legend_tile.cc, legend_tile.h: New files

2007-08.16 (ADH)
	* format.cc, format.h: (print_latex_label) Masking flag
	 - (print_latex_label) Always print text color

	* legend.cc, legend.h: New files

	* length.cc, length.h: (name) New member function

2007-08.15 (ADH)
	* fmt_template.cc, fmt_template.h: New files

	* active_screen.cc, active_screen.h: screen_broker class replaces
	  global screen pointer active_screen

	* picture.cc, picture.h: (inlay, inlay_vertical, inlay_horizontal)
	  New functions
	 - (deactivate) New function
	 - (activate) Re-implement using screen_broker

	* arrow_data.cc, axis.cc, curves.cc, label_data.cc, path.cc,
	  path_data.cc, state.cc: Use active_screen()

2007-08.12 (ADH)
	* curves.cc: grid calls rect for outmost lines (enables filling)

	* format.h: Re-design interface
	* eepic.cc, eepic.h, pst.cc, pst.h: Re-implement
	
	* glyph.cc, pen_fill.cc, pen_line.cc: Re-implement print_to
	* pen_arrow.cc: Generate own arrow head data
	* picture_data.cc: Reimplement print_to
	* pen_fill.h: Remove hatch angle members

2007-08.09 (ADH)
	Version 1.1.10
	* mask_diamond.cc, mask_ellipse.cc, mask_rectangle.cc: (backing)
	  Use plain backing color for edge

	* domain.cc: (resize1, resize2, resize3) Hack to avoid round-down

2007-08.08 (ADH)
	* curves.cc, curves.h: (line) Make num_pts argument unsigned
	* curves.cc: (line, triangle, quad, arrow) Sensitive to whether
	  camera preserves lines

	* constants.h: New constants MAX_LOG_BASE, DEF_PRECISION, MAX_PRECISION

2007-08.07 (ADH)
	* frac.cc, frac.h: New files (rational number class)
	
	* pen_arrow.cc: (print_to) Use copy of label_state to print a dot

	* label_data.cc, label_data.h: (mask_color, text_color, align_to)
	  New pass-through functions
	* markers.cc, markers.h: Label commands use label_data
	  pass-through
	 - Move axis and axis label functions to new file axis.cc
	* axis.cc, axis.h: New files (Coordinate axes, global functions)
	 - New log label commands with same signature as Cartesian versions
	 - New axes along sides of bounding box
	
	* eepic.cc, pst.cc: (pic_header, pic_footer, print_color) Print
	  "%" at end of line

2007-08.06 (ADH)
	* state_data.h: Remove file
	* state.cc: Include style headers explicitly

	* pst.cc: (pic_footer, pic_header) Don't use pspicture* when cropping

2007-08.04 (ADH)
	* epix-lib.sh (ePiX_usage, ePiX_version): Update copyright,
	  licence notices
	 - Get script name from caller
	 - (ePiX_bugreport) New function
	* elaps.in, epix.in, flix.in, laps.in: Specify script name for
	  usage, version
	 - Call ePiX_bugreport at end of help

	* triples.cc, triples.h: (Several binary operators) Pass first
	  argument as value when implementation must copy anyway

2007-08.03 (ADH)
	Version 1.1.9
	* flix.in: (flix_png) Pass tmax to bc, don't let shell evaluate

	* path_data.c: (photo) Print filled only if >= 3 non-null edges

2007-08.02 (ADH)
	* spline.cc: (data) Indexing errors; increase max indices by 1

	* data_bins.cc: (plot) Use 20 intervals per spline
	 - (bar_chart, histogram, plot): Check for sero population
	 - (bar_chart) Bar height = frac of population in bin
	 - (histogram) Box height = frac of pop per horizontal unit
	 - (pop) Implement function

	* path_style.cc: (path_state(string)) Fix test for solidity

	* README-changes, README-porting: Removed

2007-08.01 (ADH)
	* functions.h: Remove "D", "I" aliases for Deriv, Integral
	* functions.cc: (recip) Return 1.0/x (sec, csc, tan have poles)
	* functions.cc, functions.h: Remove nine lowercase trig functions
	* plots.cc: D -> Deriv, I -> Integral

	* triples.h: Remove "triple" alias for P
	* triples.cc, triples.h: New member function is_valid()
	 - (midpoint) Remove function
	* circle.cc: Replace P::midpoint

	* elaps.in: Keep eepic file, back up existing file if any
	 - Unset EPIX_OUTFILE, EPIX_OUTROOT on loop exit
	 - Print informative (but fake) lines on latex/dvips failure

	* curves.cc, curves.h: (spline(vector<P>, int)) New function
	* data_bins.cc: (plot) Draw piecewise-cubic spline, not n_spline

2007-07.31 (ADH)
	* crop_algorithms.h: (loopify)
	 - Increment twice after insertion
	 - Erase lone edge correctly

	* markers.cc, markers.h: (h_axis_tick, v_axis_tick) Alignment option
	 - (h_axis, h_log_axis, v_axis, v_log_axis) Alignment option
	* label_data.cc, label_data.h: (label_data(P, mark_type)) Accepts
	  alignment option
	* eepic.cc: (print_mark) Handle alignment
	* pst.cc: (print_mark) Handle alignment
	 - (print_edges) Use pspolygon for closed paths

	* path_data.cc, path_data.h: New constructor from list of edge3d
	 - (is_closed, is_filled) Move body to source file
	 - vector<P>, list<edge3d> constructors do not fill unless closed
	* plot_algorithms.h: (plot_map_dom, euler_plot) Build plots from
	  edges, not vertices
	 - (plot_map_dom) Don't close or fill surface/solid plots

2007-07.30 (ADH)
	* circle.cc, circle.h, plane.cc, plane.h, segment.cc, segment.h,
	  sphere.cc, sphere.h:
	 - Remove intersection member operators
	 - Add bool malformed member, constructor for malformed objects
	 - Intersection operators do not throw
	* intersections.cc, intersections.h: New files, handle
	  intersections of object classes
	* make_header: Add intersections.h

2007-07.29 (ADH)
	* errors.h: Remove error type enums
	
	* data_file.cc: (write(fmt)) Column indices reversed in try block
	
	* curves.cc: (ellipse_left, ellipse_right) Correct angle bounds
	* path.cc: Ellipse constructor creates path containing specified
	  number of edges

	* markers.cc: marker(P, circ) calls circ
	 - masked log axis labels
	 - log axis labels accept optional base argument
	
	* eepic.cc, pst.cc: BOX and DOT, BBOX and DDOT of the same size
	 - Label padding works more similarly to PSTricks
	* pst.cc: (print(label_state, string)) If no label border, set
	  linestyle=none
	* glyph.cc: (print_to) Handle font face

	* constants.h: AVG_DOT=4 (was 2), AVG_TICK=3 (was 2)
	 - Arrow head parameter bounds (MIN_AWIDTH, MIN_ARATIO, etc.)
	* arrow_style.cc, arrowhead_style.h:
	 - Handle bounds on arrow head dimensions
	 - (width, ratio, camber, fill) Return arrowhead_state& (not void)
	
	* state.cc: (dash_size) Pass unchecked argument to path_state
	 - (dot_size, tick_size) Pass unchecked argument to marker_state
	* marker_style.cc: (dot_size, tick_size)
	 - Handle unchecked arg
	 - Return marker_style& (not void)
	* path_style.cc: (dash_size) Handle unchecked arg

2007-07.28 (ADH)
	Version 1.1.8
	* eepic.cc: (print(label_state, string)): Fix masklabel padding
	* markers.cc: Don't pad axis labels with \phantom{-}
	* camera.cc: No warning if point is behind film plane
	* screen_data.cc: backing(), border() activate cropping
	* data_file.cc: (read) Don't try to read empty files
	 - (column) Check for empty m_data

2007-07.22 (ADH)
	* data_mask.cc: (reverse) return *this
	* length.cc: (get_lengths) Initialize len1, len2
	* crop_algorithms.h: (loopify) If only one edge is visible, return
	  empty edge list.

2007-07.19 (ADH)
	* edge_data.h: Rename seen() -> is_seen(), null() -> is_null()
	* crop_algorithms.h, pen_fill.cc, pen_line.cc: seen() -> is_seen()
	* pen_arrow.cc, pen_arrow.h: Remove member m_at_base (unused)
	 - (crop_to) Shaft visibility bug
	 - (print_to) Draw ddot if head, tail project to same location
	* arrow_data.cc, arrow_data.h: Remove member m_at_base (unused)
	 - Remove clip() function (constructor applies automatically)
	 - seen() -> is_seen()
	* format.h, eepic.h, pst.h: (print_arrow) Omit alignment argument
	* eepic.cc, pst.cc: (print_arrow) Change signature, reimplement
	 - seen() -> is_seen()
	* constants.h: Names in all caps
	 - New constants MIN_CLIP, TWO_PI
	 - BBOLD_WIDTH is 1.2pt (was 1.6pt)
	* angle_units.cc, hatching.cc, marker_style.cc, path_style.cc,
	  state.cc: Use capitalized constants
	* camera.cc, camera.h: Use MIN_CLIP
	 - Rename function to_front() -> clip_plane()

2007-07.17 (ADH)
	* crop_algorithms.h: New file for path-chopping templates
	* halfspace.cc, halfspace.h: Remove private member functions
	 - Use crop_algorithms.h
	* screen_crop.cc, screen_crop.h: New files for crop_path_2nd,
	  crop_loop_2nd (from edge_data.cc)
	* edge_data.h: Move crop_path_2nd, crop_loop_2nd to screen_crop.cc
	  (file contains only template class and two typedefs)
	* edge_data.cc: Remove file

2007-07.16 (ADH)
	* state.cc: (fill(true)) Set fill color to White() if unset
	* halfspace.cc, halfspace.h: (clip_path) Out-of-order bug
	 - Move constructor body from header.

2007-07.14 (ADH)
	Version 1.1.7
	* eepic.cc, eepic.h, pst.cc, pst.h: Implement path styles
	 - (print_edge, print_edges) New functions
	 - (print_line) Implement in terms of print_edge
	 - (print_verbatim): New function
	* verbatim.cc, verbatim.h: New files, implementing tile class for
	  verbatim output to file
	* picture.cc, picture.h: (write, pre_write, post_write) New
	  functions to write verbatim strings to output
	* screen.h: Declare global "write" function a friend
	* picture_data.cc, picture_data.h: Add support for pre- and
	  post-written strings in output
	* constants.h: Default axis ticks 4pt long

2007-07.13 (ADH)
	* path_style.cc, path_style.h: Interface redesign
	 - String-parsing implementation
	 - Use constants.h
	* marker_style.cc: Use constants.h
	* state.cc: Reimplement path style functions
	 - Use constants.h
	 - (dash_size) New function
	 - (dash_fill, dash_length) Functions removed
	 - (pen(Color, double), base(Color, double)) New functions
	* label_data.cc: Constructors set tick mark color to line color
	* edge_data.h: (length) New member function

2007-07.08 (ADH)
	* markers.cc: (h_axis, h_axis_labels, v_axis, v_axis_labels) If no
	  endpoints are specified, use dimensions of active screen
	* curves.cc: (grid, log_grid) If corners not specified, use
	  corners of active screen
	* pst.cc: (print_arrow) Draw head manually
	  (print_line) Use PSTricks border attribute in two-pen versions
	  (update_base) Bug fixes
	* facet.cc, facet.h: New files
	* surface.cc: Factor out utility classes facet, by_distance
	 - Support domain-dependent coloring
	* path_data.cc: (photo) Print unfilled paths in chunks of 250
	  points to ameliorate LaTeX overflow

2007-07.07 (ADH)
	Version 1.1.6
	* surface.cc, surface.h: Support position-dependent coloring

2007-07.06 (ADH)
	* eepic.cc, pst.cc: (print(style, string)) Fix alignment bug
	  (print_mark) No padding, border
	* screen.cc, screen.h, screen_data.cc, screen_data.h: (is_cropped)
	  New function to add support for label cropping
	* format.h, eepic.cc, eepic.h: Change signature of pic_header
	* pst.cc, pst.h: Add support for label cropping
	* picture_data.cc: (print_to) Pass crop flag

2007-07.05 (ADH)
	* markers.h: (h_axis_log_labels, v_axis_log_labels) Align argument
	  defaults to none
	* picture.cc, picture.h: (eepic, pst) New functions to set output
	  format. (mp, pgf, svg stubs written.)
	* camera.cc: (to_front) Min clip distance is 0.01
	* path_data.cc: (photo) Clip by camera.to_front()

2007-07.04 (ADH)
	* pst.cc, pst.h: New files
	* eepic.cc: Implement label borders and padding
	* state.cc, state.h: (new functions)
	 - plain(Color), bold(Color), bbold(Color), set line Color/width
	 - rgb(P), cmyk(P), use components as densities
	 - New functions to set label attributes
	   . label_color(Color);
	   . label_pad(string);
	   . label_border(Color, [string]), label_border(string);
	   . no_label_border();
	* curves.cc, curves.h: (draw_rect, swatch, rect(P, P, bool),
	  draw_polar_grid) Remove functions
	* domain.cc, domain.h:
	 - No default domain constructor
	 - New constructor domain(P, P, mesh)
	 - Inline 1-dim'l constructor moved to cc file
	 - domain data members made private
	   New functions corner1_x1(), coarse_n1(), etc.
	 - "Net" typename removed
	* plot_algorithms.h, plots.cc, surface.cc: Use domain state
	  functions
	* data_bins.cc, data_bins.h: (bar_chart) New function
	* data_file.cc, data_file.h: New global functions
	 - plot(filename, mark_type, col1, col2, col3, [F])
	   plot(filename, mark_type, F, col1, col2, col3)
	 - histogram, bar_chart

2007-07.03 (ADH)
	* dataplot.cc, dataplot.h: Break up and remove files
	* data_bins.cc, data_bins.h, data_file.cc, data_file.h,
	  data_mask.cc, data_mask.h, interval.cc, interval.h: New files
	* samples: Remove sample document
	* doc: Update

2007-06.28 (ADH)
	* circle,cc, circle.h:
	 - Rename class -> Circle
	 - Remove m_filled data member, fill operator
	 - Remove translation, scaling operators += and *=
	 - (translate) Rename "shift"
	 - (move_to) New function
	 - Circle::draw() fills according to current paint style
	 - (circle) New functions which draw automatically
	* sphere.cc, sphere.h:
	 - Rename class -> Sphere
	 - Remove translation, scaling operators += and *=
	 - (shift, move_to, scale) New functions
	 - (poles) Remove global function
	 - (sphere) New functions which draw automatically
	* plane.cc, plane.h:
	 - Rename class -> Plane
	 - (shift, move_to) New functions
	 - Remove translate, separates, parallel_to, contains, height
	   functions
	 - (draw) Reimplement 
	* segment.cc, segment.h:
	 - Rename class -> Segment
	 - (shift, move_to, scale) New functions
	 - Remove translation operator +=
	* path.cc, path.h,path_data.cc, path_data.h: Update class names
	  Circle, Plane, Segment, Sphere
	* polyhedron.cc, polyhedron.h: Remove files

2007-06.25 (ADH)
	* contrib: Remove package
	* surface.cc: (facet) Class contains a normal vector,
	  (facet::front_facing) Use normal vector to test

2007-06.25 (ADH)
	* surface.cc: (facet::draw) Use "direction" to compute density
	* path.cc: (ellipse constructor) Don't close/fill automatically
	* curves.cc: (ellipse) Close/fill if appropriate
	* format.h, eepic.cc, eepic.h: (file_comment) New function
	* picture_data.cc, picture_data.h: (file_header) Move to format.h
	* path_data.cc, path_data.h: (draw) Implement base pen,
	   draw filled regions with both pens
	* state.cc, state.h: Functions to control drawing state
	 - pen(Color, [string]), base(Color, [string])
	 - fill(Color)
	* doc/manual.tex: Update

2007-06.20 (ADH)
	Version 1.1.5
	* pen_arrow.cc, pen_arrow.h: Store shaft as edge, not as two pairs
	* format.h, eepic.cc, eepic.h: (print_arrow) Adjust call syntax
	* mask_diamond.cc, mask_ellipse.cc: (crop_to) Fix crop criterion
	* geometry.cc, geometry.h: Re-implement spherical geometry
	* sphere.cc, sphere.h: (latitude, longitude) Move to geometry.*
	* functions.cc, functions.h
	 - Remove templates for id, zero, proj1, proj2, min, max
	   (put id, proj1, proj2 in map.h)
	 - Implement "zero" function with four call signatures
	* plots.cc: (shadeplot) Path closure bug
	* path.cc: (ellipse constructors) Close and fill if appropriate
	* markers.cc: (arrow) Re-implement labeled arrow
	* label_data.cc, label_data.h: Add visibility flag
	* glyph.cc: (print_to) Implement font_size
	* edge_data.cc: (crop_path_2nd) Loop processing bug

2007-06.19 (ADH)
	Version 1.1.4

	Clipping and cropping work. Elliptical and diamond-shaped screen
	masks are implemented.

2007-06.03 (ADH)
	Version 1.1.3, first public release

	Implements ePiX-2's color capabilities, including named models
	(RGB, CMY, CMYK, and Gray), color blending, filtering, CMYK
	separation, limited transparency, color filling and colorable
	arrows in eepic, decorable screens, and page markup.

	The global parameters x_min, etc., should be replaced with
	function calls, e.g. xmin(), from now on. Aside from this, the
	syntax is backward compatible with Version 1.0.x.