Perlin Noise, more updates.
I spent quite a bit of time this past week with GD user Cozzie, who was having issues understanding the logic behind OBB plane collisions. It's always a great sense of accomplishment when I can help others to understand something that seems a mystery to them. In the real world I'm a tradesperson, and have been teaching apprentices at a post secondary institute for the past 6 years. In retrospect, trading a higher paying job in the field for more time for myself and family was one of the best decisions I ever made, because I get to experience this fervor on a regular basis. I think my instructor at the time, and my coworker now, could see that spark in me. I'm sure he knew that I would both enjoy a career in teaching, and also excel at it, that fateful night when I received an offer to interview for the position via email.
Some days are better than others, however. The same can be said about certain classes, and even individual students. On occasion I have students who have experienced much more of the trade than I have, be it from the choice of employer, or time in the trade, and I can get caught up with feelings of inadequacy. I'm sure many of the GD members can relate, seeing other peoples projects advance quickly, perhaps being greenlight on steam( Congrats again Riuthamus), while we toil through our own work in what seems like a exercise in futility.
That being said, we'll never catch up if we don't try, amirite? So after helping Cozzie, I brushed the dust of my math lib, and deduced that It still has some work to be done, both to regain some the functionality lost in the crash, as well as add some more functionality that I previously neglected. (I also have some functions that would be much more useful if they were implemented in a different way.)
One of these neglected functions was Perlin noise. I had implemented 1d noise before just to understand the theory, but more useful to me currently are the 2d and 3d varieties. Removing the free function noise(x), and moving to a class based implementation went swimmingly, though I may revert back to free functions at some point in time. It's always a decision I struggle with, and anytime I decide one way or the other, I'm again left wondering if my choice was the correct one... oh well, here are the results.