Skip to content

Figure Composer 5.5.0

Latest

Choose a tag to compare

@sruffner sruffner released this 24 Oct 22:39

Version 5.5.0, released 24 Oct 2024

  • Initial release after switching from Eclipse to IntelliJ IDEA as the development enviroment for FC.
  • Created figurecomposer IntelliJ IDEA project with figurecomposer and common modules, copying all code, resource
    and supporting files from original Eclipse projects.
  • Extensive minor changes throughout codebase to make it JDK11-compliant and fix all issues identified by IntelliJ IDEA. As of this release, FC users must have a Java 11 runtime in order to use Figure Composer. Furthermore, if they use the Matlab script matfig2fyp() and its supporting JARs, they must configure Matlab to use a Java 11-compliant JRE like Amazon Corretto 11 rather than the default bundled Java 8 runtime.
  • Addressed issues encountered while generating FypML figures in Matlab R2024a, or when importing FIG files into FC
    that were created by R2024a:
    • As of Matlab R2020a, most graphic properties that are "on"/"off" are returned as the enumeration matlab.lang.OnOffSwitchState, which cannot be converted to a Java object. Modified matfig2fyp.m to detect attributes of this kind and convert the value to either "on" (true) or "off" (false).
    • Incorporated JMatIO library source code as a module in the figurecomposer project, instead of building it as a separate project. The original library has been modified several times in order to successfully read in Matlab FIG files over the years:
      • (2013) Modified MatFileReader to ignore MLArray types mxFUNCTION_CLASS and mxOPAQUE_CLASS. The original library code raised exceptions when trying to process test FIG files containing these array types. Since FC's FIG-to-FypML import engine doesn't need this content, the library was modified to skip over these array types and report them as empty. Added method to check whether a given file is a Level 5 Matlab FIG file.
      • (27feb2020) Removed any classes related to writing a MAT file, as FC does not need this functionality. Removed dependence on a JDK internal (not allowed in JDK9+), and changed default memory policy to use a direct byte buffer rather than memory mapping.
      • (02jul2024) Mods to handle UTF16/32-encoded fields in the FIG file.
      • (02jul2024) Ignore java.io.EOFException when decompressing any compressed content (MatDataTypes.miCOMPRESSED) in the FIG file.

Installation on MacOS/Windows/Linux

See instructions for the previous release.