Line visibility algorithms

Robertson algorithm

One of the first algorithms is the Robertson algorithm; originally intended for the solution of visibility
of a group of convex polyhedrons. This algorithm subsequently processes individual edges of the body.
It tests every edge, whether it is not overlapped by another body. If it is hidden only partially, then this
edge is split into two parts (one hidden, the other unhidden). Every unhidden part becomes a new
tested edge. You can find this algorithm in [2].

Appel algorithm

This algorithm works in the area of objects and is based on the fact that every edge is a conjunction of two polygons.
The first step is to remove invisible polygons. First, we split polygons into two groups: near
(potentially visible) and reverse (invisible). The near polygons have an obtuse angle with the projection direction;
and the reverse ones have an acute angle with the projection direction. In the following step, we split the edges
into three types, according to which polygons they cross:

First type - a conjunction of two reverse polygons, called the invisible edge
Second type - a conjunction of the near polygon and the reverse polygon, called the visible contour edge.
Third type - a conjunction between two near polygons, called the potential visible edge.
The algorithm is given in [1].