Hi Evolution,

I would really like to see Swift gain an Angle type in the standard library.  
Every time I have to deal with an angle in an api, I have to go figure out the 
conventions for that call.  Is it in degrees? Is it in radians?  What if it is 
in radians, but I want to think about it in degrees?

I ended up writing an Angle type for my own code a few years back, and I have 
to say it is really wonderful.  It has greatly simplified my graphics work.  It 
takes a lot of mental load off of my brain when dealing with Angles.

I can of course initialize it either as degrees or radians (or revolutions), 
but I can also just say things like ‘.threeQuarterTurn’, and then I can get the 
value back out in whatever format I like.  There are also useful additions that 
let me normalize the angle to different ranges and which let me snap to the 
nearest multiple of an angle. Both of these are enormously useful for user 
facing features.  I can also do math on angles in a way that makes geometric 
sense for angles.  It is also really useful for interacting with CGVectors in 
intelligent ways.

Using Doubles or CGFloats to represent angles everywhere is just semantically 
wrong IMHO, and it stops us from adding all of these angle-specific niceties.

Happy to provide code if there is interest…

swift-evolution mailing list

Reply via email to