Changes in V7.1

Here is a summary of changes from V7.0 to V7.1 with links to the relevant reference documentation, where new functionality is marked with , and enhanced functionality is marked with

Command-Line Parameters Comments Inheritance Signal Identifier
XML Facilities Projections Symbology Enhancements Image file support
Graphic Window Enhancements Polygon Facilities Text File Facilities Entity Facilities
Time/Date Facilities Utility Functions Busy Cursors Attribute Renames
Printing Facilities Debug Facilities    

Command-Line Parameters

Fire may now be directed to start in an initial directory/folder via a command-line -cd program switch.

Comments

In line with other languages, language comments may now be prefaced with // as an alternative to #.

Inheritance

Identifier types may now be defined with inheritance characteristics, in similar fashion to other high-level languages. The command class is now used to create a structure type, thereby replacing the commands structure, gstructure, compound, treenode_define and object.customize. The old commands will of course continue to work as before.

The generic element .class, available on all identifiers, now returns multiple values if an object's class is derived from base classes.

A new generic function element .is_class may be used to test whether an object is an instance of a particular class, or one derived from a class.

Signal Identifier

A signal identifier has been added as a new data type to facilitate the raising and catching of events attached to objects. An object can raise a signal, which can be caught by any number of other objects and a callback executed.

A new signal command has been added to declare a signal identifier.

XML Facilities

Previous versions of Fire have had facilities to read xml files. In this version these facilities have been extended considerably. The existing command xmlread which reads an xml file into a Fire object has been extended since V7.

New commands are as follows:

xmlwrite writes an xml file from a Fire object to an output channel.

xsdread reads an xsd file and converts into one or more Fire classes reflecting the XML schema.

xsdwrite writes an xsd file from a Fire class. Note: this is not the reverse of xsdread.

The xmltest function may now be used to test the validity of an xml file. Other new functions are as follows:

xmlclass returns the name of a Fire class given an xml schema file (.xsd) and a root tag name. When an xml schema is converted to Fire classes (via the xsdread command), the url of the schema and all xml tags permitted as root elements are remembered. A list of these is available for debugging purposes via the sysdump -xsd command.

xmlobj returns a component to facilitate manual analysis of an xml file, similar to a SAX parser.

Classes created by the xsdread command are given attributes for use during the xmlwrite command. See here for a list.

Projections

The projection command now has 2 additonal switches: -srid=<n> and -epsg=<n> to permit the Oracle SRID code and/or EPSG number to be supplied.

Corresponding elements .srid and .epsg have also been added to the projection structure.

Symbology Enhancements

A new -hex switch is available on the color command to enable a color to be defined by a composite hexadecimal 0xRRGGBB value.

Image File Support

Support has been added for the creation of tiff files via a new -tif switch on the rasdump command.

Various new options have been added to the rasdraw command to enable clipping, positioning and scaling.

Graphic Window Enhancements

Support has been added to catch mouse thumbwheels events via a new callback procedure window.wheel.

Polygon Facilities

A new -xg switch is available on the polymerge command to capture intersection polygons.

The validate command now has a -of switch to direct polygon invalidity details to a text file.

Text File Facilities

Currently, during the reading of text files, lines following those terminated by a \ are treated as continuation lines. A new -raw switch has been added on the open command to suppress this feature, thereby treating lines ending with \ as normal lines.

Entity Facilities

A new string function entity.sdogeom returns a text definition of an entity, suitable for insertion into an Oracle database SDO_GEOMETRY column.

A new xform command has been introduced, combining scaling, translation and rotation.

A new command ebuffer adds a buffer zone around one or more entities to create new polygon entities.

The functions clash_e, clash_p, clump_e and clump_p now have an additional optional parameter to permit a vertex/edge closeness tolerance to be applied.

Time/Date Facilities

A new element has been added to the time identifier structure. The attribute .time_only can specify that the date part of the value is to be ignored.

Utility Functions

Several new functions have been added to the language:

appversion returns the version number of an application library file.

atextern returns external references from an entity or atable file.

choosefiles returns multiple files, similar to choosefile.

fhash derives a fingerprint, or hash value, for a file using one of various algorithms.

finddirs searches for directories in the local file system.

findfiles searches for files in the local file system.

porder analyses a set of point values, sorts them by their distance from a supplied target point, and returns the order as a numeric array.

A new circulate command has been added to enable array values to be shuffled "in place" in a circular fashion.

Busy Cursors

Some new system screen cursors have been added to be displayed at periods of inactivity. They are as follows:

print_cursor shown during execution of the print command when document details are being sent to a printer/spooler.

process_cursor shown while waiting for an external process to complete its operation.

redraw_cursor shown during during graphic window repaint operations.

web_cursor shown while waiting for internet communication to complete.

Attribute Renames

The .vvalue attribute of system classes treenode and layer have been renamed .vdata. The old name will continue to be available for a while.

Printing Facilities

A new system string array printers has been added. This lists all available printers on a system.

The current printer, previously accessed by the system string printer_name, is now accessed by the system string printer.

Debug Facilities

A new command traceback has been added to list the current command frame stack trace in the monitor window. It also has an alias tb.