# Changelog for the Roomle Core (Configurator and Planner)

# [ 2.6.0 C4.6.0 ] - 2023-06-26

# Added

  • IMOS iX export
  • Python planner core (swig) interface
  • Keyword arguments for optional parameters in geometry functions
  • Configuration validity check
  • Simple expression support for childDeletionLocked property
  • Valid range - unit relative step
  • Production manager export PoC (node)

# Fix

  • GNU compile error
  • Mirror matrix invert winding order
  • Drag construction object from wall to wall - undo/redo
  • Various small bugfix, refactoring and documentation tasks

# [ 2.5.0 C4.5.0 ] - 2023-06-19

# Added

  • SWIG planner core interface
  • Changed integer identifier from prefix to suffix
  • Various tests and smaller refactoring

# Fix

  • Exception when validRange.step == 0
  • Scale the unique index epsilon with CSG scale
  • Fixed wrong bounding box locations for collision detection

# [ 2.4.0 C4.4.0 ] - 2023-06-14

# Added

  • Introduce integer data type to roomle grammar
  • Remove value from value list if it belongs to a superseding that has become inactive

# Fix

  • Ceiling nullptr check and exception handling

# [ 2.3.0 C4.3.0 ] - 2023-06-13

# Added

  • Docking request for items (requestDockItem function)
  • Web interface: getPlanOverview/Object.configurationRuntimeId
  • Web interface: ConfiguratorKernel.createNewSerializedConfiguration

# Fix

  • Ceiling geometry for walls with different heights
  • Wall UVs

# [ 2.2.1 C4.2.1 ] - 2023-05-31

# Hot Fix

  • Floor geometry

# [ 2.2.0 C4.2.0 ] - 2023-05-31

# Added

  • Lock property for parent dockings
  • Component ID validation check

# Fix

  • Updating of walls after deletion of attached construction object
  • Various internal fixes

# [ 2.1.0 C4.1.0 ] - 2023-05-25

# Added

  • Collision detection for component dockings
  • Preview which plan components get deleted on delete

# Fix

  • Implemented RoomleCoreFloor->GetCenter function
  • Added Macro for NODISCARD for SWIG compatibility

# [ 2.0.0 C4.0.0 ] - 2023-05-23

# Added

  • Python Planner Core interface
  • WASM TypeScript type definitions

# [ 1.28.0 C3.21.0 ] - 2023-05-12

# Added

  • New interface for switching door and window objects
  • Create 2D outline from a 3D mesh
  • Added Inch and Feet unit-types and option for fractional value representation to UnitMeasureFormatter
  • Support for non rectangular doors and windows

# Fix

  • Updating of relevant siblings after deleting and re-docking children
  • Added various missing interface definitions
  • Fixed a problem in the execution of uint tests caused by test case names that were too long
  • sort walls by distance and find space for construction objects

# [ 1.27.0 C3.20.0 ] - 2023-05-04

# Added

  • new interface for retrieving individual object DTO in addition to retrieving complete plan DTO
  • PLANNER_CORE_STANDALONE preprocessor definition (for iOS app)

# Changed

  • find a better position for newly added doors and windows

# Fix

  • node changed callback when node is connected to or disconnected from wall
  • Fixed problem where getUniqueRuntimeId always returned 0
  • setFloorMaterial should trigger planElementChanged and planElement3dMeshChanged
  • wall geometry with multiple wall openings

# [ 1.26.0 C3.19.0 ] - 2023-04-18

# Added

  • Hide walls if objects aren't fully visible
  • Support for basic data type arrays in roomle script
  • stringSplit function for roomle script
  • getComponentProperty function for roomle script

# Changed

  • Added various unit tests and performance tests
  • Multiple code refactorings and code cleanup

# Fix

  • Wall visibility issue in drawn room
  • Wall node displayed under wall
  • Item moving away from center point when rotating
  • Partlist sorting for values from 0
  • Partlist sorting of values without sort property alphabetically at the end of the sorted list

# [ 1.25.0 C3.18.0 ] - 2023-04-05

# Added

  • Added check for square root of negative value and added warning message
  • New Configurator interface "deletePlanComponent": dock children of a PlanComponent to the parent of the PlanComponent when deleting a PlanComponent
  • Use default parameter value instead of the first possible value if the current value is no longer possible but the default value is possible
  • Planner Core: Additional wall properties
  • Documentation for RotateMatrixByand RotateMatrixBy

# Changed

  • Planner Core: Draw all wall caps

# Fix

  • Sort partList by componentId (string) if no sort property was given
  • Added 'sort' property to ComponentJsonAnalyzer for subComponents
  • Added missing RoomleSpaceConvertion for pivot in ScaleMatrixBy functions

# [ 1.24.0 C3.17.0 ] - 2023-03-22

# Added

  • Added sorting of partList via new sort property for subComponents

# [ 1.23.0 C3.16.0 ] - 2023-03-21

# Added

  • Extended Roomle grammar and script visitor to support huge if-else statements
  • Added support to assign value in script via return value
  • Configurator Core interface "setActiveGroupInViewForPlanObject", for a single configuration
  • Planner Core: getter and setter for circle radius in continuous drawing mode

# Changed

  • Planner Core: cluster wall snapping in continuous drawing mode
  • Planner Core: tolerance angle when moving walls

# Fix

  • array "intersect" function with constant arguments
  • Boolean 3D operators: if material is not specified, take over material from object in group
  • "getDockPositionRelativeToParentDock" always returns a valid value. Either the position or NullValue

# [ 1.22.0 C3.15.0 ] - 2023-03-02

# Added

  • BO export for multiple objects from plan at once
  • 2D contour representation
  • LOG_DEBUG, LOG_VERBOSE macros: Ensures that no code is generated for debug logging in release builds (to keep binaries small and performant)
  • Treat drawing input coordinates as 2-dimensional coordinates (omit z-coordinate)
  • ScriptAnalyzer now additionally provides line and column information inside a script (relative to the beginning of the script)
  • The MessageObject, provided by the ScriptAnalyzer, now contains additional information for
    • Errortype (ID)
    • Script-path
    • Line in script
    • Error code

# Changed

  • Internal refactoring (geometry-math-class) and clean-up (dead code, tests)

# Fix

  • MoveMatrixBy now only logs errors if more than 1 argument was given
  • Fixed a problem where the ScriptAnalyzer showed wrong locations for some detected errors/warnings

# [ 1.21.0 C3.14.0 ] - 2023-02-21

# Added

  • Roomle Script: Modulo (%) operator
  • Planner Core: Snap feedback in continuous drawing mode
  • Planner Core: interaction between plan object geometry and walls

# Fix

  • Script Analyzer: Wrong resetting of the errorContext so some messages got lost in external tools (VS-Code)
  • Planner Core: "rotate object by" of a rotated object loaded form a plan
  • Boolean 3D Operator performance and issues

# [ 1.20.0 C3.13.0 ] - 2023-02-06

# Added

  • Improved SriptAnalyzer to output File-, Path-, Line- and Column information for all messages
  • Output log-level-type and error-code in all log-messages
  • Defined list with constant error codes for each log-message
  • Added runtime error checks for non const float values in 'fromString' functions
  • Preparation for interaction between planning objects
  • Boolean 3D operator and groups

# Changed

  • Boolean 3d operators - CSG with double precision floating point

# Fix

  • OR operator - evaluate right side only if left side is false
  • minor performance improvements
  • Changed access-violation-errors from type [ParseException] to [WARNING]

# [ 1.19.0 C3.12.0 ] - 2023-01-23

# Added

  • [C] "volatile" parameter property - if this property is set, the parameter is not stored in the configuration
  • Blue Ocean production service export - "masterSubComponent" internal id of the subComponent which is to completely replace the component
  • Blue Ocean production service export - "relativeParentId" relative path to a module's parent article or module

# Changed

  • Calculation of bounding boxes of components from geometry specification instead from mesh - accuracy and performance
  • Blue Ocean production service export - round bounding boxes to 4 decimal places (0.0001 millimeters)

# Fix

  • Case in case-sensitive comparison string for JSON invalid element check
  • Removed JSON invalid encoding parse errors from logging
  • Boolean-3D-operators performance, OR vs. AND, external meshes, generate error for groups
  • Missing wall faces and winding order in Planner/MOC

# [ 1.18.0 C3.11.0 ] - 2023-01-11

# Added

  • Boolean-3D-operators: AndOperator, OrOperator, MinusOperator

# Changed

  • Publishing error-, warning- and debug-logs via RuntimeError class
  • Refactor logger overhaul
  • Blue Ocean MVP - export coordinate system, swap Y and z axis, turn left handed system to right handed system

# Fix

  • ScriptAnalyzer - access-right for 'condition' from READ to WRITE

# [ 1.17.1 C3.10.1 ] - 2022-11-19

# Added

  • Blue Ocean MVP - export only modules and attributes that are relevant for the TC
  • Blue Ocean MVP - export "articleId", "orderlineNo", "quantity", "description", article groups
  • arrays in "data" objects

# Fix

  • [C] Corrected array-removeAt function to return the correct value if last element of the container got deleted
  • [C] UV transforms for sub components
  • wall miter joint calculation
  • ScriptAnalyzer - plug-in data
  • ScriptAnalyzer - return the line and column of the key element instead of the line and column of the enclosing object

# [ 1.17.0 C3.10.0 ] - 2022-11-14

# Added

  • Blue Ocean MVP - moduleId, constructionLibrary, version and attributes
  • PoC: Data in Component definition for attributes matrix
  • [C] Geometry modifier functions for UV settings
  • [C] Extend Array functions push, insert, removeAt
  • [C] Added getChildrenOfPlanComponent and getChildrenOfPlanObject functions
  • [C] Added stringPart function to split strings in RoomleScript

# Changed

  • [C] ScriptParser now logs geometry-parameter-parse-errors for all geometry-scripts into error-log without stopping parsing

# Fix

  • Emscripten interface - added missing side property to WallMaterial
  • Fixed uv-transform matrix not working for simple geometry
  • Fixed scriptanalyzer return wrong line and column number

# [ 1.16.0 C3.9.0 ] - 2022-10-18

# Added

  • [C] New function like in Roomle Script
  • [C] Added uvMod optional parameters for addExternalMesh

# Fix

  • Format parameter value even if no "validValues"

# [ 1.15.3 C3.8.3 ] - 2022-09-22

# Added

  • Added runtimeId to RoomleCore dto::Object
  • New function ScaleMatrixBy

# Fix

  • Python Core performance: Request only absolutely necessary material properties
  • Roomle Script analyzer: ignore descriptions and debugGeometry key in components

# [ 1.15.2 C3.8.2 ] - 2022-09-08

# Added

  • unit property in PlanInteractionHandler
  • Meaningful error messages for erroneous function arguments

# Fix

  • "connection" parameter map in scripts for docking "position"

# [ 1.15.1 C3.8.1 ] - 2022-08-25

# Added

  • Roomle Script analyzer - warnings for deprecated and misused features
  • [C] runtime warning for popBack of from empty arrays

# Fix

  • Roomle Script analyzer - JSON file relative line numbers
  • Roomle Script analyzer - removed erroneous error messages

# [ 1.15.0 C3.8.0 ] - 2022-08-01

# Added

  • Roomle Service - configuration export
  • Roomle Script analyzer - analyse JSON structure

# 2022-07-19

# Added

  • Roomle Script static analyzer

# [ 1.14.0 C3.8.0 ] - 2022-07-05

# Added

  • [C] "label" script for parameters and parameter groups
  • [C] format valueObject value depending on the parameters "unitType" for the valueObjects label script

# Fix

  • Bounding box of incomplete loaded plans
  • [C] Warning when inactive SubComponent is used in geometry script
  • [C] Inactive SubComponent deactivates the entire subtree

# [ 1.13.1 C3.7.1 ] - 2022-06-22

# Fix

  • [C] docking preview orientation

# [ 1.13.0 C3.7.0 ] - 2022-06-16

# Added

  • ternary operator (?-operator)

# [ 1.12.0 C3.6.0 ] - 2022-06-02

# Added

  • Emscripten interface optimization: Request multiple material groups at once
  • Emscripten interface optimization: Send materials of multiple material groups at once
  • Planner Emscripten interface: boxForMeasurement property for plan objects

# Fix

  • [C] material selection with conditionalGroups and validGroups
  • [C] position of children when re-docking plan components
  • [C] do not re-dock plan components if the orientation changes more than 10°

# [ 1.11.0 C3.5.0 ] - 2022-05-19

# Added

  • [C] new conversion functions stringToArray, stringToVector2f and stringToVector3f
  • Emscripten interface optimization: Request properties of multiple materials at once
  • Emscripten interface optimization: Send properties of multiple materials at once

# Fix

  • [C] swap order of componentMetaUpdated and componentConfigurationUpdated callback
  • [C] improve parse error messages

# [ 1.10.0 C3.4.0 ] - 2022-05-05

# Added

  • [C] "label" script for value objects

# [ 1.9.3 C3.3.3 ] - 2022-04-21

# Fix

  • python core build

# [ 1.9.2 C3.3.2 ] - 2022-04-21

# Changed

  • Built-in Corto decoder

# Fix

  • [C] script path in tun-time error messages

# [ 1.9.1 C3.3.1 ] - 2022-04-07

# Fix

  • [C] performance optimizations
  • [C] context map cache

# [ 1.9.0 C3.3.0 ] - 2022-03-24

# Added

  • only snap objects with the same level

# Changed

  • update ANTLR from version 4.8 to version 4.9.3

# [ 1.8.0 C3.2.0 ] - 2022-03-10

# Added

  • break and return statements
  • allow single statement without curly braces in if, else and for blocks this enables if-else if-else statements

# Changed

  • remove MAX_CACHED_VERTICES_PER_CONSTRUCTOR, compute mesh hash and compare

# [ 1.7.0 C3.1.0 ] - 2022-03-01

# Added

  • [C] environment geometry

# Changed

  • [C] script execution performance, backup and restore parameters

# Fix

  • Ply files with quad faces
  • Vertices of plain cube and cylinder

# [ 1.6.1 C3.0.1 ] - 2022-02-15

# Fix

  • order of use of the docking points for identical docking point positions

# [ 1.6.0 C3.0.0 ] - 2022-01-27

# Fix

  • skip unnecessary mesh vertices

# Added

  • release of the ANTLR parser
  • added component ID in parse error messages
  • snapping objects to objects on the floor and walls
  • [C] dynamic docking change
  • [C] supersed override key and group

# [ 1.5.1 C2.25.1 ] - 2021-12-02

# Fixed

  • [C] ignore assignments in self-references of component definitions
  • [C] ignore multiple self-references in component definitions

# Added

  • [C] added the component runtime IDs to the parts list
  • plugin: Blue Ocean, Proof of Concept

# [ 1.5.0 C2.25.0 ] - 2021-11-18

# Fixed

  • [C] performance issues with docking of siblings

# Changed

  • [C] extract corto library from core regarding the license terms

# Added

  • [C] new optional argument in the string function for floating point decimal places
  • enable dragging of objects on walls

# [ 1.4.0 C2.24.0 ] - 2021-07-29

# Added

  • [C] onUpdate in ConnectionWithAssignments (docking, siblings)
  • [C] other_connection is now avaiblable in condition and assignmentScripts on ConnectionWithAssignments

# [ 1.3.35 C2.23.3 ] - 2021-04-22

# Fixed

  • [C] rounding error in formatting of inch/feet

# [ 1.3.34 C2.23.2 ] -

# Fixed

  • [C] bug in handling of maxConnections on siblings

# [ 1.3.33 C2.23.1 ] - 2021-02-12

# Fixed

  • [C] now really keeping track of already requested material properties
  • [C] fallback value of parameter now also considers materials in groups (if they are provided)
  • [C] builtin intersection no longer returns null if variables are not there or not arrays. now guaranteed to return an array.
  • float error in unitmeasure formatter that lead to 3" 12' (instead of 4") being displayed in some cases

# [ 1.3.32 C2.23.0 ] - 2021-01-28

# Fixed

  • [C] (x/y)FromVector now also works with Vector2f

# Added

  • [C] function intersection to get the intersection of two arrays

# [ 1.3.31 C2.22.4 ] - 2021-01-13

# Fixed

  • handling of subcomponents with supersedings in dockPreview
  • parsing vectors in "object"-parameters from serialized configuration

# Added

  • isDeltaUpdate in ems-boundary beingConstruction

# [ 1.3.30 C2.22.3 ] - 2020-10-08

# Fixed

  • hashing of geometry lead to collisions in special cases.
  • registration of superseded parameters as global

# [ 1.3.29 C2.22.2 ] - 2020-09-10

# Fixed

  • [C] Crash when dock-assignment scripts manipulate values that are read in other dock assignments of the same dockpoint

# [ 1.3.28 C2.22.1 ] - 2020-07-03

# Added

  • [C] visible and visibleAsGlobal fields are added in PossibleChild to hide the chidren from global and local context

# [ 1.3.27 C2.22.0 ] - 2020-06-05

# Changed

  • [C] all meshes are now sent as named meshes. baked meshes get generated uids (geometryHashes).

# [ 1.3.26 C2.21.1 ]

# Added

  • [C] PluginData:imos: added active flag

# [ 1.3.25 C2.21.0 ] - 2020-05-06

# Added

  • [C] IMOSGenerator to convert imos-ready roomle components into pxm files (grade a or b) for imos import
  • [C] PluginData in rml components for adding plugin-specific data.
  • [C] imos pluginData

# [ 1.3.24 C2.20.1 ] - 2020-04-23

# Changed

  • adapted cmakeList for new emscripten compiler

# [ 1.3.23 C2.20.1 ] - 2020-04-09

# Changed

  • boundary adaptions and small fixes

# [ 1.3.22 C2.20.0 ] - 2020-03-25

# Added

  • added transform matrix to the plancomponent and also possibility to define a docking rotation by axis and angle

# [ 1.3.21 C2.19.0 ] - 2020-02-26

# Added

  • now updating sibling connections after every change in the configuration. previously they were only docked and undocked on docking/undocking of the whole component.
  • previously their was no check to validate whether the param values are with in the range or whether value is valid during preview, check is added to verify whether paramvalues after updation are in the valid values list, if not default value is updated(first value in the list).

# [ 1.3.20 C2.18.1 ] - 2020-02-12

# Changed

  • [C] Performance improvement

# [C2.18.0] - 2020-01-30

# Added

  • added setActiveGroupInView in ConfiguratorKernel and getACtiveViewInGroup() to roomlescript
  • in PossibleChild added param 'group'

# Changed

  • relaxed parsing of floats in RoomleScript: unparseable float now doesn't throw an exception but only logs an error and returns 0.

# [C2.17.2] - 2020-01-16

# Added

  • added setMaterialProperties in ObjectsManager
  • added bevel param in AddPrism, AddCylinder and AddCube where bevel value 0 creates respective sharp geometry shapes.

# [C2.17.1]

  • added parameter context to onValueChange execution with parameter.userTriggeredChange
  • added property meshChanged to component_configuration_updated callback
  • increased MAX_CACHED_VERTICES_PER_CONSTRUCTOR to 10000 for the meshChanged to work properly
  • dockParent, dockChild and dockPosition are now serialized in evaluated form to the configuration

# 2.17.0

  • global params take value from consensus now

# 2.16.2

  • bakedMeshes have the pivot now at the center of the bounding box

# 2.16.1

  • added subpartId to partlist

# 2.16.0

  • speed improvements in Script evaluation

# 2.15.1

  • update-process redefinition part 2
  • labelInPartlist added

# 2.15.0

  • update-process redefinition part 1
  • issues

# 2.14.0

  • partlist is now also aggregated per mainComponents (defineable in subcomponents)
  • Parameterrestrictions

# 2.13.2

  • fixes

# 2.13.0

  • variantlist: now possible to only get articleNrs for massive speed improvement
  • BREAKING: emscripten interface requestVariantList additional Parameter

# 2.12.3

  • bugfixes
  • speed improvements for variantList calculation

# 2.12.2

  • bugfixes

# 2.12.0

  • added connection.isPreview to all docking scripts

# 2.11.1

  • dimensions now contain maxLevel (the max level within the type)
  • on preview also considers assignments to parent now. It doesn't permanently change the parent, but changes affecting the docking or recursive assignments are considered.
  • subComponents with active = false are ignored completly (no updates whatsoever). the default for active is switched to true.
  • massive speed improvements by better handling of internal script execution

# 2.11.0

  • variantlist now includes subcomponents (including supersedings) and range parameters
  • FIX allow for nested superseding parameters

# breaking changes in 2.11.0

  • variantlist elements no longer contains articleNr and price but a full partlist resulting from this parametercombination
  • parameterValues of variants are now a vector of vectors including all combination of parameters leading to this partlist

# 2.10.1

  • added "other." to docking condition. references the preview or the first docked element (if any)
  • FIX order of children in serialized configuration
  • FIX execution context of onValueChange etc. for supersedings and parameters

# 2.10.0

  • changed way of parsing/storing scripts of range-dockings for massive performance improvements
  • only evaluate dockCondition when result is needed.
  • added getUniqueRuntimeId to RoomleScript

# 2.9.2

  • added requestMergedConstructionCallsForPlanObject
  • added hash to plancomponent and configuratorKernel::getHashOfPlanComponentItself

# 2.9.1

  • dimensionings: components can have dimensionings now
  • dockPointRange: try to keep as many docked children as possible, if positions dont match: trying index

# 2.9.0

  • MemoryManagement for Meshes and Components
  • active & supersedings in subcomponents

# 2.8.1

  • fixes

# 2.8.0

  • ThreeJS now also uses namedMeshes

# 2.7.3

  • added visibleAsGlobal to parameters

# 2.7.2

  • added groups to global and commonParams.

# breaking changes in 2.7.2

  • changed getCommonParameters to getCommonParametersAndGroups with different returnValue

# 2.7.1

  • fix string conversion for HSC. We now always convert from js_string (=utf16) to std::string (=utf8)

# 2.7.0

  • added connection.index and connection.position in expression of connections

# 2.6.1

  • bugfixes
  • added assignmentScripts

# 2.6.0 (started 2018-05-15)

  • added getAddOnSpotsForObject
  • added AddExternalMesh to script
  • added corto for meshdecoding

# 2.5.2

  • added AddOnSpots in script

# 2.5.1

  • added 'default' to possibleChildren
  • added step to Range (of Parametervalues)

# 2.5.0

  • LifecycleManagement for PlanComponents
  • calcHashOfConfiguration

# 2.4.0

  • added array access (get, set, pushBack, popBack, inArray, indexOf, length)

# 2.3.1

  • added getDockPositionRelativeToParentDock in RoomleScript
  • improved handling of Child on Dockline when dockline changes

# 2.3.0 (started 2018-02-05)

  • Vector3f in roomleScript
  • getDockPosition & getPosition in roomleScript

# 2.2.1 (started 2018-01-24)

  • added setBoxForMeasurement in onUpdate

# 2.2.0 (started 2018-01-09)

  • added maxChildren to DockLine
  • added parameterGroups

# 2.1.1 (started 2017-12-08)

  • dynamic Ranges (valueFrom and valueTo as expression)
  • onValueChange is now executed also initally (on change from NoValue to Value)

# 2.1.0 (started 2017-11-27)

  • added fuzzy matching to dockpoints on configurationloading
  • improved speed for Components with lots of parameters
  • added common-parameters logic
  • added isVisible to script

# 2.0.0 (started 2017-05-23)

  • added getAggregatedPlanComponentList in Kernel
  • added ComponentConstructor with Scenegraph -> own bounds calc
  • removed callbacks for getting dimensions (done within kernel now)
  • removed position and rotation of planObject. shouldnt be used anyway.
  • removed old geometry-callbacks, only bakedMesh is used anymore!
  • no longer sending dockPoints to the view, previewAssoc now contains all needed info (position, rotation etc.)
  • dockComponent now uses the componentPosition not the dockPosition (cause view no longer knows anything about the dockings)

# 1.10.4 (started 2017-06-22)

  • added getPlanObjectChildren
  • added packaging and packageSize calculation

# 1.10.3 (started 2017-05-23)

  • added getAggregatedPlanComponentList in Kernel
  • added geometryHD to Component
  • fixes in boundary

# 1.10.2 (started 2017-05-10)

  • kernel now calculates position of component on Dock
  • memory fixes

# 1.10.1 (started 2017-04-09)

  • added requestRecursivePlanComponentConstruction

# 1.10.0 (started 2017-03-30)

  • PartListParameterDTO
  • new communication: kernel no longer sends any complex data on its own, only on request
  • sending construction only on request
  • aggregating changes during setParameter and dockComponent

# 1.9.6 (started 2017-03-02)

  • disabled parameters can no longer be changed via setPlanComponentParameter
  • heaps of memory fixes

# 1.9.5 (started 2016-09-28)

  • add AddPlainCube command
  • added setVisible and setEnabled

# 1.9.4 (started 2016-09-19)

  • added builtin function float()
  • added possibility to include seperate priceList on loading ComponentDefinition
  • priceScript now has articleNr accessible
  • fixes in ScriptParser

# 1.9.3

  • fix: onDock was done even on load configuration
  • added builtin function size() for determining size of a string

# 1.9.2

  • onUpdate of component called as onInit after loading
  • onUpdate triggered when changed from docking too

# 1.9.1

  • send construction calls only on request
  • added math functions
  • added isnull, isenabled, string-functions
  • added in(...) condition
  • added math-constants

# 1.9.0

  • onUpdate added to PlanComponent, Parameter and ValueObject
  • onValueChange and afterValueChange added to Parameter

# 1.8.4

  • bugfix on docking

# 1.8.3

  • parameter validation now triggers update
  • added silent update assignments

# 1.8.2

  • added global Parameter to preview Geometry
  • fixes in geometryscript (dimensioningpoints lead to crash)

# 1.8.1

  • added child Dockings to preview calls

# 1.8.0

  • added preview geometry

# 1.7.4

  • global params stay visible as long as they are enabled, even if the local param is invisible

# 1.7.3

  • added math functions round,floor and ceil
  • fix possible crash on delete PlanObject with multiple children.

# 1.7.2

  • fixes for const struct

# 1.7.1

  • clearAll now also resets the pricelist
  • added requestListOfVariants(componentId)
  • added setMaterialsForGroup
  • added isValid(planComponentId) in Kernel

# 1.7.0

  • added Unity target, needed changes in templates etc.
  • removed cryptopp dependency, Hasher now does the SHA256 itself
  • removed Wizard: was special Umdasch thing. No longer wanted
  • FIX: validity of addMesh: nrUV must be nrIndices

# 1.6.6

  • fix parameterupdate of subparts
  • added unitTypeString to Parameter

# 1.6.5

  • fix: cached hash in configurationLoaded

# 1.6.4

  • ScriptRunner: reduced copying of parameterset on running script
  • improved setPlanObjectParam: no more n^2 but only n updates
  • improved timing
  • strip Log debug and verbose calls from code if flag not set
  • added optional objectId to update call
  • Fix problem in setPlanObjectParameter (cache invalidation)

# 1.6.2 2016-01-28

  • added possibleChildren with itemIds and condition
  • added loadFreeFlyingConfiguration for loading those linked configurations
  • changed docking: if a rootComponent is docked, the parentObject is deleted
  • improved Value.equals to better compare different types of values
  • fix with global params and dockings

# 1.5.8b

  • added selfAssignments
  • changed internal structure of connections

# 1.5.7 2015-12-02

  • retailPrice in PriceList
  • field valid in Component

# 1.5.6 2015-11-27

  • sort and highlight for Parameters
  • component_configuration_updated no longer sends empty hash -> no more hash!
  • Fix problem on dock update delete problem stuff

# 1.5.4 2015-11-24

  • global/PlanObject Parameters

# 1.5.2 2015-11-13

  • added new AddRectangle with UvMod

# 1.5.0 2015-11-13

  • english is default language now
  • added visibleInPartList field to hide Parameters in PartList

# 1.4.8 2015-10-22

  • initial Position of PlanComponent is now 0,0,-1000
  • Script.Functions: added isValid
  • new geometryCalls with UVModification and UVCoord for Meshes

# 1.4.7 2015-09-30

  • Made Comments in scripting possible
  • On Update currentValue is clamped to possible Values
  • added getPlanObjectList