Changes in release 19.1 (2022-02-01)
- Version 19 Service Pack One release.
Changes in release 19.0 (2021-07-19)
- Version 19 release.
Changes in release 18.2 (2019-10-28)
- Version 18 Service Pack One release.
Changes in release 18.1 (2018-11-15)
- Add igeslib_double_precision parameter for custom write behavior.
Changes in release 18.0 (2018-10-01)
- Version 18 release.
Changes in release 17.3 (2018-01-04)
- Added color support to level_function entity (406 form 3). There are now color() get and set functions on the class. The spec says that color is n.a. for that type, but many systems exchange color information with this entity.
Changes in release 17.2 (2017-12-29)
- Update for roselib ABI changes, and retirement of custom all-atts ctors. Use the default ctor and individual attribute set functions to populate objects.
Changes in release 17.1 (2017-11-15)
- Added warning for form numbers out of range on arcs and lines (entities 100 and 110), and set to zero. The WebFEM system is writing these with an unknown form 3.
Changes in release 17.0 (2017-04-07)
- Update for major release.
Changes in release 16.6 (2016-07-14)
- Corrected an infinite loop when dealing with certain bad inputs.
Changes in release 16.5 (2016-06-01)
- Update for ST-Developer v16 SP4
Changes in release 16.4 (2016-03-28)
- Fixed reading of strings that have the initial size parameter split across lines.
- Fixed reading of strings that have literal newlines embedded in them splitting the IGES record across lines.
- When encountering bad data and capturing it as a null_entity, the reader now does a better job of capturing the parameter data, even it is corrupted.
Changes in release 16.3 (2015-09-21)
- Update for ST-Developer v16 SP3
Changes in release 16.2 (2014-11-18)
- Both integers and floating point numbers can now be read when split across lines in the parameter section. The number and delimiter are supposed to be on the same line, but some systems just hard wrap at the last column no matter where they are.
- Relaxed some of the checking to allow longer DE back pointers if they are just long because of extra zero padding.
- Changed the handling of entity 402 with a zero or other undefined form to read as a group_entity. Previously that was handled using the supertype associativity_entity, which doesn't fhave any parameter behavior defined.
- Fixed several crashes when handling IGES files corrupted by the Microsoft fuzz testing tool.
Changes in release 16.1 (2014-07-09)
- Adjust reading of floating point values in the parameter section so that a number can be split between lines (1.234[newline]567) This should not happen because the IGES spec requires the entire number and delimeter to be on one line, but some systems write broken data.
Changes in release 16.0 (2014-04-15)
- Code build for use with the final ST-Developer v16 release.
Changes in release 15.11 (2014-02-20)
- Same as the 15.10 release, but built for ST-Developer Beta 6
Changes in release 15.10 (2014-02-20)
- This release built for use with ST-Developer Beta 5
- Fixed problem writing occasional bad line lengths in the parameter section. The length computations for doubles were not initialized properly in the rare case of a negative zero or ROSE_NULL_REAL.
Changes in release 15.9 (2014-02-08)
- Changed shell_entity to have an explicit subordinate attribute for use with open shell. The value defaults to physically dependent, so there should be no changes needed to existing code.
- Added blank status to level_function_entity as blank() access/update functions. The IGES spec says the blank status for 406:3 should be the default (00), but we add explicit control because it appears to be used in practice to control visibility of level.
- Rebuild for ROSE library updates in Beta 6 / Personal Edition
Changes in release 15.8 (2014-01-10)
- Fixed spurrious trailing decimal when writing numbers with an exponent but no fractional part ("1D20" rather than "1D20.") Also reworked the handling of exponents to omit any "+" and initial zero characters ("1.23D5" rather than "1.23D+005")
- Now digitally signing DLL versions of the library.
Changes in release 15.7 (2013-10-16)
- Changed line_entity to have an explicit form attribute to support form 1 and 2 of entity 110. Also extended the use_flag enum with a new "use_flag_construction_geometry" element to cover flag 06 which is used by the new forms.
- The built-in schemas within the library should now initialize correctly when linked with other libraries that contain built-in schemas.
Changes in release 15.6 (2013-09-10)
- The library should now read and write IGES files correctly even if the application programmer has called setlocale() to change the behavior of number formats (123.4 -> 123,4) and such. Previously, you had to be sure to switch back to the "C" locale before reading or writing.
- Updated for use with ST-Developer Beta 5
Changes in release 15.5 (2013-06-06)
- Extended parsing of parameter data to allow delimiters to fold over to the following line. The IGES spec says that they must stay on the same line as the value but some systems wrap incorrectly.
- Relaxed handling of entities 502-514 so that they will accept a zero form number.
- Updated for use with ST-Developer Beta 4
Changes in release 15.4 (2013-04-26)
- Updated for use with ST-Developer Beta 3
Changes in release 15.3 (2013-03-11)
- Rebuilt for use with roselib 15.3
Changes in release 15.2 (2012-11-06)
- Reader will now process records that are longer or shorter than 80 characters. Rather than assuming the fixed columns, it searches backwards from the end to find the sequence number, section flag, and parameter data DE pointer.
- Reader now accepts parameter data that extends past column 64, but
warns about it.
- Reader is now more tolerant of spacing around delimiters in free-formated integer, string, and floating point data.
- Reader will now try to detect and correct floating point parameters that have been damaged by email transit, which can strip or double a dot ('.') that is at the start of a line. It always handles doubled dots, and assumes that a dot has been stripped if a floating point value is at the start of a line, has no dot, and the line is short. When writing files, a dot is never written in the first column.
- Added "milspec" field to igs_global to cover optional mil-spec field at end of global section. Updated reader and writer to handle.
- When writing files, the global section now identifies the IGES version as 5.3 (version=11) rather than 5.1 (version=9). When reading, the version number contains whatever the file declared itself as.
- Fixed memory leak during read of string parameters.
- The iges_read.log and iges_write.log files are no longer generated.
- Added a VERSIONINFO resource to the DLL builds of the library.
- Updated for use with latest roselib that retired Set(), List(), Bag(), and Array() macros that conflicted with VC9 headers.
Changes in release 15.1 (2012-04-01)
- Added color support to boundary_representation_entity, which technically does not match the spec since color is n.a. for all boundary rep types, but many systems exchange color information for topology. As a result, there are now color() get and set functions on igs_direction_entity, igs_edge_list_entity, igs_face_entity, igs_loop_entity, igs_manifold_solid_brep_entity, igs_shell_entity, and igs_vertex_list_entity.
Changes in release 15.0 (2012-03-30)
- ST-Developer v15 release.
Changes in release 14.7 (2011-11-28)
- The igs_iges_file::read() and write() functions now expect UTF-8 filename strings and open them properly under windows using wfopen, so the behavior is now the same under UNIX and Windows. The data strings in an IGES file are presented as-is, so applications should convert from local code pages or hex-encoded Kanji data in type 212 notes to UTF-8 if the source data is going into STEP APs.
- Added a root virtual function to directory_entry for the four status
number functions previously defined only on subclasses. This change
allows values to be found without casting to each different subtype.
The functions return NULL_ENUM for entities where the IGES spec says
that the field has no meaning.
igs_blank_status blank();
- igs_subordinate_switch subordinate(); igs_use_flag used(); igs_hierarchy_flag hierarchy();
- Changed error for missing definition in type 402 associativity instance entity to be non-fatal.
Changes in release 14.6 (2011-10-02)
- Added shared library versions of the IGES library to MacOSX and Linux platforms.
- Rebuilt for use with ROSE library 14.4 update.
Changes in release 14.5 (2011-09-14)
- Now reads open shells (type 514 form 2) correctly. As part of this change, the form() attribute on igs_shell_entity class has changed from derived to an explicit, settable attribute. It will contain 1 for closed shells or 2 for open shells.
- Now reads type 102 with incorrect form 1. Will be created as a normal composite_curve_entity. The form should be zero and will be written as such.
- Now reads type 314 with incorrect form 1, produced by spGate translator software. Created as a normal color_definition_entity The form should be zero and will be written as such.
- Type 406 properties of form 32-36 are now read correctly. Previously they would be written correctly when created but not recognized by the reader.
- Improved the documentation to clarify the type/form combinations and how the library reads non-standard combinations that do not appear in the specification. Also removed some extraneous supertypes from the type table.
Changes in release 14.4 (2011-09-09)
- Added FILE* versions of igs_iges_file::read() and write() so they can be used with windows files opened by wfopen. The const char * versions just pass their arguments to fopen() so they can be used with UTF-8 filenames on Linux and other systems.
Changes in release 14.3 (2011-09-06)
- Added DLL version of IGES library to distribution. Build using the DLL version by adding "/DIGESLIB_DLL /DROSE_DLL" to your defines and link to "igesdll.lib rosedll.lib" or "igesdlld.lib rosedlld.lib" instead of igeslib.lib and roselib.lib.
Changes in release 14.2 (2011-09-02)
- Use the igeslib.h header file to bring in all class definitions and other library functions. Please change any older code that includes the six separate schema headers. The new header is simpler and also prepares for the #defs needed for a DLL version of the library.
- The six force load functions for each schema have been combined into the igeslib_force_load() function. Please remove any old #includes of the *_ROSE_LOAD.h headers and calls to the other functions.
- Added igs_ prefix to all generated classes. To include preprocessor defines to help build existing code, define IGESLIB_USE_OLD_NAMES on the compiler command line.
- Changed the include directory from igescvt to igeslib. Changed the library name from IGES.lib to igselib.lib as well. This now matches the naming pattern of the other ST-Developer EXPRESS libraries.
- Extended documentation to include mapping between IGES entity and form numbers and the EXPRESS definitions, as well as more examples.
- The compiled EXPRESS for the IGES schema is now built-in so that applications based on the library do not need ST-Runtime. Call the igeslib_create_builtin_schemas() function near the start of main.
- Retired the iges_cvt executable and replaced it with separate iges2step and step2iges executables rather than script wrappers. This should be clearer and simpler to understand. The -o option also works better because the new execs use the name verbatim instead of trying to replace extensions.
- Corrected packaging problem with HTML EXPRESS schema documentation.
Changes in release 14.1 (2011-04-07)
- Packaged up as MSI, added basic docs for the class library.
Changes in release 2.2
- Corrected a bug introduced by the double reading logic below, which shifted the record causing subsequent fields to be corrupted.
- Removed an error report when reading floating point values written as integer. ie, the file contains "1" where spec says that it should be "1.0". This is against the spec, but many systems do it.
- Extended the double reading code to recognize lowercase 'E' and 'D' usage in scientific notation. This does not match the spec, but many systems do it.
Changes in releases prior to 2.1
- Changelog and version numbering not maintained