In some simulation program we generate object surfaces in terms of points, each point has 3D coordinates and the vector that represents the normal to the surface at that poi
Take a look at Jonathan Shewchuk's work, especially on his (together with his colleagues) famous papers and implementations of:
Streaming Computation of Delaunay Triangulations
A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator
There is also fast implementation of unsorted point clouds implemented in the Point Cloud Library (PCL). Check their presentation on Fast triangulation of unordered point clouds.