ReleaseNotes:Feature Review December 2016
From Planimate Knowledge Base
This summary covers Planimate enhancements in 2016, over versions 8.39.1 to 8.87.1.
Editing & Modelling
- Planimate now uses a new set of default icons for the sidebar and object icons. Old icons are supported and an option to upgrade older models is provided in the Tools menu.
- Context menus for modelling objects, paint objects and views have been updated to show more useful information in-situ and avoid fly-outs in cases where they are not necessary.
- Lists of Attributes, Tables, Labels, Broadcasts etc. now include filtering capability to assist in searching.
- Model options have been recategorised with clearer names.
- Model generated pop-ups can be sized to exactly fit the required space for a view, with the modeller able to control this to allow for UI elements in the popup.
- The Queue and Dispatcher have been merged into one powerful object.
- Viewports are now paint objects which enables them to be identified with a paint label and better manipulated at runtime.
- Control over using inverted colours (beyond the /FLIP option), routine editor background colours in INI options.
- DB files are now optional and not automatically created when saving a new model.
- Options for Windows to be independent and Ctrl-Shift-Tab moves between them.
- Pipe change broadcasts enhanced with level monitoring and supporting notification of what changed and its state separately.
- The colour of object names and name/object fill colours can be set per panel.
End User Experience
- Table Views support rows with different heights (determined based on their text).
- Spatial links now support multiple roads with separate colours.
- Link and Track roads can have individual bend points, editable at runtime and compatible with the Map View.
- Gantt graph can have draggable blocks, under modeller control.
- The Group Anchoring system enables the creation of panel layouts that automatically adapt as the window size changes, supporting advanced features.
- The about box bitmap can now also be 584x264 which avoids any white margin.
- Panel options to support popup windows with keyboard support and mouse focus/hover autoclose.
- End users can create tileset from a single image for cases where end user supplied imagery is used for maps, with limited zooming.
- The Clock View floating window is replaced with a Clock View which can be anchored.
- The Paint Map can position paint objects as well as objects and links.
- The new "Icon Overlay" notation enables icons to be dynamically created by merging icons, new colour blocks, scaling, offsets etc.
- Can select to show the Item ID in an item info panel without having to copy it to an attribute.
- Table Column can be formatted to display icons.
- Column graphs support automatic column width based on the number of columns.
- Dispatchers (and hence Queues) position items based on the individual icon sizes.
DLLs and dotNET interface
- The call DLL API now has access to the Planimate-As-A-DLL callbacks.
- A new "Window" paint object enables a Windows HWND to be passed to a called DLL which can in turn use it as a parent window for its own content, with dynamic resizing support via anchoring.
- The new PLCLR DLL provides an easy interface to calling dotNET with support for WPF Forms or data only operations (eg: calling a web API). A Very rich set of automatic translations can map Planimate data (tables, label lists, attributes, text, columns) to dotNET data types with by value and by reference parameters both supported. The PL.Net wrapper is also available to the called dotNET code meaning the invoked class can push and pull data from Planimate. Very little model code is required to achieve this.
- The PLDLL API download now integrates calling DLLs, Planimate-As-A-DLL and dotNET control support.
- Run Profiling now includes time spent in DLL function calls.
- Developers can access and unload DLLs in View / Accessed Files.
- A new DLL supports advanced track logic with train length and yard support.
- Options in Planimate enable internal lookahead to be minimised when the Track DLL is in use.
- SetPreviousTailData enables setting tail data after a train leaves a road instead of it having to be set before.
Features Changed, Removed & Deprecated
- The Dialog() operation now supports text determined at run time for widget labels and static text lines.
- The Debug Log Window can log more low level event types and can also display FUTURE events, enabling the related objects to be inspected.
- Paint inheritance, whilst still supported, is intended to be phased out in the future as better options are provided for UI buttons, its main use case.
- Planimate no longer can convert itself into a DLL, a compiled DLL is required. Releases include a 64 bit DLL.
- No longer support loading a DLL directly from a model DB file (or from within the EXE itself in case of a compiled application).
- The ordering of roads on tracks and spatial links is counted from the left if you are at the origin looking at the destination.
- No longer support the option of using the old random number generator that dated back to Planimate's origins.
- Change Tracking on Cell Views no longer operates if the view is not visible given performance enhancements.
Performance and Speed
- Run profile logs can be cleared mid run.
- Clicking a change object mid-run displays the time it last took in lookahead and move.
- When Run Profile is enabled, routines that take seconds to execute have their location logged to the debug file.
- Operations PositionLastRow() quickly maintains a sorted table which has a new row appended, avoiding a slow complete sort.
- Entry mode "Table Driven Block Indexed" is a more efficient form of entry that removes finished rows in batches.
- Many cleanups to the internal framework to speed up simulation runs.