Okay, I guess this means CityEngine will be released the week beginning Monday 25th of December? At time of writing it wasn’t available for download on the Customer Care Portal. 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. A “Generate Bridges” section has been added to the Street Networks part of help file hurrah!
You can analyse the new help file here (it wasn’t a leak!).
||changed fundamental behaviour:
- attr/const functions evaluation order: In previous CGA versions, attr and constfunctions were evaluated lazily, i.e. when they were used for the first time. Remember that attr and const functions 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’s geometry, and some even change the state of the current shape (e.g. rand). Therefore (non-)evaluation of a const function cold have an influence on rule execution.
Starting with 2013.1, all attr/const functions are evaluated before the start rule is applied, on the initial shape with a seedian derived from the initial shape’s seedian. The initial shape’s random number generator state is not affected.
While the new approach makes CGA coding more “intuitive”, it changes the behaviour compared to older versions.
- inf/nan checks: 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.
CGA 2013.1 introduces a unified inf/nan behaviour: checking of all float paramers of builtin functionality can be set to either “ignore” (= don’t check), “abort with error” or “replace with zero” see Grammarcore Preferences). The default behaviour is “replace with zero”, which comes closest to the classic behaviour.
While CGA 2013.1 provides more debugging capabilities regarding inf/nan values, the behaviour is different than in previous versions.
- Intra-occlusion and reports, print output, CGA error reporting: During resolving inta-occlusion-queries, some shapes and sub-shapetrees get deleted (and re-evaluated). The reports issued by report operations by the rule of that shapes (and the output of print operations and functions plus all CGA errors/warnings) are deleted along with those shapes.
While 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.
new CGA Utility Library functions:
changes to existing features:
- report operation: available with all licenses.
- reduceGeometry operation: new, more efficient implementation – resulting geometry might differ to previous version.
- fileExists function: now returns true fo all builtins.
- material.color.rgb attribute: return a hex string (see color operation) rather than a three-floats-in -[0,1]-string.
- listClean utility function: empty entries are filtered now.
- listIndex utility function: support for wildcards.
- envelope operation: deprecated signatures without direction parameter.
- alignScopeToGeometry operation: more robust regarding bad geometry (fixes a crash) and better face material support.
- assetsSortRatio function: fixed axisSelectorRatio parameter (crashed if yz was used).
- assetsSortSize function: fixed axisSelectorSize parameter (yz was ignored).
- envelope operation:
- fixed missing top faces if one some of the baseHeights were equal tomaxHeight.
- support for non-planar polygons.
- fixed several numerical issues (crashes, incorrect geometry).
- i operation and initial shape handling: added zero-angle removal and better face material support.
- print function: a newline is added after each invocation (like in the print operation.
- comp, envelope setback, geometry.area, and geometry.isOriented operations/functions:street.xxx selectors: do not fallback to object.xxx selectors if streetWith sttribute is not defined for index 0 but for other indics.
- Vertex meger (export + internal to a number of operations): more robust regarding bad geometry (fixes a crash).
- Triangulator (export, rendering and internal to a number of operations): correctly handle near-identical vertices (led to inconsistent geometry and crashes).
- Fixed a number of compiler bugs related to import, most important a bug which prevented setting of imported generic attributes.