This also splits vertex access and allocation so it's possible to copy coordinates into an existing array without allocating it.
This also splits vertex access and allocation so it's possible to copy coordinates into an existing array without allocating it.