The Hidden Line Renderer is a Heidi Renderer. This means that the HLR API is defined by the Heidi Renderer API.
In its current form, the HLR processes only triangles and simple lines¾linewidth and linestyle are ignored. Ellipses are tessellated into triangles. Elliptical arcs are tessellated into polylines. Images are ignored.
The input geometry can be specified in the model, 3D, or in a device coordinate system, DC. Camera properties define geometry transformations including perspective correction, and clipping.
The HLR clips each line against most triangles¾just the ones which could obscure the line¾and then builds a list of visible and obscured segments for each line.
The visible segments are processed as DC polylines in the HLR's parent renderer. The visible segments retain the line attributes of the original line. The parent renderer may draw the polylines, for example the GDI driver, or write them to a file, for example the DWF driver, or whatever the renderer chooses to do.
By default, the HLR ignores the obscured segments. Optionally, a Heidi linestyle can be assigned to hidden lines and the hidden segments will be processed with the hidden linestyle.