Imagine an optional line with the four points A2, B2, C2 and D2.

1. Take these points and multiply them by their perspective and modelview matrix M.

As a result you'll get A, B, C and D in screen coordinates.

Matrix4f.transform(M, A2, A);
Matrix4f.transform(M, B2, B);
Matrix4f.transform(M, C2, C);
Matrix4f.transform(M, D2, D);

2. Calculate the line normal

N.x = A.y - B.y;
N.y = B.x - A.x;

3. Calculate the discriminant

**r** by

**r** = Vector4f.dot(N, Vector4f.sub(C, A)) * Vector4f.dot(N, Vector4f.sub(D, A));

where

__Vector4f.dot()__ calculates the dot product of these two vectors and

__Vector4f.sub()__ the difference vector.

4. draw the line between A2 and B2

**only if r > 0**