Redefined the bkg attribute to support axial and radial gradient fills as well as a solid-color fill. This allows the user to specify gradient fills for the background of figure, textbox, or image elements.
Added the bkg attribute to the shape node, so that shapes may be filled with axial or radial gradients. With this change, a shape is filled IAW the specified background fill, its outline is stroked IAW its stroke properties as usual, and its automated label (if title attribute is not an empty string) is now painted with its text/fill color. Prior to this change, the text label was painted in the stroke color to ensure it was visible within the shape's interior.
Added an additional display mode to the trace node: mode = staircase. It is similar to the polyline mode, except that consecutive data points are connected by a sample-and-hold "step" instead of a straight line.
The shape node's size attribute was replaced by separate width and height attributes so that the shape can be scaled differently in the X and Y directions.
Added the optional note attribute to the figure node.
(For v 4.7.1) Added new data presentation node area, representing a stacked area chart.
(For v 4.7.1) Added new data presentation node pie, representing a pie chart (polar graphs only).
Introduced a new data presentation node representing a typical X-Y scatter or bubble plot: the scatter element.
Introduced a new data set format representing a 3D point set {(X,Y,Z)}: xyzset.
Introduced two additional colormap lookup table options for the cmap attribute of the zaxis element: tropic and reversetropic.
Added the bkg attribute to the figure element to specify a background fill color for the entire figure. The attribute is optional and its default value is "none", meaning the background is not filled (which was the case for all figures created prior to this schema version).
Added the id attribute to label, textbox, and graph elements. The attribute is optional and its default value is an empty string. When not empty, it serves to uniquely identify a graphic object within the figure. It is intended to provide a means of easily locating a particular graphic object in the figure programmatically.
Introduced support for custom tick mark labels. The ticks element now allows text content. That content is parsed as a comma-separated list of custom tick labels, for example: "A,B,C,D,E". When the text content is empty, the standard numeric tick labels are generated. Otherwise, the custom labels are applied to the tick marks in the order listed. If there are not enough custom labels, they are "recycled" until all tick marks are labeled. Blank labels are allowed: "A,,,D" defines 4 custom labels, two of which are empty strings.
Introduced a new data presentation node representing a typical bar plot: the bar element.
Introduced support for transparent (NOT translucent) colors. Three of the four RGBColor attributes in FypML (fillColor, strokeColor, bkg; but not cmapnan) now can take the value "none", which corresponds to fully transparent black. The primary motivation for this change was to provide an intuitive way to define hollow shapes or data point marker symbols.
With the introduction of a transparent fill color, there was no longer a need for the boolean filled attribute, defined on the trace and raster nodes. The same effects can be achieved by setting fillColor = "none" on the node itself (or, for a trace in errorband display mode, on its ebar child). Indeed, this is exactly what is done to migrate existing figures to this schema version.
Introduced optional attribute lineHt on textbox, axis, and zaxis elements. This float-valued attribute specifies the line height (baseline to baseline) for multi-line text layout as a fraction of the element's font size. It is restricted to the range [0.8, 3.0] and has a default value of 1.2. Authors can use this attribute to adjust the line spacing in multi-line text boxes or axis labels.
Introduced a brand-new element: textbox, representing a multi-line text label with a bounding box that is stroked and filled in accordance with the element's properties. All text in the box is rendered in the same font. Both figure and graph nodes accept a textbox as a child element.
Introduced a brand-new element: image, which provides a means of embedding a general-purpose image into a figure. The image data is stored directly in the text content of the image element in PNG format, using base64-encoding to store the binary data in string form. Both figure and graph nodes accept an image node as a child element.
Enhanced the graph's automated legend to include entries for any child raster nodes. If the raster is in the histogram display mode, the legend entry is a horizontal bar (styled IAW the raster node's properties) followed by the node's title; otherwise, it is a solid horizontal line. Added the legend flag to the raster node so that user can control whether or not to include the node in the automated legend. Since the default value for this flag is true (for consistency with the same attribute defined on trace and function nodes), we explicitly set it to false on all raster nodes during schema migration to preserve the appearance of existing figures.
(Revised 31 Dec 2013, for version 4.4.0) Added optional attribute labelOffset to the legend node. This attribute specifies the horizontal offset from the right-hand endpoint of the trace line to the start of the corresponding text label in each entry of a graph's automated legend. Prior to this change, the label offset was hard-coded at 0.1in. To ensure that figures existing prior to the change are unaffected, 0.1in is the attribute's default value. The user can set a preferred value for this attribute via the Preferences dialog in FigureComposer.
Whenever a new graph is created, the child legend's labelOffset attribute will be set to the value specified in the user's preferences.
Modified to support enabling automated axis range adjustments for each graph axis independently; prior to this change, the automated range adjustment was "all or none". Replaced the boolean-valued auto attribute with the new autorange attribute (enumerated; possible values are none/x/y/z/xy/xz/yz/xyz) on the graph element. During schema migration, auto=true maps to autorange=xyz, while auto=false maps to autorange=none.
Modified constraints on the bounding box definition for a graph element. The x- and y-coordinates within the loc attribute can no longer be specified in percentage (%) units. During schema migration, they are converted to inches with respect to the corresponding dimension in the parent viewport. In addition, the width attribute must now be specified only in physical units (in/cm/mm/pt). If specified in % or user units, it is converted to inches with respect to the width of the parent viewport. In the case of user units, it is set to 1/4 the parent viewport width. Analogously for the height attribute. [Note that, while graph width or height could be specified in user units in prior versions, the graph was never rendered in this case!]
Added a third option, trains2, for the display mode of a raster element. This mode is similar to trains, except that the baseline for each individual raster is its ordinal position (starting at 0) in the raster collection, offset by the value of the baseline attribute.
Added boolean attribute avg to the trace element. Applicable only to the multitrace display mode, it enables/disables rendering of the average trace on top of the individual trace polylines in that display mode. Implicit default value is false-- so it was necessary to explicitly set avg==true during schema migration of pre-existing figure documents.
Added boolean attribute log2 to the axis element. When the primary or secondary axis of a graph is logarithmic, this flag determines its logarithmic base: 2 if true; else 10. The logarithmic base affects the auto-scaling algorithm and the choice of tick interval for child tick sets. Prior to this change, the logarithmic base only affected tick set calculation. If the calculated tick interval was closer to a power of 2 than a power of 10, log base 2 was assumed; else, the log base was 10. Schema migration uses this criterion when deciding whether or not log2 should be set.
Added boolean attribute auto to the graph element. This attribute enables/disables auto-scaling of the graph's three axes whenever a change occurs that could impact their current range: a data presentation node is added to the parent graph; a data node is removed from the graph; the underlying data set for a data presentation node is changed; some property of a data presentation node that could affect its displayable data range is changed. Not only is each axis rescaled as needed, but the tick interval and tick label format of the axis's first tick set (the "major" tick set) is automatically adjusted as well.