The IfcGeom::Iterator is designed in a way to allow streaming access to geometrical elements. However, due to the nature of Collada, with library nodes for geometries and materials that precede the instantiation of objects, everything is currently retained in memory.
To implement this in a streaming fashion three parts need to be changed:
- Surface styles and default materials need to be queried before the IfcGeom::Iterator loop. This probably will result in emitting unused styles to the file
- No longer retain the geometry definition and placement information, but solely retain placement information in memory and emit geometry directly
- Switch to an XML library that supports streaming output
The
IfcGeom::Iteratoris designed in a way to allow streaming access to geometrical elements. However, due to the nature of Collada, with library nodes for geometries and materials that precede the instantiation of objects, everything is currently retained in memory.To implement this in a streaming fashion three parts need to be changed: