Differences
This shows you the differences between two versions of the page.
| 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. |
| ---- | ---- | ||