I can see the pseudovertices... whenever the lines cross, a pseudovertex is created. So next step is we take the 2D X and Y coordinates, and add Z = 0 to create a 3D coordinate. Next we take the camera position as another 3D coordinate. Now we draw a line along those two points... I shall call it the CamSect line, because it's formed from the camera and the 2D intersection point. This 3D CamSect line will intersect with both of the edges that are crossing to create the pseudovertex.
1. Find sect1, the 3D coordinates of the intersection point between CamSect and Line 1.
2. Find sect2, the 3D coordinates of the intersection point between CamSect and Line 2.
3. Calculate the distance from the camera to sect1, call this dist1.
4. Calculate the distance from the camera to sect2, call this dist2.
5. Which distance is furthest? Call that distance 3Ddist. Whichever is furthest away is the edge that will receive the pseudovertex, for which we have just calculated 3D coordinates. Call the 3D pseudovertex Pseu, with coordinates PseuX, PseuY, and PseuZ.
6. Next we must check the coordinates PseuX, PseuY, PseuZ against all faces, to see if there are any faces in front of them:
7. Does this vertex appear inside any faces in 2D?
8. If it appears inside in 2D, check that face in 3D. Calculate the coordinates where the plane formed by the face is intersected by the CamSect line. Call that point CamPlaneSect.
9. Calculate the distance between CamPlaneSect and the camera. Call this distance CamPlaneSectDist.
10. Compare CamPlaneSectDist with 3DDist from step 5. If 3DDist is greater than CamPlaneSectDist, this pseudovertex is behind a face. If it is, hide it. If it isn't, don't hide it (yet) and return to step 6 and check the rest of the faces.