Next Up Previous Contents Index
Next: Extracting Core Routines Up: Implementation Notes Previous: Implementation Notes

Using IGES Modules

Since I envision Let It Be shipping with the current, within-the-core implementation of IGES, and the transition to ADS IGES occurring thereafter, and since substantial work remains to be done on IGES before Let It Be ships, I assigned a high priority to avoiding divergence between the built-in and ADS streams of IGES development until the built-in stream is frozen in anticipation of its discontinuation, presumably in Release 12. As long as divergence is avoided, the built-in IGES will continue to be the main development stream until Let It Be ships. Changes to this stream can be integrated into the ADS IGES stream simply by recompiling the updated files, resolving whatever new conflicts may have appeared by changes to the emulation libraries and, as a last resort, by #ifdef code submitted back into the AutoCAD development stream.

As an indication of the closeness between the core and ADS implementations of IGES, long DIFFs of all changes in IGES modules (both .h and .c files and including a couple of IGES bugs I stumbled over and fixed along the way), between the Z.0.64 distribution and my current ADS IGES development directory total only 150 lines. Although some additional changes will be required to bring the ADS IGES up to full functionality, I do not anticipate the need for additional major code modifications in these modules.

Any conditional code required in the IGES modules is controlled by a new compile-time variable named OUTBOARD. This variable, never defined within the AutoCAD core, is intended to be used by code that exists both within the core and outside. I recommend that we define a variable, INBOARD, within AutoCAD, so that conditional compilation statements can be written in the most straightforward manner. My emulation library does not, of course, define INBOARD.


Next Up Previous Contents Index
Next: Extracting Core Routines Up: Implementation Notes Previous: Implementation Notes

Editor: John Walker