Skip to content
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

Crazy train 20201012 #346

Merged
merged 173 commits into from
Oct 18, 2020
Merged

Crazy train 20201012 #346

merged 173 commits into from
Oct 18, 2020

Conversation

louis-langholtz
Copy link
Owner

Description - What's this PR do?

Major changes:

  • Switches public interfaces from reference semantics to value semantics.
  • Redesigned memory usage to be more linear and more contiguous.
  • Isolates the world implementation behind a compilation firewall providing for a stable Application Binary Interface (ABI). Many future changes can occur without breaking binary compatibility with application using this new interface.
  • Increased performance of world stepping for many tested scenarios.
  • Bumps the version from 0.9 to 0.10.

Impacts/Risks of These Changes?

Introduces a number of API breaking changes but at the benefit of providing a new ABI stable interface.

Any background context you want to provide?

This addresses many major project goals.

Related Issues

This is an initial commit towards eliminating pointers from user code,
deriving a more stable ABI, and eliminating the uses of friend classes.
Towards removing uses of friend classes that are no longer needed due
to the new WorldImpl design,
Towards removing uses of friend classes that are no longer needed due
to the new WorldImpl design.
Towards removing uses of friend classes that are no longer needed due
to the new WorldImpl design.
Towards removing uses of friend classes that are no longer needed due
to the new WorldImpl design.
WorldImpl class is meant to be self-contained "basis" code for free
functions; not the other way around. Removing these includes helps
ensure that. And it recognized a need for ComputeMassData being a basis
member function as well so it was added.
From switching pointers to indices which are smaller.
@louis-langholtz louis-langholtz merged commit a6b75cc into master Oct 18, 2020
Reducing Uses Of Pointers automation moved this from To Do to Done Oct 18, 2020
Documentation work automation moved this from To Do to Done Oct 18, 2020
Slim Down World Class automation moved this from To Do to Done Oct 18, 2020
Increasing Genericity Of PlayRho Code automation moved this from To Do to Done Oct 18, 2020
Getting rid of friend classes! automation moved this from In Progress to Done Oct 18, 2020
@louis-langholtz louis-langholtz deleted the crazy-train-20201012 branch October 18, 2020 03:26
@louis-langholtz louis-langholtz linked an issue Oct 18, 2020 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug For issues or changes that describe or fix bugs. Docs Use when issue or pull request relates to the documentation of the project. Enhancement For suggestions or changes that enhance any part of the project and isn't a bug.
Development

Successfully merging this pull request may close these issues.

Joint class designed for public inheritance.
2 participants