Moved and templated interpolation.
Slight changes to alter the way it calculates each step of the vertices.
Merge pull request #2771 from fluffyfreak/minor-patch-optimisation

Patch alteration and math util