Cool! I would use a template parameter so that a user can choose between float and double [1]. I would add support for vector arrays (AOS and SOA) [2]. I'm not sure if your angle calculation algorithm is computationally cheap [3].
[1] https://stackoverflow.com/questions/4584637/double-or-float-...
[2] https://stackoverflow.com/questions/40163722/is-my-understan...
[3] https://stackoverflow.com/questions/1427422/cheap-algorithm-...