Changes The Layers pane shows toggle icons for folders which contain layers. If a folder contains both hidden and shown layers, this is shown using a 'mixed state' icon. The list of layers in the New Map dialog toggles layers using Space / click instead of Enter / double-click. The list of layers in the Merge Drawings / Merge Images / Merge Labels dialog toggles layers using Space / click instead of Enter / double-click. Double-clicking a folder in the list of layers in the Layers pane edits its name. The edit box is positioned to start exactly where the folder name starts, unless the list is too narrow for that. Map window shows tabs for top-level components or folders. Top-level folders that have no components are skipped. Tabs for folders choose one of their layers to be 'current', for visual operation (eg, for adding new objects or for selecting objects using Ctrl-drag) and for panes (eg, Style). If a folder for a tab contains more than one component, the layer context menu for the tab includes the 'Switch to' submenu which allows switching the current tab layer. Tabs for folders are considered to be visible if any of the layers corresponding to the tab are visible. If any of the tab layers are being cached or painted, the tab displays a chevron of the appropriate color. If any of the tab layers have messages, the tab displays an icon. Dropping layers from the Project pane into a map window drops them to the top-level before the active tab. (Fix) Reordering layers by dragging tabs in a map window no longer selects the wrong tab at the end (now correctly selects the tab that was being dragged). Deleting a layer tab for folder from map using the context menu deletes all layers and folders corresponding to the tab except possibly the layer for the producing component if the window is for a virtual map (eg, if you open a drawing, you cannot delete the layer for that particular drawing). Zooming to a layer tab for folder using the context menu zooms to the extent of all layers corresponding to the tab. Toggling a layer tab for folder using the context menu or a double-click shows or hides all layers corresponding to the tab. The Layers pane allows filtering the list of layers using a filter button, similar to the filter button in the Project pane. Specified filters are kept for the duration of the session. The Layers pane has been moved out of the Contents pane. This allows having both the Layers pane and one of the panes in the Contents pane visible at the same time. The shortcuts for individual panes in the Contents pane have been remapped: Ctrl-1 = Component (as before), Ctrl-2 = Record, Ctrl-3 = Select, Ctrl-4 = Style, Ctrl-5 = Transform. The Create Label tool used in layout window is renamed to Create Text. The context menu for a layer tab in a map window includes the new Show in Layers command, which opens the Layers pane and selects the current tab layer. If the layer is in a folder that is collapsed, the command selects the folder. Alt-clicking a layer tab in a map window shows the current tab layer in the Layers pane. Floating / re-docking a window tab is now done via Shift-clicking instead of Alt-clicking. (We are freeing Alt-clicks for other things.) Favorite coordinate systems allow specifying whether applying the system over an old system should keep or override coordinate system metrics. The default is to keep metrics. (Fix) Editing favorite coordinate systems no longer suggests adding an incomplete coordinate system to the favorites (could happen if the dialog was launched from a coordinate system picker for a component that has no coordinate system specified). (Fix) The Fill Sinks transform no longer fails for images with tile sizes different from the default 128x128. Query functions for watersheds have been reworked to use two-stage create / use pattern. First, you have to create a watershed object using one of the new functions. The created watershed object can then be passed to other functions which compute geometry. Specifically: - TileWatershedMake / TileWatershedMakePar - take an image with heights, create a watershed object. TileWatershedMakePar is a parallel variant.
- TileWatershedMakeDir / TileWatershedMakeDirPar - take an image with directions, create a watershed object. TileWatershedMakeDirPar is a parallel variant.
- TileWatershed... - all other watershed functions have been reworked to take the watershed object instead of the image.
The change allows using pre-computed directions for computing all watershed geometry without creating a duplicate of each function. It also allows re-using the same watershed object when computing geometry in different variants. TileWatershedMakeXxx query functions allow creating watersheds with weights (precipitation) for each pixel. To use weights, pass a two-channel image (with either heights or directions in the first channel and weights in the second channel) and pass TRUE for the 'useWeights' parameter. Computing watershed geometry performs much faster due to multiple optimizations, especially on big images that do not fit into memory cache (and even more so on big images that do not fit into physical memory). TileWatershedLinesDownstream / TileWatershedLinesDownstreamPar query functions no longer return total flow for computed lines (no longer computed due to changes in algorithm). Template parameters for Fill Sinks have been renamed: Min delta -> Fill height, Min flow -> Fill flow. TileMakeNew query function has been renamed to TileMake. (This is consistent with all other XxxMake functions. The only function where we now use XxxMakeNew is UuidMakeNew, which uses New because it generates a new UUID.) The memory cache performs much better under heavy load. (This includes multiple optimizations which all apply when the amount of RAM available to the memory cache is not big enough to hold all data to be analyzed and some data has to be spilled to disk. In particular, we found that multiple transforms when run with multiple threads on data that is 2-10x bigger than the cache sometimes deteriorate into access patterns which continuously attempt to load data currently residing on disk, making some other data unload, and then attempting to load data that has just been unloaded. Such access patterns are now detected and protected against.) Destroying big tables in MAP files performs much better when the memory cache is overflown. Destroying temporary tables used by analysis performs enormously faster when the memory cache is overflown. (After doing a lot of optimizations with watersheds, we found somewhat surprisingly that the slowest thing about tables that have a lot more data than fits into the cache is not any of the normal operations like insert or search, but rather deleting the table which has grown to hold a lot of records after it is no longer needed. This item covers several optimizations aimed to help with that. Big tables stored in MAP files will now delete 2-3x faster than before, and temporary tables created for the session now take pretty much no time to delete, at no cost to other operations.) LAS / LAZ dataport uses less space for spatial index and creates it faster. (Fix) LAS / LAZ dataport no longer fails to read modern LAS files which store point count only as a 64-bit value with no 32-bit fallback value. (Fix) LAS / LAZ dataport no longer sometimes crashes on close. (Fix) LAS / LAZ dataport names the file with the spatial index xxx.LAS/LAZ.MAPINDEXP instead of xxx.MAPINDEXP. End of list.
|