Skip to content

Formal BBox struct #377

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

benjamin051000
Copy link
Contributor

@benjamin051000 benjamin051000 commented Feb 20, 2025

We need a more standardized way to represent bounding boxes, as we kind of just throw the string around and parse it into the four corresponding values when we need to.

Fixes #375

To Do

  • Get GUI working with this
  • Fix compile errors
  • Fix render bug

@benjamin051000 benjamin051000 changed the title WIP: BBox struct RFC: Formal BBox struct Feb 20, 2025
@benjamin051000 benjamin051000 force-pushed the formalize-bbox branch 3 times, most recently from fabd9d0 to 4e65ed6 Compare February 22, 2025 03:26
@benjamin051000 benjamin051000 marked this pull request as ready for review February 22, 2025 03:27
@benjamin051000 benjamin051000 force-pushed the formalize-bbox branch 2 times, most recently from 0faf517 to aa7a51d Compare February 22, 2025 03:31
@benjamin051000
Copy link
Contributor Author

Blocked on #378

@benjamin051000 benjamin051000 changed the title RFC: Formal BBox struct Formal BBox struct Feb 22, 2025
src/bbox.rs Outdated
pub fn from_str(s: &str) -> Result<Self, String> {
let [min_lat, min_lng, max_lat, max_lng]: [f64; 4] = s
.split(',')
.map(|e| e.parse().unwrap())
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this return an Err signifying parsing failure?

src/bbox.rs Outdated
.map(|e| e.parse().unwrap())
.collect::<Vec<_>>()
.try_into()
.unwrap();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this return an Err? What cases will the try_into fail?

@benjamin051000 benjamin051000 force-pushed the formalize-bbox branch 3 times, most recently from f705619 to cbf8c53 Compare February 24, 2025 02:25
`BBox` represents a *valid* bounding box.

It's only possible to have a BBox object that's valid.
@benjamin051000
Copy link
Contributor Author

This may or may not work with the GUI. I don't know, because I don't build or test the GUI. Soooo yeah, do with that knowledge what you will.

@louis-e
Copy link
Owner

louis-e commented Apr 12, 2025

My bbox code was a mess hahha! It doesn't run in GUI mode yet, but I'll take care of that and merge it!

@louis-e
Copy link
Owner

louis-e commented Apr 13, 2025

Alright, it's 3:30am now - let me know if this looks good to you or if I messed something up in your code! :D

@XianlinSheng
Copy link

Does it sound good to represent the position data in two spaces: one real world system (in maybe 'spherical.rs' using LLPoint(the GeoCoord here) and LLBBox (the BBox here)), and a transformed mc system (in cartesian.rs currently, using XZPoint and XZBBox). This will make coordinate transformation much flexible and clearer. I just created the XZBBox struct and based the world editor on XZPoint, XZBBox, so it does not have to generate at (0,0), and I reserved the possibility to extend for more complex bbox shapes.

@louis-e
Copy link
Owner

louis-e commented Apr 13, 2025

That sounds interesting, thanks for your idea. Can we merge this PR and follow up with your suggestion in #409 or a seperate PR? It would be cool to cover #29 with this and enable multiple generations in a single world, since we can also programmatically set the player spawn point.

@XianlinSheng
Copy link

Sure. You can merge this PR first and I will keep my #409 updated. These two are the components in a bigger architecture, and I will try to make them work seamlessly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Issue with parsing bbox coords in elevation code
3 participants