{"id":1333,"date":"2013-11-23T10:16:48","date_gmt":"2013-11-23T10:16:48","guid":{"rendered":"http:\/\/www.geoplanit.co.uk\/?p=1333"},"modified":"2013-11-23T10:16:48","modified_gmt":"2013-11-23T10:16:48","slug":"cityengine-2013-cga-changelog","status":"publish","type":"post","link":"https:\/\/www.geoplanit.co.uk\/?p=1333","title":{"rendered":"CityEngine 2013 CGA Changelog"},"content":{"rendered":"<p>Okay,\u00a0I guess this means CityEngine will be released the week beginning Monday 25th of December? \u00a0At time of writing it wasn&#8217;t available for download on the Customer Care Portal. \u00a0 The help file has had a few additions not least the CGA Changelog section, initially I think large sections may have been rewritten to make more sense. \u00a0 A &#8220;Generate Bridges&#8221; section has been added to the Street Networks part of help file hurrah!<\/p>\n<p><a href=\"http:\/\/www.geoplanit.co.uk\/?attachment_id=1329\" rel=\"attachment wp-att-1329\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1329\" alt=\"ce2013_webinar1\" src=\"https:\/\/i0.wp.com\/www.geoplanit.co.uk\/wp-content\/uploads\/2013\/11\/ce2013_webinar1.jpg?resize=300%2C170\" width=\"300\" height=\"170\" srcset=\"https:\/\/i0.wp.com\/www.geoplanit.co.uk\/wp-content\/uploads\/2013\/11\/ce2013_webinar1.jpg?resize=300%2C170&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geoplanit.co.uk\/wp-content\/uploads\/2013\/11\/ce2013_webinar1.jpg?resize=1024%2C580&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.geoplanit.co.uk\/wp-content\/uploads\/2013\/11\/ce2013_webinar1.jpg?w=1893&amp;ssl=1 1893w, https:\/\/i0.wp.com\/www.geoplanit.co.uk\/wp-content\/uploads\/2013\/11\/ce2013_webinar1.jpg?w=1392 1392w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/cehelp.esri.com\/help\/index.jsp?topic=\/com.procedural.cityengine.help\/html\/manual\/toc.html\" target=\"_blank\">You can analyse the new help file here (it wasn&#8217;t a leak!).<\/a><\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\"><b>Version<\/b><\/td>\n<td valign=\"top\"><b>Changes<\/b><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">2013.1<\/td>\n<td valign=\"top\">changed fundamental behaviour:<\/p>\n<ul>\n<li><b>attr\/const functions evaluation order:<\/b>\u00a0In previous CGA versions,\u00a0<b>attr<\/b>\u00a0and\u00a0<b>const<\/b>functions were evaluated lazily, i.e. when they were used for the first time. Remember that\u00a0<b>attr<\/b>\u00a0and\u00a0<b>const<\/b>\u00a0functions are evaluated only once. This approach gave rise to the non-intuitive behaviour that changing the code of some rule potentially changed the value of an attr. Keep in mind that some functions (and obviously shape attributes) depend on the current shape&#8217;s geometry, and some even change the state of the current shape (e.g.\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_rand.html\"><b>rand<\/b><\/a>). Therefore (non-)evaluation of a const function cold have an influence on rule execution.<br \/>\nStarting with 2013.1, all\u00a0<b>attr\/const<\/b>\u00a0functions are evaluated before the start rule is applied, on the initial shape with a\u00a0<b>seedian<\/b>\u00a0derived from the initial shape&#8217;s\u00a0<b>seedian<\/b>. The initial shape&#8217;s random number generator state is not affected.<br \/>\nWhile the new approach makes CGA coding more &#8220;intuitive&#8221;, it changes the behaviour compared to older versions.<\/li>\n<li><b>inf\/nan checks<\/b>: In previous CGA versions, a number of operation and function float parameters were tested for not-a-number \/ infinity (nan\/inf) values at runtime. In most cases, such values were replaced with 0 and a warning was issued. In others, the operation was aborted.<br \/>\nCGA 2013.1 introduces a unified inf\/nan behaviour: checking of\u00a0<b>all<\/b>\u00a0float paramers of builtin functionality can be set to either &#8220;ignore&#8221; (= don&#8217;t check), &#8220;abort with error&#8221; or &#8220;replace with zero&#8221; see\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/manual\/ui\/cep\/grammarcore.html\">Grammarcore Preferences<\/a>). The default behaviour is &#8220;replace with zero&#8221;, which comes closest to the classic behaviour.<br \/>\nWhile CGA 2013.1 provides more debugging capabilities regarding inf\/nan values, the behaviour is different than in previous versions.<\/li>\n<li><b>Intra-occlusion and reports, print output, CGA error reporting:<\/b>\u00a0During resolving inta-occlusion-queries, some shapes and sub-shapetrees get deleted (and re-evaluated). The reports issued by\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_report.html\"><b>report<\/b><\/a>\u00a0operations by the rule of that shapes (and the output of\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_print.html\"><b>print<\/b><\/a>\u00a0operations and functions plus all CGA errors\/warnings) are deleted along with those shapes.<br \/>\nWhile the new behaviour makes more sense (each report\/print-output\/error has associated a shape in the model hierarchy), it is different than in previous versions.<\/li>\n<\/ul>\n<p>new CGA Utility Library functions:<\/p>\n<ul>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/celib\/listCount.html\"><b>listCount<\/b><\/a>\u00a0function<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/celib\/listRemove.html\"><b>listRemove<\/b><\/a>\u00a0function<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/celib\/listRemoveAll.html\"><b>listRemoveAll<\/b><\/a>\u00a0function<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/celib\/listRetainAll.html\"><b>listRetainAll<\/b><\/a>\u00a0function<\/li>\n<\/ul>\n<p>new features:<\/p>\n<ul>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_envelope.html\"><b>envelope<\/b><\/a>, operation: added\u00a0<i>direction<\/i>\u00a0parameter, allowing for world up-axis aligned envelopes.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_cleanupGeometry.html\"><b>cleanupGeometry<\/b><\/a>,\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_comp.html\"><b>comp<\/b><\/a>,\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_extrude.html\"><b>extrude<\/b><\/a>,\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_split.html\"><b>split<\/b><\/a>\u00a0operations and\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_geometry.html#nFaces\"><b>geometry.nFaces<\/b><\/a>,\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_geometry.html#area\"><b>geometry.area<\/b><\/a>,<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_geometry.html#volume\"><b>geometry.volume<\/b><\/a>\u00a0functions: holes in polygons are now supported. However, other operations might drop holes (and issue a CGA warning).<\/li>\n<\/ul>\n<p>changes to existing features:<\/p>\n<ul>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_report.html\"><b>report<\/b><\/a>\u00a0operation: available with all licenses.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_reduceGeometry.html\"><b>reduceGeometry<\/b><\/a>\u00a0operation: new, more efficient implementation &#8211; resulting geometry might differ to previous version.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_fileExists.html\"><b>fileExists<\/b><\/a>\u00a0function: now returns true fo all builtins.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/attr_material.html\"><b>material.color.rgb<\/b><\/a>\u00a0attribute: return a hex string (see\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_color.html\"><b>color<\/b><\/a>\u00a0operation) rather than a three-floats-in -[0,1]-string.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/celib\/listClean.html\"><b>listClean<\/b><\/a>\u00a0utility function: empty entries are filtered now.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/celib\/listIndex.html\"><b>listIndex<\/b><\/a>\u00a0utility function: support for wildcards.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_envelope.html\"><b>envelope<\/b><\/a>\u00a0operation: deprecated signatures without\u00a0<i>direction<\/i>\u00a0parameter.<\/li>\n<\/ul>\n<p>bugfixes:<\/p>\n<ul>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_alignScopeToGeometry.html\"><b>alignScopeToGeometry<\/b><\/a>\u00a0operation: more robust regarding bad geometry (fixes a crash) and better face material support.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_assetsSortRatio.html\"><b>assetsSortRatio<\/b><\/a>\u00a0function: fixed\u00a0<i>axisSelectorRatio<\/i>\u00a0parameter (crashed if\u00a0<b>yz<\/b>\u00a0was used).<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_assetsSortSize.html\"><b>assetsSortSize<\/b><\/a>\u00a0function: fixed\u00a0<i>axisSelectorSize<\/i>\u00a0parameter (<b>yz<\/b>\u00a0was ignored).<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_envelope.html\"><b>envelope<\/b><\/a>\u00a0operation:\n<ul>\n<li>fixed missing top faces if one some of the\u00a0<i>baseHeights<\/i>\u00a0were equal to<i>maxHeight<\/i>.<\/li>\n<li>support for non-planar polygons.<\/li>\n<li>fixed several numerical issues (crashes, incorrect geometry).<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_i.html\"><b>i<\/b><\/a>\u00a0operation and initial shape handling: added zero-angle removal and better face material support.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_print.html\"><b>print<\/b><\/a>\u00a0function: a newline is added after each invocation (like in the\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_print.html\"><b>print<\/b><\/a>\u00a0operation.<\/li>\n<li><a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_comp.html\"><b>comp<\/b><\/a>,\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_envelope.html\"><b>envelope<\/b><\/a>\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/op_setback.html\"><b>setback<\/b><\/a>,\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_geometry.html#area\"><b>geometry.area<\/b><\/a>, and\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/func_geometry.html#isOriented\"><b>geometry.isOriented<\/b><\/a>\u00a0operations\/functions:<b>street.xxx<\/b>\u00a0selectors: do not fallback to\u00a0<b>object.xxx<\/b>\u00a0selectors if streetWith sttribute is not defined for index 0 but for other indics.<\/li>\n<li>Vertex meger (export + internal to a number of operations): more robust regarding bad geometry (fixes a crash).<\/li>\n<li>Triangulator (export, rendering and internal to a number of operations): correctly handle near-identical vertices (led to inconsistent geometry and crashes).<\/li>\n<li>Fixed a number of compiler bugs related to\u00a0<a href=\"http:\/\/cehelp.esri.com\/help\/topic\/com.procedural.cityengine.help\/html\/cgareference\/import.html\"><b>import<\/b><\/a>, most important a bug which prevented setting of imported generic attributes.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Okay,\u00a0I guess this means CityEngine will be released the week beginning Monday 25th of December? \u00a0At time of writing it wasn&#8217;t available for download on the Customer Care Portal. \u00a0 The help file has had a few additions not least the CGA Changelog section, initially I think large sections may have been rewritten to make [&hellip;]<\/p>\n","protected":false},"author":161,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[93,116,145,7],"tags":[],"class_list":{"0":"post-1333","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-3d","7":"category-city-creation","8":"category-cityengine","9":"category-gis"},"_links":{"self":[{"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/1333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=\/wp\/v2\/users\/161"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1333"}],"version-history":[{"count":1,"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/1333\/revisions"}],"predecessor-version":[{"id":1334,"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/1333\/revisions\/1334"}],"wp:attachment":[{"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geoplanit.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}