ReleaseNotes:Feature Review December 2011
This review covers Planimate® versions 5.30g to 5.33c.
2011 was a spectacular year for Planimate with major leaps in capability on multiple fronts. This page summarises the highlights. For details and fixes, refer to the release notes.
In addition to the 5.3X releases (available to licensed users), version 5.25z5 became the baseline install, with key fixes backported to it. This version is made freely available to educational institutions.
- 1 Tiled Map Capability
- 2 Graphics Enhancements
- 3 Release Compilation Environment
- 4 Model Editing and Debugging
- 5 End User Experience
Tiled Map Capability
A new Map Paint Object enables models that run over a pannable and zoomable map. The object integrates with model editing as well as runtime, enabling models to be built over an extended geographical region which could otherwise not possibly fit on the screen at a workable level of zoom. Tables containing object co-ordinates (latitude and longitude) drive the positioning of portals and bend points, with the editor being aware of the tables and assisting in generating/maintaing them.
Networks with tracks, spatial links and pipes are supported.
During run the map can be smoothly zoomed and panned, even in simulate mode with objects and items (moving along links) updating smoothly. Scroll wheel events and drags are available to the modeller and a baseline model demonstrates how to update the display as the map is zoomed and panned.
The map itself uses graphical "tiles" which contain map images, with zoom levels ranging from the entire world to a resolution of metres. Two map tile formats are supported, as used in OpenStreetMaps and Google Maps.
InterDynamics now has experience in building "tile servers" to create customised map image tile sets which incorporate CAD imagery provided by clients. This augments the maps with current and proposed infrastructure specific (and private) to a client.
Transparency and Alpha Blending
The graphics system now supports PNG images with "Alpha Transparency", that is partial and varying transparency in images.
Partially transparent objects can animate over other partially transparent objects which are also animating, enabling impressive visual effects. Transparency can be changed on the fly.
Planimate now supports animated GIFs. The modeller can control the animation frame directly or Planimate can vary it based on position or time.
Paint objects and portals can be animated as smoothly as items. Paint objects have an option to render them in the "animation layer" which means they are redrawn every animation frame, enabling them to overlap and shadow other animating objects.
Drop Shadows, rounded rectangles
Objects can drop translucent shadows over whatever is under them. This is very effective with nodes over a map. Text can have a shadow effect.
Rectangles, views and buttons can now have rounded corner rectangles with the rounding radius being variable.
Dynamic Portal Icon
A portal's Icon can be set on the fly directly using a file name that itself is generated dynamically by model code. This is useful where there is a large database of imagery based on object type, condition, colour and resolution.
With the new graphical capabilities, InterDynamics has invested in new icon imagery which will make their way into our Planimate Based Applications.
Dynamic Graphical Properties
Many properties of dynamic objects, items and paint objects can now be set by the modeller at runtime, including dynamically controlling visibility.
The items on a spatial link can be queried and updated. An item already on a link can be halted or "turned around" without it leaving the link. The scaling of an individual item or its entire class can be set. This works well with map displays at changing zoom levels.
Icons Created From Panels
Panimate can create an in-memory icon from the graphical display of another panel. This is achieved without flicker and can be used to build dynamic buttons which display the actual current contents of other panels in the model.
Release Compilation Environment
DLL API Revised
The Planimate DLL call API has been rewritten, It is much easier to write and maintain a DLL with routines that Planimate calls.
The new API supports better specification of parameters and provision for comments back to the DLL user in Planimate. Many new callbacks expose Planimate functionality to the DLL including data formatting and setting/reading tables using formatted text.
The framework supports "optional" parameters which means they can be left "s.Null" on the Planimate side if not needed. This can reduce the need for multiple routines in a DLL where different capabilities of the same basic operation are needed at different times.
New mechanisms make it easy to manage 32 and 64 bit versions of a Planimate Based Application with automatic loading of the correct DLL for the target platform, be it 32 or 64 bit.
DLL Range Checking
The DLL API assists in debugging DLLs by having additional checks which are enabled for debug builds of a Planimate DLL.
Batch Run Enhancements
Model mechanisms now enable a "watchdog" to be implemented in a model which can take action if a model becomes stuck in an endless loop. This is especially useful in batch run situations.
Planimate applications are now compressed and encrypted using the same superior mechanims that are used for DataSet2 files. This makes compiled PBAs far smaller when the model is large.
Users with a Level 4 License (PBA Compiler) can set the version information for a compiled Planimate Based Application, the information which Windows shows when you hover over an application or display its properties.
Virtually every aspect of the runtime engine was reviewed and optimised for performance. This includes
- Messages and broadcasting
- Tables with many columns
- Spatial Link and Track Route finding (magnitudes of improvement)
- Token lookup/file loader/data file reading
- Portal engine code (item movement)
- Portal animation performance (thousands of portals can now move at once)
Various changes to reduce memory "churn" (repeated allocation/deallocation) and reducing memory fragmentation
Model Editing and Debugging
Debugging in "User Mode"
It is easier to debug user oriented models as debugging services remain available when Planimate is in "user mode", only being disabled when a compiled application is built or Planimate is run with a "End User" key. This extends to called DLLs, which can check whether Planimate is running in development or user mode.
Routine Colours and Wrapping
The routine editor supports colouring of elements of a routine line at a fine grained level, with nested references being properly handled. The colours can be configured using the options editor and are retained in the Platorm INI settings file. Profiles for dark background and light background are separately configurablre
Long lines can wrapped instead of cropped, with background colour changing to help highlight wrapped lines.
Routine Code Folding
The routine editor can collapse statement blocks (IF/ELSE, ELSE/ENDIF, ITERATE/ENDLOOP, SELECT, WHILE/ENDWHILE) so that the lines within the block are hidden behind the top line for the block. This is known as "folding" and can make long code easier to read.
Copy/paste/delete is supported for folded lines of code.
Multiple Table Column Edit
Multiple table columns can be viewed and edited at once using a new column editing list dialog in the table editor. This makes it much easier to arrange columns in a table. Multiple columns can be selected and their properties set together.
Pipes can be more readily monitored and controlled using new pipe status broadcasts. The colour of the pipe when empty can be dynamically changed.
Portal Entries More Useful
Different classes can be assigned to different portal entries (where multiple are added for a given portal subsystem). This enables different portal entries to handle different item classes inside that subsystem.
Flow Editor Tips and Undo
The flow editor has more useful tooltips when hovering over arrows and supports a single level of undo.
The "Show Recent Broadcasts" menubar option shows the most recent broadcasts sent in the model.
Clicking on a broadcast entry in pause mode shows the time and origin of the last broadcast received.
Models are saved with CRC checksums and the saved file is tested to ensure it wsa written correctly by the system. This is valuable particularly where files are being saved to network or external drives.
Many more internal buffers (particularly for text strings) are now managed with over-run detection.
End User Experience
Table column filters now support "not" terms (using !) so a given match term can be excluded.
The default paper size and orientation can be queried and set by a modeller. This is useful in applications which print customised forms, large graphs etc.
Natural Order Sorting
Correct sort order for lists, filter data and labels which start with a number is now supported. This takes into account the value of the number rather than just sorting by ASCII character alone.
Support has been improved for multiple monitors, with popups and sub dialogs appearing on the monitor containing the Planimate window.
Advance Time Dialog
The Advance Time Dialog (while a model is fast-forwarding) now includes model name, dataset name (if enabled) and an ETA. The dialog is updated regularly and more responsive to a pause click.