Skip to content

Add more useful basic algorithms #36

Open

Description

@LukasKalbertodt

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
  • ...

Activity

  1. stargazing-dino commented on Jun 29, 2023

    @stargazing-dino

    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.

  2. LukasKalbertodt commented on Jul 2, 2023

    @LukasKalbertodt
    OwnerAuthor

    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.
  3. stargazing-dino commented on Jul 2, 2023

    @stargazing-dino

    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!

  4. virtualritz commented on Jan 18, 2025

    @virtualritz

    I think for something like lox (or plexus, on that note) to get adoption it needs to come with a "standard library" of high(er) level operations (as a separate crate or feature-gated module). Think stuff like extrude, bevel, inset, etc.

    With 'adoption' I mean that the number of dependents on crates.io is > zero (which it has been for years, in case of plexus, e.g.). Or at least there should be some projects, even if not published on crates.io out there that use it.
    Last time I checked I couldn't find any for plexus on GH or GL.

    How this makes all the difference you can see from something like libfive (or its re-incarnation in Rust, fidget which does not have it yet but has it as a goal). I would think libfive to be one of the most used OSS implicit surface libs in C/C++ land, for this reason (shipping with a standard lib, that is).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions