Add more useful basic algorithms
The algo module is sadly empty right now. It should be filled with lots of standard algorithms, maybe just the easy ones for now. Implementing a sqrt(3) takes some time, but there surely is a lot of low hanging fruit that's quick to implement and useful.
- [ ] Visitors: BFS, DFS
- [ ] ...
Hi! After reading through a little of this library I'm really interested in trying my hand at implementing a basic algorithm (probably not the graph algorithms) with some guidance of course. Let me know if you'd be cool with that :)
I'd probably just try porting something from here to this lib.
Hi and thanks for your interest in working on this! Sure, go ahead and try implementing some. If you have any questions feel free to write me a mail (see profile). And if you're just starting out it would probably make sense to already send a PR for the first algorithm so that I can quickly check if everything looks good, before you start tackling something larger.
Two notes about the link you posted:
- This implements algorithms for a half edge mesh directly. This means the algorithms can use internal links/pointers of that data structure. You won't be able to do that in lox. Instead you are restricted to only the methods of mesh traits. This should work, but it is worth pointing out as it's quite a different approach. Also: it is not unlikely that you will encounter the situation where you can't properly implement the algorithm with those methods. In that case, it might be worth adding a new method. If that happens, let's talk about it via mail.
- The repository is licensed as MPL which is not the same as lox's license of MIT+Apache2. I think these are not compatible. So please do not ... use the link you posted? I'm really not a lawyer and have no clue what's allowed or not, but yes, please be aware of this problem! The license of linked project was MIT some time ago (see this PR). So if you really want, you can look at the file version just before the license change.
Yeah, after I commented that, I knew there might be misunderstanding concerning intent. I don't mean to use the link I shared in any way other than as a good point of reference for the types of algorithms we should be capable of doing. Not necessarily their implementations or anything beyond that. If there was a good host of mesh algorithms names in one place, I would've posted that instead. So yes, I agree that these two works and their licenses should not be mixed haphazardly.
But yes, I'll gladly start with some simple PRs. I have yet to read through the older code you removed before the release so I'll get to that this week and just continue to understand stuff. I'll message you directly if I fail to understand some things. Thanks for the helpful advice!