You need to know position of each 8 corner vertex and then render the 6 quads along them. Seeing from your code, i don't clearly understand how to draw it from that. Plane needs a position in addition to normal, but i would imagine it would be much simpler just calculate corner vertices position somehow.

But i can give helping tip for rendering part.

Assume you use vectors like that from within array of singles or from record. This is both fast and little code used:
[pascal]var v1,v2,v3,v4: array[0..2] of single; // where 0..2 = x,y,z
...
glBegin(GL_QUADS);
glVertex3fv(@v1[0]);
glVertex3fv(@v2[0]);
glVertex3fv(@v3[0]);
glVertex3fv(@v4[0]);
glEnd;[/pascal]

May i ask where do you use frustum shape rendering?