Release Notes - SCIRun Version 1.22 - July 14, 2004
Content:H1,H2
Data Sets
- New "Matlab" directory containing geometry.mat and timeseries.mat used in the MatlabInterface sample nets to demonstrate capabilities of new MatlabInterface modules.
New Modules
SCIRun Modules (Category in parentheses)
- NodeGradient (FieldsData) module for computing gradients of node centered
LatVolFields.
- ApplyInterpMatrix (FieldsGeometry) module interpolates the Source field onto the geometry of the Destination field using the Interpolant matrix to do the projection.
- ToStructured (FieldsGeometry) module for converting from regular lattices to structured grids.
Teem Modules (Category in parentheses)
- All Unu and Tend modules have been wrapped.
- Add ImageMagick based ImageImporter and ImageExporter (DataIO) modules.
- MatrixToNrrd (DataIO) - converts a SCIRun Matrix to nrrds.
- NrrdToMatrix (DataIO) - converts 1D and Nrrds to a SCIRun Matrix.
- MRITissueClassifier (Segmentation) module to support Tolga Tasdizen's research.
MatlabInterface Modules (Category in parentheses)
- MatlabMatricesReader (DataIO) - reads a matrix from a MATLAB file.
- MatlabNrrdsReader (DataIO) - reads a matrix from a MATLAB .mat file and exports it as a Nrrd.
- MatlabFieldsReader (DataIO) - reads a SCIRun field from a MATLAB file. The module requires that the data in the MATLAB file is formatted according to the guidelines described in the documentation.
- MatlabMatricesWriter (DataIO) - saves a SCIRun matrix in a MATLAB .mat file.
- MatlabNrrdsWriter (DataIO) - saves a SCIRun NRRD object into a MATLAB .mat file.
Module Enhancements
SCIRun Modules (Category in parentheses)
- Added '?' button to open module help.
- Changed readers and writers to have a Set, Execute, Cancel an Find
button. Set will change the module's filename, and exit the UI without
executing the module. Execute will set the filenam, execute the module,
and close the UI.
- All "Choose" modules have a "Use first valid" checkbox which causes the
module to iterate over its connected inputs and use the first valid data.
- Regular Meshes now display formatted printing of Cell, Node, and Face indices in ShowField, Probe, and FieldInfo modules.
- SampleField (FieldsCreate) module now has ring on 3D gauge widget to set number of samples interactively.
- Added VCR buttons to MatrixSelectVector (Math) UI
- Ability to link a viewer's ViewWindows so that interaction in one window, will be duplicated in other ViewWindows.
- Added Viewer's ViewWindow->View... entries to get view from other active ViewWindows.
- Added Viewer's ViewWindow->View...->'Track Viewer Window 0' option to forward mouse events from view window 0.
- Fix saving of Viewer Window variables.
- Save the current visual in the Viewer module.
- Fix ViewWindow inertia mode lockup on Fedora Core 2.
- Viewer lights saved properly.
- MPEG movie recording can save to a path other than the working directory.
- Fix ViewWindow crash bug when autoviewing on single point.
- Change ManageFieldData to preserve field data type if possible.
- Change ClipField to ignore widget if there is a clip mesh.
- Add interpolant matrix output support to the ClipByFunction, FieldBoundary, IsoClip, Isosurface, FieldBoundary, and ChangeFieldDataAt modules.
- Replace TetVolMesh::Node::array_type with a statically allocated stack
vector for performance enhancement.
- Support for edge emphasis of superquadratic tensors in ShowField.
- Use fabs for vector->rgb conversion in ShowField.
- Support eigenvector generation for tensor visualization within ShowField.
- Performance enhancements for StreamLines module.
- More efficient IsoClip find_ functions.
- Add normals option to the FieldMeasures module.
- ClipField saves widget positions now.
- Fix Unstructure (FieldsGeometry) to preseve node ordering in scanline orientation.
- Fix uninitialized sigma crash in ScalarFieldStats.
- Fix Isosurface-quadtypeface.net crash bug associated with ImageMesh::get_neighbors().
- Fix const DenseMatrix compilation error.
- Fix TransformData3 compilation failure if third field type was different
than others.
- Use safe_normalize when computing TriSurfMesh normals, fixes degenerate
triangle crash.
- Wrap instanced dynamic compilation classes differently to fix include
crash in ClipByFunction, LinAlgUnary, LinAlgBinary.
BioPSE Modules
- Major speedup to ModifyConductivites (Modeling) by moving create_entires outside inner loop.
- Fix SetupFEMatrix crashing if data not at elements, report error
instead.
- Added splash screen image for BioFEM.
Teem Modules (Category in parentheses)
- Using Teem 1.7
- Teem Unu Modules Categorized - The Unu modules were distributed into the subcategories UnuAtoM and UnuNtoZ to make finding specific modules easier.
- Kind axis information added to nrrds.
- Fix NrrdToField to take in 3 nrrds (Points, Connectivity, Data) and be
able to create, structured, unstructured, or regular fields.
- FieldToNrrd can produce 3 nrrds (Points, Connectivity, Data).
- DicomToNrrd changed to DicomNrrdReader.
- AnalyzeToNrrd changed to AnalyzeNrrdReader.
- Added VCR buttons to NrrdSelectTime (NrrdData) UI.
- BioTensor now has the ability to save out computed tensors.
- Optimizations in BioTensor in order to use less memory.
- Use GuiFilename for filenames instead of GuiString in NrrdReader and
NrrdWriter.
Insight Modules (Category in parentheses)
- FieldToImage, ImageToField, NrrdToImage, and ImageToNrrd now work on
Vector images.
Deprecated Modules
SCIRun Modules (Category in parentheses)
- Deprecate BioPSE/Forward/SphereModel module, use SCIRun/FieldsCreate/ClipByFunction instead.
- Deprecate TransformVectorData and TransformScalarData, use TransformData instead.
Fusion Modules (Category in parentheses)
- NrrdFieldConverter module retired. Now use Teem's NrrdToField module
which has the same functionality. SCIRun will automatically instantiate Teem's NrrdToField module when networks ask for a Fusion NrrdFieldConverter module.
Infrastructure Enhancements
- Replace TetVolMesh::Node::array_type with a statically allocated stack
vector for performance enhancement.
- Multiple Notes windows can now be opened at the same time allowing for cut/paste operations.
- New progress bar shows accurate status of loading .net file or PowerApp initialization.
- Module help is now viewed in full HTML format. User is prompted to choose HTML browswer.
- The license has changed to the MIT License.
- Added exertior product to ColumnMatrix.
- TetVolMesh::refine_elements and refine_elements_levels added for tet refinement.
- Use const reference for GenericField::value() functions.
- Fix GeomCones polycount.
- More efficient GeomCones using GL_QUAD_STRIPS.
- Remove unused GUI elements from 3D Widget options.
- Fix broken io for all Struct*Mesh types.
- Fix thread lock problem for RHE and probably RH9.0.
- Change port disconnect behavior such that disconnecting a running module
doesn't deadlock.
- Deprecate Core/Math/function parsing in favor of dynamically compiled
C++ code. This was used by the ClipByFunction, LinAlgBinary and LinAlgUnary modules.
- Change Connection Blocking to internally Delete connections while keeping GUI representation up.
- Add Module::presave() callback to give modules a chance to copy all state to GuiVars before their state is written to TCL script.
- Change Mesh::get_weights() functions to use static array for weights.
- Implement LatVolMesh::get_cells for nodes.
- Change Mesh::locate to use const references where possible.
- Add node_reserve and elem_reserve functions to meshes.
- Add debugging asserts to set_value and value calls for fields.
- Use unsigned int as under_type for all meshes.
- Add module runtimes to regression output.
- Use lessthan function for map<> when hash_map not defined.
- Use a better string hash function, use X31 hash.
- Lock PropertyManager more agressively, add copy_properties function.
- Fix typo that was causing dynamic compliation directory to always default to
~/SCIRun/on-the-fly-libs//
- Add MakeReal function that converts double numbers that are: +infinity to max double, -infinity to min double, and NaN to 0. Used only for sending values to the TCL interpreter.
- Change widget_moved(int) method to widget_moved(int,BaseWidget*) signature to allow callback to determine which widget was moved
- Send return value back to TCL when calling [netedit sci_system].
- Removed redundant GuiContext::getSub/setSub methods. Use subVar to create sub-contexts instead.
- Add 'bool GuiSingle::valid()' method to return true if variable exists in TCL scope and is of correct type.
- Evaluate floating point numbers using TCL's 'expr' command to pare down redundant 0's after decimal place.
- Added TCL function initGlobal that will assign a value to a global variable if and only if that variable does not already exist.
- Add TCLInterface::complete_command that returns true if str is a complete TCL script with matching braces.
- Added TCL proc envBool to query the boolean status of an environemnt variable.
- Use Core/Util/Enviroment.h to provide universal environment that works on SGIs, Mac G5's, and Linux.
- In TCL, Use [netedit getenv VARNAME], and [netedit setenv VARNAME VALUE] to interface with environment variables.
- Move some code from SCIRun/src/Dataflow/GUI/Module.tcl out into SCIRun/src/Dataflow/GUI/Port.tcl and SCIRun/src/Dataflow/GUI/Connection.tcl.
- Added procedure genSubnetScript - the core of the network writing algorithm.
- Always send floating point numbers to TCL with a decimal in them so TCL wont cast them to an integer.
- Handle bad values (like inf) better when writing floating point values to networks.
Environment Variables
- Added environment variable SCIRUN_NET_SUBSTITUTE_DATADIR. If true, .nets will automatically substitute SCIRUN_DATA and SCIRUN_DATASET.
- Added environment variable SCIRUN_FAST_QUIT. If true, will not ask user to save before exiting scirun.
- Added environment variable SCIRUN_REGRESSION_TESTING_TIMEOUT. Set to number of seconds before regression test kills SCIRun.
- Added environment variable SCIRUN_HIDE_PROGRESS. If true, all progress bars are hidden. Renamed environment variable SCI_NOSPLASH to SCIRUN_NOSPLASH to be consistent with naming scheme.
- Renamed environment variable SCI_CONFIRM_OVERWRITE to SCIRUN_CONFIRM_OVERWRITE to be consistent with naming scheme.
- Move NEED_ATI_CARD_FIX define to SCIRUN_DRAWARRAYS_DISABLE environment variable.
- Don't ask multiple times about SCIRUN_DATA and SCIRUN_DATASET when loading subnets or a network with multiple sourceSettingsFile calls.
- Add SCIRUN_NOCLEANUPCOMPILE environment variable for debugging dynamically compiled code.
- Removed environment variables PSE_DATA and SCI_DATA.
Network Editor Enhancements
- Saving .net files re-written to be much faster for large networks.
- When writing networks, save out really large numbers in Scientific Notation.
- Added 'Duplicate' option to module menu. Also copies over all associated GUI settings for total duplication of module state.
- Added 'Insert Module' option to connection menu. Inserts module directly into the connections path.
- Added 'Replace' option to module menu. Replaces the module with another one, keeping its connections intact.
- Networks now save out all open ViewWindows and their size and position.
- Allow user re-sizing of panes in main network editor window.
- Added feature of moving by grabbing a connection.
- Added 'SR' button to Subnet Icons to access the Sub-Network Editor.
- Sub-Networks have been revamped to embed their information in the main .net file.
- Sub-Networks retain the old functionality with the 'On Disk' option to have the subnet files be saved seperately from the .net file.
- Subnets have been revamped to embed their information in the main .net file.
- Subnets retain to 'On Disk' option to have the subnet files be saved seperately or as templates.
- All .nets residing in SCIRun/src/Subnets and ~/SCIRun/Subnets/*.net are automatically loaded as templates.
- Added Control-Qtt> keyboard shortcut to quit.
- Fix deletion of dynamic ports.
- Show error when .net files attempt to create connections between ports of different types.
- Added black and white icons to SCIRun Network Editor and module GUIs.
- Connection tracing draws faster.
- Expand Network Information to store creation time and date per Sub-Network.
- Resize module icons when their name has changed.
- Move subnet editor ports right a few pixels.
- Fix bug writing out notes colors.
- Fix TCL error when choosing cancel on setting notes text color.
- Fix reseting notes text color.
- Fix crash when deleting modules with connections to themselves.
- Fix 'Expand Subnet' option for Sub-Network Icons.
- Fix error when removing ports with multiple viewers.
- Register all GUI variables with TCL for saving nets with TCL proc initVarStates.
- Mini network editor view now always displays correctly.
- Don't save invalid connections.
- Rewrite isaDefaultValue to vastly speedup writing of large network files.
- Arrow keys to scroll Sub-Network Editor. Must right-click in canvas to focus first.