-
Notifications
You must be signed in to change notification settings - Fork 2
Feature function based paths #12
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
base: master
Are you sure you want to change the base?
Conversation
310abe1 separates Unlike the source implementation, this one rips out as many data members as possible and replaces almost the entire API of E.g. we can't just throw "Not implemented" or "not supported" on the API, because that would break the official OpenSim GUI, which uses parts of the API for the path-editing features (e.g. the ability to reorder wrapping elements). An alternate implementation has to at least return fake elements, or behave as believable as possible, to not destabilize the GUI (e.g. opening a |
The latest commit hardens the base class against deprecations. This was done so that downstream implementations that are not point-based (e.g. The deprecations have been handled by providing a crash-resistant implementations that computationally work, but do not functionally do anything (e.g. they return valid pointers to valid memory locations, but those memory locations don't affect a simulation). This should mean that any legacy code that assumes the The Methods that are deprecated have been fully listed as so in the header (using the appropriate macro). This causes compilers to warn about the deprecation. Here is a list of deprecation warnings that are printed out when compiling https://gist.github.com/adamkewley/fb1f1fa233d6a1c9ef03980c0d38bcf6 All existing OpenSim test suites etc. still pass, despite these deprecation warnings, because the runtime implementation that these tests use are Those now-deprecated API uses should be fixed in-tree as part of the path chance. This is so that compiling OpenSim produces no deprecation warnings and so that it internally uses the new API correctly. However, the deprecated API, and stub methods, should then be left in-place for "a reasonable amount of time" (e.g. 3-8 years) so that downstream implementations have a chance to clean up. |
34116ec just adds a basic not-yet-fleshed-out API for a The next step is to define a |
5f84d1c tries to define what a The next step is to wire up the Once wired up, I can write a mock implementation of a Once the plumbing is tested, we'd then need to--separately--implement a (e.g.) Once that's done, the final step is to rip it out of the test suite and turn it into a standard API-visible OpenSim object with relevant properties, fields, etc. that can handle storage-time serialization (e.g. it has relevant properties for saving which Coordinates it was parameterized against, etc.) |
d669e8d fleshes out the The next step is to copy Joris's implementation code into some standalone compilation unit that we can play with independently of the rest of OpenSim (e.g. a test compilation unit). In that, we'll implement + test the interpolation code independently of everything else. I'll likely just hack it in initially so that we have something to play with. |
…ctionBasedPath unit
3c25207 contains a cut-and-paste (give or take) port of Joris's FBP code into the test harness so that we can experiment with the code without having to heavily recompile OpenSim or anything. |
To build the branch on with opensim-creator, checkout opensim-creator and: #!/usr/bin/env bash
OSC_OPENSIM_REPO=https://github.com/ComputationalBiomechanicsLab/opensim-core OSC_OPENSIM_REPO_BRANCH=feature_function-based-paths ./scripts/build_windows.bat Or, in set OSC_OPENSIM_REPO=https://github.com/ComputationalBiomechanicsLab/opensim-core && set OSC_OPENSIM_REPO_BRANCH=feature_function-based-paths && call ./scripts/build_windows.bat |
General feature PR for implementing function-based paths.
This is WIP and is a manual merge of code from: