Replace for with std::copy. Avoid Point ctor call.
Remove one-time-use nNodes.
Replace for loop with std::for_each.
Surface triangle container holds Triangle instead of pointers.

This removes artifacts like (*tri)[i] or (**it)[i] etc. and avoids numerous pointer copies.