Table of Contents

Dinamica EGO — version 8.12.0

Changes compared to version 8.11.2:

1. Elevation Graph (new type and functors)

A new data type ElevationGraph was introduced in the engine to represent the hierarchical relationship between patches corresponding to DEM isolines. A full set of functors, conversions, and UI support was implemented around it.

Data type

Functors

Conversions

Integration and scripting

UI support

Test coverage

Test cases were added for all of the above functors and conversions (Create Elevation Graph, Filter Elevation Graph, Get Elevation Graph Info, Get Elevation Graph Tops And Bases, Find Elevation Graph Bases, Find Elevation Graph Paths, Save Elevation Graph, both conversions, and Get Elevation Graph Common Paths Summaries).


2. Spatial Index for 2D Points (new type and functors)

A new data type SpatialIndex2DPoint was introduced to represent an R-Tree spatial index for sets of 2-D points, implemented on top of boost::geometry.

Data type

Functors

Integration and scripting

UI support

Test coverage

Test cases were added for both Create Spatial Index For 2D Points and Find Nearest 2D Points From Spatial Index.


3. CalcNeighborhood improvements


4. Script writing and EGO script format


5. Functor scheduling and grouping


6. Functor copy and paste

The copy/paste subsystem for functors was significantly reworked and several bugs were fixed.


7. Submodel management

New submodel importer

An improved submodel importer is now used by default. The previous importer can be restored via the development options (see §14).

Local submodel management


8. Search improvements

Explorer panel — search by port value

The Explorer search box can now find functors based on the value of their basic-type input ports. The supported port types are:

Search box menu flags

A new toggle was added to the search box menus in the Explorer panel, the Functor Library, and the Issue Panel to control whether additional metadata qualifiers (e.g. is:flag) are included in the search.

Issue Panel filters

New search qualifiers were added for the Issue Panel:

A duplicate entry in the search menu was also removed.

Experimental functor filter

A new search qualifier is:experimental was added and can be used to search for experimental functors in the Explorer panel, the Issue Panel, and the Functor Library.


9. UI: visual display and banners

Functor icons and decoration

Banners

Other UI improvements


10. Logging

Engine

UI


11. Calculate functor family — abbreviated syntax and deprecations

Example: traditional syntax

// Restore the noisy cell/pixels marked for restoration. The value that will be
// assigned to the noisy pixels is derived from a window that grows with the
// current time step.
updatedRestoredImage := CalculateMap [
    if i1 = 2 then
        nbMedian(i2, v1, v1) ? i3
    else
        i3
] cellType nullValue .no .none {{
    NumberMap arePixelsOriginalOrNoisyWithCategories 1;
    NumberMap originalPixelsOnlyInRestoredImage 2;
    NumberMap currentRestoredImage 3;
    NumberValue lK 1;
}};

Example: equivalent abbreviated syntax

// Restore the noisy cell/pixels marked for restoration. The value that will be
// assigned to the noisy pixels is derived from a window that grows with the
// current time step.
updatedRestoredImage := # [
    if #arePixelsOriginalOrNoisyWithCategories = 2 then
        nbMedian(#originalPixelsOnlyInRestoredImage, $lK, $lK) ? #currentRestoredImage
    else
        #currentRestoredImage
] cellType nullValue .no .none;

Interoperability

The application treats both formats completely transparently. Any script written in the abbreviated syntax can be saved or edited, or converted back to the traditional syntax, at any time — without any loss of information. See Conversion between forms for details.


12. Bug fixes and minor improvements


13. Dependency update

Synthetica 3.6.0 — the Synthetica look-and-feel library was updated to version 3.6.0 in both dinamica-nui and dinamica-nui-utils.


14. Development options

A new Development tab was added to the Options dialog (ToolsOptions | Development) consolidating settings that were previously accessible only via keyboard shortcuts or not exposed at all. These options control internal behaviours intended for developers and advanced users, including: