AcDbBlockReference::geomExtents() doesn't return an accurate value for a rotated
AcDbBlockReference. Is there a function that does?
The following function calculates the extents of an AcDbBlockReference. The
following restrictions apply:
-- Non uniformly scaled blocks containing solids are not supported.
-- Blocks containing AcDb3dPolylines are not supported.
-- Blocks containing AcDb2dPolylines other than of type k2dSimplePoly are not
When working in non-WCS coordinate systems, the extents returned from AcDbBlockReference::geomExtents() can be somewhat larger that the actual geometry because AcDbBlockReference::geomExtents() transforms the contained entities' precomputed extents by the block reference's transformation matrix rather than transforming the entities and computing a new box for the transformed entity set. This results in non-world aligned extent boxes for the entities. This is fast, but will provide an "exaggerated" enclosing extents box.
This method works recursively for nested block references. When this method is called on the outermost block reference (the normal case for ARX applications), parentXform should be the identity matrix. For calls on nested block references, parentXform should be the cumulative transformation from the outermost block reference down to the block reference that is referencing the block table record that owns the block reference on which this method is being called.