The Geometry API is almost completely abstract. It provides an object-oriented interface to geometry values. All objects in the Geometry API have factory methods in the FdoGeometryFactorytAbstract class. One default implementation is provided, based on FGF in-memory binary storage. It is accessible via the concrete class FdoFgfGeometryFactory.
The FdoFgfGeometryFactory employes object pooling for many of the data types in the API. While many methods appear to be executing “Create” or “Get” actions, they are, in fact, accessing object pools, thus avoiding costly operations on the memory heap.
Geometries in FGF format can be exchanged between software components without depending on the Geometry API itself, because they are not genuine geometry “objects.” FGF content is based on byte arrays. It is handled through a simple FdoByteArray class that is not specific to geometry.