-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathchange_log.txt
1154 lines (1070 loc) · 59.8 KB
/
change_log.txt
1
/*******************************************************************************20060708- [CAF, linux] Fix deprecated option to "tail" command (affects only installer).5.0.1.20060413- No changes, but now is release candidate.20060325- [RJL, all] Fixed more typos in the help docs.- [CAF, linux] Updated wxWidgets patches and installation instructions.20060323- [RJL, all] Changed default symmetry angle for empty trees to 90 degrees.- [RJL, all] Added discussion of color scheme to the View Settings window docsand fixed a few typographical errors.- [RJL, all] Changed RADIAN and DEGREES constants to be declared as constantvalues rather than computed expressions, which fixed a problem in Intel Macbuilds (and only there) in which these constants were being given a value of 0.- [RJL, all] Renamed Pi to PI, Two_Pi to TWO_PI for consistency and eliminatedconst-ness of some return values for consistency.5.0.0.20060309- [RJL, all] Fixed a bug in the Path Combo inspector in which changing thecondition type wasn't always getting applied.- [CAF, linux] - window fitting commands require WM hinting in some desktops;make doc windows slightly less tall so bottom isn't hidden in some desktops.- [CAF, all] Number pad delete key now deletes conditions in inspector (alongwith backspace and fwd delete).- [CAF, linux] Fixed missing double-click events in wxGTK list boxes- [ABX, MSW] Printing dashing fixed.20060308- [CAF, Linux] Restored quit-on-close to match MSW behavior.20060307- [CAF, linux] invoke updating of user interface events in UpdateAllViews -should patch the "unresponsive key after menu" issue in wxGTK- [CAF, linux] like we did before in tmwxDocManager.cpp::OnFileClose (for closingdoc via menu/C-W), in tmwxDesignFrame::OnClose explicitly call base's methodinstead of event.Skip(); [possibly a wxGTK, not Linux, issue]. Otherwise, whena document window is killed via title bar button, the doc is not actuallyclosed, orphaning the inspector windows without creating a new empty doc.- [RJL, all] Holding down modifier key when creating a new node by clickingkeeps the current selection.20060304- [ABX, MSW] Inspector and View Settings in on top when needed and onbackground when unneeded. - [ABX, all] Added wrappers for range selection so it not influence existingquality but is available for further development (just defineTM_WITH_RANGE_SELECTION macro in IDE/build). - [ABX, all] Assert during menu creation fixed.20060228- [RJL, all] Fixed a bug in tmConditionNodesCollinear in which deleting one ofthe nodes could cause a crash.- [RJL, all] Fixed an incorrect label in display of edges same strain condition.- [RJL, all] In tmwxDesignCanvas::UpdatePaperSize, changed order of resizingvirtual image and resizing frame (frame now resized first) to avoid flicker(that was only a problem on linux).20060227- [RJL, all] Rewrote Fit-to-[something] routines in tmwxDesignCanvas andrelated supporting routines. Now supports user changes in monitor size and menuitems are enabled iff the command would alter the window position or size. Alsofixed several uninitialized members in tmwxDesignCanvas. Renamed severaltmwxDesignCanvas variables and routines.- [RJL, all] Set paper size dialog is now initialized with current paper size.- [RJL, all] Replaced a bunch of public member framework-related variables withprivate members and public getters (to separate read/write access).- [ABX, MSW+linux] Standard menu items are decorated with icons. (not on Mac.)- [ABX, all] Drag & drop is supported.20060226- [RJL, all] Fixed a bug in the Node Fixed to Position dialog, in which checkboxvalues were being ignored.- [RJL, all] replacement of assorted ".size() == 0" with ".empty()" calls.- [RJL, all] Eliminated superfluous arguments in tmwxTextCtrl::ValidateSizeT.- [RJL, all] Fixed a bug in tmTree::AbsorbNode() in which mIsLeafNode andmIsLeafPath flags were not getting updated properly in tmTree::AbsorbEdge.- [ABX, all] Added check to Fit... commands so that they're not doubly executedif the paper is already fit to the screen in one or the other direction.20060224- [ABX, all] Implemented View->Fit to Width and View->Fit to Height, added docs.- [ABX, MSW] Added modified setup0.h (wxWidgets file) to turn off unnneededparts of wxW to reduce file size.- [RJL, all] Replaced static arrays sCalcLocFns, sAddConditionFns, sSelectionFnswith singleton functions to delay initialization (resolving potentialintialization order issues). Also reimplemented debugging stringstreams withinitialize-on-usage.- [RJL, all] Fixed an issue in node absorption that could cause a crash if acrease pattern was present.20060223- [RJL, all] Fixed a bug in tmStubFinder::TriangulateTree in which encounteringof a non-splittable order-4+ tree (yes, it happens) caused a crash. Updated thedocs to note the possibility.- [RJL, all] Fixed a bug in the display of a group selection (edges improperlydisplayed). As part of that, implemented copy ctors and assignments in classtmDpptrArray<T> to eliminate the underlying weakness (shallow defaultctor/assignment) that led to the bug.- [RJL, all] Disabled Edit->Paste command (not used by any of our classes).Framework still enables/handles for text controls.- [ABX, all] Mouse event handler doesn't eat unused events to enable receivingcontext menu event.- [ABX, all] Context menu implemented; works both using keyboard context keyand right click from mouse. It just duplicates content of edit menu which ishandy in case of large space.20060222- [ABX, all] Fixed some typos and glitches in tmwxApp that were preventingbuild on MSW.- [RJL, all] Added some discussion of deletion (under Edit->Clear) to the helpdocs.20060221- [CAF, linux] simplified code for small widgets; improved wxWidgets's circlerendering for GNOME printing- [RJL, all] Splash screen is now in its own routine, which happens at differentplaces in OnInit() depending on platform (later on Mac, earlier on Lin/Win).- [ABX, MSW] fixed sometimes broken copying of data between new instance andmaster instance- [RJL, all] Renamed overloaded tmwxDocManager::GetCurrentDocument() andGetCurrentView() to GetCurrentDocumentLocal() and GetCurrentViewLocal() to moreclearly distinguish from the non-virtual versions that will still be called bythe framework. Also, fixed a bug in which our parallel copy of the currentdocument (tmwxDocManager::mDoc) wasn't getting cleared immediately, whichallowed idle menu update events to get sent to a dangling pointer if thetiming was right.- [RJL, all] Fixed a model bug in which tmConditionPathCombo's were not gettingdeleted from non-leaf paths.20060220a- [RJL, all] Number formatting is consistent: scale, tree coordinates, strain, stiffness formatted as %.4f; angles formatted as %.2f.- [RJL, all] "Set Edge Length" dialog initializes with current edge length ifselection consists of a single edge.- [RJL, all] Dropped wxSTAY_ON_TOP from TMWX_MODAL_DIALOG_STYLE because it wasstaying on top of wxMessageBox error alerts within the dialog (wxWidgets bad).- [RJL, all] Changed all calls of wxMessageBox to one of three twmxAlertXXXroutines to enforce consistency.- [RJL, all] Cleaned up dialog validation routines to use tmwxCtrl validationroutines as much as possible (again, to enforce consistency).- [RJL, all] Fixed outline levels in help docs contents- [ABX, MSW] 1. fixed crash in tmwxApp::ProcessEvent() - app event should work without any window (as it happens at the end of application running). 2. added single instance checker so new documents are launched instead of new instance of application 3. folded form frame after opening is first not last in window hierarchy.20060220- [RJL, all] Minor cleanup of class tmwxTextCtrl.- [ABX, all] Minor fixes to #includes to address build issues.- [CAF, linux] Patched wxWidgets (GNOME printing interface): circles don'tprint 3/4 as tall as they should. Still must fix clipping bug.- [CAF, all?] Patched wxWidgets (docview.cpp) preventing crashes when openingfiles at command line not named *.tmd520060219- [RJL, all] Cleaned up various dialogs in tmwxDoc_Edit.cpp to usetmwxGetUserInputDialog methods.- [RJL, all] Expanded discussion of path quantization condition in docs. Fixedincorrect figure Ti-5-10.- [RJL, all] Major change to event processing; overrode tmwxApp::ProcessEventto route events to doc manager and/or help frame. Added print-from-menu to helpframe.- [RJL, all] Replaced global accessor routines with pointers (e.g., replacetmwxGetInspectorFrame()-> with gInspectorFrame->). Also added checks for NULLpointers in several places that could have an effect during initialization and exit.- [RJL, all] Moved splash screen even later in OnInit(); AppleEvent processingduring wxYield needs the inspector frame to exist.20060218- [RJL, Mac] Moved splash screen to later in OnInit(), which on Mac, wasgetting in the way of AppleEvent processing for opening files on applicationlaunch. This fixed the problem whereby double-clicking on a document launchedthe application but failed to open the document.20060217-[ABX, all] minor fixes to new dialogs in tmwxDoc_Edit.cpp.- [RJL, all] Fixed a bug in node absorption that sometimes led to corrupteddata structure (superfluous paths).- [RJL, all] Turned off wnlib optimizer since it can't easily be made exception-friendly.20060216- [ABX, all] Assorted changes to frame activation code to fix problem withcommand destination with multiple documents present.- [RJL, all] Altered constraints so that certain ill-set-up strain minimizations(e.g., 3-tree, one strained edge, no active paths) will not hang, will merelyfail to converge.- CAF, linux] Changed behavior so that closing the last document reopens ablank document (requires wxGTK-specific code)- CAF, linux] installation copies compressed change_log.txt. Graphicalinstaller has a button for showing it before installing- [CAF, all] experimental code in edge splitter dialog - see symbol NO_CAF intmwxDoc_Edit.cpp- [RJL, all] Fixed a bug in which symmetry conditions were being applied duringoptimization even if the symmetry line was not turned on.20060215- [RJL, all] Fixed a bug in Split Edge dialog in which node index wasn'tcorrectly reported.- [RJL, all] Fixed a bug in the calculation of path feasibility for path activeand path combo constraints.- [RJL, all] Reverted the convergence check in ALM to the check used in 20060211and before. This still leaves a bug: 3-legged tree, strain one edge, C-3 sendsinto infinite loop.- [ABX, mostly MSW] Assorted UI changes: 1. More native palettes as requested by Marc (tmwxPaletteFrame.cpp) 2. Close box for user input dialog. 3. In user input dialog there was Center() in flags for buttons. It is not consistent with other dialogs by wxWidgets. 5. In user input dialog with more input fields labels are top aligned with text fields which doesn't look nice. Sorry, had no time yet to modify this myself. 6. In user input dialogs focus (at least on MSW) needs to be applied when dialog content is completed. 7. I added accelerators which work regardless which of the frames is active (see changes in tmwxApp.* + palette and folded form frame source)- [RJL, all] Removed static line separator between fields and buttons(compatibility w/ Apple HIG) (thx ABX for pointing out). (Alas, changes somehelp doc images which need updating). 20060214- [ABX+RJL, all] RJL's changes to OnActive broke MSW; reverted to ABX's additionof tmwxDesignFrame::ProcessEvent(), which still doesn't fix Mac but at leastdoesn't break MSW.- [ABX] Fixed a bug in tmwxDesignCanvas::TreeToDC that broke MSW printing.20060213- [RJL, all] Fixed a bug in ALM optimizer that led to hang when all constraintsare feasible (e.g., strain minimization with no active paths).- [RJL, all] Fixed a bug in tmwxConditionListBox in which the node index wasbeing improperly reported for tmwxConditionCombo when one constraint applied.- [ABX, msw] Updated README.txt- [CAF, linux] Updated README.txt- [CAF+RJL, linux] Modified behavior on closing last doc to reopen a new emptydoc (only under linux).- [RJL, all] Updated help docs to reflect platform-specific behavior when lastdoc is closed.- [RJL, all] Added NaN detection macros and sprinkled a few throughout the ALMoptimizer to aid in debugging.- [RJL, all] Added call to tmwxDocManager::ActivateView() to tmwxDoc::OnActivateso that doc manager can properly keep track of which view currently has the focus. (Doesn't completely fix the problem; more investigation needed.)- [RJL, all] Added check to Strain Optimization menu item enabling so that itemis not enabled if the pattern is feasible and there is no strain.- [CAF+RJL, all] Added warning dialogs within tmwxDoc::OnOptimize* routines(although they shouldn't be needed if menu enabling works properly).- [CAF, all] Added exception in tmPart::GetPOD() for corrupted numerical data.20060211- [RJL, all] Finished updating Tips figures; all doc figs should be up to date.- [RJL, Mac] Updated XCode project to build Universal Binary for Release build.Adjusted optimization and symbol generation settings throughout targets.- [ABX, Win] Updated MSW build files. Delivered beta installer build (20060210).- [RJL, all] Small tweaks to class tmwxGetUserInputDialog appearance.20060210- [ABX, all] Further minor typos in help docs.- [ABX, MSW] Updated .bkl in build files.- [CAF, all] - keypad Del works as ordinary Delete key - [linux] shrink mini/small buttons, checkboxes and radio buttons - for moving pinned items, the Control key modifier may be used as an alternative to Alt - [linux] Makefile doesn't leave empty help.zip if "zip" is not installed- [RJL, all] Tutorials 1, 2, and 3 have new figures and additional text thattalks about node circles & conditions versus constraints- [RJL, all] Fixed a bug introduced in 20060209 that would cause a crash if youcreated a condition of one type on a node that already had a condition ofanother type on it.20060209- [RJL, all] Fixed a bunch of bad links in the Help table of contents.- [RJL, all] Changed node condition menu item behavior so that selecting a nodecondition when one already exists changes the existing condition. Added lots ofnew tmTree methods (for creating conditions) that check for redundancy.- [RJL, all] Folded form frame is only printed if it's visible.- [RJL, Linux] Force-dragging of pinned nodes uses Control key as modifier; Macand Win remain Option (Alt) click to force drag. Updated docs accordingly.- [RJL, all] Made node combo inspector more forgiving of user settinginconsistent constraints within a condition.- [RJL, all] Added "show border paths" to view settings, which is on in designview; this makes they always visible, so that the presence of a single invalidpath on the boundary doesn't radically change what's shown on-screen.20060208- [RJL, all] Added an assertion check to tmTree::CleanupAfterEdit() to quicklyidentify inconsistencies involving numbers of owned nodes and paths.- [RJL, all] Added close box to Folded Form frame.- [ABX, all & MSW] 1. URLs in About window are clickable (apart html code, it needs additional class derived from wxHtmlWindow) 2. Changed order in Help menu creation. It should not affect Mac because it takes About item into menu bar but I wonder if it is not important (in terms of "native") for GTK applications. On Windows About is below Help access, not above. 3. On Windows keyboard accelerators are presented as "Ctrl+C" while we had "Ctrl-C". I guess it's because it's how Macs do it. I made it work in both models. 4. Inspector and view settings dialog should be on top of design frame; added wxSTAY_ON_TOP flag for palettes in MSW (it's automatic in Mac). 5. Other minor corrections in About page text. 6. Changes in script for windows installer .- [RJL, all] Gave tmwxGetUserInputDialog a minimum width of 300 px just becauseit looks better that way.20060207- [RJL, all] Fixed a bug in which closing the last doc frame by clicking on theclose box did NOT quit the app on non-Mac platforms. Added new method,tmwxDocManager::CheckLastDoc(), which takes care of the platform-dependentcheck.- [RJL, all] Fixed some bugs in the checking of writeability of the help cachefile.- [RJL, all] Added close boxes (and close handlers) to all utility windows, removed them from all modal dialogs.- [RJL, all] Changed toggle window visibility commands to Show/Hide rather thancheck/uncheck.- [RJL, mac] Updated WX_2_6_BRANCH from CVS, which fixes a wxW bug in wxGetSingleChoiceIndex() that manifested in the stub picker dialog.20060206- [ABX, all] class tmwxDoc now opens ifstream in binary mode; fixes stream inputproblems on Windows.- [RJL, all] class tmwxDoc also opens ofstream in binary mode for consistency.- [ABX, all] Handling of new EX_IO_* classes is now unicode-friendly.- [RJL, all] Added graceful handling of the situation when the helpcache file is located on a read-only volume (e.g., a person tries torun the app from a Mac disk image).- [CAF, all] Assorted cleanups of HTML help files.- [RJL, all] Put build code in lower right corner of About box in release build.20060203- [CAF, linux] Updated build structure: - updated Makefile/installer/uninstaller copy a compressed LICENSE.txt to the data directory - directory wxwidgets has a README, customized build-wxw.sh and patched sources for dash/thin lines - README_linux has a "Known Bugs" section- [RJL, all] Removed superfluous ConsumeTrailingSpace call from void tmPart::GetPOD(istream& is, tmArray<tmPoint>& aArray).20060202- [RJL, all] Added mToken member to all I/O exception classes so that they canreport the offending token when they throw an exception. Similarly modifiedtmwxDoc::LoadObject() to report the bad token in the message box.20060201- [ABX, all] More fixes for unicode compatibility.- [RJL, all] Bugfix in file I/O, in which conditions were being improperlywritten to the file. This affected v5 files that contained conditions, but notv4 files or condition-less files.20060131- [ABX, all] Assorted fixes for consistency with unicode builds.20060130- [CAF, Linux] Updated linux build system. Killed undead 32x32 icon.20060126- [RJL, all] Fixed bug in dialogs; now modal dialogs stay on top.- [RJL, all] File I/O: In tmwxDoc::LoadObject(), the old tree is not overwrittenuntil the new one has been successfully and fully read in.- [RJL, all] File I/O: Replaced a few remaining get(ch) with ConsumeTrailingSpace() for cross-platform uniformity.- [RJL, all] Version 4 export doesn't store poly, vertices, creases, or facetsat all due to unresolvable model changes between v4 & v5.20060104- [CAF, Linux] restored icon handling code that got dropped in last update- [RJL, model] tmPart::Endl is now friend of tmPart for C++ compliance.- [RJL, GUI] Call to SetWindowVariant is now only on Mac; variant windows need explicit font & height setting on other platforms.20060103a- [ABX, MSW] added code for window icons under MSW.- [ABX, MSW] implemnted tmwxOptimizerDialog_msw.cpp20060103- [CAF, Linux] now load two icons dynamically instead of embedding a .xpm. Thetwo fullscale Icon files are copied in linux/resources for customizerconvenience, but are not actually used at either build or runtime- [CAF, Linux] assign icons to all toplevel windows- [CAF, Linux] polished build/install procedure20060101--Accepted UI edit from ABX (although I changed tmwxStaticBoxBorder totmwxSTATIC_BOX_BORDER since it's a constant)--Added msw-specific files from ABX--Added script for building a Mac disk image for distribution20051231--Added ABX's files to the msw directory.--Redesigned mac build structure and rewrote scripts to allow one-step builddirectly from the TreeMaker distribution by running the script build-all.shfrom within the mac directory.--Updates to some of the help docs.--Fixed capitalization inconsistencies in command names, menu entries, andinspector panels.--When exporting to v4 on Mac, set the creator and type properly for TM4 toread.--Fixed a bug in which TM4 files that contained NAN(017) weren't read properly(previously fixed, but adding tmPart::ConsumeTrailingSpace() broke it).--Added static member tmPart::sEndl, class tmPart::Endl, and modified assortedPutPOD routines so that line ending character could be changed dynamically, sothat version 4 exporting uses Mac '\r' line ending.20051228--Fixed a bug in which tmConditionEdgesSameStrain::CalcFeasibility() wasn'tproperly calculated.--Updated the help file treemaker.hhc (help table of contents)--Fixed a bug in the display of discrete depth in the Vertex inspector panel.--Accepted Carlos's edits re command-line arguments & icons under linux--Reorganized distribution directory structure to separate platform-specificfiles--Changed paths in TreeMaker.xcodeproj and modified associated scripts toreflect new directory structure--Added Carlos's files for linux directory--Accepted ABX's edit to tmwxRadioBoxSmall (replace Node w/compatibility_iterator).20051221--Further help doc changes.--Added tmwxDoc::Revert(), which implements the File->Revert command.--Moved some global routines from tmwxCommon.h/cpp into tmwxApp.h. RenamedtmwxCommon.h/cpp to tmwxStr.h/cpp, since that's all that's left.20051219--Renamed panel OnTextEnter() method to OnApply() and added Apply buttons to allsuch panels because some users might want to use the mouse.--Further fixes to tmVersion.h to remove errors introduced in hasty previousiteration.--Small edits on the help docs. Added treemaker.css for standalone web viewing.--Turned "show node circles" back on as the default.--Fixed a bug in tmTree::SplitEdge(..) in which splitting an edge with a creasepattern present would cause a crash.--Redesigned and recoded the "connectedness" check in facet graph construction;TM now can do full crease assignment for many more crease patterns, even withdisconnected corridors. Changed tmTree::mIsCorridorConnected totmTree::mIsLocalRootConnectable.--In inspector panel "extra" info in debugging builds, put array data on theirown line (single-element data is still doubled up).--Wrote help/tips_4.htm.--Lightened the splash screen artwork & brought contents up to date.--Implemented delayed initialization for all static vectors and strings in thetmModel dynamic type system to eliminate possible static initialization orderproblems.20051215--Rewrote panel OnTextEnter() methods to fully validate before updating themodel.--A few more changes to tmVersion.h, to adopt ABX's macros.20051214--Added Carlos's 12/07 edits to the help docs.--Added ABX's 12/12 cleanup of code.--Changed serialization format again; version 5 conditions store their index(like all other parts) and their feasibility. This fixes a bug in which read-inobjects didn't have condition feasibility properly set.--Rewrote tmVersion.h to clean up the generation of application name strings.--Rewrote assertion code in tmHeader.h/cpp to streamline it and enable bothDebug and Development builds to dump tree state on assertion failure.--Fixed a really annoying bug in tmwxCommand in which DoSomething-Undo-Redo-Undo-Redo would cause a crash.--Added ABX's 12/12a cleanup and implementation of MDI under Windows.20051212--Wrote help/tips_3.htm.--Added letter codes to node combo condition display in tmwxDesignCanvas toshow what's been applied.--Added classes tmConditionPathCombo.h/cpp and tmConditionPathComboPanel.h/cpp.--Defined new Condition menu commands to use tmConditionPathCombo for pathconstraints. Distinguish v4 conditions in all command names.--Changed CalcFeasibility() for symmetry conditions to be *infeasible* if thesymmetry line is not defined.--Rewrote feasibility checks for all constraints to use the same functions thatare used in the optimization.--Reordered all validation/updating code in Inspector panels' OnTextEnter()methods to insure that everything is validated before anything is updated.--Shattered tmwxDoc::OnUpdateUIOrCommand() into a million individual commandhandlers and split them among files: tmwxDoc_File.cpp, tmwxDoc_Edit.cpp,tmwxDoc_View.cpp, tmwxDoc_Action.cpp, tmwxDoc_Condition.cpp, tmwxDoc_Debug.cpp--Cleaned up tmwxApp command handlers in the same way (but they're still intwmxApp.cpp).--Added class twmxGetUserInputDialog.h/cpp.--Added tmwxCheckBox.h/.cpp.--Tweaked names of condition menu items.--Added command handlers to tmwxApp to reroute commands that should have goneto the document manager (including File->Revert).--Added some debug code so that in a Development build, an assertion failuredumps the state of the tree at the beginning of (a) BuildPolysAndCreases() and(b) CleanupAfterEdit, as an aid to debugging.--Fixed a bug in tmFacet::GetSelfv5() which caused a spurious "file corrupted"error if the stored value of tmFacet::mCorridorEdge was 0 (NULL ptr).--Added ClearCleanupData() methods to several model objects to insure thatcleanup fields are always cleared for partial crease patterns.--Added a tolerance within tmPoly::CalcPolyIsValid() so thatnumerical-roundoff-sized movement of a node is no longer grounds to kill apoly. Also fixed a bug in tmTree::CalcPolygonNetwork() that was occasionallyskipping over polys that, by rights, should have been killed.--Added tmTreeCleaners to several tmTree setters so that cleanup gets invokedwhen symmetry is turned on or off or symmetry parameters are changed.20051209--Factored creation code for Inspector panel contents into a new class,tmwxInspectorPanel & rewrote panel constructors accordingly. Tweaked variouspanels.--Fixed a bug introduced with wxString::FromAscii, in which edge labels were notbeing properly drawn.--Loosened tmVertex::VerticesSameLoc() tolerance from .001 to .003.--Wrote help/tips_1.htm, help/tips_2.htm. Assorted small edits throughout thedocs.--Fixed a bug in tmFacet::CalcContents(), in which 90-degree ridges wereincorrectly resulting in facets being flagged as not well-formed.--Added tmwxViewSettings.mShowFacetCorridorEdge field and appropriate controlin view settings and behavior in tmwxDesignCanvas.--Rearranged the view settings panel.--Assorted casts and (-1)->(wxID_ANY) from ABX, also other small fixes.--Added file Source/tmVersion.h, which #defines some preprocessor constants thatare used for version information. Incorporated this into SetAppName(), and itis now displayed in the About box.20051207--Zeroed uninitialized ptr member variables in wxApp (e.g., mPrintData).--Removed tmwxDesignCanvas wxFocusEvent handlers because wxMac was actually atfault for focus problems.--Fixed an assert in wnlib. Rewrote parts of tmNLCO_wnlib to remove wnlib filesfrom #include hierarchy in tmModel.--Eliminated tmwxMessageBox, no longer needed.--Assorted small fixes from ABX for unicode compatibility.--Renamed tmwxHtmlHelpFrame::SetPrinter() to SetHtmlHelpPrinter() to avoid namecollision.20051206--Finished help/tutorial_3.htm, small edits throughout help files.--Restored a feature from TM4, that pinned edges are shown lighter in Designview.--Fixed a serious bug in condition serialization; the index wasn't gettingcreated on read-in, which affected not only file I/O but also Undo/Redo.--Made a number of small changes from ABX for Windows and unicode compatibility.20051205--Reimplemented several dialogs in tmwxDoc: Split Edge, Scale Edge Lengths,Set Paper Size, Set Edge Lengths. They now look better and validate properly.--Assorted small cleanups; removed unused commands for tmwxID_NODES_WATERBOMBand tmwxID_INFER_SYMMETRY.--Fully implemented Carlos's new GetPOD/PutPOD routines (mistakenly hadn't donethat previously).--Wrote more help material (part of tutorial #2).20051130--Rearranged the drawing order so that facets are on top of polygons.--Added more help material (tutorial #1).--Note that to build the help cache from the zip file, you need to modifyhhp2cached code to add the wxZipFSHandler to handle the zip file.--Fixed a bug in which orphan vertices owned by leaf nodes weren't gettingkilled if the leaf node becomes a branch node.--Enabled Action->Build Crease Pattern only when we have at least 3 leaf nodes.--Added new class tmwxDocManager, whose members seem to be the proper placeto catch document closure so that Win/Lin can close the app when the lastdocument closes.20051126--Wrote more help documentation.--Replaced GetPOD/PutPOD with Carlos's new versions.--Moved "about.htm" to Source/about/about.htm.--Removed "help.zip" from source distribution; you should build the zip fileduring build from the contents of Source/help. Also, you should build thehelp cache using hhp2cache (wxWidgets utility, see /utils).20051124--Moved all application support files to the application data directory. (Youwill need to modify some build locations.)--Added many help files and figures to the help file.--Added help file caching.--Modified facet and crease inspector panels to show more useful information inrelease builds.--Added a check for multiple inactive paths within a single molecule to themodel and a corresponding tmTree::CPStatus entry, POLYS_MULTIPLE_IBPS. This fixes a couple potential sources of failed assertions.--Added Edit->Select->Corridor Facets command and supporting routines.--Added Carlos's fix for spaces in label names (but maybe we'll change formatinstead for v5?)--Added another text element to the tmwxOptimizerDialog to give another way toshow that something is happening during long calculations.--Added new classes tmwxHtmlHelpController and tmwxHtmlHelpFrame to get accessto setting header/footer and print size for printing help documentation.20051121--Added "Absorb Edge" to model and GUI. Needed now that EDGE_TOO_SHORT is apossible failure mode.--Added member tmFacet::mCorridorEdge and tmTree::mIsCorridorConnected. Addedcheck for corridor connectedness.Unfortunately this changes serialization format again, breaking v5 files.--Changed the export function to use the proper file type and to append "_v4.tmd5" to the name to make it clear from the filename that it's v4 format.--Removed all "static_cast<unsigned long>" by adding routines tmwxStr(..) forstring conversion throughout the GUI.--Reorganized edit menu to user hierarchical submenus to reduce its size.--Fixed some bugs related to item enabling in the edit menu.--Fixed a bug in tmArray::union_with() and added tmArray::replace_with.20051118--Updated some of the help files. They're still under construction and are very incomplete.--Fixed a bug in which spurious pseudohinge creases could be created if ajunction vertex was in the ridgeline above an inactive axial path.--Fixed a bug in which if a regular hinge had pseudohinges on both sides, facetordering crashed. The fix replaces the single tmVertex::mPseudohingeMate withmLeftPseudohingeMate and mRightPseudohingeMate, but unfortunately this changesthe format of serialization.--Added ability in debug builds to quit the tmTree::CleanupAfterEdit() routinebefore calculation of facet order, which lets me examine crease patterns andalso debug the facet order without having to rebuild the app in between. Thissetting is toggled by the new Debug menu, which is only present when TMDEBUGis defined.--Found a weakness in the model that led to failed assertions when edges gottoo short (which prevented proper assignment of tree nodes). Now there's a checkin the model and a warning is provided to the user.20051114--Added tmwxApp::OnPrint and tmwxApp::OnPrintPreview per Carlos.--Added handling of command-line arguments.--Fixed a bug in which TMLOG(..) messages were being lost in Development builds.--Added a close handler to tmwxInspectorFrame that ignores clicks on the closebox but still allows the application to quit via the tmwxApp::OnExit() handler.--Gave all floating windows a common style across all platforms.--Fixed a bug in which certain axial vertices weren't getting deleted when thecrease pattern became invalidated.20051113--Added File->Export version 4... command to debug builds so that problematicconfigurations can be saved in a way that persists across version 5 formatchanges.--Added close handler to twmxViewSettingsFrame.--Added static tmPart::GetIndex() and tmPart::GetStr() methods, used in debugging.20051108--Added assorted casts to size_t formatted as %lu per Carlos (kept in CAF#defines).--Added close handler in tmwxFoldedFormFrame in case window manager stuck aclose button into the window frame.--Fixed a bug in which vertex validity wasn't getting set when there were novertices at all; it (and related flags) are now cleared at the beginning oftmTree::CleanupAfterEdit().--Added "polygon filled" info to Tree panel in debugging builds.--In tmwxFoldedFormFrame, more descriptive text is shown when folded form can'tbe displayed.--Gathered palette installation into a single routine, tmwxApp::SetPalettes().20051102--Fixed a bug in tree triangulation that would cause the program to hang orcrash with large structures.--Added a new bool field to tmTree that clarifies one of the reasons creasepattern building might fail. Unfortunately, this changes the version 5 serialformat so you'll have to delete any v5 files you've saved.--Added dummy file tmPrec.cpp that's needed under MSW to precompile headers.--Added tmStubInfo::operator!=() so STL works on MSW (even though it's notneeded).--Added more guard macros in cfsqp and rfsqp-related files so they won't becompiled if tmUSE_CFSQP &/or tmUSE_RFSQP are not defined.20051008--Fixed some bugs that affected setting the global menu bar in the Mac version.--Added creation of a new untitled document on startup in non-Mac versions (Macusers can just use File->New in the global menu bar).--Tweaked the documentation; noted distribution conditions for wnlib (not GPL).--Added code to handle wxDocParentFrame and/or wxDocManager events that make itto the app.--Created version 5 serialization routines (Putv5Self(), Getv5Self()). Version5 format is now standard output format; input can be 3, 4, or 5.--Implemented Undo/Redo in class tmwxCommand--Changed class tmwxOptimizer so that reversion happens from a serialized copyof the tree, rather than a copy of the state vector. This allows cancelledoptimizations to be fully reverted, even if they've destroyed the crease pattern.--If the splash screen or help files are not present, a warning message isgiven to the user at runtime, even in Release builds.--Guard #ifdef's added to tmNLCO_xxxxx.cpp files so that they're not compiledif the corresponding symbols aren't turned on in tmNLCO.h.20051001--Began implementation of version 5 file format I/O. Still needs work.--Began implementation of help system; HTML Help window is up and running, butmany pages need writing.--If an edge is selected in design view, its corresponding facets arehighlighted in the folded form.--Added a second page to printout, consisting of the folded form.--For the About... command, implemented tmwxAboutDialog that displays anHTML window with About information. About window is now always shown on firstrun, and user can turn on/off its display in Preferences.--Dropped class tmwxMainFrame, which was superfluous. Assorted changes toother classes. twmxInspectorFrame is now the wxDocParentFrame. Class tmwxPersistentFrame is now a template class based on the underlying wxFrameclass so that twmxPersistentFrame<Frame> inherits from class Frame.20050928--Reworked the optimizers (again) so that tmOptimizer classes are no longerdescended from tmNLCO classes; instead, they take a ptr to a tmNLCO object.Similarly, tmwxOptimizerDialog no longer inherits from tmOptimizer but simplytakes a ptr to a tmOptimizer. This approach also lets us choose the desiredtype of NLCO for each optimizer at run time rather than at compile-time but hasthe additional advantage of eliminating a lot of messy template code andflattening the inheritance hierarchy.--Created targets for test code in the TreeMaker XCode project and a script tobuild all targets from the command line.--Fixed a compatibility issue when building TreeMaker with C library code; thewxWidgets headers (which are not C compatible) are now not included whencompiling C files.--Added preferences command to select the desired optimization algorithm.--Changed printing so that printed images are now drawn at the full resolutionof the printer (e.g., 300 dpi for a laser printer). This makes the images moreaccurate (for print-and-fold) and lines are drawn thinner in printout than onscreen.--Created new splash screen artwork and icons based on actual TM-generatedcrease patterns.20050911--Cleanup of previous version; eliminated unused routines, renamed some queryroutines to keep style consistent.--tmFacets now start their vertices and creases with an axial/gusset crease andproceed clockwise. This makes finding left/bottom/right creases more efficientsince we no longer need to search through lists to find those 3 types of crease.--Removed "build polys" cmds from GUI; one command now builds everything.--Added position check to window memory so palettes can't get lost offscreen.--Rewrote parts of the facet ordering graph algorithm to reduce the number ofcases and simplify the algorithm; also has the effect of reducing the number ofsuperfluous links in the facet ordering graph.--Revised (simpler) facet ordering algorithm fully implemented. Smaller code,runs faster, works on most test cases.--Added tmTree::mIsFacetDataValid and associated routines to catch creasepatterns for which facet ordering won't work, typically due to sliver facets.User still gets AGRH crease pattern, which ought to be enough to fold the base.--Reworked the optimizers so that the tmOptimizer-derived classes are nowtemplated on the tnNLCO_xxxx classes; this makes it possible to choose whichoptimization engine to use at run-time, rather than at compile-time, and todo more extensive parallel benchmarking of the individual optimization engines.20050907--Added sources and sinks to tmFacet class, in preparation for construction offacet ordering. Added assorted supporting routines to tmFacet, tmCrease, andtmTree classes. Added view options to view settings.--Eliminated VertexBend and CreaseBend classes, and added new Kinds to tmCreasethat includes bend information: UNFOLDED_HINGE, FOLDED_HINGE, and PSEUDOHINGE.--Added assorted routines to implement construction of the facet orderinggraph within molecules.--Split tmTree facet ordering code into its own file.--Cleaned up preprocessor symbols; dropped double-underscores from TMWX,TMDEBUG, and TMPROFILE. Put all description into README.txt.--Renamed enum types tmFacet::Orientation-->tmFacet::Color andtmCrease::Assignment-->tmCrease::Fold. Renamed associated variables androutines.--CREASE ASSIGNMENT WORKS!!!! Oh happy day, oh frabjous joy. Facet ordering,facet coloration, and finally crease assignment algorithms are all working andplaying together nicely. Time to do a code snapshot.20050830 After an even longer hiatus...--Migrated project from CodeWarrior to Apple XCode and gcc 4.0. Numerous smallcode changes for compatibility, particularly in the area of partial templatespecialization. Eliminated the last #ifdef EXPLICIT_TEMPLATES.--Upgraded wxW to 2.6.1 stable release.--Defined __TMWX__, __TMDEBUG__, __TMPROFILE__, and TMASSERT() macros; behaviorcontrolled by preprocessor definitions to support Debug, Development, Profile, and Release builds.--Eliminated triangulation and TTL (Template Triangulation Library). It reallywasn't contributing anything to user understanding to draw sorta-rivers.--Rewrote parts of subpolygon generation and completely rewrote crease patterngeneration. There are no more 2-valent vertices, which reduces the number ofvertices, creases, and facets, relative to all previous versions. Numerouschanges to tmPoly, tmPath, and tmNode classes. Crease pattern is now generatedduring tmPoly::BuildPolyContents() (formerly BuildSubPolys()).--Now tmPoly, not tmTree, inherits from tmFacetOwner. This way, each majorpolygon owns the facets it encloses, which lets us build some polys in a treewithout having to have them all defined.--Depth generation is now much simpler. Eliminated many unneeded functions. Newapproach uses the "ridgeline" machinery introduced in crease pattern generation.--Replaced many usages of boolean combinations of member flags with calls tomember functions.--Fixed a bug in which inspector panels and view settings panels would vanishafter the first open document.--After all this, the current version now generates crease patterns and foldedforms with maximally simplified crease patterns. To do: generate full MVassigment.20050502 After a long hiatus...--Added a log window in debugging builds.--Added a check to make sure we're building with wxW 2.5.3 or higher.--Fixed a bug in which screen image was redrawn incorrectly at the end of adrag.--Rewrote window position/size persistence code to use MOVE and SIZE eventsproperly and put behavior in a common frame class, tmwxPersistentFrame.--Fixed a bug in which the folded form image was not getting redrawn afterresize.--Fixed a bug in which redrawing after commands was happening before the treegot fully cleaned up. (Need to pay attention to tmTreeCleaner scope.)--Made ALM optimization perform screen updating only at the end of eachiteration of the outer loop of optimization, rather than at fixed periodicintervals (as in other optimizers).--Changed dots in rendering from zero-length lines (non-standard for wxWindows)to circles. This is better supported by Mac Core Graphics rendering.--Replaced "About" box with splash screen artwork. (TBD: redraw artwork.)20040817--Added "Select non-two-colorable vertices" command in debug builds.--Changed "Range" to "Depth" in model to conform to the usual graph theoreticterminology.--Added wxHSCROLL, wxVSCROLL to tmwxDesignCanvas ctor, which insures Mac versiongets scroll bars.--Fixed a bug in computation of tmPath::mMinDepth, tmPath::mMinDepthDist thataffected paths incident on the root node.20040802--Switched the optimizer over to ALM to give it some exercise.--Added Perturb Nodes command to model and GUI.--Added tmFacetOwner::CalcHasPlanarCreases(..), which allows a more gracefulfailure in the (not uncommon) event that the crease pattern contains crossingcreases.--Added new member variables to support the concept of "feasibility", asdistinct from "validity". "Feasible" means a pattern satisfies (a) the pathequations, (b) any conditions that have been created. The term "valid" will beused only to indicate when a data structure has been fully built and/or inconnection with corruption issues. Changes to tmPath, tmCondition, tmTree.--Infeasible conditions are now displayed in red (like infeasible paths) intwmxDesignCanvas.--Added reporting of feasibility in tmNLCOTester.cpp and tmModelTester.cppprojects.--Added two more files for testing edge and strain optimization intmModelTester project.--Fixed a bug in poly construction in which inset paths were getting theirmOutsetPath instances pointing to the wrong outset path.--Fixed a bug in segment reversal that arose when the root node was an interiorleaf.--In stub finder, stubs are now sorted by length, longest first so it appearsat the top of the list (usually it's the first choice).--Fixed a bug in the stub finder so that zero-length stubs are not suggested.--Added Resources folder containing Mac icons and property list.--Added class tmwxButtonSmall and tmwxButtonMini. Adjusted font sizes indialogs.--Removed unused windowID argument from ctors from my window classes derivedfrom wxW window classes.20040708--Added class tmwxPrintout. Will use this to implement a friendlier printout.--Added tmwxDesignCanvas::MaximizePaperSize() and implemented "Fit to Screen"command.--tmwxPrintout now sets the mPrinting flag of twmxDesignCanvas directly so it'sno longer necessary to check the type of the wxDC.--tmwxDesignCanvas always fits its image into the DC when we're printing sothat the crease pattern exactly fills up the printed page.--Scale and filename appear in the printout (also in Print Preview).--There is a residual bug in crease construction; building creases with thefile edge_optimization/centipede_after_edge_opt.tmd5 will cause a failedassertion. This will need to be addressed.20040620--Fixed a bug in tmwxConditionNodeFixedPanel that wasn't accepting editedvalues.--Turned off tmwxScopeTimer in all calculations (it was getting irritating).--Added key combination to "Edit>Set Edge Lengths...".--Condition lists now let you make multiple selections and delete them bykeystroke or Edit menu command.--Tweaked what gets displayed in tmwxCreasePanel.--Added class tmConditionOwner. Not really needed, but now every part class hasa corresponding owner class.--Facets are now built at the same time as creases, are visible in design view,and can be turned on/off in view settings.--Facets are shown in the folded form view and are highlighted if selected.--Added tmFacet::mOrientation and associated enum values and getters.--Facet orientations are now computed in tmTree::CleanupAfterEdit().--Moved KindExtra out of tmPart and into tmVertex and tmCrease, renaming toVertexBend and CreaseBend, respectively. Changed the names of the associatedenums.--More new fields needed for crease computation: tmTree::mIsTwoColorable tmFacet::mFromFacet tmVertex::mIsBorderVertex--Made tmTree::BuildTriangles() & tmTree::KillTriangles() private.--Added lots more view settings, and re-laid-out the view settings panel.20040603--Modified tmPath::GetOrMakeVertex(..) so that all path-owned vertices stayordered in distance from the front node of the path. This is needed tocorrectly compute range.--Fixed the computation of range for vertices owned by paths.--Added type tmPart::Bend with 3 values.--Changed bool tmVertex::misBendVertex to Bend tmVertex::mBend. Added a getter.--Added tmCrease::mBend, so that creases can also have a bend assigned. Added agetter.--Rewrote bend computation and propagation. Bend vertices and creases are nowproperly identified and are (temporarily) color-coded in the design view.--Added private declarations in tmDpptrArray<T> to hide some mutating ancestormethods that aren't yet supported properly.--Added "Edit>Make Node Root" command.--Lots of small tweaks and improvements to range/bend calculations. Beganimplementing analysis of segment reversals.--Folded form is now always aligned to the upper left corner of its window.--Added handler for special case of unranged border vertex, which allows thecomputation of the folded form for some incompletely optimized patterns.--Modified the time-splitting between GUI and math in tmwxOptimizerDialog<T> toinsure that a full screen update happens during a GUI slice. Made the GUI/mathsplit a const definable quantity.--Got rid of a bunch of GetParts<P> calls outside of tmCluster by replacingthem with the appropriate tmCluster methods. Eliminated all but one "#ifdefEXPLICIT_TEMPLATES".--Added some static lines to inspector panels.--Added tmwxMessageBox(..) as a replacement for ::wxMessageBox(..) thatword-wraps its text. Behavior defaults to ::wxMessageBox(..) on Mac. Icons arenot yet supported on other platforms.--Added display of individual part indices to inspector group panel for smallselections.--Changed field "Bend mBend" to "KindExtra mKindExtra" to reflect the fact thatI'm using this field to denote bend (for hinge creases & vertices) and axialreversal (for axial creases).--Action>Build Creases immediately puts you into Creases View. Action>KillCreases puts you back in Design View.20040531--Major changes to the model: new members in tmTree: mIsPolygonValid, mIsVertexRangeValid new members in tmNode: mRange, mElevation new members in tmPath: mMinRange, mMinRangeDist, mFrontReduction, mOutsetPath new members in tmVertex: mRange, mElevation, mIsBendVertex new Kind enum within tmCrease: GUSSET Added assorted member functions within model for purpose of computing range and bend data.--Because of all the model changes, when reading version 4 files, all polys,vertices and creases are killed immediately and will have to be rebuilt.--Add display of owners for all objects in their inspector panels andsupporting fns within tmwxStaticText.--Any time any polygons are killed, all creases now get killed automatically.--Added "Edit>Select Part...", which makes it possible to browse any part ininspector if you know its index; can be used to select among overlapping parts,and is helpful for debugging.--Added tmwxFoldedFormFrame, which displays the folded form if the creasepattern exists and has valid vertex range data.--Added View menu to main frame so it's present even with no documents around.--Moved View menu construction and event handling into tmwxApp so it can beshared by tmwxApp, tmwxMainFrame, and tmwxDoc.--Restructured tmwxInspectorFrame to eliminate many overloadedSetSelection(..), replacing with the template function SetSelectionP<P>, usingnew traits class PanelTraits<P>.--Reorganized the directories within tmwxGUI, grouping all document-relatedclasses in their own folder.--Added tmCluster::Contains<P>(P*) and moved specializations oftmCluster::GetParts<P>() into header as inline functions. NOTE TO CARLOS: checkto see if this fixes the problem gcc had with GetParts<P>; that is, trycompiling with the definition of EXPLICIT_TEMPLATES commented out.--Added some explanation alerts when "Build Polygons" and "Build Creases" isunsuccessful.--Altered tmNLCOTester to optionally use symmetry constraints in the circlepacking test problem, so that it has both equality and inequality constraints.--Added tmwxOptimizerDialogBase::mReason and associated routines that supportproviding reason for abnormal termination of an optimization to the user.--Added many alert functions to tmwxDoc giving more explanation for abnormaltermination of an optimization.--Added support for the "mode" flag in CFSQP; instead of using 100 for allcases, it can now be set for different optimizers, and scale optimization nowuses 110, which matches the value used in TM4. Previously, mode=100 was givingpoor convergence even for fairly simple problems with equality constraints inscale optimization. However, mode=110 gives poor convergence for edgeoptimization, hence the need to allow different settings for differentoptimizers.--FINALLY figured out how to implement keystroke cancellation in the progressdialog! (Override tmwxOptimizerDialogBase::AcceptsFocus() to return true.) Didit. It works.--Implemented class tmNLCO_rfsqp, which uses the latest optimization softwarefrom AEM Design. Added it to tmNLCOTester.h/.cpp.--Sample files that used to be in Source/Test/Test_docs are now in folderSamples.--tmModelTester.cpp has been expanded to test the model in console mode,reading its own test files. Both test code and files are now in their ownfolder, Source/Test/tmModelTester/. tmModelTester also reports the type ofoptimizer, so it can be used to profile the various optimizers against eachother on real TreeMaker problems.--Other test files (Test_docs) are now moved out of the Source tree and intotheir own folder, renamed Samples.--class tmNLCO_alm is thoroughly rewritten with many bugs removed. Lower andupper bounds are now handled explicitly, rather than being treated asadditional constraints, which improves the efficiency considerably.--implemented wxStopWatches within tmwxOptimizerDialog<T> that insure that timeis split evenly between doing calculation and doing screen updates. This speedsup perceived calculation because the screen isn't unnecessarily updated.20040525--Fixed a bug in click processing that was invoking tmTree::CleanupAfterEdit()after any mouse click, resulting in the complete reconstruction of trianglesafter every click, and hence the impossibility of selecting a triangle (becauseit would be immediately deleted and replaced).--Fixed a bug in ConditionNodesCollinearPanel, crash on display of third node.--Fixed bugs in all ConditionPath...Panels, in the display of the path index.--Upgraded wxWidgets to CVS HEAD 20040522. Discovered that (on Mac, at least)there's a problem with setting focus. CVS HEAD 20040315 still works, butdoesn't support variant window sizes.--Added routine tmwxViewSettingsPanel::AddAllNoneBtn(..), enforces commonalityin view settings panel.--Added class tmwxCheckBoxSmall, used in tmwxViewSettingsPanel, which makes useof variant window sizes. Checks wxWidgets version before usingSetWindowVariant(). --Tweaked GUI values in tmwxViewSettingsPanel.--Made tmVertexOwner::GetOrMakeVertex(..) virtual; addedtmNode::GetOrMakeVertex(..) and tmPath::GetOrMakeVertex(..) overrides, givingthe latter behavior that a newly-created vertex splits any crease that it lieson top of. This will allow the construction of tmFacets from the network ofcreases and vertices, which I'll be adding shortly.--Fixed a bug in tmwxDoc in which EX_BAD_SPLIT_PARTS was not getting caughtsometimes when nodes and/or edges are deleted.--Fixed a bug in tmTree::KillSomeNodesAndEdges() in which EX_BAD_SPLIT_PARTSwas getting erroneously thrown if the selection contained sub nodes.--Added mRange and mElevation fields to tmNode and tmVertex along with getters,view settings, and display of same. At the moment, they aren't used foranything critical and are not put/get to streams. I'll be filling out theimplemention of these quantities over the coming weeks.20040520--Rewrote tmTree::GetConvexHullNodes(), renamed to CalcBorderNodesAndPaths(),to fix a bug in which it was not properly constructing the convex hull.--Rewrote portions of tmPolyOwner::BuildPolysFromPaths(), tmTree::BuildPolys(),and tmPoly::BuildSubPolys() to properly handle the situation where a nonconvexpolygon is constructed.--Altered palette updating to reduce flicker; panels are only swapped withinpalettes if the type of displayed object changes.--Added template specialized GetPanel<P>() to tmwxInspectorFrame in preparationfor eventually replacing many overloaded SetSelection() routines with a singletemplated version.--Added "Edit>Select Unpinned Parts" command.20040511--Put in lots of "#include <iostream>" and "using namespace std;", both thoseidentified by Carlos and others I found when I went back and built some testprojects.--Restored two rows of three buttons each in view settings (reduces palettesize).--Added Split Selected Edge command (though this should be rewritten tovalidate the dialog before closing).--Fixed tmModelTester, which hadn't been updated to reflect other changes inthe model.20040509--Realized Carlos was right to give his gcc-based workarounds their ownpreprocessor symbol, so that we can turn on and off individual fixes. RestoredEXPLICIT_TEMPLATES. (BTW, this will have to be gcc-specific, because CW doesn'tsupport "export template" yet.)--Hooked up more menu commands in tmwxDoc, added a few more query fns to themodel to reduce code within the huge twmxDoc::UpdateUIorCommand().--Added tmPath::TestIsActive() and tmPath::TestIsValid() to improve consistencyin those tests througout the model (and reduce the number ofsometimes-inconsistent floating-point literal constants). More needs to be donein tracking down literals and replacing them with common constants orhigher-level functions.--Modified classes tmStubFinder and tmStubInfo to eliminate duplicate stub setsand to allow one to identify stubs with more than 4 active paths before callingtmTree::AddStub(..).--Hooked up the new and improved tmStubFinder to menu items, added a ::wxSingleChoiceIndex() dialog for picking among the candidates, added more::informationon each choice: the lengths of the two pieces of the split edge and all nodeswith which active paths are formed. Much friendlier than the pop-up menu in TM4!--Tweaked colors in tmwxDesignCanvas and placement/size of scale.--Delaunay triangles (tmTriangles) are now always built as part of cleanup and their rivers are visible in Tree view.--If rivers are visible, we also draw the border paths in the same color(whether or not border paths are selected to be shown).--Started adding tmFacet to model (in preparation for full M/V assignment).This doesn't (yet) change the file structure.--Eliminated mConditionID and CONDITION_ID macro in favor of new tag system fordynamic type, which is implemented in tmPart. There are LOTS of changesthroughout the model and GUI, notably a complete elimination of switch()statements to resolve condition type. The new system is also more simplyextendible for adding new types.--More extensive use of std::string in I/O, which offers some protectionagainst buffer overflow if an improperly formatted stream is encountered.--Eliminated tmPart::PutPOD() and GetPOD() functions for shorts and longs;integral types are either int or size_t.--Added more checks for corrupted streams in stream I/O in model and addedexception handling on file open in tmwxDoc. If a file is corrupted, you willnow get one of several dialogs giving some indication of the possible cause.--Unrecognized conditions are ignored as before, but now you get a dialogletting you know how many were ignored if that happened.--Collected common behaviors of tmwxInspectorFrame and tmwxViewSettingsFrameinto a common ancestor class, tmwxPaletteFrame.--Added command-key combinations for view settings in menus--Changed tmwxViewSettingsPanel to 3 columns. This reduced the height of thepalette and thus reduced the need for collapsibility so I removed all ofCarlos's additions to support collapsible subpanels.20040423--Reimplemented the calculation dialog through classes tmwxOptimizerDialogBaseand tmwxOptimizerDialog. Works well on Mac.--Merged in Carlos's version of tmwxOptimizerDialogBase for GTK.--Added compiler switch so that extra information in inspector panels doesn'tshow up in release builds.--Implemented tmwxDoc::SubmitCommand(..) within inspector panels when nodes,edges, or the tree get edited from the inspector panel.--Added tmConditionNodeCombo to model, tmwxConditionNodeComboPanel to GUI, andmenu commands to create them.--Added class tmwxScopeTimer to report on the time required for optimizations.--Time is reported only in debug builds.--Fixed a bug in file writing that used '\r' instead of '\n' for line endingssometimes.20040421--Fixed a bug in window activation in which the Mac menu bar was not beingproperly set.--Added queries for major and minor-ness of vertices and creases in model.--Added view options for major and minor vertices.--Redefined preset view settings.--Added menu commands for preset view settings.--Moved the main window offscreen (Mac only).--Discovered, but haven't fixed, a problem in the calculation progress dialog:it doesn't grab program control like a modal dialog so if you click onsomething else while a calculation is going on, things get screwed up. Needswork!20040420--Fixed bug in responding to Clear command that left a node panel visible.--Properly handled clicking on a blank document (to create a new node).--Fixed a crashing bug in drawing node circle for exactly one node.--Removed class tmwxTreeViewFrame. Will reimplement in the future if needed.--Rearranged a lot of menu commands.--Turned on a few more menu commands.--Added twmxGroupPanel so that group selections gets their own inspector panel.--Implemented tmwxCommand and tmwxDoc::SubmitCommand(..). Commands are not yetundoable, but this lays the ground work to make them so.--Turned inspector panel part pointers back into ordinary pointers, because Iwant to keep tmDpptr<> for use only inside the model.--Added a timer to the twmxOptimizerDialog::UpdateScreen() method to insurethat the overhead imposed by screen updating is a fixed fraction of thecalculation time.20040419--Added Show/Hide capability to inspector and view settings palettes, addedView menu commands to do the same. Added Close handler for platforms that put aclose box in the window title bar.--Changed part references in inspector panels to tmDpptr<P> to eliminatedangling pointers after deletion.20040418--Fixed a significant model bug in the computation of the universal molecule(tmPolyOwner::BuildPolysFromPaths(..)), that caused a repeatable crash inTreeMaker 4.x. Added separate view settings for Node and Edge conditions.20040416--Implemented changes suggested by CAF to permit compilation under gcc.*******************************************************************************/