Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
what_is_new_8_12_0 [2026/06/26 20:29]
admin
what_is_new_8_12_0 [2026/07/08 05:31] (current)
hermann [Interoperability]
Line 9: Line 9:
 ==== Data type ==== ==== Data type ====
  
-  * ''​ElevationGraphType''​ / ''​ElevationGraphData'' ​— core data structure storing the elevation graph, including basic operations to construct, manipulate, and query it.+  * [[Elevation Graph Type]] ​— core data structure storing the elevation graph, including basic operations to construct, manipulate, and query it.
  
 ==== Functors ==== ==== Functors ====
  
-  * **CreateElevationGraph** ​— creates an elevation graph from DEM information. +  * [[Create Elevation Graph]] ​— creates an elevation graph from DEM information. 
-  * **GetElevationGraphInfo** ​— retrieves basic information about the graph (number of nodes, edges, etc.). +  * [[Get Elevation Graph Info]] ​— retrieves basic information about the graph (number of nodes, edges, etc.). 
-  * **GetElevationGraphTopsAndBases** ​— retrieves the list of all patches corresponding to tops and bases. +  * [[Get Elevation Graph Tops And Bases]] ​— retrieves the list of all patches corresponding to tops and bases. 
-  * **FilterElevationGraph** ​— removes (filters) nodes from the graph. +  * [[Filter Elevation Graph]] ​— removes (filters) nodes from the graph. 
-  * **FindElevationGraphBases** ​— retrieves the nodes that are bases reachable from a given top node. +  * [[Find Elevation Graph Bases]] ​— retrieves the nodes that are bases reachable from a given top node. 
-  * **FindElevationGraphPaths** ​— retrieves all nodes reachable from a given top node; a new option allows the search to also include parent nodes (nodes above a given node) when finding paths between tops and bases. +  * [[Find Elevation Graph Paths]] ​— retrieves all nodes reachable from a given top node; a new option allows the search to also include parent nodes (nodes above a given node) when finding paths between tops and bases. 
-  * **GetElevationGraphCommonPathsSummaries** ​— retrieves information about common paths between nodes of two top nodes. +  * [[Get Elevation Graph Common Paths Summaries]] ​— retrieves information about common paths between nodes of two top nodes. 
-  * **SaveElevationGraph** ​— saves the graph in JSON format (and DOT format for debugging).+  * [[Save Elevation Graph]] ​— saves the graph in JSON format (and DOT format for debugging).
  
 ==== Conversions ==== ==== Conversions ====
  
-  * ''​ElevationGraph'' ​→ ''​NeighborhoodTable'' ​— allows the graph to be used wherever neighborhood tables are expected. +  * [[Elevation Graph Type]] ​→ [[Neighborhood Table]] ​— allows the graph to be used wherever neighborhood tables are expected. 
-  * ''​ElevationGraph'' ​→ ''​String''​ (JSON) — serialises the graph to a human-readable JSON representation.+  * [[Elevation Graph Type]] ​→ ''​String''​ (JSON) — serialises the graph to a human-readable JSON representation.
  
 ==== Integration and scripting ==== ==== Integration and scripting ====
  
   * Elevation graphs can now be used as execution-sequencing tokens (force execution order between functors).   * Elevation graphs can now be used as execution-sequencing tokens (force execution order between functors).
-  * A carrier functor was defined for the ''​ElevationGraph''​ type.+  * A carrier functor was defined for the [[Elevation Graph Type]].
   * The engine now reports whether a conversion between two data types is lossless or not, using an additional information field in the data converter factory.   * The engine now reports whether a conversion between two data types is lossless or not, using an additional information field in the data converter factory.
   * The criteria used to detect when it is safe to remove a carrier functor from a script without changing its execution semantics were expanded.   * The criteria used to detect when it is safe to remove a carrier functor from a script without changing its execution semantics were expanded.
Line 40: Line 40:
 ==== Test coverage ==== ==== Test coverage ====
  
-Test cases were added for all of the above functors and conversions (''​CreateElevationGraph''​''​FilterElevationGraph''​''​GetElevationGraphInfo''​''​GetElevationGraphTopsAndBases''​''​FindElevationGraphBases''​''​FindElevationGraphPaths''​''​SaveElevationGraph''​, both conversions,​ and ''​GetElevationGraphCommonPathsSummaries''​).+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]]).
  
 ---- ----
Line 50: Line 50:
 ==== Data type ==== ==== Data type ====
  
-  * ''​SpatialIndex2DPointType''​ / ''​SpatialIndex2DPointData'' ​— wraps the Boost R-Tree with the standard Dinamica type interface; defines the basic operations to build and query the index.+  * [[Spatial Index 2D Point Type]] ​— wraps the Boost R-Tree with the standard Dinamica type interface; defines the basic operations to build and query the index.
  
 ==== Functors ==== ==== Functors ====
  
-  * **CreateSpatialIndexFor2DPoints** ​— builds a spatial index from a set of 2-D points. +  * [[Create Spatial Index For 2D Points]] ​— builds a spatial index from a set of 2-D points. 
-  * **FindNearest2DPointsFromSpatialIndex** ​— queries the index using a set of probe points and returns the nearest neighbours.+  * [[Find Nearest 2D Points From Spatial Index]] ​— queries the index using a set of probe points and returns the nearest neighbours.
  
 ==== Integration and scripting ==== ==== Integration and scripting ====
  
-  * A carrier functor was defined for the ''​SpatialIndex2DPoint''​ type+  * A carrier functor was defined for the [[Spatial Index 2D Point Type]]
-  * The display name for ''​SpatialIndex2DPoint'' ​was corrected.+  * The display name for [[Spatial Index 2D Point Type]] ​was corrected.
  
 ==== UI support ==== ==== UI support ====
Line 68: Line 68:
 ==== Test coverage ==== ==== Test coverage ====
  
-Test cases were added for both ''​CreateSpatialIndexFor2DPoints'' ​and ''​FindNearest2DPointsFromSpatialIndex''​.+Test cases were added for both [[Create Spatial Index For 2D Points]] ​and [[Find Nearest 2D Points From Spatial Index]].
  
 ---- ----
Line 77: Line 77:
   * **Configurable window size** — new options allow the number of lines and columns of the neighbourhood search window to be specified, making it possible to consider non-immediate neighbours.   * **Configurable window size** — new options allow the number of lines and columns of the neighbourhood search window to be specified, making it possible to consider non-immediate neighbours.
   * **Orthogonal-border option** — a new flag restricts the neighbourhood relationship to pairs of features that share an orthogonal border only.   * **Orthogonal-border option** — a new flag restricts the neighbourhood relationship to pairs of features that share an orthogonal border only.
-  * **Reflexive relations** — ''​NeighborhoodTable'' ​now supports reflexive self-relations; ​''​CalcNeighborhood'' ​always includes a reflexive entry for each neighbour to ensure completely isolated features are still represented in the result. +  * **Reflexive relations** — [[Neighborhood Table]] ​now supports reflexive self-relations; ​[[Calc Neighborhood]] ​always includes a reflexive entry for each neighbour to ensure completely isolated features are still represented in the result. 
-  * **Progress reporting** — ''​CalcNeighborhood'' ​now reports execution progress.+  * **Progress reporting** — [[Calc Neighborhood]] ​now reports execution progress.
   * **Performance optimisation** — the functor was optimised to avoid inspecting every cell of the neighbourhood window unnecessarily.   * **Performance optimisation** — the functor was optimised to avoid inspecting every cell of the neighbourhood window unnecessarily.
-  * Compatibility of ''​CalcSpatialLag'' ​with the legacy behaviour of ''​NeighborhoodTable'' ​was preserved.+  * Compatibility of [[Calc Spatial Lag]] with the legacy behaviour of [[Neighborhood Table]] ​was preserved.
  
 ---- ----
Line 88: Line 88:
   * **Deterministic output** — when saving a script in EGO format, lines that share the same scheduler rank are now sorted by functor name, alias, banner, and functor ID as a tiebreaker, producing reproducible output.   * **Deterministic output** — when saving a script in EGO format, lines that share the same scheduler rank are now sorted by functor name, alias, banner, and functor ID as a tiebreaker, producing reproducible output.
   * **Improved variable-name generation** — the script writer no longer derives automatic variable names from functor IDs; it now generates shorter sequential names.   * **Improved variable-name generation** — the script writer no longer derives automatic variable names from functor IDs; it now generates shorter sequential names.
-  * **Functor rank as a property** — the scheduling rank of a functor can now be retrieved as a functor property. +  * **Functor rank as a property** — the scheduling rank of a functor can now be retrieved as a [[ego_script#​functor_properties|functor property]]
-  * **Configurable comment wrapping column** — a new option controls the column at which long comments are broken into multiple lines when writing scripts in EGO script format.+  * **Configurable comment wrapping column** — a new option controls the column at which long comments are broken into multiple lines when writing scripts in EGO script format. See [[ego_script#​script_generation_options|Script generation options]].
   * **Java API** — ''​Script::​addNicknameToLocalSubmodelFactory()''​ was added to the Java binding, allowing a submodel in the local factory to be temporarily renamed via a custom nickname.   * **Java API** — ''​Script::​addNicknameToLocalSubmodelFactory()''​ was added to the Java binding, allowing a submodel in the local factory to be temporarily renamed via a custom nickname.
  
Line 181: Line 181:
 ==== Banners ==== ==== Banners ====
  
-  * **SetTableColumnName** — a banner was defined to show the new column name; port editors are now presented in separate tabs. +  * **[[Set Table Column Name]]** — a banner was defined to show the new column name; port editors are now presented in separate tabs. 
-  * **Add Table Column** — the banner now includes information about the type of the column being added. +  * **[[Add Table Column]]** — the banner now includes information about the type of the column being added. 
-  * **GetTableColumn** — a banner was added to show the column index or name being retrieved. +  * **[[Get Table Column]]** — a banner was added to show the column index or name being retrieved. 
-  * **Extract Categorical Map Attributes / Get Table From Key** — utility functions for generating banners were added, along with a banner that better illustrates the interaction between those two functors.+  * **[[Extract Categorical Map Attributes]] [[Get Table From Key]]** — utility functions for generating banners were added, along with a banner that better illustrates the interaction between those two functors.
  
 ==== Other UI improvements ==== ==== Other UI improvements ====
Line 201: Line 201:
 ==== Engine ==== ==== Engine ====
  
-  * ''​SYSTEM_COMMUNICATION''​ was added as a new ''​LogSubsystem''​ value.+  * ''​SYSTEM_COMMUNICATION''​ was added as a new ''​LogSubsystem''​ value. See [[dinamica_console|Dinamica Console]] for the full list of log subsystem flags.
   * ''​LOG_DEBUG_SUBSYSTEM''​ and ''​LOG_DEBUG_2_SUBSYSTEM''​ macro usages were standardised across the codebase for the following subsystems: ''​GENERAL'',​ ''​EXECUTION_BASICS'',​ ''​MAP_HANDLING'',​ ''​SYSTEM_COMMUNICATION'',​ and ''​FUNCTOR_EXECUTION''​.   * ''​LOG_DEBUG_SUBSYSTEM''​ and ''​LOG_DEBUG_2_SUBSYSTEM''​ macro usages were standardised across the codebase for the following subsystems: ''​GENERAL'',​ ''​EXECUTION_BASICS'',​ ''​MAP_HANDLING'',​ ''​SYSTEM_COMMUNICATION'',​ and ''​FUNCTOR_EXECUTION''​.
   * Unused log-related definitions were removed.   * Unused log-related definitions were removed.
Line 213: Line 213:
 ===== 11. Calculate functor family — abbreviated syntax and deprecations ===== ===== 11. Calculate functor family — abbreviated syntax and deprecations =====
  
-  * **Abbreviated syntax remapped** — When reading and writing models, the abbreviated syntax constructs ''#​[]'',​ ''##​[]'',​ ''​%[]'',​ and ''​$[]''​ now always map to ''​CalculateMap''​''​CalculateCategoricalMap''​''​CalculateLookupTableValues''​, and ''​CalculateValue'' ​respectively — instead of mapping to their legacy ''​*2''​ counterparts as before. +  * **Abbreviated syntax remapped** — When reading and writing models, the [[ego_script#​calculator_functor_shorthand|abbreviated syntax]] constructs ''#​[]'',​ ''##​[]'',​ ''​%[]'',​ and ''​$[]''​ now always map to [[Calculate Map]][[Calculate Categorical Map]][[Calculate Lookup Table Values]], and [[Calculate Value]] ​respectively — instead of mapping to their legacy ''​*2''​ counterparts as before. 
-  * **New abbreviated syntax construct** — the construct ''​%%[]''​ now maps to ''​CalculateLookupTableKeysAndValues''​+  * **New abbreviated syntax construct** — the construct ''​%%[]''​ now maps to [[Calculate Lookup Table Keys And Values]]
-  * **Configurable abbreviated syntax output** — A new option (//Tools// -> //Options// | //EGO Script// | //Use abbreviated syntax for Calculate family functors//) lets you control whether functors in the ''​Calculate''​ family are written using the abbreviated syntax when a script is saved. +  * **Configurable abbreviated syntax output** — A new option (//Tools// -> //Options// | //EGO Script// | [[ego_script#​script_generation_options|Use abbreviated syntax for Calculate family functors]]) lets you control whether functors in the ''​Calculate''​ family are written using the abbreviated syntax when a script is saved. 
-  * **Deprecated functors** — The following functors are now deprecated and should no longer be used: ''​CalculateMap2'',​ ''​CalculateCategoricalMap2'',​ ''​CalculateLookupTable2'',​ and ''​CalculateValue2''​.+  * **Deprecated functors** — The following functors are now deprecated and should no longer be used: ''​CalculateMap2'',​ ''​CalculateCategoricalMap2'',​ ''​CalculateLookupTable2'',​ and ''​CalculateValue2''​. Use [[Calculate Map]], [[Calculate Categorical Map]], [[Calculate Lookup Table Values]], and [[Calculate Value]] instead.
  
 ==== Example: traditional syntax ==== ==== Example: traditional syntax ====
Line 253: Line 253:
 ==== Interoperability ==== ==== 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.+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 [[ego_script#​conversion_between_forms|Conversion between forms]] for details.
  
 ---- ----