A technically advanced feature of PolyTrans is the use of a
unique memory allocation and memory management system. This system, which
is used by the various import and export filters, as well as the internal
database manager, allows huge databases to be converted on machines with
minimal memory.
Rather than allocate numerous small chunks of memory, the memory
manager allocates large blocks of memory whose size is determined by the
converter; the DXF and Wavefront import filters, for example, greatly benefit
from this memory manager since hundreds of thousands of small memory
elements must be allocated during the import process.
You will often find
that other 3D programs will quickly run out of memory for files that have
no problem being converted with PolyTrans. In addition, the import converters
store all polygon data within the database using a compressed mesh format
which uses various techniques to reduce memory usage (such as sharing the
normal/texture/color/etc index arrays with those of the vertex index array).
All this adds up to an efficient use of memory resources.
A recent, and unique addition, to PolyTrans has been the development and
inclusion of a "trie-graph" mechanism. During any import process PolyTrans
must ensure that each object name is unique within the imported database.
For files with tens or hundreds of thousands of names, this unique naming
process can potentially become exponentially slow. However, with the use of
this new "trie-graph" code (for which a binary tree is used, with each node
of the tree leading to 26 other branches, compared to a normal 2-way binary
tree), PolyTrans can import files with a tremendous number of objects
without slowing down. For destination programs which would otherwise not be
able to import such a huge file, PolyTrans can act as a pre-processor on the
large dataset before sending it off to the destination program for ultimate
import (as one example).