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
|
February 26th 1998 ivtools-0.6.2
Drawing Editor Changes
* conditionally adds a ConvexHull tool to drawtool if qhull from
the University of Minnesota Geometry Center can be found via your
PATH environment variable. To acquire and build this separate
executable see
http://www.geom.umn.edu/software/download/qhull.html
* adds a "Compute Attributes" item to the Edit menu
(SetAttrByExprCmd). This brings up a dialog box on the current
selection, and allows the user to enter an arbitrary attribute
value expression and evaluate it. For example, if a component had
an attribute of "likelihood", a new attribute called
"likelihoodsquared" could be set with an expression of
"likelihoodsquared=likelihood*likelihood". Keyboard shortcut in
drawtool is "#"
Interpreter Changes
* adds these mathematical functions:
acos, asin, atan, atan2, cos, sin, tan, pow, exp, log, log10
* adds a min and max function that promotes operands as needed,
similar to the other arithmetic operators.
* adds a cond operator that returns one of two values based on a
boolean test. Pre-evaluates all parameters (like every other
current command except help). In the future there can be "if",
"for", and "while" commands that use a lazy, post-evaluation
technique.
* adds a paste command to comdraw, for use in any derived
application that builds up a component that needs pasting in the
viewer.
Library Changes
* TopoFace -- adds methods to construct and return a floating
point geomobj that reuses the points without duplicating them:
FPointObj* TopoNode::point_obj();
FMultiLineObj* TopoEdge::multiline();
FFillPolygonObj* TopoFace::polygon()
* OverlayUnidraw --
- fixes linear scaling and logarithmic scaling of GrayRaster's
- fixes mechanism for embedding of a graylevel test strip in
GrayRaster's
- adds an edlauncher() mechanism to OverlayEditor to allow for the
inclusion of arbitrary editors into the main.c of one specific
editor.
- adds a comterplist() mechanism to OverlayEditor to manage a
global list of registered interpreters. Allows for one editor to
execute expressions on another editor's associated interpreter.
- adds more mouse documentation lines to OverlayKit
- adds OverlayViewer ::ScreenToGraphic and ::GraphicToScreen
methods, for converting between the x,y of mouse clicks and the
coordinate system of a graphic. Useful for addressing individual
pixels of a raster.
- adds a boolean OverlayKit::bincheck to test for the presence of
an executable before relying on it. Uses OverlayKit::bintest
under the hood.
- mixes in Observer and Observable as multiply inherited base
classes of OverlayComp. Now other update/notify systems can be
constructed around and within the subject/view hierarchy of a
Unidraw editor.
* ComTerp --
- clones the above into a ComFunc::bincheck and ComFunc::bintest,
for use of generic ComFunc programmers
- add a new parameter to ComFunc::argcnts, nargskey (defaulted to
zero), which is used by ComTerp to inform the func of how many
arguments are associated with keywords.
- add a ComTerp::stack_height() method to tell the current size of
the stack.
Configuration Changes
* sets up drawserv to link in FrameUnidraw as well as
GraphUnidraw, and then tests this with a new Editors menu that
allows for the launching of other GraphEditor's or FrameEditor's
* sets up drawserv to be installed with "make install"
* sets up comterp to use the original Iterator and UList objects
from Unidraw, instead of the ALIterator and AList in the Attribute
library. But then, so raw comterp programs won't have to link in
all of Unidraw and InterViews, new libraries called
Unidraw-command and IV-common were set up to build with only
symbolic links to the necessary files:
IV-common: listimpl.c, memory.c, regexp.c, resource.c, textbuffer.c
Unidraw-common: iterator.c, ulist.c
* removes the RCS tags from the TIFF source
Bug Fixes
* fixes a segfault when attempting to import an empty file
* fixes bug in the mechanism for managing absolute and relative
pathnames for drawtool and related documents.
January 23rd 1998 ivtools-0.6.1
Drawing Editor Changes
* clear any error message on the import, export, open, and save-as
dialog boxes from previous attempts upon starting a new attempt.
Interpreter Changes
* add help command that lists available commands by default, or
specific information about each command supplied as an argument.
* to support the help command the interpreter was evolved to
support a lazy-eval command, one that gets invoked before its
arguments get computed. The next release of ivtools should make
use of this with conditional and looping commands, the traditional
control constructs of procedural programming.
Library Changes
* TopoFace -- add separate methods to attach start and end nodes to
an edge:
TopoEdge::attach_start_node(TopoNode*);
TopoEdge::attach_end_node(TopoNode*);
-- and methods to test if a edge starts or ends at this node:
TopoEdge::starts_at(TopoNode*);
TopoEdge::ends_at(TopoNode*);
* OS -- add a method to test the table iterator's current entry.
helps avoid a nil pointer reference in case of an empty table:
TableEntry(Table)* cur_entry();
* OverlayUnidraw -- fix bugs caught by ElectricFence, including
one to the gs-based selection highlighting mechanism of
OverlayUnidraw. Also fix problem with flushing of
deferred-loading rasters and save/restore of arbitrary
numeric gray-level rasters (GrayRaster)
* ComTerp -- fix bugs caught by ElectricFence, like referencing
off the ComTerp stack. Increase default buffer size on
ComTerpServ to 1k. Change the ";" operator (SeqFunc) to return
the second argument on the ComTerp stack. Add a
ComValue::unkval() to return a static ComValue of UnknownType.
* Attribute -- disable Attribute's call to symbol_del which
sometimes inadvertently removes a symbol from the symbol table
when an Attribute is destructed. This needs to be evolved so that
either the symbols are never removed after being created, or there
is an accurate ref counting done when using ComUtil's symbol_add
and symbol_del. This release also improves the overall memory
mgmt of Attribute's, AttributeList's, and AttributeValueList's.
Finally, this release adds support for reading in comma-separated
list of AttributeValue's (into an AttributeValueList).
Configuration Changes
* incorporate patches to iv-3.2a published by Randall C. O'Reilly
and others of the CMU Psychology Dept., part of the pdp++_1.2
distribution. One thing this does is prefix all the globals in
InterViews/coord.h with "iv" (i.e. inch is ivinch, cm is ivcm) if
PDP_PLUS_PLUS is defined. If PDP_PLUS_PLUS isn't defined (the
default), these global variables stay the same, but #define's are
included which prefix "iv".
* also incorporate Alpha and Stratus entries for config/arch.def
from the pdp++ distribution. Still probably need the associate
iv-*.cf files.
* change the build order so that ComUnidraw (and comdraw) get
built before GraphUnidraw and FrameUnidraw, and then inherit
GraphEditor and FrameEditor from ComEditor.
* incorporate Doug Scott's iv-3.1 event handling patch that
enables use of the shift key.
* remove all explicit e-mail addresses from ivtools for spam
protection
December 23rd 1997 ivtools-0.6
* version change
* renamed Topology library to TopoFace to avoid conflict
with IUE and Target Jr class libraries of the same name.
|