The requirement for a ON_Viewport is really to handle perspective views. For a perspective view we clearly need the camera location, but also we use the view frustum ( left, right, top and bottom edges of the view for clipping). This is in contrast to a parallel projection where there are no clipping planes by default. Also for a perspective view, the target point is used, rather subtlely, to define the scale of the output which in turn defines the interpretation of the tolerance setting.
So bottom line there is a lot more information needed by Make2d for a perspective view projection.
That is why ON_HiddenLineDrawing has a
SetParallelViewport( ON_3dVector CameraDirection, ON_3dVector CameraUp)
method that allows the view information to be determined by two orthogonal vectors .