void GenerateNormal(float x[3], float y[3], float z[3], float &ox, float &oy, float &oz)
{
//Calculate coordinates for a glNormal and return them ox,oy and oz
}

I have a sinking feeling that the math will be quite difficult. Can anybody help me?

The math is very simple. Take the difference between two pair of points (like pt2 - pt1, and pt3 - pt1) to get two vectors, take the cross-product of the vectors, and normalize it. That's it. In other words:

This is a fingerprint verification application. When verifying,it loops through the table. if the current fingerprint template is the first one on the table row it verifies it correctly. But ...