Tech-Debt’s in the Asset-Impoter-Lib
Introduction
I am working on the Asset-Importer-Lib since 2006. At first, we were three guys who wanted to share their file-loaders in one library with others. If you have ever tried to import any kind of 3Dfile–format you know how much work, frustration, and pain this will cause. A lot of hacks and special implementations for special use-cases are part of most of the formats I worked with. A lot of great developers helped us by writing importers, their knowledge, and bug fixes. So the code-base has grown over the years. So did the tech-debt’s. Programmings techniques have evolved, different styles from different developers got in, and so on.
In this blog post, I want to share which major issues I have found and which strategy can help to solve these.
Don’t interface third-party-libs
The problem: Direct use of third-party-API and libs
We imported a file format called IFC. The shortcut stands for Industrial Foundation Classes. It is used by Building Information Modeling (BIM) programs to hold models and designs of facilities and buildings. This format provides 2D-polygons which needs to get triangulation. And we had to check whether these polygons will define a hole in the model topology.