void Tesselator(int NumberOfVVertices, int NumberOfUVertices)
{

Vstep = 1 / (NumberOfVVertices-1);
VstepMatrix = (Vstep3,       0,      0,     0,
                     0, Vstep2,      0,     0,
                     0,      0,      Vstep, 0,
                     0,      0,      0,     1);

Ustep = 1 / (NumberOfUVertices-1);
UstepMatrix = (Ustep3,      0, 0,     0,
                    0, Ustep2, 0,     0,
                    0,      0, Ustep, 0,
                    0,      0,      0,1);

M = (VstepMatrix (B * P * BT)) * UstepMatrix;

Vtx = ???;
dvVtx = ???;
ddvVtx = ???;
dddvVtx = ???;

duVtx = ???;
dvduVtx = ???;
ddvduVtx = ???;
dddvduVtx = ???;

dduVtx = ???;
dvdduVtx = ???;
ddvdduVtx = ???;
dddvdduVtx = ???;

ddduVtx = ???;
dvddduVtx = ???;
ddvddduVtx = ???;
dddvddduVtx = ???;

for(unsigned int vInt=0; vInt < NumberOfVVertices; vInt++)
{

lVtx = Vtx;
lduVtx = duVtx;
ldduVtx = dduVtx;

for(unsigned int uInt=0; uInt < NumberOfUVertices;uInt++)
{

output(Vtx);

lVtx += lduVtx;
lduVtx += ldduVtx;
ldduVtx += ddduVtx;

}

Vtx += dvVtx;
dvVtx += ddvVtx;
ddvVtx += dddvVtx;

duVtx += dvduVtx;
dvduVtx += ddvduVtx;
ddvduVtx += dddvduVtx;

dduVtx += dvdduVtx;
dvdduVtx += ddvdduVtx;
ddvdduVtx += dddvdduVtx;

ddduVtx += dvddduVtx;
dvddduVtx += ddvddduVtx;
ddvddduVtx += dddvddduVtx;

}

}

<<<Back